From fd9bf92a25fdb9c32bd22ce8fb6018fa1d3a9de2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 1 Nov 2018 00:18:19 +0100 Subject: [PATCH 001/385] Initial housing work by Vox --- src/common/Common.h | 44 ++- src/common/Database/ZoneDbConnection.cpp | 22 ++ src/common/Database/ZoneDbConnection.h | 5 + src/common/Network/PacketDef/Ipcs.h | 13 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 111 ++++-- src/servers/sapphire_zone/ForwardsZone.h | 3 +- .../sapphire_zone/Zone/HousingZone.cpp | 97 +++-- src/servers/sapphire_zone/Zone/HousingZone.h | 46 ++- src/servers/sapphire_zone/Zone/Landset.cpp | 346 ++++++++++++++++++ src/servers/sapphire_zone/Zone/Landset.h | 116 ++++++ 10 files changed, 713 insertions(+), 90 deletions(-) create mode 100644 src/servers/sapphire_zone/Zone/Landset.cpp create mode 100644 src/servers/sapphire_zone/Zone/Landset.h diff --git a/src/common/Common.h b/src/common/Common.h index f729f5ba..e796d3c3 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -214,7 +214,8 @@ namespace Core::Common FreeCompanyBag1 = 20001, FreeCompanyBag2 = 20002, FreeCompanyGil = 22000, - FreeCompanyCrystal = 22001 + FreeCompanyCrystal = 22001, + HousingOutdoorItems = 25001 }; enum ContainerType : uint16_t @@ -731,6 +732,47 @@ namespace Core::Common MountSkill = 0xD, }; +//Structs +struct LandsetStruct +{ + uint8_t houseSize; //0 + uint8_t houseState; // 2 + uint8_t iconColor; // 4 + uint8_t iconAddIcon; // 6 + uint32_t fcId; //8 + uint32_t fcIcon;// 12 + uint32_t fcIconColor; // 16 + uint16_t exteriorRoof; //20 + uint16_t exteriorWall; //22 + uint16_t exteriorWindow; //24 + uint16_t exteriorDoor;// 26 + uint16_t otherFloorWall; // 28 + uint16_t otherFloorFlooring; //30 + uint16_t basementWall; // 32 + uint16_t gardenSign; // 34 + uint8_t color[8]; // 36 + //44 +}; + +struct HousePermissionSet +{ + uint16_t landSetId; //00 + uint16_t wardNum; //02 + uint16_t zoneId; //04 + uint16_t worldId; //06 + uint32_t permissionMask; //08 + uint32_t unkown1; //12 +}; + +struct YardObject +{ + uint32_t itemId; + uint16_t itemRotation; + uint16_t pos_x; + uint16_t pos_y; + uint16_t pos_z; +}; + using PlayerStateFlagList = std::vector< PlayerStateFlag >; } diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index 6f9e873b..b8992014 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -190,4 +190,26 @@ void Core::Db::ZoneDbConnection::doPrepareStatements() prepareStatement( CHARA_ITEMGLOBAL_DELETE, "UPDATE charaglobalitem SET IS_DELETE = 1 WHERE ItemId = ?;", CONNECTION_BOTH ); + + prepareStatement( LAND_INS, + "INSERT INTO land ( LandSetId ) VALUES ( ? );", + CONNECTION_BOTH ); + + prepareStatement( LAND_SEL, + "SELECT LandSetId, Size, houseState, iconColor, iconAddIcon, fcId, fcIcon, fcIconColor, exteriorRoof, " + "exteriorWall, exteriorWindow, exteriorDoor, otherFloorWall, otherFloorFlooring, basementWall, " + "gardenSign, colorSlot_0, colorSlot_1, colorSlot_2, colorSlot_3, colorSlot_4, colorSlot_5, " + "colorSlot_6, colorSlot_7, ownerPlayerId, nextDrop, dropCount, currentPrice " + "FROM land WHERE LandSetId = ?;", + CONNECTION_BOTH ); + + prepareStatement( LAND_UP, + "UPDATE land SET Size = ?, houseState = ?, iconColor = ?, iconAddIcon = ?, fcId = ?, " + "fcIcon = ?, fcIconColor = ?, exteriorRoof = ?, exteriorWall = ?, exteriorWindow = ?, " + "exteriorDoor = ?, otherFloorWall = ?, otherFloorFlooring = ?, basementWall = ?, gardenSign = ?, " + "colorSlot_0 = ?, colorSlot_1 = ?, colorSlot_2 = ?, colorSlot_3 = ?, colorSlot_4 = ?, " + "colorSlot_5 = ?, colorSlot_6 = ?, colorSlot_7 = ?, ownerPlayerId = ?, nextDrop = ?, " + "dropCount = ?, currentPrice = ?" + " WHERE LandSetId = ?;", + CONNECTION_BOTH ); } diff --git a/src/common/Database/ZoneDbConnection.h b/src/common/Database/ZoneDbConnection.h index b89e27e9..0a106cd3 100644 --- a/src/common/Database/ZoneDbConnection.h +++ b/src/common/Database/ZoneDbConnection.h @@ -78,6 +78,11 @@ namespace Core::Db ZONE_SEL_BNPCTEMPLATES, + LAND_INS, + LAND_SEL, + LAND_UP, + + MAX_STATEMENTS }; diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index c4c7a36d..cf2eb60b 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -188,9 +188,14 @@ enum ServerZoneIpcType : EquipDisplayFlags = 0x020C, // updated 4.4 - WardInfo = 0x0220, // updated 4.4 - WardHousingPermission = 0x0229, // updated 4.4 - WardYardInfo = 0x022C, // updated 4.4 + LandsetInitialize = 0x0220, // updated 4.4 + YardObjectSpawn = 0x0222, // updated 4.4 + LandsetPriceUpdate = 0x0225, // updated 4.3 + LandsetPermission = 0x0229, // updated 4.4 + LandsetYardInitialize = 0x022C, // updated 4.4 + YardObjectMove = 0x0230, // updated 4.4 + LandsetExtending = 0x0251, // updated 4.4 + LandsetUpdate = 0x0221, // updated 4.4 SharedEstateSettingsResponse = 0x023C, // updated 4.4 @@ -200,8 +205,6 @@ enum ServerZoneIpcType : PrepareZoning = 0x028F, // updated 4.4 ActorGauge = 0x0292, // updated 4.3 - - // Unknown IPC types that still need to be sent // TODO: figure all these out properly IPCTYPE_UNK_320 = 0x0249, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index c42be004..ba075261 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1578,8 +1578,53 @@ struct FFXIVIpcPerformNote : uint8_t data[32]; }; -struct FFXIVIpcWardInfo : - FFXIVIpcBasePacket< WardInfo > +//IPCs +struct FFXIVIpcLandsetPermission : + FFXIVIpcBasePacket +{ + Common::HousePermissionSet freeCompanyHouse; // 00 + uint64_t unkown1; + Common::HousePermissionSet privateHouse; // 24 + uint64_t unkown2; + Common::HousePermissionSet apartment; // 48 + uint64_t unkown3; + Common::HousePermissionSet sharedHouse[2]; //72 + uint64_t unkown4; + Common::HousePermissionSet unkownHouse; + uint64_t unkown5; +}; + +struct FFXIVIpcLandsetUpdate : + FFXIVIpcBasePacket< LandsetUpdate > +{ + uint16_t landSetId; + uint16_t unknow0; + uint16_t unknow1; + uint16_t unknow2; + Common::LandsetStruct landset; +}; + +struct FFXIVIpcLandsetPriceUpdate : + FFXIVIpcBasePacket< LandsetPriceUpdate > +{ + uint32_t price; + uint32_t timeLeft; +}; + +struct FFXIVIpcLandsetExtend : + FFXIVIpcBasePacket< LandsetExtending > +{ + struct + { + uint8_t houseSize; + uint8_t houseState; + uint8_t iconColor; + uint8_t iconIconAdd; + } landset[30]; +}; + +struct FFXIVIpcLandsetInitialize : + FFXIVIpcBasePacket< LandsetInitialize > { uint16_t unknown0; uint16_t wardNum; // set 1 for "Mist, Ward 2" @@ -1593,44 +1638,46 @@ struct FFXIVIpcWardInfo : uint8_t unknown6; uint8_t unknown7; uint8_t unknown8; - struct - { - uint8_t houseSize; //1 = small, 2 = middle, 3 = big; 1 - uint8_t houseState; //1 = for sell, 2 = sold, 3 = hasOwner, 0x0A = House sharing; 2 - uint8_t iconColor; //HouseState has to be 3; 1 = Private, 2 = FC House; 4 - uint8_t iconAddIcon; //Heart Icon = 2; 6 - uint32_t unknown9; //can be 0 (default) maybe fcId; 8 - uint32_t fcIcon; //can be 0 (default); 12 - uint32_t fcIconColor; //can be 0 (default); 16 - uint16_t houseRoofId; //18 - uint16_t houseFacadeId;//20 - uint16_t houseWindowId;//22 - uint16_t houseDoorId;//24 - uint8_t gardenData[4];//28 - uint16_t gardenSignId; //For fcIcon; 30 - uint16_t gardenFenceId; //32 - uint8_t color[8]; //40 - } landSet[30]; + Common::LandsetStruct landset[30]; }; -struct FFXIVIpcWardYardInfo : - FFXIVIpcBasePacket< WardYardInfo > +struct FFXIVIpcYardObjectSpawn : + FFXIVIpcBasePacket +{ + uint8_t landSetId; + uint8_t objectArray; + uint16_t unknown1; + uint32_t itemId; + uint16_t itemRotation; + uint16_t pos_x; + uint16_t pos_y; + uint16_t pos_z; +}; + +struct FFXIVIpcYardObjectMove : + FFXIVIpcBasePacket +{ + uint16_t itemRotation; + uint8_t objectArray; + uint8_t landSetId; + uint16_t pos_x; + uint16_t pos_y; + uint16_t pos_z; + uint16_t unknown1; + uint16_t unknown2; + uint16_t unknown3; +}; + +struct FFXIVIpcLandsetYardInitialize : + FFXIVIpcBasePacket< LandsetYardInitialize > { - /* consistency check? */ uint32_t unknown1; //always 0xFFFFFFFF uint32_t unknown2; //always 0xFFFFFFFF uint8_t unknown3; //always 0xFF - /* --- */ uint8_t packetNum; uint16_t packetTotal; - struct - { - uint32_t itemId; - uint16_t itemRotation; - uint16_t pos_x; - uint16_t pos_y; - uint16_t pos_z; - } object[100]; + Common::YardObject object[100]; + uint32_t unknown4; //unused }; /** diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index 2ab1ede2..eb5e909a 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -24,7 +24,8 @@ TYPE_FORWARD( InstanceContent ); TYPE_FORWARD( Item ); TYPE_FORWARD( ItemContainer ); TYPE_FORWARD( Session ); -TYPE_FORWARD( ZonePosition ) +TYPE_FORWARD( ZonePosition ); +TYPE_FORWARD( Landset ) namespace StatusEffect { TYPE_FORWARD( StatusEffect ); diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 8b0871b4..ba551399 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -2,11 +2,14 @@ #include #include #include +#include #include #include #include "Actor/Player.h" +#include "Actor/Actor.h" +#include "Landset.h" #include "Forwards.h" #include "HousingZone.h" @@ -24,18 +27,20 @@ Core::HousingZone::HousingZone( uint8_t wardNum, const std::string& internalName, const std::string& contentName ) : Zone( territoryId, guId, internalName, contentName ), - m_wardNum( wardNum ) + m_wardNum( wardNum ), + m_zoneId( territoryId ) { } bool Core::HousingZone::init() { - uint32_t landSetId; - - for( landSetId = 0; landSetId < 60; landSetId++ ) + uint32_t landsetId; + for( landsetId = 0; landsetId < 60; landsetId++ ) { - //TODO: load house information here + auto pObject = make_Landset( m_territoryId, getWardNum(), landsetId ); + pObject->setHouseSize( 1 ); + m_landsetPtrMap[ landsetId ] = pObject; } return true; @@ -46,50 +51,78 @@ Core::HousingZone::~HousingZone() } -void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) +void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) { auto pLog = g_fw.get< Logger >(); - pLog->debug( "HousingZone::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" + - +", Entity#" + std::to_string( player.getId() ) ); + pLog->debug( "HousingZone::onPlayerZoneIn: Zone#" + std::to_string(getGuId()) + "|" + ", Entity#" + std::to_string( player.getId() ) ); - uint32_t landSetId; uint32_t yardPacketNum; uint32_t yardPacketTotal = 8; - auto wardInfoPacket = makeZonePacket< FFXIVIpcWardInfo >( player.getId() ); - - wardInfoPacket->data().wardNum = m_wardNum; - wardInfoPacket->data().zoneId = player.getZoneId(); - //TODO: get current WorldId - wardInfoPacket->data().worldId = 67; - //TODO: handle Subdivision - wardInfoPacket->data().subInstance = 1; - - for( landSetId = 0; landSetId < 30; landSetId++ ) - { - wardInfoPacket->data().landSet[ landSetId ].houseSize = 1; - wardInfoPacket->data().landSet[ landSetId ].houseState = 1; - } - - player.queuePacket( wardInfoPacket ); + sendMap( player ); for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { - auto wardYardInfoPacket = makeZonePacket< FFXIVIpcWardYardInfo >( player.getId() ); - wardYardInfoPacket->data().unknown1 = 0xFFFFFFFF; - wardYardInfoPacket->data().unknown2 = 0xFFFFFFFF; - wardYardInfoPacket->data().unknown3 = 0xFF; - wardYardInfoPacket->data().packetNum = yardPacketNum; - wardYardInfoPacket->data().packetTotal = yardPacketTotal; + auto landsetYardInitializePacket = makeZonePacket< FFXIVIpcLandsetYardInitialize >(player.getId()); + landsetYardInitializePacket->data().unknown1 = 0xFFFFFFFF; + landsetYardInitializePacket->data().unknown2 = 0xFFFFFFFF; + landsetYardInitializePacket->data().unknown3 = 0xFF; + landsetYardInitializePacket->data().packetNum = yardPacketNum; + landsetYardInitializePacket->data().packetTotal = yardPacketTotal; //TODO: Add Objects here - player.queuePacket( wardYardInfoPacket ); + player.queuePacket(landsetYardInitializePacket); } } +void Core::HousingZone::sendMap( Entity::Player& player ) +{ + auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandsetInitialize >( player.getId() ); + + landsetInitializePacket->data().wardNum = m_wardNum; + landsetInitializePacket->data().zoneId = m_territoryId; + //TODO: get current WorldId + landsetInitializePacket->data().worldId = 67; + landsetInitializePacket->data().subInstance = isPlayerSubInstance( player ) == false ? 1 : 2; + + uint8_t startIndex = isPlayerSubInstance( player ) == false ? 0 : 30; + uint8_t count = 0; + for( uint8_t i = startIndex; i < ( startIndex + 30 ); i++ ) + { + memcpy( &landsetInitializePacket->data().landset[ count ], + &getLandset( i )->getLandset(), sizeof( Common::LandsetStruct ) ); + count++; + } + + player.queuePacket( landsetInitializePacket ); +} + +bool Core::HousingZone::isPlayerSubInstance( Entity::Player& player ) +{ + return player.getPos().x < -15000.0f; //ToDo: get correct pos +} + +void Core::HousingZone::onUpdate( uint32_t currTime ) +{ + for( uint8_t i = 0; i < 60; i++ ) + { + getLandset( i )->Update( currTime ); + } +} + uint8_t Core::HousingZone::getWardNum() const { return m_wardNum; } + +Core::LandsetPtr Core::HousingZone::getLandset( uint8_t id ) +{ + auto it = m_landsetPtrMap.find( id ); + if( it == m_landsetPtrMap.end() ) + return nullptr; + + return it->second; +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index 43d979e3..340a08f1 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -4,30 +4,38 @@ #include "Zone.h" #include "Forwards.h" -namespace Core { -class HousingZone : - public Zone +namespace Core { -public: - HousingZone( uint8_t wardNum, - uint16_t territoryId, - uint32_t guId, - const std::string& internalName, - const std::string& contentName ); + class HousingZone : public Zone + { + public: + HousingZone( uint8_t wardNum, + uint16_t territoryId, + uint32_t guId, + const std::string& internalName, + const std::string& contentName ); - virtual ~HousingZone(); + virtual ~HousingZone(); - bool init() override; + bool init() override; - void onPlayerZoneIn( Entity::Player& player ) override; + void onPlayerZoneIn( Entity::Player& player ) override; + void onUpdate( uint32_t currTime ) override; - /* returns current ward number for this zone */ - uint8_t getWardNum() const; + void sendMap( Entity::Player& player ); + bool isPlayerSubInstance( Entity::Player& player ); - const uint32_t m_wardMaxNum = 18; -private: - uint8_t m_wardNum; -}; + /* returns current ward number for this zone */ + uint8_t getWardNum() const; + Core::LandsetPtr getLandset( uint8_t id ); + + const uint32_t m_wardMaxNum = 18; + private: + using LandsetPtrMap = std::unordered_map< uint8_t, Core::LandsetPtr >; + LandsetPtrMap m_landsetPtrMap; + uint8_t m_wardNum; + uint32_t m_zoneId; + }; } -#endif //SAPPHIRE_HOUSINGZONE_H +#endif //SAPPHIRE_HOUSINGZONE_H \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/Landset.cpp b/src/servers/sapphire_zone/Zone/Landset.cpp new file mode 100644 index 00000000..75adfc6b --- /dev/null +++ b/src/servers/sapphire_zone/Zone/Landset.cpp @@ -0,0 +1,346 @@ +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "Actor/Player.h" +#include "Inventory/ItemContainer.h" +#include "Inventory/Item.h" + +#include "Forwards.h" +#include "Landset.h" +#include "Framework.h" + +extern Core::Framework g_fw; + +using namespace Core::Common; + +Core::Landset::Landset( uint16_t zoneId, uint8_t wardNum, uint8_t landsetId ) : + m_zoneId( zoneId ), + m_wardNum( wardNum ), + m_landsetId( landsetId ), + m_currentPrice( 0 ), + m_nextDrop( 0 ) +{ + m_landsetKey = ( m_zoneId << 16 ) | ( m_wardNum << 8 ) | m_landsetId; + memset( &m_landset, 0x00, sizeof( LandsetStruct ) ); + load(); +} + +Core::Landset::~Landset() +{ + +} + +void Core::Landset::load() +{ + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDb->query( "SELECT * FROM landset WHERE Id = " + std::to_string( m_landsetKey ) ); + if( !res->next() ) + { + setHouseSize( HouseSizeType::smallHouse );//ToDo: get house site from ExD (Landset first 60 rows) + m_currentPrice = m_initPrice; + m_landset.color[ 7 ] = 0xFF; + m_ownerPlayerId = 0; + m_nextDrop = 0; + setState( HouseStateType::forSell ); + auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::LAND_INS ); + stmt->setUInt( 1, m_landsetKey ); + pDb->directExecute( stmt ); + Init(); + } + else + { + Init(); + if( getState() == HouseStateType::privateHouse || getState() == HouseStateType::sold ) + { + m_ownerPlayerId = res->getUInt( "ownerPlayerId" ); + } + else if( getState() == HouseStateType::forSell ) + { + m_currentPrice = res->getUInt( "currentPrice" ); + m_nextDrop = res->getUInt( "nextDrop" ); + m_ownerPlayerId = 0; + } + } + ItemsOutdoorContainer = make_ItemContainer( InventoryType::HousingOutdoorItems, + m_maxItems, + "housingoutdooritems", true ); +} + +uint32_t Core::Landset::convertItemIdToHousingItemId( uint32_t itemId ) +{ + auto pExdData = g_fw.get< Data::ExdDataGenerated >(); + auto info = pExdData->get< Core::Data::Item >( itemId ); + return info->additionalData; +} + +void Core::Landset::setPreset( uint32_t id ) +{ + auto pExdData = g_fw.get< Data::ExdDataGenerated >(); + auto info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) ); + setRoof( info->exteriorRoof ); + setWall( info->exteriorWall ); + setWindow( info->exteriorWindow ); + setBasementWall( info->basementWall ); + setFloorFlooring( info->otherFloorFlooring ); + setFloorWall( info->otherFloorWall ); +} + +//Primary State +void Core::Landset::setHouseSize( uint8_t size ) +{ + m_landset.houseSize = size; +} + +void Core::Landset::setState( uint8_t state ) +{ + m_landset.houseState = state; +} + +void Core::Landset::setOwnership( uint8_t state ) +{ + m_landset.iconColor = state; +} + +void Core::Landset::setSharing( uint8_t state ) +{ + m_landset.iconAddIcon = state; +} + +uint8_t Core::Landset::getHouseSize() +{ + return m_landset.houseSize; +} + +uint8_t Core::Landset::getState() +{ + return m_landset.houseState; +} + +uint8_t Core::Landset::getOwnership() +{ + return m_landset.iconColor; +} + +uint8_t Core::Landset::getSharing() +{ + return m_landset.iconAddIcon; +} + +//Free Comapny +void Core::Landset::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) +{ + m_landset.fcId = id; + m_landset.fcIcon = icon; + m_landset.fcIconColor = color; //RGBA +} + +uint32_t Core::Landset::getFcId() +{ + return m_landset.fcIcon; +} + +uint32_t Core::Landset::getFcIcon() +{ + return m_landset.fcIcon; +} + +uint32_t Core::Landset::getFcColor() +{ + return m_landset.fcIconColor; +} + +//House Data +void Core::Landset::setRoof( uint16_t id ) +{ + m_landset.exteriorRoof = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setFacade( uint16_t id ) +{ + m_landset.exteriorWall = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setWindow( uint16_t id ) +{ + m_landset.exteriorWindow = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setDoor( uint16_t id ) +{ + m_landset.exteriorDoor = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setFloorWall( uint16_t id ) +{ + m_landset.otherFloorWall = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setFloorFlooring( uint16_t id ) +{ + m_landset.otherFloorFlooring = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setWall( uint16_t id ) +{ + m_landset.exteriorWall = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setSign( uint16_t id ) +{ + m_landset.gardenSign = convertItemIdToHousingItemId( id ); +} + +void Core::Landset::setBasementWall( uint16_t id ) +{ + m_landset.basementWall = convertItemIdToHousingItemId( id ); +} + +uint16_t Core::Landset::getRoof() +{ + return m_landset.exteriorRoof; +} + +uint16_t Core::Landset::getFacade() +{ + return m_landset.exteriorWall; +} + +uint16_t Core::Landset::getWindow() +{ + return m_landset.exteriorWindow; +} + +uint16_t Core::Landset::getDoor() +{ + return m_landset.exteriorDoor; +} + +uint16_t Core::Landset::getSign() +{ + return m_landset.gardenSign; +} + +uint16_t Core::Landset::getWall() +{ + return m_landset.basementWall; +} + +uint16_t Core::Landset::getFloorWall() +{ + return m_landset.otherFloorFlooring; +} + +uint16_t Core::Landset::getFloorFlooring() +{ + return m_landset.otherFloorFlooring; +} + +uint16_t Core::Landset::getBasememtWall() +{ + return m_landset.basementWall; +} + +//Color +void Core::Landset::setColor( uint8_t slot, uint8_t color ) +{ + m_landset.color[ slot ] = color; +} + +uint8_t Core::Landset::getColor( uint8_t slot ) +{ + return m_landset.color[ slot ]; +} + +//Player +void Core::Landset::setPlayerOwner( uint32_t id ) +{ + m_ownerPlayerId = id; +} + +uint32_t Core::Landset::getPlayerOwner() +{ + return m_ownerPlayerId; +} + +uint32_t Core::Landset::getLandsetKey() +{ + return m_landsetKey; +} + +LandsetStruct Core::Landset::getLandset() +{ + return m_landset; +} + +uint32_t Core::Landset::getMaxItems() +{ + return m_maxItems; +} + +void Core::Landset::Init() +{ + + + switch( getHouseSize() ) + { + case HouseSizeType::smallHouse: + m_initPrice = 3750000; + m_maxItems = 20; + break; + case HouseSizeType::mediumHouse: + m_initPrice = 20000000; + m_maxItems = 30; + break; + case HouseSizeType::bigHouse: + m_initPrice = 50000000; + m_maxItems = 40; + break; + default: + break; + } +} + +void Core::Landset::UpdateDatabase() +{ + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + std::string exec = "UPDATE land SET landset='" + + std::string( reinterpret_cast< const char* >( &m_landset ) ) + "', nextDrop=" + + std::to_string( m_nextDrop ) + ", currentPrice=" + + std::to_string( m_currentPrice ) + + " WHERE Id =" + std::to_string( m_landsetKey ); + pDb->execute( exec ); +} + +void Core::Landset::Update( uint32_t currTime ) +{ + if( m_currentPrice == 0 && getState() == HouseStateType::forSell ) + { + m_currentPrice = m_initPrice; + m_nextDrop = 0; + UpdateDatabase(); + } + if( m_nextDrop < currTime && getState() == HouseStateType::forSell ) + { + m_currentPrice = ( m_currentPrice / 100 ) * 90; + m_nextDrop = currTime + 86400; + UpdateDatabase(); + } + onUpdate(); +} + +void Core::Landset::onUpdate() +{ + +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/Landset.h b/src/servers/sapphire_zone/Zone/Landset.h new file mode 100644 index 00000000..b895ba0d --- /dev/null +++ b/src/servers/sapphire_zone/Zone/Landset.h @@ -0,0 +1,116 @@ +#ifndef LANDSET_H_ +#define LANDSET_H_ +#include +#include "ForwardsZone.h" + +namespace Core +{ + class Landset + { + public: + enum HouseSizeType : uint8_t + { + //noneHouse, + smallHouse, + mediumHouse, + bigHouse + }; + + enum HouseStateType : uint8_t + { + none, + forSell, + sold, + fcHouse, + privateHouse + }; + + enum HouseIconAdd : uint8_t + { + heart = 0x06 + }; + + Landset( uint16_t zoneId, uint8_t wardNum, uint8_t landsetId ); + virtual ~Landset(); + + void load(); + + //Primary state + void setHouseSize( uint8_t size ); + void setState( uint8_t state ); + void setOwnership( uint8_t state ); + void setSharing( uint8_t state ); + + //Gerneral + uint8_t getHouseSize(); + uint8_t getState(); + uint8_t getOwnership(); + uint8_t getSharing(); + + //Free Comapny + void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ); + uint32_t getFcId(); + uint32_t getFcIcon(); + uint32_t getFcColor(); + + //House data + void setRoof( uint16_t itemId ); + void setFacade( uint16_t itemId ); + void setWindow( uint16_t itemId ); + void setDoor( uint16_t itemId ); + void setFloorWall( uint16_t itemId ); + void setFloorFlooring( uint16_t itemId ); + void setWall( uint16_t itemId ); + void setSign( uint16_t itemId ); + void setBasementWall( uint16_t itemId ); + + uint16_t getRoof(); + uint16_t getFacade(); + uint16_t getWindow(); + uint16_t getDoor(); + uint16_t getFloorWall(); + uint16_t getFloorFlooring(); + uint16_t getWall(); + uint16_t getSign(); + uint16_t getBasememtWall(); + + //Color + void setColor( uint8_t slot, uint8_t color ); + uint8_t getColor( uint8_t slot ); + //Player + void setPlayerOwner( uint32_t id ); + uint32_t getPlayerOwner(); + //Housing Functions + void setPreset( uint32_t itemId ); + void UpdateDatabase(); + void Update( uint32_t currTime ); + void onUpdate(); + uint32_t getLandsetKey(); + + Common::LandsetStruct getLandset(); + uint32_t getMaxItems(); + + private: + uint32_t convertItemIdToHousingItemId( uint32_t itemId ); + void Init(); + + uint32_t m_landsetKey; + uint8_t m_wardNum; + uint8_t m_landsetId; + uint16_t m_zoneId; + Common::LandsetStruct m_landset; + uint32_t m_ownerPlayerId; + + + //item storage + Core::ItemContainerPtr ItemsOutdoorContainer; + uint32_t m_maxItems; + + //price + uint32_t m_initPrice; + uint32_t m_nextDrop; + uint32_t m_currentPrice; + }; + +} +#endif \ No newline at end of file From 5479a77d6d1b2e73d82cf23489754da39a9dc407 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 1 Nov 2018 23:56:43 +0100 Subject: [PATCH 002/385] Housing cleanup --- src/common/Common.h | 2 +- src/common/Database/ZoneDbConnection.cpp | 4 +- src/common/Network/PacketDef/Ipcs.h | 478 +++++++++--------- .../Network/PacketDef/Zone/ServerZoneDef.h | 42 +- .../sapphire_zone/Actor/PlayerInventory.cpp | 2 +- src/servers/sapphire_zone/ForwardsZone.h | 2 +- .../sapphire_zone/Zone/HousingZone.cpp | 37 +- src/servers/sapphire_zone/Zone/HousingZone.h | 12 +- src/servers/sapphire_zone/Zone/Land.cpp | 346 +++++++++++++ .../sapphire_zone/Zone/{Landset.h => Land.h} | 22 +- src/servers/sapphire_zone/Zone/Landset.cpp | 346 ------------- 11 files changed, 636 insertions(+), 657 deletions(-) create mode 100644 src/servers/sapphire_zone/Zone/Land.cpp rename src/servers/sapphire_zone/Zone/{Landset.h => Land.h} (87%) delete mode 100644 src/servers/sapphire_zone/Zone/Landset.cpp diff --git a/src/common/Common.h b/src/common/Common.h index e796d3c3..64d4861b 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -733,7 +733,7 @@ namespace Core::Common }; //Structs -struct LandsetStruct +struct LandStruct { uint8_t houseSize; //0 uint8_t houseState; // 2 diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index b8992014..e1bbce60 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -191,7 +191,7 @@ void Core::Db::ZoneDbConnection::doPrepareStatements() "UPDATE charaglobalitem SET IS_DELETE = 1 WHERE ItemId = ?;", CONNECTION_BOTH ); - prepareStatement( LAND_INS, + /*prepareStatement( LAND_INS, "INSERT INTO land ( LandSetId ) VALUES ( ? );", CONNECTION_BOTH ); @@ -211,5 +211,5 @@ void Core::Db::ZoneDbConnection::doPrepareStatements() "colorSlot_5 = ?, colorSlot_6 = ?, colorSlot_7 = ?, ownerPlayerId = ?, nextDrop = ?, " "dropCount = ?, currentPrice = ?" " WHERE LandSetId = ?;", - CONNECTION_BOTH ); + CONNECTION_BOTH );*/ } diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index cf2eb60b..a26c02a3 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -3,326 +3,318 @@ #include -namespace Core { -namespace Network { -namespace Packets { - -//////////////////////////////////////////////////////////////////////////////// -/// Lobby Connection IPC Codes -/** -* Server IPC Lobby Type Codes. -*/ -enum ServerLobbyIpcType : - uint16_t -{ - LobbyError = 0x0002, - LobbyServiceAccountList = 0x000C, - LobbyCharList = 0x000D, - LobbyCharCreate = 0x000E, - LobbyEnterWorld = 0x000F, - LobbyServerList = 0x0015, - LobbyRetainerList = 0x0017, - -}; - -/** -* Client IPC Lobby Type Codes. -*/ -enum ClientLobbyIpcType : - uint16_t -{ - ReqCharList = 0x0003, - ReqEnterWorld = 0x0004, - ClientVersionInfo = 0x0005, - - ReqCharDelete = 0x000A, - ReqCharCreate = 0x000B, -}; - -//////////////////////////////////////////////////////////////////////////////// -/// Zone Connection IPC Codes -/** -* Server IPC Zone Type Codes. -*/ -enum ServerZoneIpcType : - uint16_t +namespace Core::Network::Packets { - // static opcode ( the ones that rarely, if ever, change ) - Ping = 0x0065, - Init = 0x0066, + //////////////////////////////////////////////////////////////////////////////// + /// Lobby Connection IPC Codes + /** + * Server IPC Lobby Type Codes. + */ + enum ServerLobbyIpcType : uint16_t + { + LobbyError = 0x0002, + LobbyServiceAccountList = 0x000C, + LobbyCharList = 0x000D, + LobbyCharCreate = 0x000E, + LobbyEnterWorld = 0x000F, + LobbyServerList = 0x0015, + LobbyRetainerList = 0x0017, + + }; + + /** + * Client IPC Lobby Type Codes. + */ + enum ClientLobbyIpcType : uint16_t + { + ReqCharList = 0x0003, + ReqEnterWorld = 0x0004, + ClientVersionInfo = 0x0005, - ActorFreeSpawn = 0x0191, - InitZone = 0x019A, + ReqCharDelete = 0x000A, + ReqCharCreate = 0x000B, + }; + + //////////////////////////////////////////////////////////////////////////////// + /// Zone Connection IPC Codes + /** + * Server IPC Zone Type Codes. + */ + enum ServerZoneIpcType : uint16_t + { + + // static opcode ( the ones that rarely, if ever, change ) + Ping = 0x0065, + Init = 0x0066, + + ActorFreeSpawn = 0x0191, + InitZone = 0x019A, + + AddStatusEffect = 0x0141, + ActorControl142 = 0x0142, + ActorControl143 = 0x0143, + ActorControl144 = 0x0144, + UpdateHpMpTp = 0x0145, + + /////////////////////////////////////////////////// + + ChatBanned = 0x006B, + Playtime = 0x006C, // updated 4.4 + Logout = 0x0077, // updated 4.4 + CFNotify = 0x0078, + CFMemberStatus = 0x0079, + CFDutyInfo = 0x007A, + CFPlayerInNeed = 0x007F, + + SocialRequestError = 0x00AD, + + CFRegistered = 0x00B8, // updated 4.1 + SocialRequestResponse = 0x00BB, // updated 4.1 + CancelAllianceForming = 0x00C6, // updated 4.2 - AddStatusEffect = 0x0141, - ActorControl142 = 0x0142, - ActorControl143 = 0x0143, - ActorControl144 = 0x0144, - UpdateHpMpTp = 0x0145, - /////////////////////////////////////////////////// - ChatBanned = 0x006B, - Playtime = 0x006C, // updated 4.4 - Logout = 0x0077, // updated 4.4 - CFNotify = 0x0078, - CFMemberStatus = 0x0079, - CFDutyInfo = 0x007A, - CFPlayerInNeed = 0x007F, + Chat = 0x00F4, // updated 4.4 + SocialList = 0x00FB, // updated 4.4 - SocialRequestError = 0x00AD, + UpdateSearchInfo = 0x00FE, // updated 4.4 + InitSearchInfo = 0x00FF, // updated 4.4 + ExamineSearchComment = 0x0102, // updated 4.1 - CFRegistered = 0x00B8, // updated 4.1 - SocialRequestResponse = 0x00BB, // updated 4.1 - CancelAllianceForming = 0x00C6, // updated 4.2 + ServerNotice = 0x0104, // updated 4.4 + SetOnlineStatus = 0x0105, // updated 4.4 + CountdownInitiate = 0x010C, // updated 4.4 + CountdownCancel = 0x010D, // updated 4.4 - Chat = 0x00F4, // updated 4.4 - SocialList = 0x00FB, // updated 4.4 + BlackList = 0x0110, // updated 4.4 - UpdateSearchInfo = 0x00FE, // updated 4.4 - InitSearchInfo = 0x00FF, // updated 4.4 - ExamineSearchComment = 0x0102, // updated 4.1 + LogMessage = 0x00D0, - ServerNotice = 0x0104, // updated 4.4 - SetOnlineStatus = 0x0105, // updated 4.4 + LinkshellList = 0x0117, // updated 4.4 + MailDeleteRequest = 0x0118, // updated 4.4 + ReqMoogleMailList = 0x0119, // updated 4.4 + ReqMoogleMailLetter = 0x01A, // updated 4.4 + MailLetterNotification = 0x011B, // updated 4.4 - CountdownInitiate = 0x010C, // updated 4.4 - CountdownCancel = 0x010D, // updated 4.4 + ExamineFreeCompanyInfo = 0x013A, // updated 4.1 + CharaFreeCompanyTag = 0x0127, // updated 4.4 + FreeCompanyBoardMsg = 0x0128, // updated 4.4 + FreeCompanyInfo = 0x0129, // updated 4.4 - BlackList = 0x0110, // updated 4.4 + StatusEffectList = 0x0149, // updated 4.4 + Effect = 0x014C, // updated 4.4 + AoeEffect8 = 0x014F, // updated 4.4 + AoeEffect16 = 0x0150, // updated 4.4 + AoeEffect24 = 0x0151, // updated 4.4 + AoeEffect32 = 0x0152, // updated 4.4 + PersistantEffect = 0x0153, // updated 4.4 - LogMessage = 0x00D0, + GCAffiliation = 0x015D, // updated 4.4 - LinkshellList = 0x0117, // updated 4.4 - - MailDeleteRequest = 0x0118, // updated 4.4 - ReqMoogleMailList = 0x0119, // updated 4.4 - ReqMoogleMailLetter = 0x01A, // updated 4.4 - MailLetterNotification = 0x011B, // updated 4.4 + PlayerSpawn = 0x016D, // updated 4.4 + NpcSpawn = 0x016E, // updated 4.4 + ActorMove = 0x0170, // updated 4.4 + ActorSetPos = 0x0172, // updated 4.4 - ExamineFreeCompanyInfo = 0x013A, // updated 4.1 - CharaFreeCompanyTag = 0x0127, // updated 4.4 - FreeCompanyBoardMsg = 0x0128, // updated 4.4 - FreeCompanyInfo = 0x0129, // updated 4.4 + ActorCast = 0x0174, // updated 4.4 - StatusEffectList = 0x0149, // updated 4.4 - Effect = 0x014C, // updated 4.4 - AoeEffect8 = 0x014F, // updated 4.4 - AoeEffect16 = 0x0150, // updated 4.4 - AoeEffect24 = 0x0151, // updated 4.4 - AoeEffect32 = 0x0152, // updated 4.4 - PersistantEffect = 0x0153, // updated 4.4 + PartyList = 0x0176, // updated 4.4 + HateList = 0x0177, // updated 4.4 - GCAffiliation = 0x015D, // updated 4.4 + ObjectSpawn = 0x0179, // updated 4.4 + ObjectDespawn = 0x017A, // updated 4.4 - PlayerSpawn = 0x016D, // updated 4.4 - NpcSpawn = 0x016E, // updated 4.4 - ActorMove = 0x0170, // updated 4.4 - ActorSetPos = 0x0172, // updated 4.4 + UpdateClassInfo = 0x017B, // updated 4.4 + SilentSetClassJob = 0x017C, // updated 4.4 - seems to be the case, not sure if it's actually used for anything - ActorCast = 0x0174, // updated 4.4 + InitUI = 0x017D, // updated 4.4 + PlayerStats = 0x017E, // updated 4.4 + ActorOwner = 0x017F, // updated 4.4 ? + PlayerStateFlags = 0x0180, // updated 4.4 + PlayerClassInfo = 0x0181, // updated 4.4 + ModelEquip = 0x0182, // updated 4.4 + Examine = 0x0183, // updated 4.4 + CharaNameReq = 0x0185, // updated 4.4 + SetLevelSync = 0x0186, // not updated for 4.4, not sure what it is anymore - PartyList = 0x0176, // updated 4.4 - HateList = 0x0177, // updated 4.4 + ItemInfo = 0x018C, // updated 4.4 + ContainerInfo = 0x018D, // updated 4.4 + InventoryTransactionFinish = 0x018E, // updated 4.4 + InventoryTransaction = 0x018F, // updated 4.4 + CurrencyCrystalInfo = 0x0190, // updated 4.4 + InventoryActionAck = 0x0193, // updated 4.4 + UpdateInventorySlot = 0x0194, // updated 4.4 - ObjectSpawn = 0x0179, // updated 4.4 - ObjectDespawn = 0x017A, // updated 4.4 + EventPlay = 0x01A2, // updated 4.4 + EventOpenGilShop = 0x01A9, // updated 4.4 + DirectorPlayScene = 0x01A6, // updated 4.4 - UpdateClassInfo = 0x017B, // updated 4.4 - SilentSetClassJob = 0x017C, // updated 4.4 - seems to be the case, not sure if it's actually used for anything + EventStart = 0x01AB, // updated 4.4 + EventFinish = 0x01AC, // updated 4.4 - InitUI = 0x017D, // updated 4.4 - PlayerStats = 0x017E, // updated 4.4 - ActorOwner = 0x017F, // updated 4.4 ? - PlayerStateFlags = 0x0180, // updated 4.4 - PlayerClassInfo = 0x0181, // updated 4.4 - ModelEquip = 0x0182, // updated 4.4 - Examine = 0x0183, // updated 4.4 - CharaNameReq = 0x0185, // updated 4.4 - SetLevelSync = 0x0186, // not updated for 4.4, not sure what it is anymore + EventLinkshell = 0x1169, - ItemInfo = 0x018C, // updated 4.4 - ContainerInfo = 0x018D, // updated 4.4 - InventoryTransactionFinish = 0x018E, // updated 4.4 - InventoryTransaction = 0x018F, // updated 4.4 - CurrencyCrystalInfo = 0x0190, // updated 4.4 - InventoryActionAck = 0x0193, // updated 4.4 - UpdateInventorySlot = 0x0194, // updated 4.4 + QuestActiveList = 0x01BF, // updated 4.4 + QuestUpdate = 0x01C0, // updated 4.4 + QuestCompleteList = 0x01C1, // updated 4.4 - EventPlay = 0x01A2, // updated 4.4 - EventOpenGilShop = 0x01A9, // updated 4.4 - DirectorPlayScene = 0x01A6, // updated 4.4 + QuestFinish = 0x01C2, // updated 4.4 + MSQTrackerComplete = 0x01C3, // updated 4.4 + MSQTrackerProgress = 0x01C4, // updated 4.4 - EventStart = 0x01AB, // updated 4.4 - EventFinish = 0x01AC, // updated 4.4 + QuestMessage = 0x01CA, // updated 4.4 - EventLinkshell = 0x1169, + QuestTracker = 0x01CF, // updated 4.4 - QuestActiveList = 0x01BF, // updated 4.4 - QuestUpdate = 0x01C0, // updated 4.4 - QuestCompleteList = 0x01C1, // updated 4.4 + Mount = 0x01DF, // updated 4.4 - QuestFinish = 0x01C2, // updated 4.4 - MSQTrackerComplete = 0x01C3, // updated 4.4 - MSQTrackerProgress = 0x01C4, // updated 4.4 + DirectorVars = 0x01E1, // updated 4.4 - QuestMessage = 0x01CA, // updated 4.4 + CFAvailableContents = 0x01FD, // updated 4.2 - QuestTracker = 0x01CF, // updated 4.4 + WeatherChange = 0x01FC, // updated 4.4 + PlayerTitleList = 0x01FD, // updated 4.4 + Discovery = 0x01FE, // updated 4.4 - Mount = 0x01DF, // updated 4.4 + EorzeaTimeOffset = 0x0200, // updated 4.4 - DirectorVars = 0x01E1, // updated 4.4 + EquipDisplayFlags = 0x020C, // updated 4.4 - CFAvailableContents = 0x01FD, // updated 4.2 + // housing + LandSetInitialize = 0x0220, // updated 4.4 + LandUpdate = 0x0221, // updated 4.4 + YardObjectSpawn = 0x0222, // updated 4.4 + LandPriceUpdate = 0x0225, // updated 4.3 + LandPermission = 0x0229, // updated 4.4 + LandSetYardInitialize = 0x022C, // updated 4.4 + YardObjectMove = 0x0230, // updated 4.4 + LandSetExtending = 0x0251, // updated 4.4 - WeatherChange = 0x01FC, // updated 4.4 - PlayerTitleList = 0x01FD, // updated 4.4 - Discovery = 0x01FE, // updated 4.4 + SharedEstateSettingsResponse = 0x023C, // updated 4.4 - EorzeaTimeOffset = 0x0200, // updated 4.4 + DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui + PerformNote = 0x0286, // updated 4.3 - EquipDisplayFlags = 0x020C, // updated 4.4 + PrepareZoning = 0x028F, // updated 4.4 + ActorGauge = 0x0292, // updated 4.3 - LandsetInitialize = 0x0220, // updated 4.4 - YardObjectSpawn = 0x0222, // updated 4.4 - LandsetPriceUpdate = 0x0225, // updated 4.3 - LandsetPermission = 0x0229, // updated 4.4 - LandsetYardInitialize = 0x022C, // updated 4.4 - YardObjectMove = 0x0230, // updated 4.4 - LandsetExtending = 0x0251, // updated 4.4 - LandsetUpdate = 0x0221, // updated 4.4 + // Unknown IPC types that still need to be sent + // TODO: figure all these out properly + IPCTYPE_UNK_320 = 0x0249, // updated 4.4 + IPCTYPE_UNK_322 = 0x024B, // updated 4.4 - SharedEstateSettingsResponse = 0x023C, // updated 4.4 + }; - DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui - PerformNote = 0x0286, // updated 4.3 + /** + * Client IPC Zone Type Codes. + */ + enum ClientZoneIpcType : uint16_t + { - PrepareZoning = 0x028F, // updated 4.4 - ActorGauge = 0x0292, // updated 4.3 + PingHandler = 0x0065, // unchanged 4.3 + InitHandler = 0x0066, // unchanged 4.3 - // Unknown IPC types that still need to be sent - // TODO: figure all these out properly - IPCTYPE_UNK_320 = 0x0249, // updated 4.4 - IPCTYPE_UNK_322 = 0x024B, // updated 4.4 + FinishLoadingHandler = 0x0069, // unchanged 4.3 -}; + CFCommenceHandler = 0x006F, -/** -* Client IPC Zone Type Codes. -*/ -enum ClientZoneIpcType : - uint16_t -{ - PingHandler = 0x0065, // unchanged 4.3 - InitHandler = 0x0066, // unchanged 4.3 + CFRegisterDuty = 0x0071, + CFRegisterRoulette = 0x0072, + PlayTimeHandler = 0x0073, // unchanged 4.3 + LogoutHandler = 0x0074, // unchanged 4.3 - FinishLoadingHandler = 0x0069, // unchanged 4.3 + CFDutyInfoHandler = 0x0078, // updated 4.2 - CFCommenceHandler = 0x006F, + SocialReqSendHandler = 0x00AE, // updated 4.1 + CreateCrossWorldLS = 0x00AF, // updated 4.3 + ChatHandler = 0x00D3, // updated 4.3 - CFRegisterDuty = 0x0071, - CFRegisterRoulette = 0x0072, - PlayTimeHandler = 0x0073, // unchanged 4.3 - LogoutHandler = 0x0074, // unchanged 4.3 + SocialListHandler = 0x00DB, // updated 4.3 + ReqSearchInfoHandler = 0x00E0, // updated 4.3 + ReqExamineSearchCommentHandler = 0x00E1, // updated 4.1 - CFDutyInfoHandler = 0x0078, // updated 4.2 + SetSearchInfoHandler = 0x00DE, // updated 4.3 - SocialReqSendHandler = 0x00AE, // updated 4.1 - CreateCrossWorldLS = 0x00AF, // updated 4.3 + BlackListHandler = 0x00EC, // updated 4.3 + PlayerSearchHandler = 0x00E2, // updated 4.2 - ChatHandler = 0x00D3, // updated 4.3 + LinkshellListHandler = 0x00F4, // updated 4.3 - SocialListHandler = 0x00DB, // updated 4.3 - ReqSearchInfoHandler = 0x00E0, // updated 4.3 - ReqExamineSearchCommentHandler = 0x00E1, // updated 4.1 + SearchMarketboard = 0x0103, // updated 4.3 + ReqExamineFcInfo = 0x010F, // updated 4.1 - SetSearchInfoHandler = 0x00DE, // updated 4.3 + FcInfoReqHandler = 0x011A, // updated 4.2 - BlackListHandler = 0x00EC, // updated 4.3 - PlayerSearchHandler = 0x00E2, // updated 4.2 + ReqMarketWishList = 0x012C, // updated 4.3 - LinkshellListHandler = 0x00F4, // updated 4.3 + ReqJoinNoviceNetwork = 0x0129, // updated 4.2 - SearchMarketboard = 0x0103, // updated 4.3 - ReqExamineFcInfo = 0x010F, // updated 4.1 + ReqCountdownInitiate = 0x012F, // updated 4.4 + ReqCountdownCancel = 0x0130, // updated 4.4 + ClearWaymarks = 0x0131, // updated 4.4 - FcInfoReqHandler = 0x011A, // updated 4.2 + ZoneLineHandler = 0x0133, // updated 4.4 + ClientTrigger = 0x0134, // updated 4.4 was 13D in 4.3 + DiscoveryHandler = 0x0135, // updated 4.4 - ReqMarketWishList = 0x012C, // updated 4.3 + AddWaymark = 0x013F, // updated 4.3 - ReqJoinNoviceNetwork = 0x0129, // updated 4.2 + SkillHandler = 0x0137, // updated 4.4 + GMCommand1 = 0x0138, // updated 4.4 + GMCommand2 = 0x0139, // updated 4.4 - ReqCountdownInitiate = 0x012F, // updated 4.4 - ReqCountdownCancel = 0x0130, // updated 4.4 - ClearWaymarks = 0x0131, // updated 4.4 + UpdatePositionHandler = 0x013B, // updated 4.4 was 144 + UpdatePositionInstance = 0x0183, // updated 4.3 - ZoneLineHandler = 0x0133, // updated 4.4 - ClientTrigger = 0x0134, // updated 4.4 was 13D in 4.3 - DiscoveryHandler = 0x0135, // updated 4.4 + InventoryModifyHandler = 0x0142, // updated 4.4 - AddWaymark = 0x013F, // updated 4.3 + TalkEventHandler = 0x014B, // updated 4.4 + EmoteEventHandler = 0x014C, // updated 4.4 + WithinRangeEventHandler = 0x014D, // updated 4.4 + OutOfRangeEventHandler = 0x014E, // updated 4.4 + EnterTeriEventHandler = 0x014F, // updated 4.4 - SkillHandler = 0x0137, // updated 4.4 - GMCommand1 = 0x0138, // updated 4.4 - GMCommand2 = 0x0139, // updated 4.4 + ReturnEventHandler = 0x0154, // updated 4.4 + TradeReturnEventHandler = 0x0155, // updated 4.4 - UpdatePositionHandler = 0x013B, // updated 4.4 was 144 - UpdatePositionInstance = 0x0183, // updated 4.3 + LinkshellEventHandler = 0x0150, // updated 4.1 ?? + LinkshellEventHandler1 = 0x0151, // updated 4.1 ?? - InventoryModifyHandler = 0x0142, // updated 4.4 + SetSharedEstateSettings = 0x0177, // updated 4.4 - TalkEventHandler = 0x014B, // updated 4.4 - EmoteEventHandler = 0x014C, // updated 4.4 - WithinRangeEventHandler = 0x014D, // updated 4.4 - OutOfRangeEventHandler = 0x014E, // updated 4.4 - EnterTeriEventHandler = 0x014F, // updated 4.4 + PerformNoteHandler = 0x029B, // updated 4.3 - ReturnEventHandler = 0x0154, // updated 4.4 - TradeReturnEventHandler = 0x0155, // updated 4.4 + ReqEquipDisplayFlagsChange = 0x016F, // updated 4.4 - LinkshellEventHandler = 0x0150, // updated 4.1 ?? - LinkshellEventHandler1 = 0x0151, // updated 4.1 ?? - SetSharedEstateSettings = 0x0177, // updated 4.4 + }; - PerformNoteHandler = 0x029B, // updated 4.3 + //////////////////////////////////////////////////////////////////////////////// + /// Chat Connection IPC Codes + /** + * Server IPC Chat Type Codes. + */ + enum ServerChatIpcType : uint16_t + { + Tell = 0x0064, // updated for sb + TellErrNotFound = 0x0066, + }; - ReqEquipDisplayFlagsChange = 0x016F, // updated 4.4 + /** + * Client IPC Chat Type Codes. + */ + enum ClientChatIpcType : uint16_t + { + TellReq = 0x0064, + }; -}; - -//////////////////////////////////////////////////////////////////////////////// -/// Chat Connection IPC Codes -/** -* Server IPC Chat Type Codes. -*/ -enum ServerChatIpcType : - uint16_t -{ - Tell = 0x0064, // updated for sb - TellErrNotFound = 0x0066, -}; - -/** -* Client IPC Chat Type Codes. -*/ -enum ClientChatIpcType : - uint16_t -{ - TellReq = 0x0064, -}; - - -} /* Packets */ -} /* Network */ -} /* Core */ +} #endif /*_CORE_NETWORK_PACKETS_IPCS_H*/ diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index ba075261..9fb7a79b 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1541,8 +1541,7 @@ struct FFXIVIpcEquipDisplayFlags : * Structural representation of the packet sent by the server * to mount a player */ -struct FFXIVIpcMount : - FFXIVIpcBasePacket< Mount > +struct FFXIVIpcMount : FFXIVIpcBasePacket< Mount > { uint32_t id; }; @@ -1551,8 +1550,7 @@ struct FFXIVIpcMount : * Structural representation of the packet sent by the server * to mount a player */ -struct FFXIVIpcDirectorVars : - FFXIVIpcBasePacket< DirectorVars > +struct FFXIVIpcDirectorVars : FFXIVIpcBasePacket< DirectorVars > { /*! DirectorType | ContentId */ uint32_t m_directorId; @@ -1565,22 +1563,19 @@ struct FFXIVIpcDirectorVars : }; -struct FFXIVIpcActorGauge : - FFXIVIpcBasePacket< ActorGauge > +struct FFXIVIpcActorGauge : FFXIVIpcBasePacket< ActorGauge > { uint8_t classJobId; uint8_t data[15]; // depends on classJobId }; -struct FFXIVIpcPerformNote : - FFXIVIpcBasePacket< PerformNote > +struct FFXIVIpcPerformNote : FFXIVIpcBasePacket< PerformNote > { uint8_t data[32]; }; //IPCs -struct FFXIVIpcLandsetPermission : - FFXIVIpcBasePacket +struct FFXIVIpcLandPermission : FFXIVIpcBasePacket { Common::HousePermissionSet freeCompanyHouse; // 00 uint64_t unkown1; @@ -1594,25 +1589,22 @@ struct FFXIVIpcLandsetPermission : uint64_t unkown5; }; -struct FFXIVIpcLandsetUpdate : - FFXIVIpcBasePacket< LandsetUpdate > +struct FFXIVIpcLandUpdate : FFXIVIpcBasePacket< LandUpdate > { uint16_t landSetId; uint16_t unknow0; uint16_t unknow1; uint16_t unknow2; - Common::LandsetStruct landset; + Common::LandStruct land; }; -struct FFXIVIpcLandsetPriceUpdate : - FFXIVIpcBasePacket< LandsetPriceUpdate > +struct FFXIVIpcLandPriceUpdate : FFXIVIpcBasePacket< LandPriceUpdate > { uint32_t price; uint32_t timeLeft; }; -struct FFXIVIpcLandsetExtend : - FFXIVIpcBasePacket< LandsetExtending > +struct FFXIVIpcLandSetExtend : FFXIVIpcBasePacket< LandSetExtending > { struct { @@ -1623,11 +1615,10 @@ struct FFXIVIpcLandsetExtend : } landset[30]; }; -struct FFXIVIpcLandsetInitialize : - FFXIVIpcBasePacket< LandsetInitialize > +struct FFXIVIpcLandSetInitialize : FFXIVIpcBasePacket< LandSetInitialize > { uint16_t unknown0; - uint16_t wardNum; // set 1 for "Mist, Ward 2" + uint16_t landSetId; // set 1 for "Mist, Ward 2" uint16_t zoneId; uint16_t worldId; uint8_t unknown1; @@ -1638,11 +1629,10 @@ struct FFXIVIpcLandsetInitialize : uint8_t unknown6; uint8_t unknown7; uint8_t unknown8; - Common::LandsetStruct landset[30]; + Common::LandStruct land[30]; }; -struct FFXIVIpcYardObjectSpawn : - FFXIVIpcBasePacket +struct FFXIVIpcYardObjectSpawn : FFXIVIpcBasePacket { uint8_t landSetId; uint8_t objectArray; @@ -1654,8 +1644,7 @@ struct FFXIVIpcYardObjectSpawn : uint16_t pos_z; }; -struct FFXIVIpcYardObjectMove : - FFXIVIpcBasePacket +struct FFXIVIpcYardObjectMove : FFXIVIpcBasePacket { uint16_t itemRotation; uint8_t objectArray; @@ -1668,8 +1657,7 @@ struct FFXIVIpcYardObjectMove : uint16_t unknown3; }; -struct FFXIVIpcLandsetYardInitialize : - FFXIVIpcBasePacket< LandsetYardInitialize > +struct FFXIVIpcLandSetYardInitialize : FFXIVIpcBasePacket< LandSetYardInitialize > { uint32_t unknown1; //always 0xFFFFFFFF uint32_t unknown2; //always 0xFFFFFFFF diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 812a2f1e..630dcc39 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -848,7 +848,7 @@ uint16_t Core::Entity::Player::calculateEquippedGearItemLevel() it++; } - return std::max( static_cast< int32_t >( iLvlResult / 13 ), 9999 ); + return static_cast< uint16_t >( std::min( static_cast< int32_t >( iLvlResult / 13 ), 9999 ) ); } diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index eb5e909a..51fb9997 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -25,7 +25,7 @@ TYPE_FORWARD( Item ); TYPE_FORWARD( ItemContainer ); TYPE_FORWARD( Session ); TYPE_FORWARD( ZonePosition ); -TYPE_FORWARD( Landset ) +TYPE_FORWARD( Land ) namespace StatusEffect { TYPE_FORWARD( StatusEffect ); diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index ba551399..6dabcca9 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -9,7 +9,7 @@ #include "Actor/Player.h" #include "Actor/Actor.h" -#include "Landset.h" +#include "Land.h" #include "Forwards.h" #include "HousingZone.h" @@ -21,13 +21,13 @@ using namespace Core::Common; using namespace Core::Network::Packets; using namespace Core::Network::Packets::Server; -Core::HousingZone::HousingZone( uint8_t wardNum, +Core::HousingZone::HousingZone( uint8_t landSetId, uint16_t territoryId, uint32_t guId, const std::string& internalName, const std::string& contentName ) : Zone( territoryId, guId, internalName, contentName ), - m_wardNum( wardNum ), + m_landSetId( landSetId ), m_zoneId( territoryId ) { @@ -35,12 +35,12 @@ Core::HousingZone::HousingZone( uint8_t wardNum, bool Core::HousingZone::init() { - uint32_t landsetId; - for( landsetId = 0; landsetId < 60; landsetId++ ) + uint32_t landId; + for( landId = 0; landId < 60; landId++ ) { - auto pObject = make_Landset( m_territoryId, getWardNum(), landsetId ); + auto pObject = make_Land( m_territoryId, getLandSetId(), landId ); pObject->setHouseSize( 1 ); - m_landsetPtrMap[ landsetId ] = pObject; + m_landPtrMap[ landId ] = pObject; } return true; @@ -54,7 +54,7 @@ Core::HousingZone::~HousingZone() void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) { auto pLog = g_fw.get< Logger >(); - pLog->debug( "HousingZone::onPlayerZoneIn: Zone#" + std::to_string(getGuId()) + "|" + pLog->debug( "HousingZone::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" ", Entity#" + std::to_string( player.getId() ) ); uint32_t yardPacketNum; @@ -64,7 +64,7 @@ void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { - auto landsetYardInitializePacket = makeZonePacket< FFXIVIpcLandsetYardInitialize >(player.getId()); + auto landsetYardInitializePacket = makeZonePacket< FFXIVIpcLandSetYardInitialize >( player.getId() ); landsetYardInitializePacket->data().unknown1 = 0xFFFFFFFF; landsetYardInitializePacket->data().unknown2 = 0xFFFFFFFF; landsetYardInitializePacket->data().unknown3 = 0xFF; @@ -80,9 +80,9 @@ void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) void Core::HousingZone::sendMap( Entity::Player& player ) { - auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandsetInitialize >( player.getId() ); + auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() ); - landsetInitializePacket->data().wardNum = m_wardNum; + landsetInitializePacket->data().landSetId = m_landSetId; landsetInitializePacket->data().zoneId = m_territoryId; //TODO: get current WorldId landsetInitializePacket->data().worldId = 67; @@ -92,8 +92,7 @@ void Core::HousingZone::sendMap( Entity::Player& player ) uint8_t count = 0; for( uint8_t i = startIndex; i < ( startIndex + 30 ); i++ ) { - memcpy( &landsetInitializePacket->data().landset[ count ], - &getLandset( i )->getLandset(), sizeof( Common::LandsetStruct ) ); + memcpy( &landsetInitializePacket->data().land[ count ], &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); count++; } @@ -109,19 +108,19 @@ void Core::HousingZone::onUpdate( uint32_t currTime ) { for( uint8_t i = 0; i < 60; i++ ) { - getLandset( i )->Update( currTime ); + getLand( i )->Update( currTime ); } } -uint8_t Core::HousingZone::getWardNum() const +uint8_t Core::HousingZone::getLandSetId() const { - return m_wardNum; + return m_landSetId; } -Core::LandsetPtr Core::HousingZone::getLandset( uint8_t id ) +Core::LandPtr Core::HousingZone::getLand( uint8_t id ) { - auto it = m_landsetPtrMap.find( id ); - if( it == m_landsetPtrMap.end() ) + auto it = m_landPtrMap.find( id ); + if( it == m_landPtrMap.end() ) return nullptr; return it->second; diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index 340a08f1..a3b94d81 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -9,7 +9,7 @@ namespace Core class HousingZone : public Zone { public: - HousingZone( uint8_t wardNum, + HousingZone( uint8_t landSetId, uint16_t territoryId, uint32_t guId, const std::string& internalName, @@ -26,14 +26,14 @@ namespace Core bool isPlayerSubInstance( Entity::Player& player ); /* returns current ward number for this zone */ - uint8_t getWardNum() const; - Core::LandsetPtr getLandset( uint8_t id ); + uint8_t getLandSetId() const; + Core::LandPtr getLand( uint8_t id ); const uint32_t m_wardMaxNum = 18; private: - using LandsetPtrMap = std::unordered_map< uint8_t, Core::LandsetPtr >; - LandsetPtrMap m_landsetPtrMap; - uint8_t m_wardNum; + using LandPtrMap = std::unordered_map< uint8_t, Core::LandPtr >; + LandPtrMap m_landPtrMap; + uint8_t m_landSetId; uint32_t m_zoneId; }; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp new file mode 100644 index 00000000..0813f214 --- /dev/null +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -0,0 +1,346 @@ +#include + +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include "Actor/Player.h" +#include "Inventory/ItemContainer.h" +#include "Inventory/Item.h" + +#include "Forwards.h" +#include "Land.h" +#include "Framework.h" + +extern Core::Framework g_fw; + +using namespace Core::Common; + +Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId ) : + m_zoneId( zoneId ), + m_wardNum( wardNum ), + m_landId( landId ), + m_currentPrice( 0 ), + m_nextDrop( 0 ) +{ + m_landKey = ( m_zoneId << 16 ) | ( m_wardNum << 8 ) | m_landId; + memset( &m_land, 0x00, sizeof( LandStruct ) ); + load(); +} + +Core::Land::~Land() +{ + +} + +void Core::Land::load() +{ +/* auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDb->query( "SELECT * FROM land WHERE Id = " + std::to_string( m_landKey ) ); + if( !res->next() ) + { + setHouseSize( HouseSizeType::smallHouse );//ToDo: get house site from ExD (Landset first 60 rows) + m_currentPrice = m_initPrice; + m_land.color[ 7 ] = 0xFF; + m_ownerPlayerId = 0; + m_nextDrop = 0; + setState( HouseStateType::forSell ); + auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::LAND_INS ); + stmt->setUInt( 1, m_landKey ); + pDb->directExecute( stmt ); + Init(); + } + else + { + Init(); + if( getState() == HouseStateType::privateHouse || getState() == HouseStateType::sold ) + { + m_ownerPlayerId = res->getUInt( "ownerPlayerId" ); + } + else if( getState() == HouseStateType::forSell ) + { + m_currentPrice = res->getUInt( "currentPrice" ); + m_nextDrop = res->getUInt( "nextDrop" ); + m_ownerPlayerId = 0; + } + } + ItemsOutdoorContainer = make_ItemContainer( InventoryType::HousingOutdoorItems, + m_maxItems, + "housingoutdooritems", true );*/ +} + +uint32_t Core::Land::convertItemIdToHousingItemId( uint32_t itemId ) +{ + auto pExdData = g_fw.get< Data::ExdDataGenerated >(); + auto info = pExdData->get< Core::Data::Item >( itemId ); + return info->additionalData; +} + +void Core::Land::setPreset( uint32_t id ) +{ + auto pExdData = g_fw.get< Data::ExdDataGenerated >(); + auto info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) ); + setRoof( info->exteriorRoof ); + setWall( info->exteriorWall ); + setWindow( info->exteriorWindow ); + setBasementWall( info->basementWall ); + setFloorFlooring( info->otherFloorFlooring ); + setFloorWall( info->otherFloorWall ); +} + +//Primary State +void Core::Land::setHouseSize( uint8_t size ) +{ + m_land.houseSize = size; +} + +void Core::Land::setState( uint8_t state ) +{ + m_land.houseState = state; +} + +void Core::Land::setOwnership( uint8_t state ) +{ + m_land.iconColor = state; +} + +void Core::Land::setSharing( uint8_t state ) +{ + m_land.iconAddIcon = state; +} + +uint8_t Core::Land::getHouseSize() +{ + return m_land.houseSize; +} + +uint8_t Core::Land::getState() +{ + return m_land.houseState; +} + +uint8_t Core::Land::getOwnership() +{ + return m_land.iconColor; +} + +uint8_t Core::Land::getSharing() +{ + return m_land.iconAddIcon; +} + +//Free Comapny +void Core::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) +{ + m_land.fcId = id; + m_land.fcIcon = icon; + m_land.fcIconColor = color; //RGBA +} + +uint32_t Core::Land::getFcId() +{ + return m_land.fcIcon; +} + +uint32_t Core::Land::getFcIcon() +{ + return m_land.fcIcon; +} + +uint32_t Core::Land::getFcColor() +{ + return m_land.fcIconColor; +} + +//House Data +void Core::Land::setRoof( uint16_t id ) +{ + m_land.exteriorRoof = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setFacade( uint16_t id ) +{ + m_land.exteriorWall = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setWindow( uint16_t id ) +{ + m_land.exteriorWindow = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setDoor( uint16_t id ) +{ + m_land.exteriorDoor = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setFloorWall( uint16_t id ) +{ + m_land.otherFloorWall = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setFloorFlooring( uint16_t id ) +{ + m_land.otherFloorFlooring = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setWall( uint16_t id ) +{ + m_land.exteriorWall = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setSign( uint16_t id ) +{ + m_land.gardenSign = convertItemIdToHousingItemId( id ); +} + +void Core::Land::setBasementWall( uint16_t id ) +{ + m_land.basementWall = convertItemIdToHousingItemId( id ); +} + +uint16_t Core::Land::getRoof() +{ + return m_land.exteriorRoof; +} + +uint16_t Core::Land::getFacade() +{ + return m_land.exteriorWall; +} + +uint16_t Core::Land::getWindow() +{ + return m_land.exteriorWindow; +} + +uint16_t Core::Land::getDoor() +{ + return m_land.exteriorDoor; +} + +uint16_t Core::Land::getSign() +{ + return m_land.gardenSign; +} + +uint16_t Core::Land::getWall() +{ + return m_land.basementWall; +} + +uint16_t Core::Land::getFloorWall() +{ + return m_land.otherFloorFlooring; +} + +uint16_t Core::Land::getFloorFlooring() +{ + return m_land.otherFloorFlooring; +} + +uint16_t Core::Land::getBasememtWall() +{ + return m_land.basementWall; +} + +//Color +void Core::Land::setColor( uint8_t slot, uint8_t color ) +{ + m_land.color[ slot ] = color; +} + +uint8_t Core::Land::getColor( uint8_t slot ) +{ + return m_land.color[ slot ]; +} + +//Player +void Core::Land::setPlayerOwner( uint32_t id ) +{ + m_ownerPlayerId = id; +} + +uint32_t Core::Land::getPlayerOwner() +{ + return m_ownerPlayerId; +} + +uint32_t Core::Land::getLandKey() +{ + return m_landKey; +} + +LandStruct Core::Land::getLand() +{ + return m_land; +} + +uint32_t Core::Land::getMaxItems() +{ + return m_maxItems; +} + +void Core::Land::Init() +{ + + + switch( getHouseSize() ) + { + case HouseSizeType::smallHouse: + m_initPrice = 3750000; + m_maxItems = 20; + break; + case HouseSizeType::mediumHouse: + m_initPrice = 20000000; + m_maxItems = 30; + break; + case HouseSizeType::bigHouse: + m_initPrice = 50000000; + m_maxItems = 40; + break; + default: + break; + } +} + +void Core::Land::UpdateDatabase() +{ + /*auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + std::string exec = "UPDATE land SET landset='" + + std::string( reinterpret_cast< const char* >( &m_land ) ) + "', nextDrop=" + + std::to_string( m_nextDrop ) + ", currentPrice=" + + std::to_string( m_currentPrice ) + + " WHERE Id =" + std::to_string( m_landKey ); + pDb->execute( exec );*/ +} + +void Core::Land::Update( uint32_t currTime ) +{ + if( m_currentPrice == 0 && getState() == HouseStateType::forSale ) + { + m_currentPrice = m_initPrice; + m_nextDrop = 0; + UpdateDatabase(); + } + if( m_nextDrop < currTime && getState() == HouseStateType::forSale ) + { + m_currentPrice = ( m_currentPrice / 100 ) * 90; + m_nextDrop = currTime + 86400; + UpdateDatabase(); + } + onUpdate(); +} + +void Core::Land::onUpdate() +{ + +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/Landset.h b/src/servers/sapphire_zone/Zone/Land.h similarity index 87% rename from src/servers/sapphire_zone/Zone/Landset.h rename to src/servers/sapphire_zone/Zone/Land.h index b895ba0d..ce37dc02 100644 --- a/src/servers/sapphire_zone/Zone/Landset.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -1,11 +1,11 @@ -#ifndef LANDSET_H_ -#define LANDSET_H_ +#ifndef LAND_H_ +#define LAND_H_ #include #include "ForwardsZone.h" namespace Core { - class Landset + class Land { public: enum HouseSizeType : uint8_t @@ -19,7 +19,7 @@ namespace Core enum HouseStateType : uint8_t { none, - forSell, + forSale, sold, fcHouse, privateHouse @@ -30,8 +30,8 @@ namespace Core heart = 0x06 }; - Landset( uint16_t zoneId, uint8_t wardNum, uint8_t landsetId ); - virtual ~Landset(); + Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId ); + virtual ~Land(); void load(); @@ -85,20 +85,20 @@ namespace Core void UpdateDatabase(); void Update( uint32_t currTime ); void onUpdate(); - uint32_t getLandsetKey(); + uint32_t getLandKey(); - Common::LandsetStruct getLandset(); + Common::LandStruct getLand(); uint32_t getMaxItems(); private: uint32_t convertItemIdToHousingItemId( uint32_t itemId ); void Init(); - uint32_t m_landsetKey; + uint32_t m_landKey; uint8_t m_wardNum; - uint8_t m_landsetId; + uint8_t m_landId; uint16_t m_zoneId; - Common::LandsetStruct m_landset; + Common::LandStruct m_land; uint32_t m_ownerPlayerId; diff --git a/src/servers/sapphire_zone/Zone/Landset.cpp b/src/servers/sapphire_zone/Zone/Landset.cpp deleted file mode 100644 index 75adfc6b..00000000 --- a/src/servers/sapphire_zone/Zone/Landset.cpp +++ /dev/null @@ -1,346 +0,0 @@ -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include "Actor/Player.h" -#include "Inventory/ItemContainer.h" -#include "Inventory/Item.h" - -#include "Forwards.h" -#include "Landset.h" -#include "Framework.h" - -extern Core::Framework g_fw; - -using namespace Core::Common; - -Core::Landset::Landset( uint16_t zoneId, uint8_t wardNum, uint8_t landsetId ) : - m_zoneId( zoneId ), - m_wardNum( wardNum ), - m_landsetId( landsetId ), - m_currentPrice( 0 ), - m_nextDrop( 0 ) -{ - m_landsetKey = ( m_zoneId << 16 ) | ( m_wardNum << 8 ) | m_landsetId; - memset( &m_landset, 0x00, sizeof( LandsetStruct ) ); - load(); -} - -Core::Landset::~Landset() -{ - -} - -void Core::Landset::load() -{ - auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT * FROM landset WHERE Id = " + std::to_string( m_landsetKey ) ); - if( !res->next() ) - { - setHouseSize( HouseSizeType::smallHouse );//ToDo: get house site from ExD (Landset first 60 rows) - m_currentPrice = m_initPrice; - m_landset.color[ 7 ] = 0xFF; - m_ownerPlayerId = 0; - m_nextDrop = 0; - setState( HouseStateType::forSell ); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::LAND_INS ); - stmt->setUInt( 1, m_landsetKey ); - pDb->directExecute( stmt ); - Init(); - } - else - { - Init(); - if( getState() == HouseStateType::privateHouse || getState() == HouseStateType::sold ) - { - m_ownerPlayerId = res->getUInt( "ownerPlayerId" ); - } - else if( getState() == HouseStateType::forSell ) - { - m_currentPrice = res->getUInt( "currentPrice" ); - m_nextDrop = res->getUInt( "nextDrop" ); - m_ownerPlayerId = 0; - } - } - ItemsOutdoorContainer = make_ItemContainer( InventoryType::HousingOutdoorItems, - m_maxItems, - "housingoutdooritems", true ); -} - -uint32_t Core::Landset::convertItemIdToHousingItemId( uint32_t itemId ) -{ - auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Core::Data::Item >( itemId ); - return info->additionalData; -} - -void Core::Landset::setPreset( uint32_t id ) -{ - auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) ); - setRoof( info->exteriorRoof ); - setWall( info->exteriorWall ); - setWindow( info->exteriorWindow ); - setBasementWall( info->basementWall ); - setFloorFlooring( info->otherFloorFlooring ); - setFloorWall( info->otherFloorWall ); -} - -//Primary State -void Core::Landset::setHouseSize( uint8_t size ) -{ - m_landset.houseSize = size; -} - -void Core::Landset::setState( uint8_t state ) -{ - m_landset.houseState = state; -} - -void Core::Landset::setOwnership( uint8_t state ) -{ - m_landset.iconColor = state; -} - -void Core::Landset::setSharing( uint8_t state ) -{ - m_landset.iconAddIcon = state; -} - -uint8_t Core::Landset::getHouseSize() -{ - return m_landset.houseSize; -} - -uint8_t Core::Landset::getState() -{ - return m_landset.houseState; -} - -uint8_t Core::Landset::getOwnership() -{ - return m_landset.iconColor; -} - -uint8_t Core::Landset::getSharing() -{ - return m_landset.iconAddIcon; -} - -//Free Comapny -void Core::Landset::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) -{ - m_landset.fcId = id; - m_landset.fcIcon = icon; - m_landset.fcIconColor = color; //RGBA -} - -uint32_t Core::Landset::getFcId() -{ - return m_landset.fcIcon; -} - -uint32_t Core::Landset::getFcIcon() -{ - return m_landset.fcIcon; -} - -uint32_t Core::Landset::getFcColor() -{ - return m_landset.fcIconColor; -} - -//House Data -void Core::Landset::setRoof( uint16_t id ) -{ - m_landset.exteriorRoof = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setFacade( uint16_t id ) -{ - m_landset.exteriorWall = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setWindow( uint16_t id ) -{ - m_landset.exteriorWindow = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setDoor( uint16_t id ) -{ - m_landset.exteriorDoor = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setFloorWall( uint16_t id ) -{ - m_landset.otherFloorWall = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setFloorFlooring( uint16_t id ) -{ - m_landset.otherFloorFlooring = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setWall( uint16_t id ) -{ - m_landset.exteriorWall = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setSign( uint16_t id ) -{ - m_landset.gardenSign = convertItemIdToHousingItemId( id ); -} - -void Core::Landset::setBasementWall( uint16_t id ) -{ - m_landset.basementWall = convertItemIdToHousingItemId( id ); -} - -uint16_t Core::Landset::getRoof() -{ - return m_landset.exteriorRoof; -} - -uint16_t Core::Landset::getFacade() -{ - return m_landset.exteriorWall; -} - -uint16_t Core::Landset::getWindow() -{ - return m_landset.exteriorWindow; -} - -uint16_t Core::Landset::getDoor() -{ - return m_landset.exteriorDoor; -} - -uint16_t Core::Landset::getSign() -{ - return m_landset.gardenSign; -} - -uint16_t Core::Landset::getWall() -{ - return m_landset.basementWall; -} - -uint16_t Core::Landset::getFloorWall() -{ - return m_landset.otherFloorFlooring; -} - -uint16_t Core::Landset::getFloorFlooring() -{ - return m_landset.otherFloorFlooring; -} - -uint16_t Core::Landset::getBasememtWall() -{ - return m_landset.basementWall; -} - -//Color -void Core::Landset::setColor( uint8_t slot, uint8_t color ) -{ - m_landset.color[ slot ] = color; -} - -uint8_t Core::Landset::getColor( uint8_t slot ) -{ - return m_landset.color[ slot ]; -} - -//Player -void Core::Landset::setPlayerOwner( uint32_t id ) -{ - m_ownerPlayerId = id; -} - -uint32_t Core::Landset::getPlayerOwner() -{ - return m_ownerPlayerId; -} - -uint32_t Core::Landset::getLandsetKey() -{ - return m_landsetKey; -} - -LandsetStruct Core::Landset::getLandset() -{ - return m_landset; -} - -uint32_t Core::Landset::getMaxItems() -{ - return m_maxItems; -} - -void Core::Landset::Init() -{ - - - switch( getHouseSize() ) - { - case HouseSizeType::smallHouse: - m_initPrice = 3750000; - m_maxItems = 20; - break; - case HouseSizeType::mediumHouse: - m_initPrice = 20000000; - m_maxItems = 30; - break; - case HouseSizeType::bigHouse: - m_initPrice = 50000000; - m_maxItems = 40; - break; - default: - break; - } -} - -void Core::Landset::UpdateDatabase() -{ - auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - std::string exec = "UPDATE land SET landset='" + - std::string( reinterpret_cast< const char* >( &m_landset ) ) + "', nextDrop=" + - std::to_string( m_nextDrop ) + ", currentPrice=" + - std::to_string( m_currentPrice ) + - " WHERE Id =" + std::to_string( m_landsetKey ); - pDb->execute( exec ); -} - -void Core::Landset::Update( uint32_t currTime ) -{ - if( m_currentPrice == 0 && getState() == HouseStateType::forSell ) - { - m_currentPrice = m_initPrice; - m_nextDrop = 0; - UpdateDatabase(); - } - if( m_nextDrop < currTime && getState() == HouseStateType::forSell ) - { - m_currentPrice = ( m_currentPrice / 100 ) * 90; - m_nextDrop = currTime + 86400; - UpdateDatabase(); - } - onUpdate(); -} - -void Core::Landset::onUpdate() -{ - -} \ No newline at end of file From 6347d7ed27571f8cdd049c428a7550475ce1dcb2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 2 Nov 2018 19:21:12 +0100 Subject: [PATCH 003/385] More housing cleanup --- src/common/Common.h | 102 +++++++++++++++--------- src/servers/sapphire_zone/Zone/Land.cpp | 102 +++--------------------- src/servers/sapphire_zone/Zone/Land.h | 43 +--------- 3 files changed, 78 insertions(+), 169 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 64d4861b..4a3c5d4d 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -732,46 +732,72 @@ namespace Core::Common MountSkill = 0xD, }; -//Structs -struct LandStruct -{ - uint8_t houseSize; //0 - uint8_t houseState; // 2 - uint8_t iconColor; // 4 - uint8_t iconAddIcon; // 6 - uint32_t fcId; //8 - uint32_t fcIcon;// 12 - uint32_t fcIconColor; // 16 - uint16_t exteriorRoof; //20 - uint16_t exteriorWall; //22 - uint16_t exteriorWindow; //24 - uint16_t exteriorDoor;// 26 - uint16_t otherFloorWall; // 28 - uint16_t otherFloorFlooring; //30 - uint16_t basementWall; // 32 - uint16_t gardenSign; // 34 - uint8_t color[8]; // 36 - //44 -}; + enum HousePartSlot + { + ExteriorRoof, + ExteriorWall, + ExteriorWindow, + ExteriorDoor, + OtherFloorWall, + OtherFloorFlooring, + BasementWall, + YardSign + }; -struct HousePermissionSet -{ - uint16_t landSetId; //00 - uint16_t wardNum; //02 - uint16_t zoneId; //04 - uint16_t worldId; //06 - uint32_t permissionMask; //08 - uint32_t unkown1; //12 -}; + //Structs + struct LandStruct + { + uint8_t houseSize; //0 + uint8_t houseState; // 2 + uint8_t iconColor; // 4 + uint8_t iconAddIcon; // 6 + uint32_t fcId; //8 + uint32_t fcIcon;// 12 + uint32_t fcIconColor; // 16 + uint16_t housePart[ 8 ]; // 34 + uint8_t color[ 8 ]; // 36 + //44 + }; -struct YardObject -{ - uint32_t itemId; - uint16_t itemRotation; - uint16_t pos_x; - uint16_t pos_y; - uint16_t pos_z; -}; + struct HousePermissionSet + { + uint16_t landSetId; //00 + uint16_t wardNum; //02 + uint16_t zoneId; //04 + uint16_t worldId; //06 + uint32_t permissionMask; //08 + uint32_t unkown1; //12 + }; + + struct YardObject + { + uint32_t itemId; + uint16_t itemRotation; + uint16_t pos_x; + uint16_t pos_y; + uint16_t pos_z; + }; + + enum HouseSizeType : uint8_t + { + //noneHouse, + smallHouse, + mediumHouse, + bigHouse + }; + + enum HouseStateType : uint8_t + { + none, + forSale, + sold, + fcHouse, + privateHouse + }; + enum HouseIconAdd : uint8_t + { + heart = 0x06 + }; using PlayerStateFlagList = std::vector< PlayerStateFlag >; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 0813f214..1e80353a 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -78,7 +78,7 @@ void Core::Land::load() "housingoutdooritems", true );*/ } -uint32_t Core::Land::convertItemIdToHousingItemId( uint32_t itemId ) +uint16_t Core::Land::convertItemIdToHousingItemId( uint16_t itemId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto info = pExdData->get< Core::Data::Item >( itemId ); @@ -89,12 +89,12 @@ void Core::Land::setPreset( uint32_t id ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) ); - setRoof( info->exteriorRoof ); - setWall( info->exteriorWall ); - setWindow( info->exteriorWindow ); - setBasementWall( info->basementWall ); - setFloorFlooring( info->otherFloorFlooring ); - setFloorWall( info->otherFloorWall ); + setHousePart( Common::HousePartSlot::ExteriorRoof, info->exteriorRoof ); + setHousePart( Common::HousePartSlot::ExteriorWall, info->exteriorWall ); + setHousePart( Common::HousePartSlot::ExteriorWindow, info->exteriorWindow ); + setHousePart( Common::HousePartSlot::BasementWall, info->basementWall ); + setHousePart( Common::HousePartSlot::OtherFloorFlooring, info->otherFloorFlooring ); + setHousePart( Common::HousePartSlot::OtherFloorWall, info->otherFloorWall ); } //Primary State @@ -162,94 +162,14 @@ uint32_t Core::Land::getFcColor() } //House Data -void Core::Land::setRoof( uint16_t id ) +void Core::Land::setHousePart( Common::HousePartSlot slot, uint16_t id ) { - m_land.exteriorRoof = convertItemIdToHousingItemId( id ); + m_land.housePart[ slot ] = convertItemIdToHousingItemId( id ); } -void Core::Land::setFacade( uint16_t id ) +uint16_t Core::Land::getHousePart( Common::HousePartSlot slot ) { - m_land.exteriorWall = convertItemIdToHousingItemId( id ); -} - -void Core::Land::setWindow( uint16_t id ) -{ - m_land.exteriorWindow = convertItemIdToHousingItemId( id ); -} - -void Core::Land::setDoor( uint16_t id ) -{ - m_land.exteriorDoor = convertItemIdToHousingItemId( id ); -} - -void Core::Land::setFloorWall( uint16_t id ) -{ - m_land.otherFloorWall = convertItemIdToHousingItemId( id ); -} - -void Core::Land::setFloorFlooring( uint16_t id ) -{ - m_land.otherFloorFlooring = convertItemIdToHousingItemId( id ); -} - -void Core::Land::setWall( uint16_t id ) -{ - m_land.exteriorWall = convertItemIdToHousingItemId( id ); -} - -void Core::Land::setSign( uint16_t id ) -{ - m_land.gardenSign = convertItemIdToHousingItemId( id ); -} - -void Core::Land::setBasementWall( uint16_t id ) -{ - m_land.basementWall = convertItemIdToHousingItemId( id ); -} - -uint16_t Core::Land::getRoof() -{ - return m_land.exteriorRoof; -} - -uint16_t Core::Land::getFacade() -{ - return m_land.exteriorWall; -} - -uint16_t Core::Land::getWindow() -{ - return m_land.exteriorWindow; -} - -uint16_t Core::Land::getDoor() -{ - return m_land.exteriorDoor; -} - -uint16_t Core::Land::getSign() -{ - return m_land.gardenSign; -} - -uint16_t Core::Land::getWall() -{ - return m_land.basementWall; -} - -uint16_t Core::Land::getFloorWall() -{ - return m_land.otherFloorFlooring; -} - -uint16_t Core::Land::getFloorFlooring() -{ - return m_land.otherFloorFlooring; -} - -uint16_t Core::Land::getBasememtWall() -{ - return m_land.basementWall; + return m_land.housePart[ slot ]; } //Color diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index ce37dc02..d0fae011 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -8,27 +8,6 @@ namespace Core class Land { public: - enum HouseSizeType : uint8_t - { - //noneHouse, - smallHouse, - mediumHouse, - bigHouse - }; - - enum HouseStateType : uint8_t - { - none, - forSale, - sold, - fcHouse, - privateHouse - }; - - enum HouseIconAdd : uint8_t - { - heart = 0x06 - }; Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId ); virtual ~Land(); @@ -54,25 +33,9 @@ namespace Core uint32_t getFcColor(); //House data - void setRoof( uint16_t itemId ); - void setFacade( uint16_t itemId ); - void setWindow( uint16_t itemId ); - void setDoor( uint16_t itemId ); - void setFloorWall( uint16_t itemId ); - void setFloorFlooring( uint16_t itemId ); - void setWall( uint16_t itemId ); - void setSign( uint16_t itemId ); - void setBasementWall( uint16_t itemId ); + void setHousePart( Common::HousePartSlot slot, uint16_t itemId ); - uint16_t getRoof(); - uint16_t getFacade(); - uint16_t getWindow(); - uint16_t getDoor(); - uint16_t getFloorWall(); - uint16_t getFloorFlooring(); - uint16_t getWall(); - uint16_t getSign(); - uint16_t getBasememtWall(); + uint16_t getHousePart( Common::HousePartSlot slot ); //Color void setColor( uint8_t slot, uint8_t color ); @@ -91,7 +54,7 @@ namespace Core uint32_t getMaxItems(); private: - uint32_t convertItemIdToHousingItemId( uint32_t itemId ); + uint16_t convertItemIdToHousingItemId( uint16_t itemId ); void Init(); uint32_t m_landKey; From c7cb95175d610ad7469694902d9cd6493d0417d8 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 3 Nov 2018 00:47:45 +0100 Subject: [PATCH 004/385] More refactoring and linux compile fix --- src/common/Common.h | 2 +- src/servers/Scripts/common/CmnDefHousingSignboard.cpp | 2 +- src/servers/sapphire_zone/Zone/HousingZone.cpp | 2 +- src/servers/sapphire_zone/Zone/Land.cpp | 5 +++-- src/servers/sapphire_zone/Zone/Land.h | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 4a3c5d4d..5d1fce2a 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -756,7 +756,6 @@ namespace Core::Common uint32_t fcIconColor; // 16 uint16_t housePart[ 8 ]; // 34 uint8_t color[ 8 ]; // 36 - //44 }; struct HousePermissionSet @@ -794,6 +793,7 @@ namespace Core::Common fcHouse, privateHouse }; + enum HouseIconAdd : uint8_t { heart = 0x06 diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 901c0f56..54cb765e 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -14,7 +14,7 @@ public: void Scene00000( Entity::Player& player ) { - player.playScene( getId(), 0, HIDE_HOTBAR, 0, 1 ); + player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0 ); } void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 6dabcca9..fb2d5705 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -73,7 +73,7 @@ void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) //TODO: Add Objects here - player.queuePacket(landsetYardInitializePacket); + player.queuePacket( landsetYardInitializePacket ); } } diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 1e80353a..2ad764c4 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -44,6 +44,7 @@ Core::Land::~Land() void Core::Land::load() { +// setPreset( 262145 ); /* auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT * FROM land WHERE Id = " + std::to_string( m_landKey ) ); if( !res->next() ) @@ -199,7 +200,7 @@ uint32_t Core::Land::getLandKey() return m_landKey; } -LandStruct Core::Land::getLand() +const LandStruct& Core::Land::getLand() { return m_land; } @@ -209,7 +210,7 @@ uint32_t Core::Land::getMaxItems() return m_maxItems; } -void Core::Land::Init() +void Core::Land::init() { diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index d0fae011..03a2641a 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -50,12 +50,12 @@ namespace Core void onUpdate(); uint32_t getLandKey(); - Common::LandStruct getLand(); + const Common::LandStruct& getLand(); uint32_t getMaxItems(); private: uint16_t convertItemIdToHousingItemId( uint16_t itemId ); - void Init(); + void init(); uint32_t m_landKey; uint8_t m_wardNum; From 12cb928f3328fac7de008621cff7a6025f9a9545 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 3 Nov 2018 11:42:09 +0100 Subject: [PATCH 005/385] Initialize all lands to state 1 --- src/servers/sapphire_zone/Zone/Land.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 2ad764c4..bffd3335 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -44,6 +44,8 @@ Core::Land::~Land() void Core::Land::load() { + m_land.houseSize = 1; + m_land.houseState = 1; // setPreset( 262145 ); /* auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT * FROM land WHERE Id = " + std::to_string( m_landKey ) ); From a0616c8d7cb67755f3b41e5ea7c8bc816a806a3c Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 3 Nov 2018 23:44:43 +0100 Subject: [PATCH 006/385] Small refactors --- src/common/Common.h | 11 +++++------ src/servers/sapphire_zone/Zone/Land.cpp | 12 ++++++------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 5d1fce2a..e1bbd877 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -777,15 +777,14 @@ namespace Core::Common uint16_t pos_z; }; - enum HouseSizeType : uint8_t + enum HouseSize : uint8_t { - //noneHouse, - smallHouse, - mediumHouse, - bigHouse + small, + medium, + big }; - enum HouseStateType : uint8_t + enum HouseState : uint8_t { none, forSale, diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index bffd3335..ce913113 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -45,7 +45,7 @@ Core::Land::~Land() void Core::Land::load() { m_land.houseSize = 1; - m_land.houseState = 1; + m_land.houseState = HouseState::forSale; // setPreset( 262145 ); /* auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT * FROM land WHERE Id = " + std::to_string( m_landKey ) ); @@ -218,15 +218,15 @@ void Core::Land::init() switch( getHouseSize() ) { - case HouseSizeType::smallHouse: + case HouseSize::small: m_initPrice = 3750000; m_maxItems = 20; break; - case HouseSizeType::mediumHouse: + case HouseSize::medium: m_initPrice = 20000000; m_maxItems = 30; break; - case HouseSizeType::bigHouse: + case HouseSize::big: m_initPrice = 50000000; m_maxItems = 40; break; @@ -248,13 +248,13 @@ void Core::Land::UpdateDatabase() void Core::Land::Update( uint32_t currTime ) { - if( m_currentPrice == 0 && getState() == HouseStateType::forSale ) + if( m_currentPrice == 0 && getState() == HouseState::forSale ) { m_currentPrice = m_initPrice; m_nextDrop = 0; UpdateDatabase(); } - if( m_nextDrop < currTime && getState() == HouseStateType::forSale ) + if( m_nextDrop < currTime && getState() == HouseState::forSale ) { m_currentPrice = ( m_currentPrice / 100 ) * 90; m_nextDrop = currTime + 86400; From 7b7ab34eb95c89bc3c8e0584e9f499c668b51e89 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 4 Nov 2018 23:47:10 +0100 Subject: [PATCH 007/385] Houseing data initializing and signs --- src/common/Exd/ExdDataGenerated.cpp | 11 ++++ src/common/Exd/ExdDataGenerated.h | 18 +++++++ src/common/Network/CommonActorControl.h | 1 + src/common/Network/PacketDef/Ipcs.h | 3 +- .../Network/Handlers/ClientTriggerHandler.cpp | 23 ++++++++ .../sapphire_zone/Zone/HousingZone.cpp | 52 ++++++++++++++----- src/servers/sapphire_zone/Zone/HousingZone.h | 11 ++-- src/servers/sapphire_zone/Zone/Land.cpp | 47 ++++++++++++----- src/servers/sapphire_zone/Zone/Land.h | 13 +++-- .../sapphire_zone/Zone/TerritoryMgr.cpp | 2 +- 10 files changed, 146 insertions(+), 35 deletions(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index 70c0374f..5359bbc7 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -2740,6 +2740,16 @@ Core::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Core::Data::Exd tooltip = exdData->getField< bool >( row, 9 ); } +Core::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_HousingLandSetDat.get_row( row_id ); + for ( int i = 0; i < 60; i++ ) + sizes.push_back( exdData->getField< uint8_t >( row, i ) ); + for ( int i = 300; i < 300 + 60; i++ ) + prices.push_back( exdData->getField< uint32_t >( row, i ) ); + +} + Core::Data::HousingPlacement::HousingPlacement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingPlacementDat.get_row( row_id ); @@ -5525,6 +5535,7 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_HousingEmploymentNpcListDat = setupDatAccess( "HousingEmploymentNpcList", xiv::exd::Language::none ); m_HousingEmploymentNpcRaceDat = setupDatAccess( "HousingEmploymentNpcRace", xiv::exd::Language::en ); m_HousingFurnitureDat = setupDatAccess( "HousingFurniture", xiv::exd::Language::none ); + m_HousingLandSetDat = setupDatAccess( "HousingLandSet", xiv::exd::Language::none ); m_HousingPlacementDat = setupDatAccess( "HousingPlacement", xiv::exd::Language::en ); m_HousingPresetDat = setupDatAccess( "HousingPreset", xiv::exd::Language::en ); m_HousingYardObjectDat = setupDatAccess( "HousingYardObject", xiv::exd::Language::none ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index ea74b624..d77e606e 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -256,6 +256,7 @@ struct HousingAethernet; struct HousingEmploymentNpcList; struct HousingEmploymentNpcRace; struct HousingFurniture; +struct HousingLandSet; struct HousingPlacement; struct HousingPreset; struct HousingYardObject; @@ -2849,6 +2850,14 @@ struct HousingPlacement HousingPlacement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct HousingLandSet +{ + std::vector< uint8_t > sizes; + std::vector< uint32_t > prices; + + HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct HousingPreset { std::string singular; @@ -5054,6 +5063,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_HousingEmploymentNpcListDat; xiv::exd::Exd m_HousingEmploymentNpcRaceDat; xiv::exd::Exd m_HousingFurnitureDat; + xiv::exd::Exd m_HousingLandSetDat; xiv::exd::Exd m_HousingPlacementDat; xiv::exd::Exd m_HousingPresetDat; xiv::exd::Exd m_HousingYardObjectDat; @@ -5484,6 +5494,7 @@ struct ZoneSharedGroup using HousingEmploymentNpcListPtr = std::shared_ptr< HousingEmploymentNpcList >; using HousingEmploymentNpcRacePtr = std::shared_ptr< HousingEmploymentNpcRace >; using HousingFurniturePtr = std::shared_ptr< HousingFurniture >; + using HousingLandSetPtr = std::shared_ptr< HousingLandSet >; using HousingPlacementPtr = std::shared_ptr< HousingPlacement >; using HousingPresetPtr = std::shared_ptr< HousingPreset >; using HousingYardObjectPtr = std::shared_ptr< HousingYardObject >; @@ -5929,6 +5940,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_HousingEmploymentNpcListIdList; std::set< uint32_t > m_HousingEmploymentNpcRaceIdList; std::set< uint32_t > m_HousingFurnitureIdList; + std::set< uint32_t > m_HousingLandSetIdList; std::set< uint32_t > m_HousingPlacementIdList; std::set< uint32_t > m_HousingPresetIdList; std::set< uint32_t > m_HousingYardObjectIdList; @@ -7549,6 +7561,12 @@ const std::set< uint32_t >& getHousingFurnitureIdList() loadIdList( m_HousingFurnitureDat, m_HousingFurnitureIdList ); return m_HousingFurnitureIdList; } +const std::set< uint32_t >& getHousingLandSetIdList() +{ + if( m_HousingLandSetIdList.size() == 0 ) + loadIdList( m_HousingLandSetDat, m_HousingLandSetIdList ); + return m_HousingLandSetIdList; +} const std::set< uint32_t >& getHousingPlacementIdList() { if( m_HousingPlacementIdList.size() == 0 ) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 23a7422a..0d510483 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -286,6 +286,7 @@ enum ClientTriggerType AchievementCritReq = 0x3E8, AchievementList = 0x3E9, + RequestHousingSign = 0x451, RequestSharedEstateSettings = 0x46F, CompanionAction = 0x6A4, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index a26c02a3..e909b248 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -188,7 +188,8 @@ namespace Core::Network::Packets LandSetInitialize = 0x0220, // updated 4.4 LandUpdate = 0x0221, // updated 4.4 YardObjectSpawn = 0x0222, // updated 4.4 - LandPriceUpdate = 0x0225, // updated 4.3 + + LandPriceUpdate = 0x0224, // updated 4.3 LandPermission = 0x0229, // updated 4.4 LandSetYardInitialize = 0x022C, // updated 4.4 YardObjectMove = 0x0230, // updated 4.4 diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 4137c521..dfffc85c 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -10,6 +10,8 @@ #include "Zone/Zone.h" #include "Zone/ZonePosition.h" +#include "Zone/HousingZone.h" +#include "Zone/Land.h" #include "Network/GameConnection.h" @@ -307,7 +309,28 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR player.removeQuest( static_cast< uint16_t >( param1 ) ); break; } + case ClientTriggerType::RequestHousingSign: + { + auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); + uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t plot = ( param12 & 0xFF ); + pLog->debug( " Ward: " + std::to_string( ward ) + " Plot: " + std::to_string( plot ) ); + + auto zone = player.getCurrentZone(); + + auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + + if( !hZone ) + return; + + auto land = hZone->getLand( plot ); + plotPricePacket->data().price = land->getCurrentPrice(); + + player.queuePacket( plotPricePacket ); + + break; + } default: { diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index fb2d5705..cad00db9 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -3,7 +3,7 @@ #include #include #include - +#include #include #include @@ -21,24 +21,46 @@ using namespace Core::Common; using namespace Core::Network::Packets; using namespace Core::Network::Packets::Server; -Core::HousingZone::HousingZone( uint8_t landSetId, +Core::HousingZone::HousingZone( uint8_t wardNum, uint16_t territoryId, uint32_t guId, const std::string& internalName, const std::string& contentName ) : Zone( territoryId, guId, internalName, contentName ), - m_landSetId( landSetId ), - m_zoneId( territoryId ) + m_wardNum( wardNum ), + m_zoneId( territoryId ), + m_landSetId( ( static_cast< uint32_t >( territoryId ) << 16 ) | wardNum ) { } bool Core::HousingZone::init() { + + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDb->query( "SELECT * FROM landset WHERE landsetid = " + std::to_string( m_landSetId ) ); + if( !res->next() ) + { + pDb->directExecute( "INSERT INTO landset ( landsetid ) VALUES ( " + std::to_string( m_landSetId ) + " );" ); + } + + int housingIndex; + if( m_zoneId == 339 ) + housingIndex = 0; + else if( m_zoneId == 340 ) + housingIndex = 1; + else if( m_zoneId == 341 ) + housingIndex = 2; + else if( m_zoneId == 641 ) + housingIndex = 3; + + auto pExdData = g_fw.get< Data::ExdDataGenerated >(); + auto info = pExdData->get< Core::Data::HousingLandSet >( housingIndex ); + uint32_t landId; for( landId = 0; landId < 60; landId++ ) { - auto pObject = make_Land( m_territoryId, getLandSetId(), landId ); + auto pObject = make_Land( m_territoryId, getWardNum(), landId, m_landSetId, info ); pObject->setHouseSize( 1 ); m_landPtrMap[ landId ] = pObject; } @@ -51,7 +73,7 @@ Core::HousingZone::~HousingZone() } -void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) +void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( "HousingZone::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" @@ -60,7 +82,7 @@ void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) uint32_t yardPacketNum; uint32_t yardPacketTotal = 8; - sendMap( player ); + sendLandSet( player ); for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { @@ -78,7 +100,7 @@ void Core::HousingZone::onPlayerZoneIn(Entity::Player& player) } -void Core::HousingZone::sendMap( Entity::Player& player ) +void Core::HousingZone::sendLandSet( Entity::Player& player ) { auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() ); @@ -89,11 +111,10 @@ void Core::HousingZone::sendMap( Entity::Player& player ) landsetInitializePacket->data().subInstance = isPlayerSubInstance( player ) == false ? 1 : 2; uint8_t startIndex = isPlayerSubInstance( player ) == false ? 0 : 30; - uint8_t count = 0; - for( uint8_t i = startIndex; i < ( startIndex + 30 ); i++ ) + + for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); i++ ) { - memcpy( &landsetInitializePacket->data().land[ count ], &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); - count++; + memcpy( &landsetInitializePacket->data().land[ count++ ], &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); } player.queuePacket( landsetInitializePacket ); @@ -112,7 +133,12 @@ void Core::HousingZone::onUpdate( uint32_t currTime ) } } -uint8_t Core::HousingZone::getLandSetId() const +uint8_t Core::HousingZone::getWardNum() const +{ + return m_wardNum; +} + +uint32_t Core::HousingZone::getLandSetId() const { return m_landSetId; } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index a3b94d81..9974a906 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -22,18 +22,21 @@ namespace Core void onPlayerZoneIn( Entity::Player& player ) override; void onUpdate( uint32_t currTime ) override; - void sendMap( Entity::Player& player ); + void sendLandSet( Entity::Player& player ); bool isPlayerSubInstance( Entity::Player& player ); /* returns current ward number for this zone */ - uint8_t getLandSetId() const; + uint8_t getWardNum() const; + + uint32_t getLandSetId() const; Core::LandPtr getLand( uint8_t id ); - const uint32_t m_wardMaxNum = 18; private: using LandPtrMap = std::unordered_map< uint8_t, Core::LandPtr >; + const uint32_t m_landSetMax = 18; LandPtrMap m_landPtrMap; - uint8_t m_landSetId; + uint8_t m_wardNum; + uint32_t m_landSetId; uint32_t m_zoneId; }; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index ce913113..d9575b31 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -25,14 +25,16 @@ extern Core::Framework g_fw; using namespace Core::Common; -Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId ) : +Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, + Core::Data::HousingLandSetPtr info ) : m_zoneId( zoneId ), m_wardNum( wardNum ), m_landId( landId ), m_currentPrice( 0 ), - m_nextDrop( 0 ) + m_nextDrop( 0 ), + m_landSetId( landSetId ), + m_landInfo( info ) { - m_landKey = ( m_zoneId << 16 ) | ( m_wardNum << 8 ) | m_landId; memset( &m_land, 0x00, sizeof( LandStruct ) ); load(); } @@ -44,8 +46,31 @@ Core::Land::~Land() void Core::Land::load() { - m_land.houseSize = 1; + m_land.houseState = HouseState::forSale; + + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDb->query( "SELECT * FROM land WHERE landsetid = " + std::to_string( m_landSetId ) + " " + "AND landid = " + std::to_string( m_landId ) ); + if( !res->next() ) + { + + + pDb->directExecute( "INSERT INTO land ( landsetid, landid, size, status, landprice ) " + "VALUES ( " + std::to_string( m_landSetId ) + "," + std::to_string( m_landId ) + "," + + std::to_string( m_landInfo->sizes[ m_landId ] ) + "," + + " 1, " + std::to_string( m_landInfo->prices[ m_landId ] ) + " );" ); + + m_currentPrice = m_landInfo->prices[ m_landId ]; + m_land.houseSize = m_landInfo->sizes[ m_landId ]; + } + else + { + m_land.houseSize = res->getUInt( "size" ); + m_land.houseState = res->getUInt( "status" ); + m_currentPrice = res->getUInt( "LandPrice" );; + } + init(); // setPreset( 262145 ); /* auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT * FROM land WHERE Id = " + std::to_string( m_landKey ) ); @@ -88,6 +113,11 @@ uint16_t Core::Land::convertItemIdToHousingItemId( uint16_t itemId ) return info->additionalData; } +uint32_t Core::Land::getCurrentPrice() const +{ + return m_currentPrice; +} + void Core::Land::setPreset( uint32_t id ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -197,11 +227,6 @@ uint32_t Core::Land::getPlayerOwner() return m_ownerPlayerId; } -uint32_t Core::Land::getLandKey() -{ - return m_landKey; -} - const LandStruct& Core::Land::getLand() { return m_land; @@ -215,19 +240,15 @@ uint32_t Core::Land::getMaxItems() void Core::Land::init() { - switch( getHouseSize() ) { case HouseSize::small: - m_initPrice = 3750000; m_maxItems = 20; break; case HouseSize::medium: - m_initPrice = 20000000; m_maxItems = 30; break; case HouseSize::big: - m_initPrice = 50000000; m_maxItems = 40; break; default: diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 03a2641a..c3f958f8 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -5,11 +5,16 @@ namespace Core { + namespace Data + { + using HousingLandSetPtr = std::shared_ptr< HousingLandSet >; + } + class Land { public: - Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId ); + Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, Core::Data::HousingLandSetPtr info ); virtual ~Land(); void load(); @@ -48,21 +53,23 @@ namespace Core void UpdateDatabase(); void Update( uint32_t currTime ); void onUpdate(); - uint32_t getLandKey(); const Common::LandStruct& getLand(); uint32_t getMaxItems(); + uint32_t getCurrentPrice() const; + private: uint16_t convertItemIdToHousingItemId( uint16_t itemId ); void init(); - uint32_t m_landKey; uint8_t m_wardNum; uint8_t m_landId; + uint32_t m_landSetId; uint16_t m_zoneId; Common::LandStruct m_land; uint32_t m_ownerPlayerId; + Core::Data::HousingLandSetPtr m_landInfo; //item storage diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index 502cc106..c77d48f3 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -175,7 +175,7 @@ bool Core::TerritoryMgr::createHousingTerritories() auto pHousingZone = make_HousingZone( wardNum, territoryId, guid, territoryInfo->name, pPlaceName->name ); pHousingZone->init(); - wardMaxNum = pHousingZone->m_wardMaxNum; + wardMaxNum = 18; InstanceIdToZonePtrMap instanceMap; instanceMap[ guid ] = pHousingZone; From 77400c99d6e1a2015b1bc5273bdd6a487abcf9f6 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 5 Nov 2018 23:04:26 +1100 Subject: [PATCH 008/385] Block //gm terri usage for instanced territories --- .../sapphire_zone/Network/Handlers/GMCommandHandlers.cpp | 6 ++++++ src/servers/sapphire_zone/Zone/TerritoryMgr.h | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp index 50ed43d8..18c4042d 100644 --- a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp @@ -456,6 +456,12 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R player.sendUrgent( "No zone instance found for " + std::to_string( param1 ) ); break; } + + if( !pTeriMgr->isDefaultTerritory( param1 ) ) + { + player.sendUrgent( pZone->getName() + " is an instanced area - instance ID required to zone in." ); + break; + } bool doTeleport = false; uint16_t teleport; diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.h b/src/servers/sapphire_zone/Zone/TerritoryMgr.h index 3ecebdfd..c78e3923 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.h +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.h @@ -29,7 +29,7 @@ class TerritoryMgr public: enum TerritoryIntendedUse : - uint8_t //ToDo: Add The Rest of The Territory Types and Have Better Names For Them + uint8_t //TODO: Add the rest of the territory types and have better names for them { Town = 0, OpenWorld = 1, From 9d7f3be448dc7e7459615957a13cf24df770d834 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 5 Nov 2018 23:04:39 +1100 Subject: [PATCH 009/385] add land/landset sql --- sql/land.sql | 15 +++++++++++ sql/landset.sql | 68 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 sql/land.sql create mode 100644 sql/landset.sql diff --git a/sql/land.sql b/sql/land.sql new file mode 100644 index 00000000..d4b918af --- /dev/null +++ b/sql/land.sql @@ -0,0 +1,15 @@ +CREATE TABLE `land` ( + `LandSetId` INT UNSIGNED NULL, + `LandId` INT UNSIGNED NULL, + `Size` SMALLINT NULL, + `Status` SMALLINT NULL, + `LandPrice` BIGINT NULL, + `UpdateTime` BIGINT NULL, + `OwnerId` BIGINT UNSIGNED NULL, + `HouseId` BIGINT UNSIGNED NULL, + `IS_DELETE` SMALLINT NULL DEFAULT '0', + `IS_NOT_ACTIVE_FLG` SMALLINT NULL DEFAULT '0', + `UPDATE_DATE` DATETIME NULL +) +COLLATE='latin1_swedish_ci' +ENGINE=InnoDB; diff --git a/sql/landset.sql b/sql/landset.sql new file mode 100644 index 00000000..4ff05e52 --- /dev/null +++ b/sql/landset.sql @@ -0,0 +1,68 @@ +CREATE TABLE `landset` ( + `LandSetId` INT UNSIGNED NULL, + `LandId_0` INT UNSIGNED NULL, + `LandId_1` INT UNSIGNED NULL, + `LandId_2` INT UNSIGNED NULL, + `LandId_3` INT UNSIGNED NULL, + `LandId_4` INT UNSIGNED NULL, + `LandId_5` INT UNSIGNED NULL, + `LandId_6` INT UNSIGNED NULL, + `LandId_7` INT UNSIGNED NULL, + `LandId_8` INT UNSIGNED NULL, + `LandId_9` INT UNSIGNED NULL, + `LandId_10` INT UNSIGNED NULL, + `LandId_11` INT UNSIGNED NULL, + `LandId_12` INT UNSIGNED NULL, + `LandId_13` INT UNSIGNED NULL, + `LandId_14` INT UNSIGNED NULL, + `LandId_15` INT UNSIGNED NULL, + `LandId_16` INT UNSIGNED NULL, + `LandId_17` INT UNSIGNED NULL, + `LandId_18` INT UNSIGNED NULL, + `LandId_19` INT UNSIGNED NULL, + `LandId_20` INT UNSIGNED NULL, + `LandId_21` INT UNSIGNED NULL, + `LandId_22` INT UNSIGNED NULL, + `LandId_23` INT UNSIGNED NULL, + `LandId_24` INT UNSIGNED NULL, + `LandId_25` INT UNSIGNED NULL, + `LandId_26` INT UNSIGNED NULL, + `LandId_27` INT UNSIGNED NULL, + `LandId_28` INT UNSIGNED NULL, + `LandId_29` INT UNSIGNED NULL, + `LandId_30` INT UNSIGNED NULL, + `LandId_31` INT UNSIGNED NULL, + `LandId_32` INT UNSIGNED NULL, + `LandId_33` INT UNSIGNED NULL, + `LandId_34` INT UNSIGNED NULL, + `LandId_35` INT UNSIGNED NULL, + `LandId_36` INT UNSIGNED NULL, + `LandId_37` INT UNSIGNED NULL, + `LandId_38` INT UNSIGNED NULL, + `LandId_39` INT UNSIGNED NULL, + `LandId_40` INT UNSIGNED NULL, + `LandId_41` INT UNSIGNED NULL, + `LandId_42` INT UNSIGNED NULL, + `LandId_43` INT UNSIGNED NULL, + `LandId_44` INT UNSIGNED NULL, + `LandId_45` INT UNSIGNED NULL, + `LandId_46` INT UNSIGNED NULL, + `LandId_47` INT UNSIGNED NULL, + `LandId_48` INT UNSIGNED NULL, + `LandId_49` INT UNSIGNED NULL, + `LandId_50` INT UNSIGNED NULL, + `LandId_51` INT UNSIGNED NULL, + `LandId_52` INT UNSIGNED NULL, + `LandId_53` INT UNSIGNED NULL, + `LandId_54` INT UNSIGNED NULL, + `LandId_55` INT UNSIGNED NULL, + `LandId_56` INT UNSIGNED NULL, + `LandId_57` INT UNSIGNED NULL, + `LandId_58` INT UNSIGNED NULL, + `LandId_59` INT UNSIGNED NULL, + `IS_DELETE` SMALLINT NULL DEFAULT '0', + `IS_NOT_ACTIVE_FLG` SMALLINT NULL DEFAULT '0', + `UPDATE_DATE` DATETIME NULL +) +COLLATE='latin1_swedish_ci' +ENGINE=InnoDB; From c512a63b92877d9f95ca3c7d217464804b8aa9d3 Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 5 Nov 2018 23:07:39 +0100 Subject: [PATCH 010/385] Use territoryType instead of TerritoryId, also refactor variables to reflect the change --- src/common/Database/ZoneDbConnection.cpp | 4 +- src/servers/sapphire_api/PlayerMinimal.cpp | 4 +- src/servers/sapphire_zone/Actor/Player.cpp | 14 +++---- src/servers/sapphire_zone/Actor/Player.h | 8 ++-- src/servers/sapphire_zone/Actor/PlayerSql.cpp | 19 +++++---- .../DebugCommand/DebugCommandHandler.cpp | 4 +- .../Network/Handlers/GMCommandHandlers.cpp | 2 +- .../Network/Handlers/PacketHandlers.cpp | 6 +-- .../sapphire_zone/Script/ScriptMgr.cpp | 2 +- .../sapphire_zone/Zone/HousingZone.cpp | 12 +++--- src/servers/sapphire_zone/Zone/HousingZone.h | 2 +- .../sapphire_zone/Zone/TerritoryMgr.cpp | 40 +++++++++---------- src/servers/sapphire_zone/Zone/TerritoryMgr.h | 10 ++--- src/servers/sapphire_zone/Zone/Zone.cpp | 20 +++++----- src/servers/sapphire_zone/Zone/Zone.h | 9 ++--- 15 files changed, 77 insertions(+), 79 deletions(-) diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index e1bbce60..cf76f4f0 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -50,12 +50,12 @@ void Core::Db::ZoneDbConnection::doPrepareStatements() "CFPenaltyUntil = ?, Pose = ? WHERE CharacterId = ?;", CONNECTION_ASYNC ); - prepareStatement( CHARA_SEL_MINIMAL, "SELECT Name, Customize, ModelMainWeapon, ModelSubWeapon, ModelEquip, TerritoryId, GuardianDeity, " + prepareStatement( CHARA_SEL_MINIMAL, "SELECT Name, Customize, ModelMainWeapon, ModelSubWeapon, ModelEquip, TerritoryType, GuardianDeity, " "Class, ContentId, BirthDay, BirthMonth, EquipDisplayFlags " "FROM charainfo WHERE CharacterId = ?;", CONNECTION_SYNC ); prepareStatement( CHARA_INS, "INSERT INTO charainfo (AccountId, CharacterId, ContentId, Name, Hp, Mp, " - "Customize, Voice, IsNewGame, TerritoryId, PosX, PosY, PosZ, PosR, ModelEquip, " + "Customize, Voice, IsNewGame, TerritoryType, PosX, PosY, PosZ, PosR, ModelEquip, " "IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, " "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, " "Aetheryte, GMRank, Mounts, Orchestrion, UPDATE_DATE ) " diff --git a/src/servers/sapphire_api/PlayerMinimal.cpp b/src/servers/sapphire_api/PlayerMinimal.cpp index db375d03..9829ae1c 100644 --- a/src/servers/sapphire_api/PlayerMinimal.cpp +++ b/src/servers/sapphire_api/PlayerMinimal.cpp @@ -64,7 +64,7 @@ void PlayerMinimal::load( uint32_t charId ) m_guardianDeity = res->getUInt8( "GuardianDeity" ); m_class = res->getUInt8( "Class" ); m_contentId = res->getUInt64( "ContentId" ); - m_zoneId = res->getUInt16( "TerritoryId" ); + m_zoneId = res->getUInt16( "TerritoryType" ); res.reset(); @@ -245,7 +245,7 @@ void PlayerMinimal::saveAsNew() } // "(AccountId, CharacterId, ContentId, Name, Hp, Mp, " - // "Customize, Voice, IsNewGame, TerritoryId, PosX, PosY, PosZ, PosR, ModelEquip, " + // "Customize, Voice, IsNewGame, TerritoryType, PosX, PosY, PosZ, PosR, ModelEquip, " // "IsNewAdventurer, GuardianDeity, Birthday, BirthMonth, Class, Status, FirstClass, " // "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, " // "Aetheryte, GMRank, UPDATE_DATE ) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index fbc8b794..00954034 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -423,7 +423,7 @@ bool Core::Entity::Player::setInstance( ZonePtr instance ) auto pTeriMgr = g_fw.get< TerritoryMgr >(); // zoning within the same zone won't cause the prev data to be overwritten - if( instance->getTerritoryId() != m_zoneId ) + if( instance->getTerritoryTypeId() != m_zoneId ) { m_prevPos = m_pos; m_prevRot = m_rot; @@ -519,7 +519,7 @@ void Core::Entity::Player::discover( int16_t map_id, int16_t sub_id ) int32_t offset = 4; auto info = pExdData->get< Core::Data::Map >( - pExdData->get< Core::Data::TerritoryType >( getCurrentZone()->getTerritoryId() )->map ); + pExdData->get< Core::Data::TerritoryType >( getCurrentZone()->getTerritoryTypeId() )->map ); if( info->discoveryArrayByte ) offset = 5 + 2 * info->discoveryIndex; else @@ -993,7 +993,7 @@ void Core::Entity::Player::update( int64_t currTime ) if( m_queuedZoneing && ( currTime - m_queuedZoneing->m_queueTime ) > 800 ) { Common::FFXIVARR_POSITION3 targetPos = m_queuedZoneing->m_targetPosition; - if( getCurrentZone()->getTerritoryId() != m_queuedZoneing->m_targetZone ) + if( getCurrentZone()->getTerritoryTypeId() != m_queuedZoneing->m_targetZone ) { performZoning( m_queuedZoneing->m_targetZone, targetPos, m_queuedZoneing->m_targetRotation ); } @@ -1502,12 +1502,12 @@ void Core::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp ) queuePacket( packet ); } -void Core::Entity::Player::setTerritoryId( uint32_t territoryId ) +void Core::Entity::Player::setTerritoryTypeId( uint32_t territoryTypeId ) { - m_zoneId = territoryId; + m_zoneId = territoryTypeId; } -uint32_t Core::Entity::Player::getTerritoryId() const +uint32_t Core::Entity::Player::getTerritoryTypeId() const { return m_zoneId; } @@ -1559,7 +1559,7 @@ void Core::Entity::Player::sendZonePackets() } auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); - initZonePacket->data().zoneId = getCurrentZone()->getTerritoryId(); + initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId(); initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() ); initZonePacket->data().bitmask = 0x1; //Setting this to 16 (deciaml) makes it so you can fly in the area (more research needed!) initZonePacket->data().unknown5 = 0x2A; diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 672836a3..51043a6c 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -481,11 +481,11 @@ namespace Core::Entity /*! returns the player to their position before zoning into an instance */ bool exitInstance(); - /*! sets the players territoryId */ - void setTerritoryId( uint32_t territoryId ); + /*! sets the players territoryTypeId */ + void setTerritoryTypeId( uint32_t territoryTypeId ); - /*! gets the players territoryId */ - uint32_t getTerritoryId() const; + /*! gets the players territoryTypeId */ + uint32_t getTerritoryTypeId() const; void forceZoneing( uint32_t zoneId ); diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index 40a006ba..ab1b7704 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -49,9 +49,8 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession ) auto name = res->getString( "Name" ); strcpy( m_name, name.c_str() ); - auto zoneId = res->getUInt( "TerritoryId" ); - m_prevZoneId = res->getUInt( "OTerritoryId" ); - m_prevZoneType = res->getUInt( "OTerritoryType" ); + auto zoneId = res->getUInt( "TerritoryType" ); + m_prevZoneId = res->getUInt( "OTerritoryType" ); // Position m_pos.x = res->getFloat( "PosX" ); @@ -79,12 +78,12 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession ) m_pos.y = m_prevPos.y; m_pos.z = m_prevPos.z; setRot( m_prevRot ); - pCurrZone = pTeriMgr->getZoneByTerriId( zoneId ); + pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId ); } } else { - pCurrZone = pTeriMgr->getZoneByTerriId( zoneId ); + pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId ); } m_zoneId = zoneId; @@ -98,7 +97,7 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession ) // default to new gridania // TODO: should probably just abort and mark character as corrupt - pCurrZone = pTeriMgr->getZoneByTerriId( 132 ); + pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( 132 ); m_pos.x = 0.0f; m_pos.y = 0.0f; @@ -365,15 +364,15 @@ void Core::Entity::Player::updateSql() stmt->setInt( 16, static_cast< uint32_t >( m_bNewGame ) ); stmt->setInt( 17, static_cast< uint32_t >( m_bNewAdventurer ) ); - stmt->setInt( 18, 0 ); // TerritoryType - stmt->setInt( 19, m_zoneId ); // TerritoryId + stmt->setInt( 18, m_zoneId ); // TerritoryType + stmt->setInt( 19, 0 ); // TerritoryId stmt->setDouble( 20, m_pos.x ); stmt->setDouble( 21, m_pos.y ); stmt->setDouble( 22, m_pos.z ); stmt->setDouble( 23, getRot() ); - stmt->setInt( 24, m_prevZoneType ); // OTerritoryType - stmt->setInt( 25, m_prevZoneId ); // OTerritoryId + stmt->setInt( 24, m_prevZoneId ); // OTerritoryType + stmt->setInt( 25, m_prevZoneType ); // OTerritoryId stmt->setDouble( 26, m_prevPos.x ); stmt->setDouble( 27, m_prevPos.y ); stmt->setDouble( 28, m_prevPos.z ); diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 15059049..276acd3a 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -535,7 +535,7 @@ void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::sh if( ( subCommand == "pos" ) ) { - int16_t map_id = pExdData->get< Core::Data::TerritoryType >( player.getCurrentZone()->getTerritoryId() )->map; + int16_t map_id = pExdData->get< Core::Data::TerritoryType >( player.getCurrentZone()->getTerritoryTypeId() )->map; player.sendNotice( "Pos:\n" + std::to_string( player.getPos().x ) + "\n" + @@ -543,7 +543,7 @@ void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::sh std::to_string( player.getPos().z ) + "\n" + std::to_string( player.getRot() ) + "\nMapId: " + std::to_string( map_id ) + "\nZoneID: " + - std::to_string( player.getCurrentZone()->getTerritoryId() ) + "\n" ); + std::to_string( player.getCurrentZone()->getTerritoryTypeId() ) + "\n" ); } else { diff --git a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp index 18c4042d..d45a3a6f 100644 --- a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp @@ -450,7 +450,7 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R } else { - auto pZone = pTeriMgr->getZoneByTerriId( param1 ); + auto pZone = pTeriMgr->getZoneByTerritoryTypeId( param1 ); if( !pZone ) { player.sendUrgent( "No zone instance found for " + std::to_string( param1 ) ); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index cc9e9f3d..dce368de 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -348,7 +348,7 @@ void Core::Network::GameConnection::zoneLineHandler( const Core::Network::Packet targetPos.x = 0; targetPos.y = 0; targetPos.z = 0; - targetZone = pZone->getTerritoryId(); + targetZone = pZone->getTerritoryTypeId(); } player.performZoning( targetZone, targetPos, rotation ); @@ -471,7 +471,7 @@ void Core::Network::GameConnection::socialListHandler( const Core::Network::Pack int32_t entrysizes = sizeof( listPacket->data().entries ); memset( listPacket->data().entries, 0, sizeof( listPacket->data().entries ) ); - listPacket->data().entries[ 0 ].bytes[ 2 ] = player.getCurrentZone()->getTerritoryId(); + listPacket->data().entries[ 0 ].bytes[ 2 ] = player.getCurrentZone()->getTerritoryTypeId(); listPacket->data().entries[ 0 ].bytes[ 3 ] = 0x80; listPacket->data().entries[ 0 ].bytes[ 4 ] = 0x02; listPacket->data().entries[ 0 ].bytes[ 6 ] = 0x3B; @@ -479,7 +479,7 @@ void Core::Network::GameConnection::socialListHandler( const Core::Network::Pack listPacket->data().entries[ 0 ].classJob = static_cast< uint8_t >( player.getClass() ); listPacket->data().entries[ 0 ].contentId = player.getContentId(); listPacket->data().entries[ 0 ].level = player.getLevel(); - listPacket->data().entries[ 0 ].zoneId = player.getCurrentZone()->getTerritoryId(); + listPacket->data().entries[ 0 ].zoneId = player.getCurrentZone()->getTerritoryTypeId(); listPacket->data().entries[ 0 ].zoneId1 = 0x0100; // TODO: no idea what this does //listPacket.data().entries[0].one = 1; diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index cb228af9..cbd8cada 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -359,7 +359,7 @@ bool Core::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, uint3 bool Core::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone ) { - auto script = m_nativeScriptMgr->getScript< ZoneScript >( pZone->getTerritoryId() ); + auto script = m_nativeScriptMgr->getScript< ZoneScript >( pZone->getTerritoryTypeId() ); if( script ) { script->onZoneInit(); diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index cad00db9..3fbdc069 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -22,14 +22,14 @@ using namespace Core::Network::Packets; using namespace Core::Network::Packets::Server; Core::HousingZone::HousingZone( uint8_t wardNum, - uint16_t territoryId, + uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& contentName ) : - Zone( territoryId, guId, internalName, contentName ), + Zone( territoryTypeId, guId, internalName, contentName ), m_wardNum( wardNum ), - m_zoneId( territoryId ), - m_landSetId( ( static_cast< uint32_t >( territoryId ) << 16 ) | wardNum ) + m_zoneId( territoryTypeId ), + m_landSetId( ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardNum ) { } @@ -60,7 +60,7 @@ bool Core::HousingZone::init() uint32_t landId; for( landId = 0; landId < 60; landId++ ) { - auto pObject = make_Land( m_territoryId, getWardNum(), landId, m_landSetId, info ); + auto pObject = make_Land( m_territoryTypeId, getWardNum(), landId, m_landSetId, info ); pObject->setHouseSize( 1 ); m_landPtrMap[ landId ] = pObject; } @@ -105,7 +105,7 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() ); landsetInitializePacket->data().landSetId = m_landSetId; - landsetInitializePacket->data().zoneId = m_territoryId; + landsetInitializePacket->data().zoneId = m_territoryTypeId; //TODO: get current WorldId landsetInitializePacket->data().worldId = 67; landsetInitializePacket->data().subInstance = isPlayerSubInstance( player ) == false ? 1 : 2; diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index 9974a906..4d265df2 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -10,7 +10,7 @@ namespace Core { public: HousingZone( uint8_t landSetId, - uint16_t territoryId, + uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& contentName ); diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index c77d48f3..80af17bb 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -108,7 +108,7 @@ bool Core::TerritoryMgr::createDefaultTerritories() // for each entry in territoryTypeExd, check if it is a normal and if so, add the zone object for( const auto& territory : m_territoryTypeDetailCacheMap ) { - auto territoryId = territory.first; + auto territoryTypeId = territory.first; auto territoryInfo = territory.second; // if the zone has no name set @@ -117,24 +117,24 @@ bool Core::TerritoryMgr::createDefaultTerritories() auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName ); - if( !pPlaceName || pPlaceName->name.empty() || !isDefaultTerritory( territoryId ) ) + if( !pPlaceName || pPlaceName->name.empty() || !isDefaultTerritory( territoryTypeId ) ) continue; uint32_t guid = getNextInstanceId(); - pLog->info( std::to_string( territoryId ) + + pLog->info( std::to_string( territoryTypeId ) + "\t" + std::to_string( guid ) + "\t" + std::to_string( territoryInfo->territoryIntendedUse ) + "\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) + - "\t" + ( isPrivateTerritory( territoryId ) ? "PRIVATE" : "PUBLIC" ) + + "\t" + ( isPrivateTerritory( territoryTypeId ) ? "PRIVATE" : "PUBLIC" ) + "\t" + pPlaceName->name ); - auto pZone = make_Zone( territoryId, guid, territoryInfo->name, pPlaceName->name ); + auto pZone = make_Zone( territoryTypeId, guid, territoryInfo->name, pPlaceName->name ); pZone->init(); InstanceIdToZonePtrMap instanceMap; instanceMap[ guid ] = pZone; m_instanceIdToZonePtrMap[ guid ] = pZone; - m_territoryIdToInstanceGuidMap[ territoryId ] = instanceMap; + m_territoryTypeIdToInstanceGuidMap[ territoryTypeId ] = instanceMap; m_zoneSet.insert( { pZone } ); } @@ -149,7 +149,7 @@ bool Core::TerritoryMgr::createHousingTerritories() auto pLog = g_fw.get< Logger >(); for( const auto& territory : m_territoryTypeDetailCacheMap ) { - auto territoryId = territory.first; + auto territoryTypeId = territory.first; auto territoryInfo = territory.second; uint32_t wardNum; uint32_t wardMaxNum = 1; @@ -159,13 +159,13 @@ bool Core::TerritoryMgr::createHousingTerritories() auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName ); - if( !pPlaceName || pPlaceName->name.empty() || !isHousingTerritory( territoryId ) ) + if( !pPlaceName || pPlaceName->name.empty() || !isHousingTerritory( territoryTypeId ) ) continue; for( wardNum = 0; wardNum < wardMaxNum; wardNum++ ) { uint32_t guid = getNextInstanceId(); - pLog->info( std::to_string( territoryId ) + + pLog->info( std::to_string( territoryTypeId ) + "\t" + std::to_string( guid ) + "\t" + std::to_string( territoryInfo->territoryIntendedUse ) + "\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) + @@ -173,14 +173,14 @@ bool Core::TerritoryMgr::createHousingTerritories() "\t" + pPlaceName->name + "#" + std::to_string( wardNum ) ); - auto pHousingZone = make_HousingZone( wardNum, territoryId, guid, territoryInfo->name, pPlaceName->name ); + auto pHousingZone = make_HousingZone( wardNum, territoryTypeId, guid, territoryInfo->name, pPlaceName->name ); pHousingZone->init(); wardMaxNum = 18; InstanceIdToZonePtrMap instanceMap; instanceMap[ guid ] = pHousingZone; m_instanceIdToZonePtrMap[ guid ] = pHousingZone; - m_territoryIdToInstanceGuidMap[ territoryId ][ guid ] = pHousingZone; + m_territoryTypeIdToInstanceGuidMap[ territoryTypeId ][ guid ] = pHousingZone; m_zoneSet.insert( { pHousingZone } ); } @@ -212,7 +212,7 @@ Core::ZonePtr Core::TerritoryMgr::createTerritoryInstance( uint32_t territoryTyp pZone->init(); m_instanceIdToZonePtrMap[ pZone->getGuId() ] = pZone; - m_territoryIdToInstanceGuidMap[ pZone->getTerritoryId() ][ pZone->getGuId() ] = pZone; + m_territoryTypeIdToInstanceGuidMap[ pZone->getTerritoryTypeId() ][ pZone->getGuId() ] = pZone; m_zoneSet.insert( { pZone } ); return pZone; @@ -265,13 +265,13 @@ bool Core::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) m_instanceZoneSet.erase( pZone ); m_zoneSet.erase( pZone ); - if( isInstanceContentTerritory( pZone->getTerritoryId() ) ) + if( isInstanceContentTerritory( pZone->getTerritoryTypeId() ) ) { auto instance = std::dynamic_pointer_cast< InstanceContent >( pZone ); m_instanceContentToInstanceMap[ instance->getInstanceContentId() ].erase( pZone->getGuId() ); } else - m_territoryIdToInstanceGuidMap[ pZone->getTerritoryId() ].erase( pZone->getGuId() ); + m_territoryTypeIdToInstanceGuidMap[ pZone->getTerritoryTypeId() ].erase( pZone->getGuId() ); return true; @@ -340,10 +340,10 @@ Core::ZonePositionPtr Core::TerritoryMgr::getTerritoryPosition( uint32_t territo return nullptr; } -Core::ZonePtr Core::TerritoryMgr::getZoneByTerriId( uint32_t territoryId ) const +Core::ZonePtr Core::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const { - auto zoneMap = m_territoryIdToInstanceGuidMap.find( territoryId ); - if( zoneMap == m_territoryIdToInstanceGuidMap.end() ) + auto zoneMap = m_territoryTypeIdToInstanceGuidMap.find( territoryTypeId ); + if( zoneMap == m_territoryTypeIdToInstanceGuidMap.end() ) return nullptr; // TODO: actually select the proper one @@ -378,9 +378,9 @@ Core::TerritoryMgr::InstanceIdList Core::TerritoryMgr::getInstanceContentIdList( return idList; } -bool Core::TerritoryMgr::movePlayer( uint32_t territoryId, Core::Entity::PlayerPtr pPlayer ) +bool Core::TerritoryMgr::movePlayer( uint32_t territoryTypeId, Core::Entity::PlayerPtr pPlayer ) { - auto pZone = getZoneByTerriId( territoryId ); + auto pZone = getZoneByTerritoryTypeId( territoryTypeId ); assert( pZone ); return movePlayer( pZone, pPlayer ); } @@ -396,7 +396,7 @@ bool Core::TerritoryMgr::movePlayer( ZonePtr pZone, Core::Entity::PlayerPtr pPla pPlayer->initSpawnIdQueue(); - pPlayer->setTerritoryId( pZone->getTerritoryId() ); + pPlayer->setTerritoryTypeId( pZone->getTerritoryTypeId() ); // mark character as zoning in progress pPlayer->setLoadingComplete( false ); diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.h b/src/servers/sapphire_zone/Zone/TerritoryMgr.h index c78e3923..b3a390cf 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.h +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.h @@ -112,11 +112,11 @@ public: /*! returns a ZonePositionPtr if found, else nullptr */ ZonePositionPtr getTerritoryPosition( uint32_t territoryPositionId ) const; - /*! returns a default Zone by territoryId + /*! returns a default Zone by territoryTypeId TODO: Mind multiple instances?! */ - ZonePtr getZoneByTerriId( uint32_t territoryId ) const; + ZonePtr getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const; - bool movePlayer( uint32_t territoryId, Entity::PlayerPtr pPlayer ); + bool movePlayer( uint32_t territoryTypeId, Entity::PlayerPtr pPlayer ); bool movePlayer( ZonePtr, Entity::PlayerPtr pPlayer ); @@ -144,7 +144,7 @@ public: private: using TerritoryTypeDetailCache = std::unordered_map< uint16_t, Data::TerritoryTypePtr >; using InstanceIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; - using TerritoryIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; + using TerritoryTypeIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; using InstanceContentIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; using PlayerIdToInstanceIdMap = std::unordered_map< uint32_t, uint32_t >; using PositionMap = std::unordered_map< int32_t, ZonePositionPtr >; @@ -154,7 +154,7 @@ private: TerritoryTypeDetailCache m_territoryTypeDetailCacheMap; /*! map holding actual instances of default territories */ - TerritoryIdToInstanceMap m_territoryIdToInstanceGuidMap; + TerritoryTypeIdToInstanceMap m_territoryTypeIdToInstanceGuidMap; /*! map holding actual instances of InstanceContent */ InstanceContentIdToInstanceMap m_instanceContentToInstanceMap; diff --git a/src/servers/sapphire_zone/Zone/Zone.cpp b/src/servers/sapphire_zone/Zone/Zone.cpp index 5cc83a2f..5a343c3e 100644 --- a/src/servers/sapphire_zone/Zone/Zone.cpp +++ b/src/servers/sapphire_zone/Zone/Zone.cpp @@ -48,7 +48,7 @@ extern Core::Framework g_fw; * \brief */ Core::Zone::Zone() : - m_territoryId( 0 ), + m_territoryTypeId( 0 ), m_guId( 0 ), m_currentWeather( Weather::FairSkies ), m_weatherOverride( Weather::None ), @@ -57,20 +57,20 @@ Core::Zone::Zone() : { } -Core::Zone::Zone( uint16_t territoryId, uint32_t guId, const std::string& internalName, const std::string& placeName ) : +Core::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ) : m_currentWeather( Weather::FairSkies ), m_nextEObjId( 0x400D0000 ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); m_guId = guId; - m_territoryId = territoryId; + m_territoryTypeId = territoryTypeId; m_internalName = internalName; m_placeName = placeName; m_lastMobUpdate = 0; m_weatherOverride = Weather::None; - m_territoryTypeInfo = pExdData->get< Core::Data::TerritoryType >( territoryId ); + m_territoryTypeInfo = pExdData->get< Core::Data::TerritoryType >( territoryTypeId ); loadWeatherRates(); @@ -281,7 +281,7 @@ void Core::Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t Network::Packets::FFXIVPacketBasePtr pPacketEntry ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); - if( pTeriMgr->isPrivateTerritory( getTerritoryId() ) ) + if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) return; auto pServerZone = g_fw.get< ServerZone >(); @@ -306,9 +306,9 @@ void Core::Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t } } -uint32_t Core::Zone::getTerritoryId() const +uint32_t Core::Zone::getTerritoryTypeId() const { - return m_territoryId; + return m_territoryTypeId; } uint32_t Core::Zone::getGuId() const @@ -611,7 +611,7 @@ void Core::Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ) auto pTeriMgr = g_fw.get< TerritoryMgr >(); // TODO: make sure gms can overwrite this. Potentially temporary solution - if( pTeriMgr->isPrivateTerritory( getTerritoryId() ) ) + if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) return; auto iter = pCell->m_actors.begin(); @@ -661,7 +661,7 @@ void Core::Zone::onPlayerZoneIn( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( - "Zone::onEnterTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryId() ) + + "Zone::onEnterTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + +", Entity#" + std::to_string( player.getId() ) ); } @@ -669,7 +669,7 @@ void Core::Zone::onLeaveTerritory( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( - "Zone::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryId() ) + + "Zone::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + +", Entity#" + std::to_string( player.getId() ) ); } diff --git a/src/servers/sapphire_zone/Zone/Zone.h b/src/servers/sapphire_zone/Zone/Zone.h index b171c9b0..9a7f652a 100644 --- a/src/servers/sapphire_zone/Zone/Zone.h +++ b/src/servers/sapphire_zone/Zone/Zone.h @@ -30,11 +30,10 @@ struct InstanceContent; struct TerritoryType; } -class Zone : - public CellHandler< Cell >, public std::enable_shared_from_this< Zone > +class Zone : public CellHandler< Cell >, public std::enable_shared_from_this< Zone > { protected: - uint32_t m_territoryId; + uint32_t m_territoryTypeId; uint32_t m_guId; std::string m_placeName; @@ -62,7 +61,7 @@ protected: public: Zone(); - Zone( uint16_t territoryId, uint32_t guId, const std::string& internalName, const std::string& placeName ); + Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ); virtual ~Zone(); @@ -79,7 +78,7 @@ public: virtual void loadCellCache(); - virtual uint32_t getTerritoryId() const; + virtual uint32_t getTerritoryTypeId() const; virtual void onBeforePlayerZoneIn( Entity::Player& player ) {}; From 9f7500ba7593557f82fc267c21faa9e49906da5a Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 5 Nov 2018 23:39:08 +0100 Subject: [PATCH 011/385] Expanded debug string --- src/servers/sapphire_zone/Zone/HousingZone.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 3fbdc069..f406e7b3 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -76,8 +76,9 @@ Core::HousingZone::~HousingZone() void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); - pLog->debug( "HousingZone::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" - ", Entity#" + std::to_string( player.getId() ) ); + pLog->debug( + "HousingZone::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + + ", Entity#" + std::to_string( player.getId() ) ); uint32_t yardPacketNum; uint32_t yardPacketTotal = 8; From 43a9124ce7cd6c719c9619a58ce68c52ec93a2af Mon Sep 17 00:00:00 2001 From: mordred Date: Tue, 6 Nov 2018 10:36:45 +0100 Subject: [PATCH 012/385] Store and load territoryID --- src/servers/sapphire_zone/Actor/Player.h | 1 + src/servers/sapphire_zone/Actor/PlayerSql.cpp | 3 ++- src/servers/sapphire_zone/Zone/Zone.h | 10 ++++++---- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 51043a6c..59b1f931 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -998,6 +998,7 @@ namespace Core::Entity bool m_bAutoattack; Common::ZoneingType m_zoningType; + uint16_t m_territoryId; bool m_bMarkedForZoning; bool m_bNewAdventurer; diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index ab1b7704..1773c0c3 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -50,6 +50,7 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession ) strcpy( m_name, name.c_str() ); auto zoneId = res->getUInt( "TerritoryType" ); + m_territoryId = res->getUInt( "TerritoryId" ); m_prevZoneId = res->getUInt( "OTerritoryType" ); // Position @@ -365,7 +366,7 @@ void Core::Entity::Player::updateSql() stmt->setInt( 17, static_cast< uint32_t >( m_bNewAdventurer ) ); stmt->setInt( 18, m_zoneId ); // TerritoryType - stmt->setInt( 19, 0 ); // TerritoryId + stmt->setInt( 19, m_territoryId ); // TerritoryId stmt->setDouble( 20, m_pos.x ); stmt->setDouble( 21, m_pos.y ); stmt->setDouble( 22, m_pos.z ); diff --git a/src/servers/sapphire_zone/Zone/Zone.h b/src/servers/sapphire_zone/Zone/Zone.h index 9a7f652a..52530044 100644 --- a/src/servers/sapphire_zone/Zone/Zone.h +++ b/src/servers/sapphire_zone/Zone/Zone.h @@ -16,7 +16,8 @@ #include #include -namespace Core { +namespace Core +{ class Session; @@ -25,9 +26,10 @@ class ZonePosition; using SessionSet = std::set< SessionPtr >; using FestivalPair = std::pair< uint16_t, uint16_t >; -namespace Data { -struct InstanceContent; -struct TerritoryType; +namespace Data +{ + struct InstanceContent; + struct TerritoryType; } class Zone : public CellHandler< Cell >, public std::enable_shared_from_this< Zone > From 02e968fbc21c55a368f8d4ade10c569b82d7d2d1 Mon Sep 17 00:00:00 2001 From: mordred Date: Tue, 6 Nov 2018 10:48:46 +0100 Subject: [PATCH 013/385] Added getter and setter for territoryId to player --- src/servers/sapphire_zone/Actor/Player.cpp | 10 ++++++++++ src/servers/sapphire_zone/Actor/Player.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 00954034..c60e2d78 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -121,6 +121,16 @@ uint16_t Core::Entity::Player::getZoneId() const return m_zoneId; } +uint16_t Core::Entity::Player::getTerritoryId() const +{ + return m_territoryId; +} + +void Core::Entity::Player::setTerritoryId( uint16_t territoryId ) +{ + m_territoryId = territoryId; +} + uint8_t Core::Entity::Player::getGmRank() const { return m_gmRank; diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 59b1f931..59b5bd1b 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -777,6 +777,9 @@ namespace Core::Entity uint16_t getZoneId() const; + uint16_t getTerritoryId() const; + void setTerritoryId( uint16_t territoryId ); + uint8_t getGmRank() const; void setGmRank( uint8_t rank ); From 4f296b0fb3d72a04ad9630db92ac572d87ff45fb Mon Sep 17 00:00:00 2001 From: mordred Date: Tue, 6 Nov 2018 11:11:07 +0100 Subject: [PATCH 014/385] Create lookup for housing zones by landsetId, load housing zone from stored territoryId in player --- src/servers/sapphire_zone/Actor/PlayerSql.cpp | 4 ++ .../sapphire_zone/Zone/TerritoryMgr.cpp | 68 ++++++++++++------- src/servers/sapphire_zone/Zone/TerritoryMgr.h | 27 +++++--- 3 files changed, 66 insertions(+), 33 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index 1773c0c3..1ca935f7 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -82,6 +82,10 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession ) pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId ); } } + else if( pTeriMgr->isHousingTerritory( zoneId ) ) + { + pCurrZone = pTeriMgr->getZoneByLandSetId( m_territoryId ); + } else { pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId ); diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index 80af17bb..2cbd4789 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -100,6 +100,29 @@ bool Core::TerritoryMgr::isPrivateTerritory( uint32_t territoryTypeId ) const pTeri->territoryIntendedUse == TerritoryIntendedUse::MSQPrivateArea; } +bool Core::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) const +{ + auto pTeri = getTerritoryDetail( territoryTypeId ); + + if( !pTeri ) + return false; + + return pTeri->territoryIntendedUse == TerritoryIntendedUse::Inn || + pTeri->territoryIntendedUse == TerritoryIntendedUse::Town || + pTeri->territoryIntendedUse == TerritoryIntendedUse::OpenWorld || + pTeri->territoryIntendedUse == TerritoryIntendedUse::OpeningArea; + +} + +bool Core::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) const +{ + auto pTeri = getTerritoryDetail( territoryTypeId ); + + if( !pTeri ) + return false; + + return pTeri->territoryIntendedUse == TerritoryIntendedUse::HousingArea; +} bool Core::TerritoryMgr::createDefaultTerritories() { @@ -181,6 +204,7 @@ bool Core::TerritoryMgr::createHousingTerritories() instanceMap[ guid ] = pHousingZone; m_instanceIdToZonePtrMap[ guid ] = pHousingZone; m_territoryTypeIdToInstanceGuidMap[ territoryTypeId ][ guid ] = pHousingZone; + m_landSetIdToZonePtrMap[ pHousingZone->getLandSetId() ] = pHousingZone; m_zoneSet.insert( { pHousingZone } ); } @@ -306,30 +330,6 @@ void Core::TerritoryMgr::loadTerritoryPositionMap() } } -bool Core::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) const -{ - auto pTeri = getTerritoryDetail( territoryTypeId ); - - if( !pTeri ) - return false; - - return pTeri->territoryIntendedUse == TerritoryIntendedUse::Inn || - pTeri->territoryIntendedUse == TerritoryIntendedUse::Town || - pTeri->territoryIntendedUse == TerritoryIntendedUse::OpenWorld || - pTeri->territoryIntendedUse == TerritoryIntendedUse::OpeningArea; - -} - -bool Core::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) const -{ - auto pTeri = getTerritoryDetail( territoryTypeId ); - - if( !pTeri ) - return false; - - return pTeri->territoryIntendedUse == TerritoryIntendedUse::HousingArea; -} - Core::ZonePositionPtr Core::TerritoryMgr::getTerritoryPosition( uint32_t territoryPositionId ) const { auto it = m_territoryPositionMap.find( territoryPositionId ); @@ -350,6 +350,15 @@ Core::ZonePtr Core::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTy return zoneMap->second.begin()->second; } +Core::ZonePtr Core::TerritoryMgr::getZoneByLandSetId( uint32_t landSetId ) const +{ + auto zoneMap = m_landSetIdToZonePtrMap.find( landSetId ); + if( zoneMap == m_landSetIdToZonePtrMap.end() ) + return nullptr; + + return zoneMap->second; +} + void Core::TerritoryMgr::updateTerritoryInstances( uint32_t currentTime ) { for( auto& zone : m_zoneSet ) @@ -398,6 +407,17 @@ bool Core::TerritoryMgr::movePlayer( ZonePtr pZone, Core::Entity::PlayerPtr pPla pPlayer->setTerritoryTypeId( pZone->getTerritoryTypeId() ); + if( isHousingTerritory( pZone->getTerritoryTypeId() ) ) + { + auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); + if( pHousing ) + pPlayer->setTerritoryId( pHousing->getLandSetId() ); + } + else + { + pPlayer->setTerritoryId( 0 ); + } + // mark character as zoning in progress pPlayer->setLoadingComplete( false ); diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.h b/src/servers/sapphire_zone/Zone/TerritoryMgr.h index b3a390cf..8e08fdef 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.h +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.h @@ -5,18 +5,20 @@ #include #include -namespace Core { -namespace Data { -// TODO: this should actually not be here but should be generated in exdData aswell -struct PlaceName; -struct TerritoryType; -struct InstanceContent; +namespace Core::Data +{ + // TODO: this should actually not be here but should be generated in exdData aswell + struct PlaceName; + struct TerritoryType; + struct InstanceContent; -using PlaceNamePtr = std::shared_ptr< PlaceName >; -using TerritoryTypePtr = std::shared_ptr< TerritoryType >; -using InstanceContentPtr = std::shared_ptr< InstanceContent >; + using PlaceNamePtr = std::shared_ptr< PlaceName >; + using TerritoryTypePtr = std::shared_ptr< TerritoryType >; + using InstanceContentPtr = std::shared_ptr< InstanceContent >; } +namespace Core +{ /*! \class TerritoryMgr_c \brief A class managing zones @@ -115,6 +117,9 @@ public: /*! returns a default Zone by territoryTypeId TODO: Mind multiple instances?! */ ZonePtr getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const; + + /*! returns a Zone by landSetId */ + ZonePtr getZoneByLandSetId( uint32_t landSetId ) const; bool movePlayer( uint32_t territoryTypeId, Entity::PlayerPtr pPlayer ); @@ -144,6 +149,7 @@ public: private: using TerritoryTypeDetailCache = std::unordered_map< uint16_t, Data::TerritoryTypePtr >; using InstanceIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; + using LandSetIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; using TerritoryTypeIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; using InstanceContentIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; using PlayerIdToInstanceIdMap = std::unordered_map< uint32_t, uint32_t >; @@ -156,6 +162,9 @@ private: /*! map holding actual instances of default territories */ TerritoryTypeIdToInstanceMap m_territoryTypeIdToInstanceGuidMap; + /*! map holding actual instances of default territories */ + LandSetIdToZonePtrMap m_landSetIdToZonePtrMap; + /*! map holding actual instances of InstanceContent */ InstanceContentIdToInstanceMap m_instanceContentToInstanceMap; From fa80e53bd4acf0d39c8845461072ba0b95e405e4 Mon Sep 17 00:00:00 2001 From: mordred Date: Tue, 6 Nov 2018 13:05:39 +0100 Subject: [PATCH 015/385] Field size fix --- src/servers/sapphire_zone/Actor/Player.cpp | 8 ++++---- src/servers/sapphire_zone/Actor/Player.h | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index c60e2d78..e7b06de2 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -121,12 +121,12 @@ uint16_t Core::Entity::Player::getZoneId() const return m_zoneId; } -uint16_t Core::Entity::Player::getTerritoryId() const +uint32_t Core::Entity::Player::getTerritoryId() const { return m_territoryId; } -void Core::Entity::Player::setTerritoryId( uint16_t territoryId ) +void Core::Entity::Player::setTerritoryId( uint32_t territoryId ) { m_territoryId = territoryId; } @@ -1580,6 +1580,8 @@ void Core::Entity::Player::sendZonePackets() initZonePacket->data().pos.z = getPos().z; queuePacket( initZonePacket ); + getCurrentZone()->onPlayerZoneIn( *this ); + if( isLogin() ) { auto unk322 = makeZonePacket< FFXIVARR_IPC_UNK322 >( getId() ); @@ -1592,8 +1594,6 @@ void Core::Entity::Player::sendZonePackets() if( getLastPing() == 0 ) sendQuestInfo(); - getCurrentZone()->onPlayerZoneIn( *this ); - m_bMarkedForZoning = false; } diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 59b5bd1b..1bf9fe72 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -777,8 +777,8 @@ namespace Core::Entity uint16_t getZoneId() const; - uint16_t getTerritoryId() const; - void setTerritoryId( uint16_t territoryId ); + uint32_t getTerritoryId() const; + void setTerritoryId( uint32_t territoryId ); uint8_t getGmRank() const; @@ -1001,7 +1001,7 @@ namespace Core::Entity bool m_bAutoattack; Common::ZoneingType m_zoningType; - uint16_t m_territoryId; + uint32_t m_territoryId; bool m_bMarkedForZoning; bool m_bNewAdventurer; From 22c3b45c64cca25d0a57de90ef59d9705af62f45 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 6 Nov 2018 23:25:37 +0100 Subject: [PATCH 016/385] Fixed various small offset issues / packet sizes --- src/common/Common.h | 9 ++-- src/common/Network/PacketDef/Ipcs.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 20 +++++---- src/servers/sapphire_zone/Actor/Player.cpp | 45 ++++++++++++++++++- .../sapphire_zone/Zone/HousingZone.cpp | 10 +++++ 5 files changed, 72 insertions(+), 14 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index e1bbd877..c06868c6 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -393,6 +393,7 @@ namespace Core::Common c.UI8E = 0; c.UI8F = 0; c.padding = 0; + c.padding1 = 0; } @@ -760,10 +761,10 @@ namespace Core::Common struct HousePermissionSet { - uint16_t landSetId; //00 - uint16_t wardNum; //02 - uint16_t zoneId; //04 - uint16_t worldId; //06 + int16_t landSetId; //00 + int16_t wardNum; //02 + int16_t zoneId; //04 + int16_t worldId; //06 uint32_t permissionMask; //08 uint32_t unkown1; //12 }; diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index e909b248..e11af4a3 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -193,7 +193,7 @@ namespace Core::Network::Packets LandPermission = 0x0229, // updated 4.4 LandSetYardInitialize = 0x022C, // updated 4.4 YardObjectMove = 0x0230, // updated 4.4 - LandSetExtending = 0x0251, // updated 4.4 + LandSetMap = 0x0251, // updated 4.4 SharedEstateSettingsResponse = 0x023C, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 9fb7a79b..15da9755 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -750,7 +750,8 @@ struct FFXIVIpcInitZone : FFXIVIpcBasePacket< InitZone > uint32_t unknown3; uint32_t unknown4; uint8_t weatherId; - uint16_t bitmask; + uint8_t bitmask; + uint8_t bitmask1; uint8_t unknown5; uint16_t festivalId; uint16_t additionalFestivalId; @@ -1339,7 +1340,7 @@ struct FFXIVIpcQuestUpdate : struct FFXIVIpcQuestCompleteList : FFXIVIpcBasePacket< QuestCompleteList > { - uint8_t questCompleteMask[396]; + uint8_t questCompleteMask[480]; uint8_t unknownCompleteMask[32]; }; @@ -1604,15 +1605,18 @@ struct FFXIVIpcLandPriceUpdate : FFXIVIpcBasePacket< LandPriceUpdate > uint32_t timeLeft; }; -struct FFXIVIpcLandSetExtend : FFXIVIpcBasePacket< LandSetExtending > +struct FFXIVIpcLandSetMap : FFXIVIpcBasePacket< LandSetMap > { + uint8_t u1; + uint8_t subdivision; + uint8_t u3; struct { - uint8_t houseSize; - uint8_t houseState; - uint8_t iconColor; - uint8_t iconIconAdd; - } landset[30]; + uint8_t status; + uint8_t size; + uint8_t isPrivate; + } landInfo[ 30 ]; + uint8_t padding[ 3 ]; }; struct FFXIVIpcLandSetInitialize : FFXIVIpcBasePacket< LandSetInitialize > diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index e7b06de2..af23d984 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1568,10 +1568,53 @@ void Core::Entity::Player::sendZonePackets() sendItemLevel(); } + struct HousePermissionSet + { + int16_t landSetId; //00 + int16_t wardNum; //02 + int16_t zoneId; //04 + int16_t worldId; //06 + uint32_t permissionMask; //08 + uint32_t unkown1; //12 + }; + + auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); + landPermissions->data().freeCompanyHouse.landSetId = -1; + landPermissions->data().freeCompanyHouse.wardNum = -1; + landPermissions->data().freeCompanyHouse.zoneId = -1; + landPermissions->data().freeCompanyHouse.worldId = -1; + landPermissions->data().unkown1 = 0; + landPermissions->data().privateHouse.landSetId = -1; + landPermissions->data().privateHouse.wardNum = -1; + landPermissions->data().privateHouse.zoneId = -1; + landPermissions->data().privateHouse.worldId = -1; + landPermissions->data().unkown2 = 0; + landPermissions->data().apartment.landSetId = -1; + landPermissions->data().apartment.wardNum = -1; + landPermissions->data().apartment.zoneId = -1; + landPermissions->data().apartment.worldId = -1; + landPermissions->data().unkown3 = 0; + landPermissions->data().sharedHouse[0].landSetId = -1; + landPermissions->data().sharedHouse[0].wardNum = -1; + landPermissions->data().sharedHouse[0].zoneId = -1; + landPermissions->data().sharedHouse[0].worldId = -1; + landPermissions->data().sharedHouse[1].landSetId = -1; + landPermissions->data().sharedHouse[1].wardNum = -1; + landPermissions->data().sharedHouse[1].zoneId = -1; + landPermissions->data().sharedHouse[1].worldId = -1; + landPermissions->data().unkown4 = 0; + landPermissions->data().unkownHouse.landSetId = -1; + landPermissions->data().unkownHouse.wardNum = -1; + landPermissions->data().unkownHouse.zoneId = -1; + landPermissions->data().unkownHouse.worldId = -1; + landPermissions->data().unkown5 = 2; + queuePacket( landPermissions ); + + auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId(); initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() ); - initZonePacket->data().bitmask = 0x1; //Setting this to 16 (deciaml) makes it so you can fly in the area (more research needed!) + initZonePacket->data().bitmask = 0x1; //Setting this to 16 (decimal) makes it so you can fly in the area (more research needed!) initZonePacket->data().unknown5 = 0x2A; initZonePacket->data().festivalId = getCurrentZone()->getCurrentFestival().first; initZonePacket->data().additionalFestivalId = getCurrentZone()->getCurrentFestival().second; diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index f406e7b3..094425eb 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -99,6 +99,16 @@ void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) player.queuePacket( landsetYardInitializePacket ); } + auto landSetMap = makeZonePacket< FFXIVIpcLandSetMap >( player.getId() ); + landSetMap->data().subdivision = isPlayerSubInstance( player ) == false ? 1 : 2; + uint8_t startIndex = isPlayerSubInstance( player ) == false ? 0 : 30; + for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); i++, count++ ) + { + landSetMap->data().landInfo[ count ].status = 1; + //memcpy( , &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); + } + player.queuePacket( landSetMap ); + } void Core::HousingZone::sendLandSet( Entity::Player& player ) From 3559db889294e8935f4b7d1e968d067a26336591 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 6 Nov 2018 23:36:34 +0100 Subject: [PATCH 017/385] Sending quest info on loading finish, fixes housing login crash --- src/servers/sapphire_zone/Actor/Player.cpp | 4 ++-- src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index af23d984..658727bc 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1634,8 +1634,8 @@ void Core::Entity::Player::sendZonePackets() queuePacket( unk320 ); } - if( getLastPing() == 0 ) - sendQuestInfo(); +// if( getLastPing() == 0 ) +// sendQuestInfo(); m_bMarkedForZoning = false; } diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index dce368de..c61c7730 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -433,6 +433,7 @@ void Core::Network::GameConnection::pingHandler( const Core::Network::Packets::F void Core::Network::GameConnection::finishLoadingHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { + player.sendQuestInfo(); player.getCurrentZone()->onFinishLoading( player ); // player is done zoning From 5aacca21c25c7a14d6ee02093ebfe735d45dd1dd Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Wed, 7 Nov 2018 09:05:03 +0100 Subject: [PATCH 018/385] added housing item UI --- src/common/Network/CommonActorControl.h | 4 ++++ .../Network/Handlers/ClientTriggerHandler.cpp | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 0d510483..ee2833e2 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -212,6 +212,9 @@ enum ActorControlType : BeginReplayAck = 0x3A1, EndReplayAck = 0x3A2, + // Housing + ShowHousingItemUI = 0x3F7, + // PvP Duel SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client) EndDuelSession = 0x5E1, // because someone went oob? @@ -287,6 +290,7 @@ enum ClientTriggerType AchievementList = 0x3E9, RequestHousingSign = 0x451, + RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, CompanionAction = 0x6A4, diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index dfffc85c..d1590728 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -332,6 +332,17 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR break; } + case ClientTriggerType::RequestHousingItemUI: + { + uint8_t plot = param2; + auto pShowHousingItemUIPacket = makeActorControl142(player.getId(), ShowHousingItemUI, 0, plot); + + //TODO: show item housing container + + player.queuePacket( pShowHousingItemUIPacket ); + break; + } + default: { pLog->debug( "[" + std::to_string( m_pSession->getId() ) + "] Unhandled action: " + From 903b38f32b8b5945cbea946e06e5951603422b58 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Wed, 7 Nov 2018 09:27:57 +0100 Subject: [PATCH 019/385] some fix --- .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index d1590728..9db8f886 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -334,12 +334,13 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR case ClientTriggerType::RequestHousingItemUI: { - uint8_t plot = param2; + uint32_t plot = param2; auto pShowHousingItemUIPacket = makeActorControl142(player.getId(), ShowHousingItemUI, 0, plot); + player.queuePacket( pShowHousingItemUIPacket ); + //TODO: show item housing container - player.queuePacket( pShowHousingItemUIPacket ); break; } From 23d354208860bd40dded70c91c5ecdff21822283 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Wed, 7 Nov 2018 10:49:02 +0100 Subject: [PATCH 020/385] removed space --- .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 9db8f886..af30a278 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -331,7 +331,6 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR break; } - case ClientTriggerType::RequestHousingItemUI: { uint32_t plot = param2; From 0f8637426469fe79da807a4f6c3ff69f6986276e Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Wed, 7 Nov 2018 11:08:07 +0100 Subject: [PATCH 021/385] added devaluation timer --- .../Network/Handlers/ClientTriggerHandler.cpp | 1 + src/servers/sapphire_zone/Zone/Land.cpp | 28 +++++++++++++------ src/servers/sapphire_zone/Zone/Land.h | 2 ++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index af30a278..380e746a 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -326,6 +326,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR auto land = hZone->getLand( plot ); plotPricePacket->data().price = land->getCurrentPrice(); + plotPricePacket->data().timeLeft = land->getDevaluationTime(); player.queuePacket( plotPricePacket ); diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index d9575b31..4b8384fe 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -237,6 +237,11 @@ uint32_t Core::Land::getMaxItems() return m_maxItems; } +uint32_t Core::Land::getDevaluationTime() +{ + return m_devaluationTime; +} + void Core::Land::init() { @@ -269,18 +274,23 @@ void Core::Land::UpdateDatabase() void Core::Land::Update( uint32_t currTime ) { - if( m_currentPrice == 0 && getState() == HouseState::forSale ) + if( getState() == HouseState::forSale ) { - m_currentPrice = m_initPrice; - m_nextDrop = 0; - UpdateDatabase(); - } - if( m_nextDrop < currTime && getState() == HouseState::forSale ) - { - m_currentPrice = ( m_currentPrice / 100 ) * 90; - m_nextDrop = currTime + 86400; + if( m_nextDrop < currTime ) + { + m_nextDrop = currTime + 21600; // +6 hours + if( m_currentPrice == 0 ) + { + m_currentPrice = m_initPrice; + } + else + { + m_currentPrice = ( m_currentPrice / 100 ) * 99.58; + } + } UpdateDatabase(); } + m_devaluationTime = m_nextDrop - currTime; onUpdate(); } diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index c3f958f8..746b2b63 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -58,6 +58,7 @@ namespace Core uint32_t getMaxItems(); uint32_t getCurrentPrice() const; + uint32_t getDevaluationTime(); private: uint16_t convertItemIdToHousingItemId( uint16_t itemId ); @@ -79,6 +80,7 @@ namespace Core //price uint32_t m_initPrice; uint32_t m_nextDrop; + uint32_t m_devaluationTime; uint32_t m_currentPrice; }; From e832c078d504cb7fb88065ddb3cf754d7a1292db Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Wed, 7 Nov 2018 11:56:49 +0100 Subject: [PATCH 022/385] added Land Update function --- src/servers/sapphire_zone/Zone/HousingZone.cpp | 14 ++++++++++++++ src/servers/sapphire_zone/Zone/HousingZone.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 094425eb..22ee225e 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -131,6 +131,20 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) player.queuePacket( landsetInitializePacket ); } +void Core::HousingZone::sendLandUpdate( uint8_t landId ) +{ + for( const auto& playerIt : m_playerMap ) + { + auto pPlayer = playerIt.second; + + auto landUpdatePacket = makeZonePacket< FFXIVIpcLandUpdate >( pPlayer->getId() ); + landUpdatePacket->data().landId = landId; + landUpdatePacket->data().land = getLand( landId )->getLand(); + + pPlayer->queuePacket( landUpdatePacket ); + } +} + bool Core::HousingZone::isPlayerSubInstance( Entity::Player& player ) { return player.getPos().x < -15000.0f; //ToDo: get correct pos diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index 4d265df2..c2c6619f 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -23,6 +23,7 @@ namespace Core void onUpdate( uint32_t currTime ) override; void sendLandSet( Entity::Player& player ); + void sendLandUpdate( uint8_t landId ); bool isPlayerSubInstance( Entity::Player& player ); /* returns current ward number for this zone */ From e73613f4434127d3d30c44dfae9d8e729ccca8b9 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Wed, 7 Nov 2018 11:59:59 +0100 Subject: [PATCH 023/385] More stuff --- src/common/Common.h | 11 ++- .../Network/PacketDef/Zone/ServerZoneDef.h | 12 +-- src/servers/sapphire_zone/Actor/Player.cpp | 79 +++++++++---------- src/servers/sapphire_zone/Actor/Player.h | 9 +++ src/servers/sapphire_zone/Zone/Land.cpp | 8 +- src/servers/sapphire_zone/Zone/Land.h | 1 - 6 files changed, 63 insertions(+), 57 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index c06868c6..1596cfe4 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -759,7 +759,16 @@ namespace Core::Common uint8_t color[ 8 ]; // 36 }; - struct HousePermissionSet + enum LandPermissionSlot + { + FreeCompany, + Private, + Apartment, + SharedHouse1, + SharedHouse2 + }; + + struct LandPermissionSet { int16_t landSetId; //00 int16_t wardNum; //02 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 15da9755..b17910cf 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1578,21 +1578,21 @@ struct FFXIVIpcPerformNote : FFXIVIpcBasePacket< PerformNote > //IPCs struct FFXIVIpcLandPermission : FFXIVIpcBasePacket { - Common::HousePermissionSet freeCompanyHouse; // 00 + Common::LandPermissionSet freeCompanyHouse; // 00 uint64_t unkown1; - Common::HousePermissionSet privateHouse; // 24 + Common::LandPermissionSet privateHouse; // 24 uint64_t unkown2; - Common::HousePermissionSet apartment; // 48 + Common::LandPermissionSet apartment; // 48 uint64_t unkown3; - Common::HousePermissionSet sharedHouse[2]; //72 + Common::LandPermissionSet sharedHouse[2]; //72 uint64_t unkown4; - Common::HousePermissionSet unkownHouse; + Common::LandPermissionSet unkownHouse; uint64_t unkown5; }; struct FFXIVIpcLandUpdate : FFXIVIpcBasePacket< LandUpdate > { - uint16_t landSetId; + uint16_t landId; uint16_t unknow0; uint16_t unknow1; uint16_t unknow2; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 658727bc..e989149f 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -89,6 +89,12 @@ Core::Entity::Player::Player() : memset( m_classArray, 0, sizeof( m_classArray ) ); memset( m_expArray, 0, sizeof( m_expArray ) ); + for ( uint8_t i = 0; i < 5; i++ ) + { + memset( &m_housePermission[i], 0xFF, 8 ); + memset( &m_housePermission[i].permissionMask, 0, 8 ); + } + m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS ); m_actorSpawnIndexAllocator.init( MAX_DISPLAYED_ACTORS, true ); } @@ -1568,48 +1574,7 @@ void Core::Entity::Player::sendZonePackets() sendItemLevel(); } - struct HousePermissionSet - { - int16_t landSetId; //00 - int16_t wardNum; //02 - int16_t zoneId; //04 - int16_t worldId; //06 - uint32_t permissionMask; //08 - uint32_t unkown1; //12 - }; - - auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); - landPermissions->data().freeCompanyHouse.landSetId = -1; - landPermissions->data().freeCompanyHouse.wardNum = -1; - landPermissions->data().freeCompanyHouse.zoneId = -1; - landPermissions->data().freeCompanyHouse.worldId = -1; - landPermissions->data().unkown1 = 0; - landPermissions->data().privateHouse.landSetId = -1; - landPermissions->data().privateHouse.wardNum = -1; - landPermissions->data().privateHouse.zoneId = -1; - landPermissions->data().privateHouse.worldId = -1; - landPermissions->data().unkown2 = 0; - landPermissions->data().apartment.landSetId = -1; - landPermissions->data().apartment.wardNum = -1; - landPermissions->data().apartment.zoneId = -1; - landPermissions->data().apartment.worldId = -1; - landPermissions->data().unkown3 = 0; - landPermissions->data().sharedHouse[0].landSetId = -1; - landPermissions->data().sharedHouse[0].wardNum = -1; - landPermissions->data().sharedHouse[0].zoneId = -1; - landPermissions->data().sharedHouse[0].worldId = -1; - landPermissions->data().sharedHouse[1].landSetId = -1; - landPermissions->data().sharedHouse[1].wardNum = -1; - landPermissions->data().sharedHouse[1].zoneId = -1; - landPermissions->data().sharedHouse[1].worldId = -1; - landPermissions->data().unkown4 = 0; - landPermissions->data().unkownHouse.landSetId = -1; - landPermissions->data().unkownHouse.wardNum = -1; - landPermissions->data().unkownHouse.zoneId = -1; - landPermissions->data().unkownHouse.worldId = -1; - landPermissions->data().unkown5 = 2; - queuePacket( landPermissions ); - + sendLandPermissions(); auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId(); @@ -1786,3 +1751,33 @@ bool Core::Entity::Player::isOnEnterEventDone() const { return m_onEnterEventDone; } + +void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landSetId, int16_t wardNum, int16_t zoneId ) +{ + m_housePermission[permissionSet].landSetId = landSetId; + m_housePermission[permissionSet].permissionMask = permissionMask; + m_housePermission[permissionSet].wardNum = wardNum; + m_housePermission[permissionSet].worldId = 67; + m_housePermission[permissionSet].unkown1 = 0; +} + +void Core::Entity::Player::sendLandPermissions() +{ + auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); + + landPermissions->data().freeCompanyHouse = m_housePermission[Common::LandPermissionSlot::FreeCompany]; + landPermissions->data().privateHouse = m_housePermission[Common::LandPermissionSlot::Private]; + landPermissions->data().apartment = m_housePermission[Common::LandPermissionSlot::Apartment]; + landPermissions->data().sharedHouse[0] = m_housePermission[Common::LandPermissionSlot::SharedHouse1]; + landPermissions->data().sharedHouse[1] = m_housePermission[Common::LandPermissionSlot::SharedHouse2]; + memset( &landPermissions->data().unkownHouse, 0xFF, 8 ); + memset( &landPermissions->data().unkownHouse.permissionMask, 0, 8 ); + landPermissions->data().unkownHouse.permissionMask = 2; + landPermissions->data().unkown1 = 0; + landPermissions->data().unkown2 = 0; + landPermissions->data().unkown3 = 0; + landPermissions->data().unkown4 = 0; + landPermissions->data().unkown5 = 0; + + queuePacket( landPermissions ); +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 1bf9fe72..f0aefd21 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -761,6 +761,12 @@ namespace Core::Entity void setDirectorInitialized( bool isInitialized ); + // Housing Handling + ////////////////////////////////////////////////////////////////////////////////////////////////////// + void setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landSetId, int16_t wardNum, int16_t zoneId ); + + void sendLandPermissions(); + // Player Battle Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// void initHateSlotQueue(); @@ -1013,6 +1019,9 @@ namespace Core::Entity uint8_t m_searchSelectRegion; // regions selected to show up in profile uint8_t m_searchSelectClass; // class selected to show up in profile + // housing info + Common::LandPermissionSet m_housePermission[5]; + // gc info uint8_t m_gc; uint8_t m_gcRank[3]; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 4b8384fe..7b8881ea 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -288,13 +288,7 @@ void Core::Land::Update( uint32_t currTime ) m_currentPrice = ( m_currentPrice / 100 ) * 99.58; } } + m_devaluationTime = m_nextDrop - currTime; UpdateDatabase(); } - m_devaluationTime = m_nextDrop - currTime; - onUpdate(); -} - -void Core::Land::onUpdate() -{ - } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 746b2b63..891e00b4 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -52,7 +52,6 @@ namespace Core void setPreset( uint32_t itemId ); void UpdateDatabase(); void Update( uint32_t currTime ); - void onUpdate(); const Common::LandStruct& getLand(); uint32_t getMaxItems(); From 49b3e35e15f32c3767546723453cf6fa105f8fe6 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Wed, 7 Nov 2018 13:16:25 +0100 Subject: [PATCH 024/385] class fix --- src/servers/sapphire_zone/Zone/Land.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 7b8881ea..a9c93b67 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -33,7 +33,8 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_currentPrice( 0 ), m_nextDrop( 0 ), m_landSetId( landSetId ), - m_landInfo( info ) + m_landInfo( info ), + m_devaluationTime( 0 ) { memset( &m_land, 0x00, sizeof( LandStruct ) ); load(); From 9dcc9666227513c205e1180bf1ae5315e70b3557 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Thu, 8 Nov 2018 10:54:37 +0100 Subject: [PATCH 025/385] added housing debugHandler --- .../DebugCommand/DebugCommandHandler.cpp | 49 +++++++++++++++++++ .../DebugCommand/DebugCommandHandler.h | 2 + 2 files changed, 51 insertions(+) diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 276acd3a..daae8d45 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -27,6 +27,7 @@ #include "Actor/BNpc.h" #include "Zone/Zone.h" +#include "Zone/HousingZone.h" #include "Zone/InstanceContent.h" #include "Zone/TerritoryMgr.h" #include "Event/EventDefs.h" @@ -57,6 +58,7 @@ Core::DebugCommandHandler::DebugCommandHandler() registerCommand( "help", &DebugCommandHandler::help, "Shows registered commands.", 0 ); registerCommand( "script", &DebugCommandHandler::script, "Server script utilities.", 1 ); registerCommand( "instance", &DebugCommandHandler::instance, "Instance utilities", 1 ); + registerCommand( "housing", &DebugCommandHandler::housing, "Housing utilities", 1 ); } // clear all loaded commands @@ -981,3 +983,50 @@ Core::DebugCommandHandler::instance( char* data, Entity::Player& player, std::sh player.sendDebug( "Unknown sub command." ); } } + +void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +{ + auto pTeriMgr = g_fw.get< TerritoryMgr >(); + std::string cmd( data ), params, subCommand; + auto cmdPos = cmd.find_first_of( ' ' ); + + if( cmdPos != std::string::npos ) + { + params = cmd.substr( cmdPos + 1 ); + + auto p = params.find_first_of( ' ' ); + + if( p != std::string::npos ) + { + subCommand = params.substr( 0, p ); + params = params.substr( subCommand.length() + 1 ); + } + else + subCommand = params; + } + + if( subCommand == "permission" || subCommand == "perm" ) + { + uint8_t permissionSet; + sscanf( params.c_str(), "%hhu", &permissionSet ); + + if ( permissionSet < 5 ) + { + auto pZone = player.getCurrentZone(); + if( pTeriMgr->isHousingTerritory( pZone->getTerritoryTypeId() ) ) + { + auto pHousing = std::dynamic_pointer_cast( pZone ); + if( pHousing ) + player.setLandPermissions( permissionSet, 8, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + else + player.sendDebug( "You aren't in a housing Zone." ); + } + } + else + player.sendDebug( "PermissionSet out of range." ); + } + else + { + player.sendDebug( "Unknown sub command." ); + } +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h index 89373038..3a9ebc80 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h @@ -53,6 +53,8 @@ namespace Core void instance( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ); + void housing( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command) ; + void script( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ); }; From 84c5555cdd581ee5707b79c52618448386a3a45a Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Thu, 8 Nov 2018 22:17:25 +0100 Subject: [PATCH 026/385] fixed style --- src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index daae8d45..24108b0e 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -1015,7 +1015,7 @@ void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std auto pZone = player.getCurrentZone(); if( pTeriMgr->isHousingTerritory( pZone->getTerritoryTypeId() ) ) { - auto pHousing = std::dynamic_pointer_cast( pZone ); + auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); if( pHousing ) player.setLandPermissions( permissionSet, 8, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); else From c551a766f3280f30659ce666f1da9c8d7898293f Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Thu, 8 Nov 2018 22:19:26 +0100 Subject: [PATCH 027/385] fixed style 2 --- .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 380e746a..cb30f491 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -335,7 +335,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR case ClientTriggerType::RequestHousingItemUI: { uint32_t plot = param2; - auto pShowHousingItemUIPacket = makeActorControl142(player.getId(), ShowHousingItemUI, 0, plot); + auto pShowHousingItemUIPacket = makeActorControl142( player.getId(), ShowHousingItemUI, 0, plot ); player.queuePacket( pShowHousingItemUIPacket ); From 9cc2cd633fa1f60a34472dd444f60969e2407f05 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 9 Nov 2018 09:49:43 +0100 Subject: [PATCH 028/385] added min prices --- src/common/Exd/ExdDataGenerated.cpp | 2 ++ src/common/Exd/ExdDataGenerated.h | 1 + src/servers/sapphire_zone/Zone/Land.cpp | 12 +++++++----- src/servers/sapphire_zone/Zone/Land.h | 1 + 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index 5359bbc7..83cd85e0 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -2745,6 +2745,8 @@ Core::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Core::Data::ExdData auto row = exdData->m_HousingLandSetDat.get_row( row_id ); for ( int i = 0; i < 60; i++ ) sizes.push_back( exdData->getField< uint8_t >( row, i ) ); + for ( int i = 60; i < 60 + 60; i++ ) + minPrices.push_back( exdData->getField< uint8_t >( row, i ) ); for ( int i = 300; i < 300 + 60; i++ ) prices.push_back( exdData->getField< uint32_t >( row, i ) ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index d77e606e..b4da203b 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -2853,6 +2853,7 @@ struct HousingPlacement struct HousingLandSet { std::vector< uint8_t > sizes; + std::vector< uint32_t > minPrices; std::vector< uint32_t > prices; HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index a9c93b67..97d4b3b2 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -47,7 +47,6 @@ Core::Land::~Land() void Core::Land::load() { - m_land.houseState = HouseState::forSale; auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -55,14 +54,13 @@ void Core::Land::load() "AND landid = " + std::to_string( m_landId ) ); if( !res->next() ) { - - pDb->directExecute( "INSERT INTO land ( landsetid, landid, size, status, landprice ) " "VALUES ( " + std::to_string( m_landSetId ) + "," + std::to_string( m_landId ) + "," + std::to_string( m_landInfo->sizes[ m_landId ] ) + "," + " 1, " + std::to_string( m_landInfo->prices[ m_landId ] ) + " );" ); m_currentPrice = m_landInfo->prices[ m_landId ]; + m_minPrice = m_landInfo->minPrices[ m_landId ]; m_land.houseSize = m_landInfo->sizes[ m_landId ]; } else @@ -284,12 +282,16 @@ void Core::Land::Update( uint32_t currTime ) { m_currentPrice = m_initPrice; } - else + else if( m_minPrice < m_currentPrice ) { m_currentPrice = ( m_currentPrice / 100 ) * 99.58; + m_devaluationTime = m_nextDrop - currTime; + } + else + { + m_devaluationTime = 0; } } - m_devaluationTime = m_nextDrop - currTime; UpdateDatabase(); } } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 891e00b4..3add13d1 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -81,6 +81,7 @@ namespace Core uint32_t m_nextDrop; uint32_t m_devaluationTime; uint32_t m_currentPrice; + uint32_t m_minPrice; }; } From d6118e9d80c79cf07d66cbcda4a57266d2beeecc Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 9 Nov 2018 10:00:36 +0100 Subject: [PATCH 029/385] :/ --- src/common/Exd/ExdDataGenerated.cpp | 2 +- src/servers/sapphire_zone/Zone/Land.cpp | 24 +++++++++--------------- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index 83cd85e0..aafcb458 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -2746,7 +2746,7 @@ Core::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Core::Data::ExdData for ( int i = 0; i < 60; i++ ) sizes.push_back( exdData->getField< uint8_t >( row, i ) ); for ( int i = 60; i < 60 + 60; i++ ) - minPrices.push_back( exdData->getField< uint8_t >( row, i ) ); + minPrices.push_back( exdData->getField< uint32_t >( row, i ) ); for ( int i = 300; i < 300 + 60; i++ ) prices.push_back( exdData->getField< uint32_t >( row, i ) ); diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 97d4b3b2..ac6c9e76 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -275,23 +275,17 @@ void Core::Land::Update( uint32_t currTime ) { if( getState() == HouseState::forSale ) { - if( m_nextDrop < currTime ) + if( m_nextDrop < currTime && m_minPrice < m_currentPrice ) { - m_nextDrop = currTime + 21600; // +6 hours - if( m_currentPrice == 0 ) - { - m_currentPrice = m_initPrice; - } - else if( m_minPrice < m_currentPrice ) - { - m_currentPrice = ( m_currentPrice / 100 ) * 99.58; - m_devaluationTime = m_nextDrop - currTime; - } - else - { - m_devaluationTime = 0; - } + m_nextDrop = currTime + 21600; + m_currentPrice = ( m_currentPrice / 100 ) * 99.58; } + else if( m_currentPrice == 0 ) + { + m_nextDrop = currTime + 21600; + m_currentPrice = m_initPrice; + } + m_devaluationTime = m_nextDrop - currTime; UpdateDatabase(); } } \ No newline at end of file From c726d7074b0fc1c4b6b19a077f566c0b59181c8b Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 9 Nov 2018 10:39:56 +0100 Subject: [PATCH 030/385] removed senseless case --- src/servers/sapphire_zone/Zone/Land.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index ac6c9e76..47f53701 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -280,11 +280,6 @@ void Core::Land::Update( uint32_t currTime ) m_nextDrop = currTime + 21600; m_currentPrice = ( m_currentPrice / 100 ) * 99.58; } - else if( m_currentPrice == 0 ) - { - m_nextDrop = currTime + 21600; - m_currentPrice = m_initPrice; - } m_devaluationTime = m_nextDrop - currTime; UpdateDatabase(); } From 4babbd59b4cf67227f12cef9a05e02fe91ca5110 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 9 Nov 2018 10:53:11 +0100 Subject: [PATCH 031/385] fixes --- src/servers/sapphire_zone/Zone/Land.cpp | 7 +++---- src/servers/sapphire_zone/Zone/Land.h | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 47f53701..44828849 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -31,10 +31,10 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_wardNum( wardNum ), m_landId( landId ), m_currentPrice( 0 ), + m_minPrice( 0 ), m_nextDrop( 0 ), m_landSetId( landSetId ), - m_landInfo( info ), - m_devaluationTime( 0 ) + m_landInfo( info ) { memset( &m_land, 0x00, sizeof( LandStruct ) ); load(); @@ -238,7 +238,7 @@ uint32_t Core::Land::getMaxItems() uint32_t Core::Land::getDevaluationTime() { - return m_devaluationTime; + return m_nextDrop - Util::getTimeSeconds(); } void Core::Land::init() @@ -280,7 +280,6 @@ void Core::Land::Update( uint32_t currTime ) m_nextDrop = currTime + 21600; m_currentPrice = ( m_currentPrice / 100 ) * 99.58; } - m_devaluationTime = m_nextDrop - currTime; UpdateDatabase(); } } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 3add13d1..cc1b6ac5 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -79,7 +79,6 @@ namespace Core //price uint32_t m_initPrice; uint32_t m_nextDrop; - uint32_t m_devaluationTime; uint32_t m_currentPrice; uint32_t m_minPrice; }; From 1c97a7138c91374c4a47899395ee9f9c8441ecc3 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 9 Nov 2018 11:11:32 +0100 Subject: [PATCH 032/385] housing handler fix --- src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 24108b0e..e324a36e 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -1017,7 +1017,10 @@ void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std { auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); if( pHousing ) + { player.setLandPermissions( permissionSet, 8, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + player.sendLandPermissions(); + } else player.sendDebug( "You aren't in a housing Zone." ); } From 93794ed4fe64d5ebf0b38394c3d4ce733411acd8 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 9 Nov 2018 21:36:40 +0100 Subject: [PATCH 033/385] Actually send gc information, too --- src/common/CommonGen.h | 8 +++----- .../sapphire_zone/Network/Handlers/PacketHandlers.cpp | 9 +++++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h index dc99925d..63988bbc 100644 --- a/src/common/CommonGen.h +++ b/src/common/CommonGen.h @@ -148,10 +148,9 @@ enum class ExVersion : /////////////////////////////////////////////////////////// //GrandCompany.exd -enum class GrandCompany : - uint8_t +enum GrandCompany : uint8_t { - None = 0, + NoGc = 0, Maelstrom = 1, OrderoftheTwinAdder = 2, ImmortalFlames = 3, @@ -159,8 +158,7 @@ enum class GrandCompany : /////////////////////////////////////////////////////////// //GuardianDeity.exd -enum class GuardianDeity : - uint8_t +enum class GuardianDeity : uint8_t { HalonetheFury = 1, MenphinatheLover = 2, diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index c61c7730..80ee5f85 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -434,6 +434,15 @@ void Core::Network::GameConnection::finishLoadingHandler( const Core::Network::P Entity::Player& player ) { player.sendQuestInfo(); + + // TODO: load and save this data instead of hardcoding + auto gcPacket = makeZonePacket< FFXIVGCAffiliation >( player.getId() ); + gcPacket->data().gcId = player.getGc(); + gcPacket->data().gcRank[ 0 ] = player.getGcRankArray()[ 0 ]; + gcPacket->data().gcRank[ 1 ] = player.getGcRankArray()[ 1 ]; + gcPacket->data().gcRank[ 2 ] = player.getGcRankArray()[ 2 ]; + player.queuePacket( gcPacket ); + player.getCurrentZone()->onFinishLoading( player ); // player is done zoning From d1750ebb69b61251ccae348df164f523fc88a952 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 10 Nov 2018 12:48:19 +0100 Subject: [PATCH 034/385] Start of land interaction --- src/common/Common.h | 8 ++++++- .../Scripts/common/CmnDefHousingSignboard.cpp | 24 +++++++++++++++---- src/servers/sapphire_zone/Actor/Player.cpp | 24 +++++++++---------- src/servers/sapphire_zone/Actor/Player.h | 8 ++++++- .../sapphire_zone/Actor/PlayerInventory.cpp | 11 +++++++++ .../Network/Handlers/ClientTriggerHandler.cpp | 3 +++ .../Network/Handlers/PacketHandlers.cpp | 2 +- 7 files changed, 60 insertions(+), 20 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 1596cfe4..e43829f1 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -26,6 +26,12 @@ namespace Core::Common float z; }; + struct ActiveLand + { + uint8_t ward; + uint8_t plot; + }; + enum InventoryOperation : uint8_t { Discard = 0x07, @@ -770,7 +776,7 @@ namespace Core::Common struct LandPermissionSet { - int16_t landSetId; //00 + int16_t landId; //00 int16_t wardNum; //02 int16_t zoneId; //04 int16_t worldId; //06 diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 54cb765e..04325bc9 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -1,20 +1,34 @@ #include #include +#include +#include using namespace Core; -class CmnDefHousingSignboard : - public EventScript +class CmnDefHousingSignboard : public EventScript { public: - CmnDefHousingSignboard() : - EventScript( 721031 ) + CmnDefHousingSignboard() : EventScript( 721031 ) { } void Scene00000( Entity::Player& player ) { - player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0 ); + auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result ) + { + // Purchase Land + if( result.param2 == 2 ) + { + auto activeLand = player.getActiveLand(); + auto territoryId = player.getTerritoryId(); + + auto pTerritory = player.getCurrentZone(); + auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); + } + }; + + player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0, callback ); + } void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index e989149f..05f455cf 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -91,8 +91,8 @@ Core::Entity::Player::Player() : for ( uint8_t i = 0; i < 5; i++ ) { - memset( &m_housePermission[i], 0xFF, 8 ); - memset( &m_housePermission[i].permissionMask, 0, 8 ); + memset( &m_landPermission[i], 0xFF, 8 ); + memset( &m_landPermission[i].permissionMask, 0, 8 ); } m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS ); @@ -1754,22 +1754,22 @@ bool Core::Entity::Player::isOnEnterEventDone() const void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landSetId, int16_t wardNum, int16_t zoneId ) { - m_housePermission[permissionSet].landSetId = landSetId; - m_housePermission[permissionSet].permissionMask = permissionMask; - m_housePermission[permissionSet].wardNum = wardNum; - m_housePermission[permissionSet].worldId = 67; - m_housePermission[permissionSet].unkown1 = 0; + m_landPermission[permissionSet].landId = landSetId; + m_landPermission[permissionSet].permissionMask = permissionMask; + m_landPermission[permissionSet].wardNum = wardNum; + m_landPermission[permissionSet].worldId = 67; + m_landPermission[permissionSet].unkown1 = 0; } void Core::Entity::Player::sendLandPermissions() { auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); - landPermissions->data().freeCompanyHouse = m_housePermission[Common::LandPermissionSlot::FreeCompany]; - landPermissions->data().privateHouse = m_housePermission[Common::LandPermissionSlot::Private]; - landPermissions->data().apartment = m_housePermission[Common::LandPermissionSlot::Apartment]; - landPermissions->data().sharedHouse[0] = m_housePermission[Common::LandPermissionSlot::SharedHouse1]; - landPermissions->data().sharedHouse[1] = m_housePermission[Common::LandPermissionSlot::SharedHouse2]; + landPermissions->data().freeCompanyHouse = m_landPermission[Common::LandPermissionSlot::FreeCompany]; + landPermissions->data().privateHouse = m_landPermission[Common::LandPermissionSlot::Private]; + landPermissions->data().apartment = m_landPermission[Common::LandPermissionSlot::Apartment]; + landPermissions->data().sharedHouse[0] = m_landPermission[Common::LandPermissionSlot::SharedHouse1]; + landPermissions->data().sharedHouse[1] = m_landPermission[Common::LandPermissionSlot::SharedHouse2]; memset( &landPermissions->data().unkownHouse, 0xFF, 8 ); memset( &landPermissions->data().unkownHouse.permissionMask, 0, 8 ); landPermissions->data().unkownHouse.permissionMask = 2; diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index f0aefd21..3c4c5242 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -911,6 +911,10 @@ namespace Core::Entity uint8_t getFreeSlotsInBags(); + void setActiveLand( uint8_t land, uint8_t ward ); + Common::ActiveLand getActiveLand() const; + + ////////////////////////////////////////////////////////////////////////////////////////////////////// uint64_t m_lastMoveTime; @@ -1020,7 +1024,9 @@ namespace Core::Entity uint8_t m_searchSelectClass; // class selected to show up in profile // housing info - Common::LandPermissionSet m_housePermission[5]; + Common::LandPermissionSet m_landPermission[5]; + + Common::ActiveLand m_activeLand; // gc info uint8_t m_gc; diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 630dcc39..11fa3f08 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -822,6 +822,17 @@ void Core::Entity::Player::discardItem( uint16_t fromInventoryId, uint8_t fromSl queuePacket( invTransFinPacket ); } +void Core::Entity::Player::setActiveLand( uint8_t land, uint8_t ward ) +{ + m_activeLand.plot = land; + m_activeLand.ward = ward; +} + +Core::Common::ActiveLand Core::Entity::Player::getActiveLand() const +{ + return m_activeLand; +} + uint16_t Core::Entity::Player::calculateEquippedGearItemLevel() { uint32_t iLvlResult = 0; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index cb30f491..cbd7873a 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -311,12 +311,15 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestHousingSign: { + auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); uint8_t ward = ( param12 & 0xFF00 ) >> 8; uint8_t plot = ( param12 & 0xFF ); pLog->debug( " Ward: " + std::to_string( ward ) + " Plot: " + std::to_string( plot ) ); + player.setActiveLand( plot, ward ); + auto zone = player.getCurrentZone(); auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 80ee5f85..34293a13 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -442,7 +442,7 @@ void Core::Network::GameConnection::finishLoadingHandler( const Core::Network::P gcPacket->data().gcRank[ 1 ] = player.getGcRankArray()[ 1 ]; gcPacket->data().gcRank[ 2 ] = player.getGcRankArray()[ 2 ]; player.queuePacket( gcPacket ); - + player.getCurrentZone()->onFinishLoading( player ); // player is done zoning From f941846f13f58dae62bd2d0cb102ebbd427c4ec3 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Sat, 10 Nov 2018 19:00:13 +0100 Subject: [PATCH 035/385] House fixes --- src/common/CommonGen.h | 8 +- src/common/Config/ConfigMgr.cpp | 18 ++- src/common/Logging/Logger.cpp | 123 ++++++++++-------- .../Scripts/common/CmnDefHousingSignboard.cpp | 26 +++- src/servers/sapphire_api/SapphireAPI.cpp | 11 +- src/servers/sapphire_api/main.cpp | 4 +- src/servers/sapphire_lobby/RestConnector.cpp | 6 +- src/servers/sapphire_zone/Actor/Player.cpp | 36 +++-- src/servers/sapphire_zone/Actor/Player.h | 10 +- .../sapphire_zone/Actor/PlayerInventory.cpp | 11 ++ .../Network/Handlers/ClientTriggerHandler.cpp | 3 + .../Network/Handlers/PacketHandlers.cpp | 9 ++ src/servers/sapphire_zone/Session.cpp | 4 + src/servers/sapphire_zone/Zone/HousingMgr.cpp | 70 ++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.h | 38 ++++++ .../sapphire_zone/Zone/HousingZone.cpp | 33 ++++- src/servers/sapphire_zone/Zone/HousingZone.h | 2 + src/servers/sapphire_zone/Zone/Land.cpp | 67 +++++++--- src/servers/sapphire_zone/Zone/Land.h | 13 +- src/servers/sapphire_zone/mainGameServer.cpp | 5 +- 20 files changed, 378 insertions(+), 119 deletions(-) create mode 100644 src/servers/sapphire_zone/Zone/HousingMgr.cpp create mode 100644 src/servers/sapphire_zone/Zone/HousingMgr.h diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h index dc99925d..63988bbc 100644 --- a/src/common/CommonGen.h +++ b/src/common/CommonGen.h @@ -148,10 +148,9 @@ enum class ExVersion : /////////////////////////////////////////////////////////// //GrandCompany.exd -enum class GrandCompany : - uint8_t +enum GrandCompany : uint8_t { - None = 0, + NoGc = 0, Maelstrom = 1, OrderoftheTwinAdder = 2, ImmortalFlames = 3, @@ -159,8 +158,7 @@ enum class GrandCompany : /////////////////////////////////////////////////////////// //GuardianDeity.exd -enum class GuardianDeity : - uint8_t +enum class GuardianDeity : uint8_t { HalonetheFury = 1, MenphinatheLover = 2, diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index 91f8ff42..1fdc9af0 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -3,6 +3,8 @@ #include #include +namespace fs = std::experimental::filesystem; + /** * Loads an ini file and parses it * @param configName the name of ini file relative to m_configFolderRoot to load alongside global.ini @@ -11,10 +13,14 @@ bool Core::ConfigMgr::loadConfig( const std::string& configName ) { // get global config - auto configDir = std::experimental::filesystem::path( m_configFolderRoot ); + auto configFile = fs::path( fs::path( m_configFolderRoot ) / configName ); - m_pInih = std::unique_ptr< INIReader >( new INIReader( - std::experimental::filesystem::path( configDir / configName ).string() ) ); + if( !fs::exists( configFile ) ) + { + copyDefaultConfig( configName ); + } + + m_pInih = std::unique_ptr< INIReader >( new INIReader( configFile.string() ) ); if( m_pInih->ParseError() < 0 ) return false; @@ -24,16 +30,16 @@ bool Core::ConfigMgr::loadConfig( const std::string& configName ) bool Core::ConfigMgr::copyDefaultConfig( const std::string& configName ) { - std::experimental::filesystem::path configPath( m_configFolderRoot ); + fs::path configPath( m_configFolderRoot ); configPath /= configName; - if( !std::experimental::filesystem::exists( configPath.string() + m_configDefaultSuffix ) ) + if( !fs::exists( configPath.string() + m_configDefaultSuffix ) ) { // no default file :( return false; } - std::experimental::filesystem::copy_file( configPath.string() + m_configDefaultSuffix, configPath ); + fs::copy_file( configPath.string() + m_configDefaultSuffix, configPath ); return true; } diff --git a/src/common/Logging/Logger.cpp b/src/common/Logging/Logger.cpp index 96225ebd..22534330 100644 --- a/src/common/Logging/Logger.cpp +++ b/src/common/Logging/Logger.cpp @@ -6,67 +6,76 @@ #include // #include +#include // or #include + +namespace fs = std::experimental::filesystem; namespace Core { + Logger::Logger() + { -Logger::Logger() -{ - -} - -Logger::~Logger() -{ - -} - -void Logger::setLogPath( const std::string& logPath ) -{ - m_logFile = logPath; -} - -void Logger::init() -{ - spdlog::init_thread_pool( 8192, 1 ); - - auto stdout_sink = std::make_shared< spdlog::sinks::stdout_color_sink_mt >(); - auto daily_sink = std::make_shared< spdlog::sinks::daily_file_sink_mt >( m_logFile + ".log", 0, 0 ); - - std::vector sinks { stdout_sink, daily_sink }; - - auto logger = std::make_shared< spdlog::async_logger >( "logger", sinks.begin(), sinks.end(), - spdlog::thread_pool(), spdlog::async_overflow_policy::block ); - - - spdlog::register_logger( logger ); - spdlog::set_pattern( "[%H:%M:%S.%e] [%^%l%$] %v" ); - spdlog::set_level( spdlog::level::debug ); - // always flush the log on criticial messages, otherwise it's done by libc - // see: https://github.com/gabime/spdlog/wiki/7.-Flush-policy - // nb: if the server crashes, log data can be missing from the file unless something logs critical just before it does - spdlog::flush_on( spdlog::level::critical ); -} - -void Logger::error( const std::string& text ) -{ - spdlog::get( "logger" )->error( text ); -} - -void Logger::info( const std::string& text ) -{ - spdlog::get( "logger" )->info( text ); -} - -void Logger::debug( const std::string& text ) -{ - spdlog::get( "logger" )->debug( text ); -} - -void Logger::fatal( const std::string& text ) -{ - spdlog::get( "logger" )->critical( text ); -} - + } + + Logger::~Logger() + { + + } + + void Logger::setLogPath( const std::string& logPath ) + { + auto pos = logPath.find_last_of( '/' ); + + if( pos != std::string::npos ) + { + std::string realPath = logPath.substr( 0, pos ); + fs::create_directories( realPath ); + } + + m_logFile = logPath; + } + + void Logger::init() + { + spdlog::init_thread_pool( 8192, 1 ); + + auto stdout_sink = std::make_shared< spdlog::sinks::stdout_color_sink_mt >(); + auto daily_sink = std::make_shared< spdlog::sinks::daily_file_sink_mt >( m_logFile + ".log", 0, 0 ); + + std::vector< spdlog::sink_ptr > sinks { stdout_sink, daily_sink }; + + auto logger = std::make_shared< spdlog::async_logger >( "logger", sinks.begin(), sinks.end(), + spdlog::thread_pool(), spdlog::async_overflow_policy::block ); + + + spdlog::register_logger( logger ); + spdlog::set_pattern( "[%H:%M:%S.%e] [%^%l%$] %v" ); + spdlog::set_level( spdlog::level::debug ); + // always flush the log on criticial messages, otherwise it's done by libc + // see: https://github.com/gabime/spdlog/wiki/7.-Flush-policy + // nb: if the server crashes, log data can be missing from the file unless something logs critical just before it does + spdlog::flush_on( spdlog::level::critical ); + } + + void Logger::error( const std::string& text ) + { + spdlog::get( "logger" )->error( text ); + } + + void Logger::info( const std::string& text ) + { + spdlog::get( "logger" )->info( text ); + } + + void Logger::debug( const std::string& text ) + { + spdlog::get( "logger" )->debug( text ); + } + + void Logger::fatal( const std::string& text ) + { + spdlog::get( "logger" )->critical( text ); + } } diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 54cb765e..30831e8b 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -1,20 +1,36 @@ #include #include +#include +#include using namespace Core; -class CmnDefHousingSignboard : - public EventScript +class CmnDefHousingSignboard : public EventScript { public: - CmnDefHousingSignboard() : - EventScript( 721031 ) + CmnDefHousingSignboard() : EventScript( 721031 ) { } void Scene00000( Entity::Player& player ) { - player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0 ); + auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result ) + { + // Purchase Land + if( result.param2 == 2 ) + { + auto activeLand = player.getActiveLand(); + auto territoryId = player.getTerritoryId(); + + auto pTerritory = player.getCurrentZone(); + auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); + + pHousing->playerPurchseLand( player, activeLand.plot, result.param2 ); + } + }; + + player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0, callback ); + } void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override diff --git a/src/servers/sapphire_api/SapphireAPI.cpp b/src/servers/sapphire_api/SapphireAPI.cpp index 33602b13..1f981514 100644 --- a/src/servers/sapphire_api/SapphireAPI.cpp +++ b/src/servers/sapphire_api/SapphireAPI.cpp @@ -133,13 +133,16 @@ Core::Network::SapphireAPI::createCharacter( const int& accountId, const std::st for( auto& v : json["content"] ) { - for( auto& vs : v ) + if( v.is_array() ) { - tmpVector.push_back( vs.get< int >() ); + for( auto& vs : v ) + { + tmpVector.push_back( std::stoi( std::string( vs ) ) ); + } } - if( !v.empty() ) - tmpVector2.push_back( v.get< int >() ); + if( !v.empty() && !v.is_array() ) + tmpVector2.push_back( std::stoi( std::string( v ) ) ); } // leaving this in for now for reference diff --git a/src/servers/sapphire_api/main.cpp b/src/servers/sapphire_api/main.cpp index 5d627b64..90edbd05 100644 --- a/src/servers/sapphire_api/main.cpp +++ b/src/servers/sapphire_api/main.cpp @@ -488,9 +488,7 @@ void checkSession( shared_ptr< HttpServer::Response > response, shared_ptr< Http else { std::string json_string = nlohmann::json( { - { "result", result }, - { "result2", "penis" }, - { "result3", "wtf" } + { "result", result } } ).dump() ; *response << buildHttpResponse( 200, json_string, JSON ); diff --git a/src/servers/sapphire_lobby/RestConnector.cpp b/src/servers/sapphire_lobby/RestConnector.cpp index d17fe938..96ac9c6f 100644 --- a/src/servers/sapphire_lobby/RestConnector.cpp +++ b/src/servers/sapphire_lobby/RestConnector.cpp @@ -143,7 +143,7 @@ uint32_t Core::Network::RestConnector::getNextCharId() if( content.find( "invalid" ) == std::string::npos ) { - return json["result"].get< uint32_t >(); + return std::stoi( std::string( json["result"] ) ); } else { @@ -182,7 +182,7 @@ uint64_t Core::Network::RestConnector::getNextContentId() if( content.find( "invalid" ) == std::string::npos ) { - return json["result"].get< uint64_t >(); + return std::stoll( std::string( json["result"] ) ); } else { @@ -313,7 +313,7 @@ int Core::Network::RestConnector::createCharacter( char* sId, std::string name, } if( content.find( "invalid" ) == std::string::npos ) - return json["result"].get< int >(); + return std::stoi( json["result"].get< std::string >() ); return -1; } else diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index e989149f..ce7f00ed 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -15,6 +15,9 @@ #include "Zone/Zone.h" #include "Zone/ZonePosition.h" +#include "Zone//HousingMgr.h" +#include "Zone/Land.h" + #include "Network/GameConnection.h" #include "Network/PacketWrappers/ActorControlPacket142.h" #include "Network/PacketWrappers/ActorControlPacket143.h" @@ -91,8 +94,8 @@ Core::Entity::Player::Player() : for ( uint8_t i = 0; i < 5; i++ ) { - memset( &m_housePermission[i], 0xFF, 8 ); - memset( &m_housePermission[i].permissionMask, 0, 8 ); + memset( &m_landPermission[i], 0xFF, 8 ); + memset( &m_landPermission[i].permissionMask, 0, 8 ); } m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS ); @@ -1574,6 +1577,12 @@ void Core::Entity::Player::sendZonePackets() sendItemLevel(); } + auto pHousingMgr = g_fw.get< HousingMgr >(); + if( Core::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) + { + setLandPermissions( LandPermissionSlot::Private, 0x0B, pLand->getLandId(), pLand->getWardNum(), pLand->getZoneId() ); + } + sendLandPermissions(); auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); @@ -1752,24 +1761,25 @@ bool Core::Entity::Player::isOnEnterEventDone() const return m_onEnterEventDone; } -void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landSetId, int16_t wardNum, int16_t zoneId ) +void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ) { - m_housePermission[permissionSet].landSetId = landSetId; - m_housePermission[permissionSet].permissionMask = permissionMask; - m_housePermission[permissionSet].wardNum = wardNum; - m_housePermission[permissionSet].worldId = 67; - m_housePermission[permissionSet].unkown1 = 0; + m_landPermission[permissionSet].landId = landId; + m_landPermission[permissionSet].permissionMask = permissionMask; + m_landPermission[permissionSet].wardNum = wardNum; + m_landPermission[permissionSet].zoneId = zoneId; + m_landPermission[permissionSet].worldId = 67; + m_landPermission[permissionSet].unkown1 = 0; } void Core::Entity::Player::sendLandPermissions() { auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); - landPermissions->data().freeCompanyHouse = m_housePermission[Common::LandPermissionSlot::FreeCompany]; - landPermissions->data().privateHouse = m_housePermission[Common::LandPermissionSlot::Private]; - landPermissions->data().apartment = m_housePermission[Common::LandPermissionSlot::Apartment]; - landPermissions->data().sharedHouse[0] = m_housePermission[Common::LandPermissionSlot::SharedHouse1]; - landPermissions->data().sharedHouse[1] = m_housePermission[Common::LandPermissionSlot::SharedHouse2]; + landPermissions->data().freeCompanyHouse = m_landPermission[Common::LandPermissionSlot::FreeCompany]; + landPermissions->data().privateHouse = m_landPermission[Common::LandPermissionSlot::Private]; + landPermissions->data().apartment = m_landPermission[Common::LandPermissionSlot::Apartment]; + landPermissions->data().sharedHouse[0] = m_landPermission[Common::LandPermissionSlot::SharedHouse1]; + landPermissions->data().sharedHouse[1] = m_landPermission[Common::LandPermissionSlot::SharedHouse2]; memset( &landPermissions->data().unkownHouse, 0xFF, 8 ); memset( &landPermissions->data().unkownHouse.permissionMask, 0, 8 ); landPermissions->data().unkownHouse.permissionMask = 2; diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index f0aefd21..d1aa1e22 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -763,7 +763,7 @@ namespace Core::Entity // Housing Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// - void setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landSetId, int16_t wardNum, int16_t zoneId ); + void setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ); void sendLandPermissions(); @@ -911,6 +911,10 @@ namespace Core::Entity uint8_t getFreeSlotsInBags(); + void setActiveLand( uint8_t land, uint8_t ward ); + Common::ActiveLand getActiveLand() const; + + ////////////////////////////////////////////////////////////////////////////////////////////////////// uint64_t m_lastMoveTime; @@ -1020,7 +1024,9 @@ namespace Core::Entity uint8_t m_searchSelectClass; // class selected to show up in profile // housing info - Common::LandPermissionSet m_housePermission[5]; + Common::LandPermissionSet m_landPermission[5]; + + Common::ActiveLand m_activeLand; // gc info uint8_t m_gc; diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 630dcc39..11fa3f08 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -822,6 +822,17 @@ void Core::Entity::Player::discardItem( uint16_t fromInventoryId, uint8_t fromSl queuePacket( invTransFinPacket ); } +void Core::Entity::Player::setActiveLand( uint8_t land, uint8_t ward ) +{ + m_activeLand.plot = land; + m_activeLand.ward = ward; +} + +Core::Common::ActiveLand Core::Entity::Player::getActiveLand() const +{ + return m_activeLand; +} + uint16_t Core::Entity::Player::calculateEquippedGearItemLevel() { uint32_t iLvlResult = 0; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index cb30f491..cbd7873a 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -311,12 +311,15 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestHousingSign: { + auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); uint8_t ward = ( param12 & 0xFF00 ) >> 8; uint8_t plot = ( param12 & 0xFF ); pLog->debug( " Ward: " + std::to_string( ward ) + " Plot: " + std::to_string( plot ) ); + player.setActiveLand( plot, ward ); + auto zone = player.getCurrentZone(); auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index c61c7730..34293a13 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -434,6 +434,15 @@ void Core::Network::GameConnection::finishLoadingHandler( const Core::Network::P Entity::Player& player ) { player.sendQuestInfo(); + + // TODO: load and save this data instead of hardcoding + auto gcPacket = makeZonePacket< FFXIVGCAffiliation >( player.getId() ); + gcPacket->data().gcId = player.getGc(); + gcPacket->data().gcRank[ 0 ] = player.getGcRankArray()[ 0 ]; + gcPacket->data().gcRank[ 1 ] = player.getGcRankArray()[ 1 ]; + gcPacket->data().gcRank[ 2 ] = player.getGcRankArray()[ 2 ]; + player.queuePacket( gcPacket ); + player.getCurrentZone()->onFinishLoading( player ); // player is done zoning diff --git a/src/servers/sapphire_zone/Session.cpp b/src/servers/sapphire_zone/Session.cpp index 66e0b06b..3d5070de 100644 --- a/src/servers/sapphire_zone/Session.cpp +++ b/src/servers/sapphire_zone/Session.cpp @@ -77,8 +77,12 @@ void Core::Session::close() // remove the session from the player if( m_pPlayer ) + { + // do one last update to db + m_pPlayer->updateSql(); // reset the zone, so the zone handler knows to remove the actor m_pPlayer->setCurrentZone( nullptr ); + } } uint32_t Core::Session::getId() const diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp new file mode 100644 index 00000000..700d372a --- /dev/null +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -0,0 +1,70 @@ +#include "HousingMgr.h" +#include "HousingMgr.h" +#include +#include +#include + +#include + +#include "Actor/Player.h" + +#include "Zone.h" +#include "HousingZone.h" +#include "HousingMgr.h" +#include "Land.h" +#include "Framework.h" + +extern Core::Framework g_fw; + +Core::HousingMgr::HousingMgr() : + m_lastLandId( 0 ) +{ + +} + +Core::HousingMgr::~HousingMgr() +{ + +} + +bool Core::HousingMgr::init() +{ + + return true; +} + +uint16_t Core::HousingMgr::getNexLandId() +{ + return ++m_lastLandId; +} + +void Core::HousingMgr::insertHousingZone( Core::Data::HousingZonePtr hZone ) +{ + uint16_t id = getNexLandId(); + m_housingZonePtrMap[id] = hZone; +} + +Core::Data::HousingZonePtr Core::HousingMgr::getHousingZone( uint16_t id ) +{ + auto it = m_housingZonePtrMap.find( id ); + if( it == m_housingZonePtrMap.end() ) + return nullptr; + + return it->second; +} + +Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) +{ + for( const auto& hZoneIt : m_housingZonePtrMap ) + { + auto pHousingZone = hZoneIt.second; + for( uint8_t landId = 0;landId < 60;landId++ ) + { + if( pHousingZone->getLand( landId )->getPlayerOwner() == id ) + { + return pHousingZone->getLand( landId ); + } + } + } + return nullptr; +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h new file mode 100644 index 00000000..e2981ade --- /dev/null +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -0,0 +1,38 @@ +#ifndef SAPPHIRE_HOUSINGMGR_H +#define SAPPHIRE_HOUSINGMGR_H + +#include "Forwards.h" +#include "HousingZone.h" +#include +#include + +namespace Core +{ + namespace Data + { + using HousingZonePtr = std::shared_ptr< HousingZone >; + } + + class HousingMgr + { + + public: + HousingMgr(); + virtual ~HousingMgr(); + + bool init(); + + uint16_t getNexLandId(); + void insertHousingZone( Core::Data::HousingZonePtr hZone ); + Core::Data::HousingZonePtr getHousingZone( uint16_t id ); + Core::LandPtr getLandByOwnerId( uint32_t id ); + + private: + using HousingZonePtrMap = std::unordered_map< uint16_t, Core::Data::HousingZonePtr >; + uint16_t m_lastLandId; + HousingZonePtrMap m_housingZonePtrMap; + }; + +} + +#endif // SAPPHIRE_HOUSINGMGR_H diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 22ee225e..1a0dd152 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -13,6 +13,7 @@ #include "Forwards.h" #include "HousingZone.h" +#include "HousingMgr.h" #include "Framework.h" extern Core::Framework g_fw; @@ -61,10 +62,12 @@ bool Core::HousingZone::init() for( landId = 0; landId < 60; landId++ ) { auto pObject = make_Land( m_territoryTypeId, getWardNum(), landId, m_landSetId, info ); - pObject->setHouseSize( 1 ); m_landPtrMap[ landId ] = pObject; } + auto pHousingMgr = g_fw.get< HousingMgr >(); + pHousingMgr->insertHousingZone( (HousingZonePtr)this ); + return true; } @@ -100,13 +103,14 @@ void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) } auto landSetMap = makeZonePacket< FFXIVIpcLandSetMap >( player.getId() ); - landSetMap->data().subdivision = isPlayerSubInstance( player ) == false ? 1 : 2; + landSetMap->data().subdivision = isPlayerSubInstance( player ) == false ? 2 : 1; uint8_t startIndex = isPlayerSubInstance( player ) == false ? 0 : 30; for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); i++, count++ ) { landSetMap->data().landInfo[ count ].status = 1; //memcpy( , &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); } + player.queuePacket( landSetMap ); } @@ -150,6 +154,31 @@ bool Core::HousingZone::isPlayerSubInstance( Entity::Player& player ) return player.getPos().x < -15000.0f; //ToDo: get correct pos } +void Core::HousingZone::playerPurchseLand( Entity::Player & player, uint8_t plot, uint8_t state ) +{ + uint32_t plotPrice = getLand( plot )->getCurrentPrice(); + if( plotPrice <= player.getCurrency( CurrencyType::Gil ) ) + { + auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + if( state == 1 ) //TODO: add Free company purchase + player.sendDebug( "Free company house purchase aren't supported at this time." ); + if( state == 2 ) //Private Purchase + { + getLand( plot )->setPlayerOwner( player.getId() ); + getLand( plot )->setState( HouseState::sold ); + + player.removeCurrency( CurrencyType::Gil, plotPrice ); + player.setLandPermissions( LandPermissionSlot::Private, 0x0B, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + player.sendLandPermissions(); + + getLand( plot )->UpdateLandDb(); + sendLandUpdate( plot ); + } + } + //else + //TOD: add error msg - insufficient gil +} + void Core::HousingZone::onUpdate( uint32_t currTime ) { for( uint8_t i = 0; i < 60; i++ ) diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index c2c6619f..47b3a490 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -26,6 +26,8 @@ namespace Core void sendLandUpdate( uint8_t landId ); bool isPlayerSubInstance( Entity::Player& player ); + void playerPurchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + /* returns current ward number for this zone */ uint8_t getWardNum() const; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 44828849..96b7d6eb 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -32,11 +32,13 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_landId( landId ), m_currentPrice( 0 ), m_minPrice( 0 ), - m_nextDrop( 0 ), + m_nextDrop( Util::getTimeSeconds() + 21600 ), + m_ownerPlayerId( 0 ), m_landSetId( landSetId ), m_landInfo( info ) { memset( &m_land, 0x00, sizeof( LandStruct ) ); + memset( &m_tag, 0x00, 3 ); load(); } @@ -47,11 +49,9 @@ Core::Land::~Land() void Core::Land::load() { - m_land.houseState = HouseState::forSale; - auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT * FROM land WHERE landsetid = " + std::to_string( m_landSetId ) + " " - "AND landid = " + std::to_string( m_landId ) ); + auto res = pDb->query( "SELECT * FROM land WHERE LandSetId = " + std::to_string( m_landSetId ) + " " + "AND LandId = " + std::to_string( m_landId ) ); if( !res->next() ) { pDb->directExecute( "INSERT INTO land ( landsetid, landid, size, status, landprice ) " @@ -65,9 +65,11 @@ void Core::Land::load() } else { - m_land.houseSize = res->getUInt( "size" ); - m_land.houseState = res->getUInt( "status" ); - m_currentPrice = res->getUInt( "LandPrice" );; + m_land.houseSize = res->getUInt( "Size" ); + m_land.houseState = res->getUInt( "Status" ); + m_currentPrice = res->getUInt( "LandPrice" ); + m_ownerPlayerId = res->getUInt( "OwnerId" ); + m_minPrice = m_landInfo->minPrices[ m_landId ]; } init(); // setPreset( 262145 ); @@ -170,6 +172,26 @@ uint8_t Core::Land::getSharing() return m_land.iconAddIcon; } +uint32_t Core::Land::getLandSetId() +{ + return m_landSetId; +} + +uint8_t Core::Land::getWardNum() +{ + return m_wardNum; +} + +uint8_t Core::Land::getLandId() +{ + return m_landId; +} + +uint16_t Core::Land::getZoneId() +{ + return m_zoneId; +} + //Free Comapny void Core::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) { @@ -241,6 +263,16 @@ uint32_t Core::Land::getDevaluationTime() return m_nextDrop - Util::getTimeSeconds(); } +void Core::Land::setLandTag( uint8_t slot, uint8_t tag ) +{ + m_tag[ slot ] = tag; +} + +uint8_t Core::Land::getLandTag( uint8_t slot ) +{ + return m_tag[ slot ]; +} + void Core::Land::init() { @@ -260,15 +292,16 @@ void Core::Land::init() } } -void Core::Land::UpdateDatabase() +void Core::Land::UpdateLandDb() { - /*auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - std::string exec = "UPDATE land SET landset='" + - std::string( reinterpret_cast< const char* >( &m_land ) ) + "', nextDrop=" + - std::to_string( m_nextDrop ) + ", currentPrice=" + - std::to_string( m_currentPrice ) + - " WHERE Id =" + std::to_string( m_landKey ); - pDb->execute( exec );*/ + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_land.houseState ) + + ", LandPrice = " + std::to_string( getCurrentPrice() ) + + ", UpdateTime = " + std::to_string( getDevaluationTime() ) + + ", OwnerId = " + std::to_string( getPlayerOwner() ) + + ", HouseId = " + std::to_string( 0 ) //TODO: add house id + + " WHERE LandSetId = " + std::to_string( m_landSetId ) + + " AND LandId = " + std::to_string( m_landId ) + ";" ); } void Core::Land::Update( uint32_t currTime ) @@ -279,7 +312,7 @@ void Core::Land::Update( uint32_t currTime ) { m_nextDrop = currTime + 21600; m_currentPrice = ( m_currentPrice / 100 ) * 99.58; + UpdateLandDb(); } - UpdateDatabase(); } } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index cc1b6ac5..75d44ea4 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -30,6 +30,10 @@ namespace Core uint8_t getState(); uint8_t getOwnership(); uint8_t getSharing(); + uint32_t getLandSetId(); + uint8_t getWardNum(); + uint8_t getLandId(); + uint16_t getZoneId(); //Free Comapny void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ); @@ -50,7 +54,7 @@ namespace Core uint32_t getPlayerOwner(); //Housing Functions void setPreset( uint32_t itemId ); - void UpdateDatabase(); + void UpdateLandDb(); void Update( uint32_t currTime ); const Common::LandStruct& getLand(); @@ -59,6 +63,10 @@ namespace Core uint32_t getCurrentPrice() const; uint32_t getDevaluationTime(); + //House tags + void setLandTag( uint8_t slot, uint8_t tag ); + uint8_t getLandTag( uint8_t slot ); + private: uint16_t convertItemIdToHousingItemId( uint16_t itemId ); void init(); @@ -81,6 +89,9 @@ namespace Core uint32_t m_nextDrop; uint32_t m_currentPrice; uint32_t m_minPrice; + + //Tags + uint8_t m_tag[3]; }; } diff --git a/src/servers/sapphire_zone/mainGameServer.cpp b/src/servers/sapphire_zone/mainGameServer.cpp index b45e71b0..a878b8b4 100644 --- a/src/servers/sapphire_zone/mainGameServer.cpp +++ b/src/servers/sapphire_zone/mainGameServer.cpp @@ -9,6 +9,7 @@ #include #include "Linkshell/LinkshellMgr.h" #include "Zone/TerritoryMgr.h" +#include "Zone/HousingMgr.h" #include "DebugCommand/DebugCommandHandler.h" #include @@ -25,11 +26,12 @@ bool setupFramework() auto pScript = std::make_shared< Scripting::ScriptMgr >(); auto pDb = std::make_shared< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pLsMgr = std::make_shared< LinkshellMgr >(); + auto pHousingMgr = std::make_shared< HousingMgr >(); auto pTeriMgr = std::make_shared< TerritoryMgr >(); auto pDebugCom = std::make_shared< DebugCommandHandler >(); auto pConfig = std::make_shared< ConfigMgr >(); - pLogger->setLogPath( "log/SapphireZone_" ); + pLogger->setLogPath( "log/SapphireZone" ); pLogger->init(); g_fw.set< ServerZone >( pServer ); @@ -38,6 +40,7 @@ bool setupFramework() g_fw.set< Scripting::ScriptMgr >( pScript ); g_fw.set< Db::DbWorkerPool< Db::ZoneDbConnection > >( pDb ); g_fw.set< LinkshellMgr >( pLsMgr ); + g_fw.set< HousingMgr >( pHousingMgr ); g_fw.set< TerritoryMgr >( pTeriMgr ); g_fw.set< DebugCommandHandler >( pDebugCom ); g_fw.set< ConfigMgr >( pConfig ); From 5db5b09e40b48141668023c12129033063203a98 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Sat, 10 Nov 2018 19:00:41 +0100 Subject: [PATCH 036/385] House fixes 2 --- src/common/Common.h | 15 ++++++++++++++- src/servers/sapphire_zone/ForwardsZone.h | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/common/Common.h b/src/common/Common.h index 1596cfe4..fe183346 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -26,6 +26,12 @@ namespace Core::Common float z; }; + struct ActiveLand + { + uint8_t ward; + uint8_t plot; + }; + enum InventoryOperation : uint8_t { Discard = 0x07, @@ -745,6 +751,13 @@ namespace Core::Common YardSign }; + enum HouseTagSlot + { + MainTag, + SubTag1, + SubTag2 + }; + //Structs struct LandStruct { @@ -770,7 +783,7 @@ namespace Core::Common struct LandPermissionSet { - int16_t landSetId; //00 + int16_t landId; //00 int16_t wardNum; //02 int16_t zoneId; //04 int16_t worldId; //06 diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index 51fb9997..566b8856 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -20,6 +20,7 @@ namespace Core { TYPE_FORWARD( Cell ); TYPE_FORWARD( Zone ); TYPE_FORWARD( HousingZone ); +TYPE_FORWARD( HousingMgr ); TYPE_FORWARD( InstanceContent ); TYPE_FORWARD( Item ); TYPE_FORWARD( ItemContainer ); From d6f42e7bf0e4c9b428d0534725262ad9579a9425 Mon Sep 17 00:00:00 2001 From: XeAri Date: Sat, 10 Nov 2018 19:15:04 +0100 Subject: [PATCH 037/385] :/ --- src/servers/sapphire_zone/Actor/Player.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 62be7f58..faedc2b7 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1767,6 +1767,9 @@ void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t p m_landPermission[permissionSet].permissionMask = permissionMask; m_landPermission[permissionSet].wardNum = wardNum; m_landPermission[permissionSet].zoneId = zoneId; + m_landPermission[permissionSet].worldId = 67; + m_landPermission[permissionSet].zoneId = zoneId; + m_landPermission[permissionSet].unkown1 = 0; void Core::Entity::Player::sendLandPermissions() { @@ -1787,4 +1790,4 @@ void Core::Entity::Player::sendLandPermissions() landPermissions->data().unkown5 = 0; queuePacket( landPermissions ); -} \ No newline at end of file +} From 8ac9636fc605cd025db148729328f2ed7f218087 Mon Sep 17 00:00:00 2001 From: Mordred <30826167+SapphireMordred@users.noreply.github.com> Date: Sat, 10 Nov 2018 22:04:40 +0100 Subject: [PATCH 038/385] Fixed typos --- src/servers/sapphire_zone/Actor/Player.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index faedc2b7..8fb4790d 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1768,8 +1768,8 @@ void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t p m_landPermission[permissionSet].wardNum = wardNum; m_landPermission[permissionSet].zoneId = zoneId; m_landPermission[permissionSet].worldId = 67; - m_landPermission[permissionSet].zoneId = zoneId; m_landPermission[permissionSet].unkown1 = 0; +} void Core::Entity::Player::sendLandPermissions() { From c320604cd7034382345cd23de479498c2cabff5a Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 10 Nov 2018 23:47:19 +0100 Subject: [PATCH 039/385] Cleanup and errorhandling --- src/common/Network/CommonActorControl.h | 2 +- .../Scripts/common/CmnDefHousingSignboard.cpp | 25 +++++++++- src/servers/sapphire_zone/Actor/Player.cpp | 2 +- src/servers/sapphire_zone/Actor/Player.h | 2 +- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 2 +- .../sapphire_zone/Zone/HousingZone.cpp | 46 +++++++++++++------ src/servers/sapphire_zone/Zone/HousingZone.h | 10 +++- src/servers/sapphire_zone/Zone/Land.cpp | 4 +- 8 files changed, 70 insertions(+), 23 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index ee2833e2..d255465a 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -184,7 +184,7 @@ enum ActorControlType : AchievementPopup = 0x203, - Unk7 = 0x205, // LogMessage? + LogMsg = 0x205, // LogMessage? AchievementMsg = 0x206, SetItemLevel = 0x209, diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 1f3d2509..04928389 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -2,6 +2,9 @@ #include #include #include +#include +#include + using namespace Core; @@ -25,7 +28,27 @@ public: auto pTerritory = player.getCurrentZone(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); - pHousing->playerPurchseLand( player, activeLand.plot, result.param2 ); + PurchaseResult res = pHousing->purchseLand( player, activeLand.plot, + static_cast< uint8_t >( result.param2 ) ); + + + switch( res ) + { + case PurchaseResult::SUCCESS: + { + auto screenMsgPkt = Network::Packets::Server::makeActorControl143( player.getId(), + Network::ActorControl::DutyQuestScreenMsg, + m_id, 0x98 ); + player.queuePacket( screenMsgPkt ); + } + case PurchaseResult::ERR_NOT_ENOUGH_GIL: + { + auto errorMsg = Network::Packets::Server::makeActorControl143( player.getId(), + Network::ActorControl::LogMsg, + 4027 ); + player.queuePacket( errorMsg ); + } + } } }; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 8fb4790d..0e4b793d 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -106,7 +106,7 @@ Core::Entity::Player::~Player() { } -void Core::Entity::Player::injectPacket( std::string path ) +void Core::Entity::Player::injectPacket( const std::string& path ) { auto pServerZone = g_fw.get< ServerZone >(); auto session = pServerZone->getSession( getId() ); diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index d1aa1e22..e2707642 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -46,7 +46,7 @@ namespace Core::Entity void autoAttack( CharaPtr pTarget ) override; - void injectPacket( std::string path ); + void injectPacket( const std::string& path ); // EventHandlers ////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 700d372a..48f4cdcd 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -58,7 +58,7 @@ Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) for( const auto& hZoneIt : m_housingZonePtrMap ) { auto pHousingZone = hZoneIt.second; - for( uint8_t landId = 0;landId < 60;landId++ ) + for( uint8_t landId = 0; landId < 60; landId++ ) { if( pHousingZone->getLand( landId )->getPlayerOwner() == id ) { diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 1a0dd152..685cf8c9 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -154,29 +154,45 @@ bool Core::HousingZone::isPlayerSubInstance( Entity::Player& player ) return player.getPos().x < -15000.0f; //ToDo: get correct pos } -void Core::HousingZone::playerPurchseLand( Entity::Player & player, uint8_t plot, uint8_t state ) +Core::PurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ) { - uint32_t plotPrice = getLand( plot )->getCurrentPrice(); - if( plotPrice <= player.getCurrency( CurrencyType::Gil ) ) + + auto plotPrice = getLand( plot )->getCurrentPrice(); + auto gilAvailable = player.getCurrency( CurrencyType::Gil ); + auto pLand = getLand( plot ); + + if( !pLand ) + return PurchaseResult::ERR_INTERNAL; + + if( pLand->getState() != HouseState::forSale ) + return PurchaseResult::ERR_NOT_AVAILABLE; + + if( gilAvailable < plotPrice ) + return PurchaseResult::ERR_NOT_ENOUGH_GIL; + + auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + + switch( state ) { - auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); - if( state == 1 ) //TODO: add Free company purchase + case 1: player.sendDebug( "Free company house purchase aren't supported at this time." ); - if( state == 2 ) //Private Purchase - { - getLand( plot )->setPlayerOwner( player.getId() ); - getLand( plot )->setState( HouseState::sold ); + return PurchaseResult::ERR_INTERNAL; + case 2: player.removeCurrency( CurrencyType::Gil, plotPrice ); - player.setLandPermissions( LandPermissionSlot::Private, 0x0B, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + pLand->setPlayerOwner( player.getId() ); + pLand->setState( HouseState::sold ); + player.setLandPermissions( LandPermissionSlot::Private, 0x0B, plot, + pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.sendLandPermissions(); - - getLand( plot )->UpdateLandDb(); + pLand->UpdateLandDb(); sendLandUpdate( plot ); - } + return PurchaseResult::SUCCESS; + + default: + return PurchaseResult::ERR_INTERNAL; } - //else - //TOD: add error msg - insufficient gil + } void Core::HousingZone::onUpdate( uint32_t currTime ) diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index 47b3a490..a93be9d2 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -6,6 +6,14 @@ namespace Core { + enum class PurchaseResult + { + SUCCESS, + ERR_NOT_ENOUGH_GIL, + ERR_NOT_AVAILABLE, + ERR_INTERNAL, + }; + class HousingZone : public Zone { public: @@ -26,7 +34,7 @@ namespace Core void sendLandUpdate( uint8_t landId ); bool isPlayerSubInstance( Entity::Player& player ); - void playerPurchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + PurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); /* returns current ward number for this zone */ uint8_t getWardNum() const; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 96b7d6eb..52ab103d 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -32,7 +32,7 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_landId( landId ), m_currentPrice( 0 ), m_minPrice( 0 ), - m_nextDrop( Util::getTimeSeconds() + 21600 ), + m_nextDrop( static_cast< uint32_t >( Util::getTimeSeconds() ) + 21600 ), m_ownerPlayerId( 0 ), m_landSetId( landSetId ), m_landInfo( info ) @@ -260,7 +260,7 @@ uint32_t Core::Land::getMaxItems() uint32_t Core::Land::getDevaluationTime() { - return m_nextDrop - Util::getTimeSeconds(); + return m_nextDrop - static_cast< uint32_t >( Util::getTimeSeconds() ); } void Core::Land::setLandTag( uint8_t slot, uint8_t tag ) From ec6aa1d4d6571b158f2c19c1aa03013dca6ecabe Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 11 Nov 2018 12:10:57 +0100 Subject: [PATCH 040/385] Some additions --- .../Scripts/common/CmnDefHousingSignboard.cpp | 21 ++++++++++++------- src/servers/sapphire_zone/ServerZone.cpp | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 04928389..083ad183 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -7,6 +7,9 @@ using namespace Core; +using namespace Network; +using namespace Packets; +using namespace Server; class CmnDefHousingSignboard : public EventScript { @@ -31,23 +34,27 @@ public: PurchaseResult res = pHousing->purchseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); - switch( res ) { case PurchaseResult::SUCCESS: { - auto screenMsgPkt = Network::Packets::Server::makeActorControl143( player.getId(), - Network::ActorControl::DutyQuestScreenMsg, - m_id, 0x98 ); + auto screenMsgPkt = makeActorControl143( player.getId(), ActorControl::DutyQuestScreenMsg, m_id, 0x98 ); player.queuePacket( screenMsgPkt ); + break; } + case PurchaseResult::ERR_NOT_ENOUGH_GIL: { - auto errorMsg = Network::Packets::Server::makeActorControl143( player.getId(), - Network::ActorControl::LogMsg, - 4027 ); + auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 4027 ); player.queuePacket( errorMsg ); + break; } + + case PurchaseResult::ERR_NOT_AVAILABLE: + break; + + case PurchaseResult::ERR_INTERNAL: + break; } } diff --git a/src/servers/sapphire_zone/ServerZone.cpp b/src/servers/sapphire_zone/ServerZone.cpp index d60de3f3..e7615dc2 100644 --- a/src/servers/sapphire_zone/ServerZone.cpp +++ b/src/servers/sapphire_zone/ServerZone.cpp @@ -213,7 +213,7 @@ void Core::ServerZone::mainLoop() auto currTime = Util::getTimeSeconds(); - pTeriMgr->updateTerritoryInstances( currTime ); + pTeriMgr->updateTerritoryInstances( static_cast< uint32_t >( currTime ) ); pScriptMgr->update(); From 8f118c4ec84dd2d539a24554ca0225fac969e5ba Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Sun, 11 Nov 2018 14:27:39 +0100 Subject: [PATCH 041/385] Signs + rename --- src/common/Network/CommonActorControl.h | 2 + src/common/Network/PacketDef/Ipcs.h | 6 +- .../Network/PacketDef/Zone/ClientZoneDef.h | 12 ++++ .../Network/PacketDef/Zone/ServerZoneDef.h | 31 ++++++++ .../sapphire_zone/Network/GameConnection.h | 2 + .../Network/Handlers/ClientTriggerHandler.cpp | 71 ++++++++++++++++++- .../Network/Handlers/PacketHandlers.cpp | 7 ++ src/servers/sapphire_zone/Zone/HousingMgr.cpp | 16 +++++ src/servers/sapphire_zone/Zone/HousingMgr.h | 1 + src/servers/sapphire_zone/Zone/Land.cpp | 13 ++++ src/servers/sapphire_zone/Zone/Land.h | 8 ++- 11 files changed, 166 insertions(+), 3 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index d255465a..e0b22868 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -290,6 +290,8 @@ enum ClientTriggerType AchievementList = 0x3E9, RequestHousingSign = 0x451, + RequestHousingInfoSign = 0x452, + RequestHousingRename = 0x45A, RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index e11af4a3..f33b9399 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -189,7 +189,9 @@ namespace Core::Network::Packets LandUpdate = 0x0221, // updated 4.4 YardObjectSpawn = 0x0222, // updated 4.4 - LandPriceUpdate = 0x0224, // updated 4.3 + LandPriceUpdate = 0x0224, // updated 4.4 + LandInfoSign = 0x0225, // updated 4.4 + RenameLand = 0x0226, // updated 4.4 LandPermission = 0x0229, // updated 4.4 LandSetYardInitialize = 0x022C, // updated 4.4 YardObjectMove = 0x0230, // updated 4.4 @@ -287,6 +289,8 @@ namespace Core::Network::Packets LinkshellEventHandler = 0x0150, // updated 4.1 ?? LinkshellEventHandler1 = 0x0151, // updated 4.1 ?? + RenameLandHandler = 0x0171, // updated 4.4 + SetSharedEstateSettings = 0x0177, // updated 4.4 PerformNoteHandler = 0x029B, // updated 4.3 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index f973bfa7..90b5f9b7 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -189,6 +189,18 @@ struct FFXIVIpcInventoryModifyHandler : /* 0028 */ uint32_t splitCount; }; +struct FFXIVIpcRenameLandHandler : + FFXIVIpcBasePacket< RenameLandHandler > +{ + /* 0000 */ uint16_t landId; + /* 0002 */ uint16_t wardNum; + /* 0004 */ uint16_t zoneId; + /* 0006 */ uint16_t worldId; + /* 0008 */ char landName[20]; + /* 0028 */ uint32_t padding; +}; + + struct FFXIVIpcSetSharedEstateSettings : FFXIVIpcBasePacket< SetSharedEstateSettings > { diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b17910cf..6a87c9a9 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1605,6 +1605,37 @@ struct FFXIVIpcLandPriceUpdate : FFXIVIpcBasePacket< LandPriceUpdate > uint32_t timeLeft; }; +struct FFXIVIpcLandInfoSign : FFXIVIpcBasePacket< LandInfoSign > +{ + uint16_t landId; + uint16_t wardNum; + uint16_t zoneId; + uint16_t worldId; + uint32_t ownerId; + uint16_t someState1;//private 0x0 : fc 0x17 + uint8_t someState2;//private 0x21 : fc 0x40 + uint8_t someState3; //private 0x80 : fc 0 + uint32_t unknow1; //seems like not always 0 (6 of 5 times 0, one time it was 0x14) + uint8_t houseIconAdd; + uint8_t houseState; + uint8_t houseSize; + char landName[23]; + char landMsg[193]; + char ownerName[31]; + char fcTag[7]; + uint8_t tag[3]; +}; + +struct FFXIVIpcRenameLand : FFXIVIpcBasePacket< RenameLand > +{ + uint16_t landId; + uint16_t wardNum; + uint16_t zoneId; + uint16_t worldId; + char landName[20]; + uint32_t padding; +}; + struct FFXIVIpcLandSetMap : FFXIVIpcBasePacket< LandSetMap > { uint8_t u1; diff --git a/src/servers/sapphire_zone/Network/GameConnection.h b/src/servers/sapphire_zone/Network/GameConnection.h index 1138a5fc..faf12557 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.h +++ b/src/servers/sapphire_zone/Network/GameConnection.h @@ -162,6 +162,8 @@ namespace Core::Network DECLARE_HANDLER( performNoteHandler ); + DECLARE_HANDLER( renameLandHandler ); + DECLARE_HANDLER( tellHandler ); }; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index cbd7873a..d4db02a5 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -11,6 +11,7 @@ #include "Zone/Zone.h" #include "Zone/ZonePosition.h" #include "Zone/HousingZone.h" +#include "Zone/HousingMgr.h" #include "Zone/Land.h" #include "Network/GameConnection.h" @@ -335,9 +336,77 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR break; } + case ClientTriggerType::RequestHousingInfoSign: + { + + auto LandInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); + + uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t plot = ( param12 & 0xFF ); + pLog->debug( " Ward: " + std::to_string( ward ) + " Plot: " + std::to_string( plot ) ); + + player.setActiveLand( plot, ward ); + + auto zone = player.getCurrentZone(); + + auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + + auto land = hZone->getLand( plot ); + if( !land ) + { + auto pHousingMgr = g_fw.get< HousingMgr >(); + land = pHousingMgr->getLandByOwnerId( player.getId() ); + } + + memcpy( &LandInfoSignPacket->data().landMsg, "Hello World", 11 ); + //memcpy( &LandInfoSignPacket->data().landName, &land->getLandName(), 20 ); + memcpy( &LandInfoSignPacket->data().landName, "Hello World", 11 ); + LandInfoSignPacket->data().houseSize = land->getHouseSize(); + LandInfoSignPacket->data().houseState = land->getState(); + LandInfoSignPacket->data().landId = land->getLandId(); + LandInfoSignPacket->data().ownerId = land->getPlayerOwner(); + memcpy( &LandInfoSignPacket->data().ownerName, "Hello World", 11 ); + LandInfoSignPacket->data().wardNum = land->getWardNum(); + LandInfoSignPacket->data().worldId = 67; + LandInfoSignPacket->data().zoneId = land->getZoneId(); + + player.queuePacket( LandInfoSignPacket ); + + break; + } + case ClientTriggerType::RequestHousingRename: + { + auto landRenamePacket = makeZonePacket< Server::FFXIVIpcRenameLand >( player.getId() ); + + uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t plot = ( param12 & 0xFF ); + + auto zone = player.getCurrentZone(); + + auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + + auto land = hZone->getLand( plot ); + + if( !land ) + { + auto pHousingMgr = g_fw.get< HousingMgr >(); + land = pHousingMgr->getLandByOwnerId( player.getId() ); + } + + landRenamePacket->data().landId = land->getLandId(); + landRenamePacket->data().wardNum = land->getWardNum(); + landRenamePacket->data().worldId = 67; + landRenamePacket->data().zoneId = land->getZoneId(); + memcpy( &landRenamePacket->data().landName, &land->getLandName(), 20 ); + + player.queuePacket( landRenamePacket ); + + break; + } case ClientTriggerType::RequestHousingItemUI: { - uint32_t plot = param2; + uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t plot = ( param12 & 0xFF ); auto pShowHousingItemUIPacket = makeActorControl142( player.getId(), ShowHousingItemUI, 0, plot ); player.queuePacket( pShowHousingItemUIPacket ); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 34293a13..af4e3a85 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -648,3 +648,10 @@ void Core::Network::GameConnection::performNoteHandler( const Core::Network::Pac memcpy( &performPacket->data().data[ 0 ], &inPacket.data[ 0x10 ], 32 ); player.sendToInRangeSet( performPacket ); } + +void Core::Network::GameConnection::renameLandHandler(const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player) +{ + const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); + +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 48f4cdcd..a4756d82 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -53,6 +53,22 @@ Core::Data::HousingZonePtr Core::HousingMgr::getHousingZone( uint16_t id ) return it->second; } +Core::Data::HousingZonePtr Core::HousingMgr::getHousingZoneByLandSetId( uint32_t id ) +{ + for( const auto& hZoneIt : m_housingZonePtrMap ) + { + auto pHousingZone = hZoneIt.second; + for( uint8_t landId = 0; landId < 60; landId++ ) + { + if( pHousingZone->getLandSetId() == id ) + { + return pHousingZone; + } + } + } + return nullptr; +} + Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) { for( const auto& hZoneIt : m_housingZonePtrMap ) diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index e2981ade..b1a77858 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -25,6 +25,7 @@ namespace Core uint16_t getNexLandId(); void insertHousingZone( Core::Data::HousingZonePtr hZone ); Core::Data::HousingZonePtr getHousingZone( uint16_t id ); + Core::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); Core::LandPtr getLandByOwnerId( uint32_t id ); private: diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 52ab103d..f7702680 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -39,6 +39,9 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan { memset( &m_land, 0x00, sizeof( LandStruct ) ); memset( &m_tag, 0x00, 3 ); + memset( &m_landMsg, 0x00, 193 ); + memset( &m_landName, 0x00, 23 ); + load(); } @@ -152,6 +155,11 @@ void Core::Land::setSharing( uint8_t state ) m_land.iconAddIcon = state; } +void Core::Land::setLandName( std::string& name ) +{ + memcpy( &m_landName, &name, 20 ); +} + uint8_t Core::Land::getHouseSize() { return m_land.houseSize; @@ -192,6 +200,11 @@ uint16_t Core::Land::getZoneId() return m_zoneId; } +std::string Core::Land::getLandName() +{ + return std::string( m_landName ); +} + //Free Comapny void Core::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) { diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 75d44ea4..f0576286 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -24,6 +24,7 @@ namespace Core void setState( uint8_t state ); void setOwnership( uint8_t state ); void setSharing( uint8_t state ); + void setLandName( std::string& name ); //Gerneral uint8_t getHouseSize(); @@ -34,6 +35,7 @@ namespace Core uint8_t getWardNum(); uint8_t getLandId(); uint16_t getZoneId(); + std::string getLandName(); //Free Comapny void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ); @@ -90,7 +92,11 @@ namespace Core uint32_t m_currentPrice; uint32_t m_minPrice; - //Tags + //information + char m_landName[23]; + char m_landMsg[193]; + char m_ownerName[31]; + char fcTag[7]; uint8_t m_tag[3]; }; From 4bf5644cce116a3913dd41625e5a61337862f815 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Sun, 11 Nov 2018 14:34:56 +0100 Subject: [PATCH 042/385] fixes --- src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp | 4 ++-- src/servers/sapphire_zone/Zone/Land.cpp | 2 +- src/servers/sapphire_zone/Zone/Land.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index af4e3a85..cb03802e 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -649,8 +649,8 @@ void Core::Network::GameConnection::performNoteHandler( const Core::Network::Pac player.sendToInRangeSet( performPacket ); } -void Core::Network::GameConnection::renameLandHandler(const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player) +void Core::Network::GameConnection::renameLandHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index f7702680..2751a5b8 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -155,7 +155,7 @@ void Core::Land::setSharing( uint8_t state ) m_land.iconAddIcon = state; } -void Core::Land::setLandName( std::string& name ) +void Core::Land::setLandName( const std::string& name ) { memcpy( &m_landName, &name, 20 ); } diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index f0576286..20ca500b 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -24,7 +24,7 @@ namespace Core void setState( uint8_t state ); void setOwnership( uint8_t state ); void setSharing( uint8_t state ); - void setLandName( std::string& name ); + void setLandName( const std::string& name ); //Gerneral uint8_t getHouseSize(); From 8c5fbbedad617d22c787c61d6a8ebf760d57e2af Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Sun, 11 Nov 2018 14:53:19 +0100 Subject: [PATCH 043/385] fixed errors --- .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index d4db02a5..6f97e473 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -359,8 +359,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } memcpy( &LandInfoSignPacket->data().landMsg, "Hello World", 11 ); - //memcpy( &LandInfoSignPacket->data().landName, &land->getLandName(), 20 ); - memcpy( &LandInfoSignPacket->data().landName, "Hello World", 11 ); + memcpy( &LandInfoSignPacket->data().landName, land->getLandName().c_str(), 20 ); LandInfoSignPacket->data().houseSize = land->getHouseSize(); LandInfoSignPacket->data().houseState = land->getState(); LandInfoSignPacket->data().landId = land->getLandId(); @@ -397,7 +396,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR landRenamePacket->data().wardNum = land->getWardNum(); landRenamePacket->data().worldId = 67; landRenamePacket->data().zoneId = land->getZoneId(); - memcpy( &landRenamePacket->data().landName, &land->getLandName(), 20 ); + memcpy( &landRenamePacket->data().landName, land->getLandName().c_str(), 20 ); player.queuePacket( landRenamePacket ); From d54d19c342d3f990195d19c471404beed03c84cc Mon Sep 17 00:00:00 2001 From: mordred Date: Sun, 11 Nov 2018 15:37:57 +0100 Subject: [PATCH 044/385] Travis fix --- cmake/compiler.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 9ef1ee51..c413d73b 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -1,6 +1,6 @@ if(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -fPIC") # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") else() add_definitions(-D_WIN32_WINNT=0x601) From 1c3dbe65428198978e983a63b62e352c4c5f33ea Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 11 Nov 2018 17:20:47 +0100 Subject: [PATCH 045/385] Only allow buying one private land --- .../Scripts/common/CmnDefHousingSignboard.cpp | 30 ++++++++++++++----- .../sapphire_zone/Zone/HousingZone.cpp | 29 +++++++++++------- src/servers/sapphire_zone/Zone/HousingZone.h | 12 ++++++-- 3 files changed, 52 insertions(+), 19 deletions(-) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 083ad183..0b4b41b6 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -31,30 +31,46 @@ public: auto pTerritory = player.getCurrentZone(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); - PurchaseResult res = pHousing->purchseLand( player, activeLand.plot, - static_cast< uint8_t >( result.param2 ) ); + LandPurchaseResult res = pHousing->purchseLand( player, activeLand.plot, + static_cast< uint8_t >( result.param2 ) ); switch( res ) { - case PurchaseResult::SUCCESS: + case LandPurchaseResult::SUCCESS: { auto screenMsgPkt = makeActorControl143( player.getId(), ActorControl::DutyQuestScreenMsg, m_id, 0x98 ); player.queuePacket( screenMsgPkt ); break; } - case PurchaseResult::ERR_NOT_ENOUGH_GIL: + case LandPurchaseResult::ERR_NOT_ENOUGH_GIL: { - auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 4027 ); + auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 3314 ); player.queuePacket( errorMsg ); break; } - case PurchaseResult::ERR_NOT_AVAILABLE: + case LandPurchaseResult::ERR_NOT_AVAILABLE: + { + auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 3312 ); + player.queuePacket( errorMsg ); break; + } - case PurchaseResult::ERR_INTERNAL: + case LandPurchaseResult::ERR_NO_MORE_LANDS_FOR_CHAR: + { + auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 3313 ); + player.queuePacket( errorMsg ); break; + } + + + case LandPurchaseResult::ERR_INTERNAL: + { + auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 1995 ); + player.queuePacket( errorMsg ); + break; + } } } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 685cf8c9..0752622d 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -154,7 +154,7 @@ bool Core::HousingZone::isPlayerSubInstance( Entity::Player& player ) return player.getPos().x < -15000.0f; //ToDo: get correct pos } -Core::PurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ) +Core::LandPurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ) { auto plotPrice = getLand( plot )->getCurrentPrice(); @@ -162,23 +162,31 @@ Core::PurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, uin auto pLand = getLand( plot ); if( !pLand ) - return PurchaseResult::ERR_INTERNAL; + return LandPurchaseResult::ERR_INTERNAL; if( pLand->getState() != HouseState::forSale ) - return PurchaseResult::ERR_NOT_AVAILABLE; + return LandPurchaseResult::ERR_NOT_AVAILABLE; if( gilAvailable < plotPrice ) - return PurchaseResult::ERR_NOT_ENOUGH_GIL; + return LandPurchaseResult::ERR_NOT_ENOUGH_GIL; auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); - switch( state ) + switch( static_cast< LandPurchaseMode >( state ) ) { - case 1: + case LandPurchaseMode::FC: player.sendDebug( "Free company house purchase aren't supported at this time." ); - return PurchaseResult::ERR_INTERNAL; + return LandPurchaseResult::ERR_INTERNAL; + + case LandPurchaseMode::PRIVATE: + { + + auto pHousingMgr = g_fw.get< HousingMgr >(); + auto pOldLand = pHousingMgr->getLandByOwnerId( player.getId() ); + + if( pOldLand ) + return LandPurchaseResult::ERR_NO_MORE_LANDS_FOR_CHAR; - case 2: player.removeCurrency( CurrencyType::Gil, plotPrice ); pLand->setPlayerOwner( player.getId() ); pLand->setState( HouseState::sold ); @@ -187,10 +195,11 @@ Core::PurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, uin player.sendLandPermissions(); pLand->UpdateLandDb(); sendLandUpdate( plot ); - return PurchaseResult::SUCCESS; + return LandPurchaseResult::SUCCESS; + } default: - return PurchaseResult::ERR_INTERNAL; + return LandPurchaseResult::ERR_INTERNAL; } } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index a93be9d2..ef321b98 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -6,14 +6,22 @@ namespace Core { - enum class PurchaseResult + enum class LandPurchaseResult { SUCCESS, ERR_NOT_ENOUGH_GIL, ERR_NOT_AVAILABLE, + ERR_NO_MORE_LANDS_FOR_CHAR, ERR_INTERNAL, }; + enum class LandPurchaseMode + { + FC = 1, + PRIVATE = 2, + RELOCATE = 4, + }; + class HousingZone : public Zone { public: @@ -34,7 +42,7 @@ namespace Core void sendLandUpdate( uint8_t landId ); bool isPlayerSubInstance( Entity::Player& player ); - PurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + LandPurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); /* returns current ward number for this zone */ uint8_t getWardNum() const; From ed0296889a8d7634d2350955ffecc192f79b5767 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 11 Nov 2018 23:55:34 +0100 Subject: [PATCH 046/385] Fixed initial housing settings and added another logmessage upon land purchase --- src/common/Network/PacketDef/Ipcs.h | 17 +++++++++++------ .../Network/PacketDef/Zone/ServerZoneDef.h | 10 ++++++++-- .../Scripts/common/CmnDefHousingSignboard.cpp | 3 +++ src/servers/sapphire_zone/Actor/Player.cpp | 17 +++++++++-------- .../DebugCommand/DebugCommandHandler.cpp | 2 +- src/servers/sapphire_zone/Zone/HousingZone.cpp | 4 ++-- 6 files changed, 34 insertions(+), 19 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index e11af4a3..2503be96 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -73,8 +73,6 @@ namespace Core::Network::Packets SocialRequestResponse = 0x00BB, // updated 4.1 CancelAllianceForming = 0x00C6, // updated 4.2 - - Chat = 0x00F4, // updated 4.4 SocialList = 0x00FB, // updated 4.4 @@ -84,8 +82,7 @@ namespace Core::Network::Packets ServerNotice = 0x0104, // updated 4.4 SetOnlineStatus = 0x0105, // updated 4.4 - - + CountdownInitiate = 0x010C, // updated 4.4 CountdownCancel = 0x010D, // updated 4.4 @@ -184,19 +181,27 @@ namespace Core::Network::Packets EquipDisplayFlags = 0x020C, // updated 4.4 - // housing + /// Housing ////////////////////////////////////// + LandSetInitialize = 0x0220, // updated 4.4 LandUpdate = 0x0221, // updated 4.4 YardObjectSpawn = 0x0222, // updated 4.4 LandPriceUpdate = 0x0224, // updated 4.3 + + LandPermissionSlot = 0x0228, // updated 4.4 LandPermission = 0x0229, // updated 4.4 + LandSetYardInitialize = 0x022C, // updated 4.4 + YardObjectMove = 0x0230, // updated 4.4 - LandSetMap = 0x0251, // updated 4.4 SharedEstateSettingsResponse = 0x023C, // updated 4.4 + LandSetMap = 0x0251, // updated 4.4 + + ////////////////////////////////////////////////// + DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui PerformNote = 0x0286, // updated 4.3 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b17910cf..2e82cdc9 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1575,8 +1575,14 @@ struct FFXIVIpcPerformNote : FFXIVIpcBasePacket< PerformNote > uint8_t data[32]; }; -//IPCs -struct FFXIVIpcLandPermission : FFXIVIpcBasePacket +struct FFXIVIpcLandPermissionSlot : FFXIVIpcBasePacket< LandPermissionSlot > +{ + uint32_t type; + uint32_t unknown; + Common::LandPermissionSet permissionSet; +}; + +struct FFXIVIpcLandPermission : FFXIVIpcBasePacket< LandPermission > { Common::LandPermissionSet freeCompanyHouse; // 00 uint64_t unkown1; diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 0b4b41b6..43e01820 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -40,6 +40,9 @@ public: { auto screenMsgPkt = makeActorControl143( player.getId(), ActorControl::DutyQuestScreenMsg, m_id, 0x98 ); player.queuePacket( screenMsgPkt ); + auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 0x0D16, 0x1AA, + activeLand.ward + 1, activeLand.plot + 1 ); + player.queuePacket( screenMsgPkt2 ); break; } diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 0e4b793d..6029cd17 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1580,7 +1580,7 @@ void Core::Entity::Player::sendZonePackets() auto pHousingMgr = g_fw.get< HousingMgr >(); if( Core::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) { - setLandPermissions( LandPermissionSlot::Private, 0x0B, pLand->getLandId(), pLand->getWardNum(), pLand->getZoneId() ); + setLandPermissions( LandPermissionSlot::Private, 0x00, pLand->getLandId(), pLand->getWardNum(), pLand->getZoneId() ); } sendLandPermissions(); @@ -1761,14 +1761,15 @@ bool Core::Entity::Player::isOnEnterEventDone() const return m_onEnterEventDone; } -void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ) +void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, + int16_t landId, int16_t wardNum, int16_t zoneId ) { - m_landPermission[permissionSet].landId = landId; - m_landPermission[permissionSet].permissionMask = permissionMask; - m_landPermission[permissionSet].wardNum = wardNum; - m_landPermission[permissionSet].zoneId = zoneId; - m_landPermission[permissionSet].worldId = 67; - m_landPermission[permissionSet].unkown1 = 0; + m_landPermission[ permissionSet ].landId = landId; + m_landPermission[ permissionSet ].permissionMask = permissionMask; + m_landPermission[ permissionSet ].wardNum = wardNum; + m_landPermission[ permissionSet ].zoneId = zoneId; + m_landPermission[ permissionSet ].worldId = 67; + m_landPermission[ permissionSet ].unkown1 = 0; } void Core::Entity::Player::sendLandPermissions() diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index e324a36e..9328e074 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -1018,7 +1018,7 @@ void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); if( pHousing ) { - player.setLandPermissions( permissionSet, 8, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + player.setLandPermissions( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.sendLandPermissions(); } else diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 0752622d..eea9a46d 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -111,7 +111,7 @@ void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) //memcpy( , &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); } - player.queuePacket( landSetMap ); + //player.queuePacket( landSetMap ); } @@ -190,7 +190,7 @@ Core::LandPurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, player.removeCurrency( CurrencyType::Gil, plotPrice ); pLand->setPlayerOwner( player.getId() ); pLand->setState( HouseState::sold ); - player.setLandPermissions( LandPermissionSlot::Private, 0x0B, plot, + player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.sendLandPermissions(); pLand->UpdateLandDb(); From 1808e1658560e334244e6f2903fdf0d0858c773a Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 12 Nov 2018 08:32:30 +0100 Subject: [PATCH 047/385] rename trigger (working) + build preset (starting) --- src/common/Network/CommonActorControl.h | 3 ++ src/common/Network/PacketDef/Ipcs.h | 1 + .../Network/PacketDef/Zone/ClientZoneDef.h | 7 +++ .../sapphire_zone/Network/GameConnection.cpp | 2 + .../sapphire_zone/Network/GameConnection.h | 2 + .../Network/Handlers/ClientTriggerHandler.cpp | 17 ++++++ .../Network/Handlers/PacketHandlers.cpp | 54 +++++++++++++++++++ src/servers/sapphire_zone/Zone/Land.cpp | 3 +- src/servers/sapphire_zone/Zone/Land.h | 1 + 9 files changed, 89 insertions(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index e0b22868..e9817c9b 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -214,6 +214,8 @@ enum ActorControlType : // Housing ShowHousingItemUI = 0x3F7, + ShowBuildPresetUI = 0x3E9, + BuildPresetResponse = 0x3ED, // PvP Duel SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client) @@ -289,6 +291,7 @@ enum ClientTriggerType AchievementCritReq = 0x3E8, AchievementList = 0x3E9, + RequestHousingBuildPreset = 0x44C, RequestHousingSign = 0x451, RequestHousingInfoSign = 0x452, RequestHousingRename = 0x45A, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index f33b9399..a8eac01c 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -277,6 +277,7 @@ namespace Core::Network::Packets InventoryModifyHandler = 0x0142, // updated 4.4 + BuildPresetHandler = 0x014A, // updated 4.4 TalkEventHandler = 0x014B, // updated 4.4 EmoteEventHandler = 0x014C, // updated 4.4 WithinRangeEventHandler = 0x014D, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 90b5f9b7..ac3c127c 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -200,6 +200,13 @@ struct FFXIVIpcRenameLandHandler : /* 0028 */ uint32_t padding; }; +struct FFXIVIpcBuildPresetHandler : + FFXIVIpcBasePacket< BuildPresetHandler > +{ + /* 0000 */ uint32_t itemId; + /* 0004 */ uint8_t plotNum; + /* 0005 */ char landSetString[27]; +}; struct FFXIVIpcSetSharedEstateSettings : FFXIVIpcBasePacket< SetSharedEstateSettings > diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index 879c7751..d0cdecbc 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -83,6 +83,8 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, setZoneHandler( ClientZoneIpcType::InventoryModifyHandler, "InventoryModifyHandler", &GameConnection::inventoryModifyHandler ); + setZoneHandler( ClientZoneIpcType::BuildPresetHandler, "BuildPresetHandler", &GameConnection::eventHandlerTalk ); + setZoneHandler( ClientZoneIpcType::RenameLandHandler, "RenameLandHandler", &GameConnection::renameLandHandler ); setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk ); setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote ); setZoneHandler( ClientZoneIpcType::WithinRangeEventHandler, "EventHandlerWithinRange", diff --git a/src/servers/sapphire_zone/Network/GameConnection.h b/src/servers/sapphire_zone/Network/GameConnection.h index faf12557..61040c33 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.h +++ b/src/servers/sapphire_zone/Network/GameConnection.h @@ -164,6 +164,8 @@ namespace Core::Network DECLARE_HANDLER( renameLandHandler ); + DECLARE_HANDLER( buildPresetHandler ); + DECLARE_HANDLER( tellHandler ); }; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 6f97e473..e37f5763 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -310,6 +310,23 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR player.removeQuest( static_cast< uint16_t >( param1 ) ); break; } + case ClientTriggerType::RequestHousingBuildPreset: + { + auto pShowBuildPresetUIPacket = makeActorControl142( player.getId(), ShowBuildPresetUI, param11 ); + + auto zone = player.getCurrentZone(); + + auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + + if (!hZone) + return; + + player.setActiveLand( param11, hZone->getWardNum() ); + + player.queuePacket( pShowBuildPresetUIPacket ); + + break; + } case ClientTriggerType::RequestHousingSign: { diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index cb03802e..d3a69bfc 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -16,6 +16,9 @@ #include "Zone/TerritoryMgr.h" #include "Zone/Zone.h" +#include "Zone/HousingZone.h" +#include "Zone/HousingMgr.h" +#include "Zone/Land.h" #include "Zone/ZonePosition.h" #include "Network/PacketWrappers/InitUIPacket.h" @@ -654,4 +657,55 @@ void Core::Network::GameConnection::renameLandHandler( const Core::Network::Pack { const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); + uint32_t landSetId = ( static_cast< uint32_t >( packet.data().zoneId ) << 16 ) | packet.data().wardNum; + auto pHousingMgr = g_fw.get< HousingMgr >(); + auto pLand = pHousingMgr->getHousingZoneByLandSetId( landSetId )->getLand( packet.data().landId ); + + if( !pLand ) + return; + + pLand->setLandName( packet.data().landName ); +} + +void Core::Network::GameConnection::buildPresetHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) +{ + const auto packet = ZoneChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket ); + + auto zone = player.getCurrentZone(); + auto plotNum = packet.data().plotNum; + auto preset = packet.data().itemId; + std::string landString = std::string( packet.data().stateString ); + auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + + if( !hZone ) + return; + + auto pLand = hZone->getLand( plotNum ); + /* + if (!pLand) + player.sendDebug( "Something went wrong..." ); + + if( stateString.find( "Private" ) ) + { + pLand->setPreset( preset ); + pLand->setState( HouseState::privateHouse ); + pLand->UpdateLandDb(); + hZone->sendLandUpdate( plotNum ); + } + else if( stateString.find("Free") ) + { + pLand->setPreset( preset ); + pLand->setState( HouseState::fcHouse ); + pLand->UpdateLandDb(); + hZone->sendLandUpdate( plotNum ); + } + else + { + player.sendDebug( "You tried to build a preset on not supported land." ); + } + + auto pSuccessBuildingPacket = makeActorControl142( player.getId(), BuildPresetResponse, plotNum ); + + player.queuePacket( pSuccessBuildingPacket );*/ } diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 2751a5b8..2201c3c1 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -65,6 +65,7 @@ void Core::Land::load() m_currentPrice = m_landInfo->prices[ m_landId ]; m_minPrice = m_landInfo->minPrices[ m_landId ]; m_land.houseSize = m_landInfo->sizes[ m_landId ]; + m_land.houseState = HouseState::forSale; } else { @@ -157,7 +158,7 @@ void Core::Land::setSharing( uint8_t state ) void Core::Land::setLandName( const std::string& name ) { - memcpy( &m_landName, &name, 20 ); + memcpy( &m_landName, name.c_str(), 20 ); } uint8_t Core::Land::getHouseSize() diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 20ca500b..6cdbf593 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -1,6 +1,7 @@ #ifndef LAND_H_ #define LAND_H_ #include +#include "Exd/ExdDataGenerated.h" #include "ForwardsZone.h" namespace Core From 1a618ee4109e77091b9f289b35c9e615dc8300d7 Mon Sep 17 00:00:00 2001 From: XeAri Date: Mon, 12 Nov 2018 08:43:24 +0100 Subject: [PATCH 048/385] Update ClientZoneDef.h --- src/common/Network/PacketDef/Zone/ClientZoneDef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index ac3c127c..ac8ea9dc 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -205,7 +205,7 @@ struct FFXIVIpcBuildPresetHandler : { /* 0000 */ uint32_t itemId; /* 0004 */ uint8_t plotNum; - /* 0005 */ char landSetString[27]; + /* 0005 */ char stateString[27]; }; struct FFXIVIpcSetSharedEstateSettings : From c9eb1bafce88184d439a4a944731a5331cfdfef7 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 12 Nov 2018 09:32:20 +0100 Subject: [PATCH 049/385] name fixes --- src/common/Network/PacketDef/Ipcs.h | 4 ++-- src/common/Network/PacketDef/Zone/ClientZoneDef.h | 2 +- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- src/servers/sapphire_zone/Network/GameConnection.cpp | 2 +- src/servers/sapphire_zone/Network/GameConnection.h | 2 +- .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 2 +- src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 39ba1963..8b43346b 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -189,7 +189,7 @@ namespace Core::Network::Packets LandPriceUpdate = 0x0224, // updated 4.4 LandInfoSign = 0x0225, // updated 4.4 - RenameLand = 0x0226, // updated 4.4 + LandRename = 0x0226, // updated 4.4 LandPermissionSlot = 0x0228, // updated 4.4 @@ -296,7 +296,7 @@ namespace Core::Network::Packets LinkshellEventHandler = 0x0150, // updated 4.1 ?? LinkshellEventHandler1 = 0x0151, // updated 4.1 ?? - RenameLandHandler = 0x0171, // updated 4.4 + LandRenameHandler = 0x0171, // updated 4.4 SetSharedEstateSettings = 0x0177, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index ac8ea9dc..7dae9236 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -190,7 +190,7 @@ struct FFXIVIpcInventoryModifyHandler : }; struct FFXIVIpcRenameLandHandler : - FFXIVIpcBasePacket< RenameLandHandler > + FFXIVIpcBasePacket< LandRenameHandler > { /* 0000 */ uint16_t landId; /* 0002 */ uint16_t wardNum; diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b0f29327..84ab8c5f 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1632,7 +1632,7 @@ struct FFXIVIpcLandInfoSign : FFXIVIpcBasePacket< LandInfoSign > uint8_t tag[3]; }; -struct FFXIVIpcRenameLand : FFXIVIpcBasePacket< RenameLand > +struct FFXIVIpcLandRename : FFXIVIpcBasePacket< LandRename > { uint16_t landId; uint16_t wardNum; diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index d0cdecbc..5d412727 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -84,7 +84,7 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, &GameConnection::inventoryModifyHandler ); setZoneHandler( ClientZoneIpcType::BuildPresetHandler, "BuildPresetHandler", &GameConnection::eventHandlerTalk ); - setZoneHandler( ClientZoneIpcType::RenameLandHandler, "RenameLandHandler", &GameConnection::renameLandHandler ); + setZoneHandler( ClientZoneIpcType::LandRenameHandler, "LandRenameHandler", &GameConnection::landRenameHandler ); setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk ); setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote ); setZoneHandler( ClientZoneIpcType::WithinRangeEventHandler, "EventHandlerWithinRange", diff --git a/src/servers/sapphire_zone/Network/GameConnection.h b/src/servers/sapphire_zone/Network/GameConnection.h index 61040c33..8ba31549 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.h +++ b/src/servers/sapphire_zone/Network/GameConnection.h @@ -162,7 +162,7 @@ namespace Core::Network DECLARE_HANDLER( performNoteHandler ); - DECLARE_HANDLER( renameLandHandler ); + DECLARE_HANDLER( landRenameHandler ); DECLARE_HANDLER( buildPresetHandler ); diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index e37f5763..f4b69960 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -392,7 +392,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestHousingRename: { - auto landRenamePacket = makeZonePacket< Server::FFXIVIpcRenameLand >( player.getId() ); + auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); uint8_t ward = ( param12 & 0xFF00 ) >> 8; uint8_t plot = ( param12 & 0xFF ); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index d3a69bfc..de2f34d5 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -652,7 +652,7 @@ void Core::Network::GameConnection::performNoteHandler( const Core::Network::Pac player.sendToInRangeSet( performPacket ); } -void Core::Network::GameConnection::renameLandHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, +void Core::Network::GameConnection::landRenameHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); From c4cb8ecb7cd872047e9e237e56981b71e889623d Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 12 Nov 2018 09:40:20 +0100 Subject: [PATCH 050/385] setting land name like retail --- src/servers/Scripts/common/CmnDefHousingSignboard.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 43e01820..12c89907 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -2,6 +2,7 @@ #include #include #include +#include #include #include @@ -38,6 +39,8 @@ public: { case LandPurchaseResult::SUCCESS: { + pHousing->getLand( activeLand.plot )->setLandName( "Private Estate" + std::to_string( activeLand.ward ) + "-" + std::to_string( activeLand.plot ) ); + auto screenMsgPkt = makeActorControl143( player.getId(), ActorControl::DutyQuestScreenMsg, m_id, 0x98 ); player.queuePacket( screenMsgPkt ); auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 0x0D16, 0x1AA, From 4763451da9103ce5509405eb00ac56036b18cef9 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 12 Nov 2018 09:54:15 +0100 Subject: [PATCH 051/385] moving init name to purcahse --- src/servers/Scripts/common/CmnDefHousingSignboard.cpp | 3 --- src/servers/sapphire_zone/Zone/HousingZone.cpp | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 12c89907..43e01820 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -2,7 +2,6 @@ #include #include #include -#include #include #include @@ -39,8 +38,6 @@ public: { case LandPurchaseResult::SUCCESS: { - pHousing->getLand( activeLand.plot )->setLandName( "Private Estate" + std::to_string( activeLand.ward ) + "-" + std::to_string( activeLand.plot ) ); - auto screenMsgPkt = makeActorControl143( player.getId(), ActorControl::DutyQuestScreenMsg, m_id, 0x98 ); player.queuePacket( screenMsgPkt ); auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 0x0D16, 0x1AA, diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index eea9a46d..8f45e1a5 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -193,6 +193,7 @@ Core::LandPurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.sendLandPermissions(); + pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); pLand->UpdateLandDb(); sendLandUpdate( plot ); return LandPurchaseResult::SUCCESS; From 6596b5a6d56fd11be7ff531f3525d0dbbd11842d Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 13 Nov 2018 00:03:09 +0100 Subject: [PATCH 052/385] Fixed sign structure and lookup of owner name --- src/common/Common.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 13 ++++----- .../Network/Handlers/ClientTriggerHandler.cpp | 27 ++++++++++--------- src/servers/sapphire_zone/ServerZone.cpp | 11 ++++++++ src/servers/sapphire_zone/ServerZone.h | 2 ++ src/servers/sapphire_zone/Zone/Land.cpp | 12 ++++----- src/servers/sapphire_zone/Zone/Land.h | 2 +- 7 files changed, 40 insertions(+), 29 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index fe183346..cc4fedf1 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -761,7 +761,7 @@ namespace Core::Common //Structs struct LandStruct { - uint8_t houseSize; //0 + uint8_t plotSize; //0 uint8_t houseState; // 2 uint8_t iconColor; // 4 uint8_t iconAddIcon; // 6 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 84ab8c5f..7fd1d293 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1617,16 +1617,13 @@ struct FFXIVIpcLandInfoSign : FFXIVIpcBasePacket< LandInfoSign > uint16_t wardNum; uint16_t zoneId; uint16_t worldId; - uint32_t ownerId; - uint16_t someState1;//private 0x0 : fc 0x17 - uint8_t someState2;//private 0x21 : fc 0x40 - uint8_t someState3; //private 0x80 : fc 0 - uint32_t unknow1; //seems like not always 0 (6 of 5 times 0, one time it was 0x14) + uint64_t ownerId; // ither contentId or fcId + uint32_t unknow1; uint8_t houseIconAdd; - uint8_t houseState; uint8_t houseSize; - char landName[23]; - char landMsg[193]; + uint8_t houseType; + char estateName[23]; + char estateGreeting[193]; char ownerName[31]; char fcTag[7]; uint8_t tag[3]; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index f4b69960..5ec751c4 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -356,7 +356,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR case ClientTriggerType::RequestHousingInfoSign: { - auto LandInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); + auto landInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); uint8_t ward = ( param12 & 0xFF00 ) >> 8; uint8_t plot = ( param12 & 0xFF ); @@ -375,18 +375,19 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR land = pHousingMgr->getLandByOwnerId( player.getId() ); } - memcpy( &LandInfoSignPacket->data().landMsg, "Hello World", 11 ); - memcpy( &LandInfoSignPacket->data().landName, land->getLandName().c_str(), 20 ); - LandInfoSignPacket->data().houseSize = land->getHouseSize(); - LandInfoSignPacket->data().houseState = land->getState(); - LandInfoSignPacket->data().landId = land->getLandId(); - LandInfoSignPacket->data().ownerId = land->getPlayerOwner(); - memcpy( &LandInfoSignPacket->data().ownerName, "Hello World", 11 ); - LandInfoSignPacket->data().wardNum = land->getWardNum(); - LandInfoSignPacket->data().worldId = 67; - LandInfoSignPacket->data().zoneId = land->getZoneId(); - - player.queuePacket( LandInfoSignPacket ); + uint32_t playerId = land->getPlayerOwner(); + std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( playerId ); + //memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 ); + //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); + //landInfoSignPacket->data().houseSize = land->getPlotSize(); + landInfoSignPacket->data().houseType = 2; // we really need to save this in the plot + landInfoSignPacket->data().landId = land->getLandId(); + landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() + memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); + landInfoSignPacket->data().wardNum = land->getWardNum(); + landInfoSignPacket->data().worldId = 67; + landInfoSignPacket->data().zoneId = land->getZoneId(); + player.queuePacket( landInfoSignPacket ); break; } diff --git a/src/servers/sapphire_zone/ServerZone.cpp b/src/servers/sapphire_zone/ServerZone.cpp index e7615dc2..2f3f4adc 100644 --- a/src/servers/sapphire_zone/ServerZone.cpp +++ b/src/servers/sapphire_zone/ServerZone.cpp @@ -354,6 +354,17 @@ bool Core::ServerZone::isRunning() const return m_bRunning; } +std::string Core::ServerZone::getPlayerNameFromDb( uint32_t playerId ) +{ + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDb->query( "SELECT name FROM charainfo WHERE characterid = " + std::to_string( playerId ) ); + + if( !res->next() ) + return "Unknown"; + + return res->getString( 1 ); +} + void Core::ServerZone::loadBNpcTemplates() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); diff --git a/src/servers/sapphire_zone/ServerZone.h b/src/servers/sapphire_zone/ServerZone.h index 28a0d858..1045e322 100644 --- a/src/servers/sapphire_zone/ServerZone.h +++ b/src/servers/sapphire_zone/ServerZone.h @@ -41,6 +41,8 @@ public: Entity::BNpcTemplatePtr getBNpcTemplate( const std::string& key ); Entity::BNpcTemplatePtr getBNpcTemplate( uint32_t id ); + std::string getPlayerNameFromDb( uint32_t playerId ); + private: uint16_t m_port; std::string m_ip; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 2201c3c1..0d5bb7b3 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -64,12 +64,12 @@ void Core::Land::load() m_currentPrice = m_landInfo->prices[ m_landId ]; m_minPrice = m_landInfo->minPrices[ m_landId ]; - m_land.houseSize = m_landInfo->sizes[ m_landId ]; + m_land.plotSize = m_landInfo->sizes[ m_landId ]; m_land.houseState = HouseState::forSale; } else { - m_land.houseSize = res->getUInt( "Size" ); + m_land.plotSize = res->getUInt( "Size" ); m_land.houseState = res->getUInt( "Status" ); m_currentPrice = res->getUInt( "LandPrice" ); m_ownerPlayerId = res->getUInt( "OwnerId" ); @@ -138,7 +138,7 @@ void Core::Land::setPreset( uint32_t id ) //Primary State void Core::Land::setHouseSize( uint8_t size ) { - m_land.houseSize = size; + m_land.plotSize = size; } void Core::Land::setState( uint8_t state ) @@ -161,9 +161,9 @@ void Core::Land::setLandName( const std::string& name ) memcpy( &m_landName, name.c_str(), 20 ); } -uint8_t Core::Land::getHouseSize() +uint8_t Core::Land::getPlotSize() { - return m_land.houseSize; + return m_land.plotSize; } uint8_t Core::Land::getState() @@ -290,7 +290,7 @@ uint8_t Core::Land::getLandTag( uint8_t slot ) void Core::Land::init() { - switch( getHouseSize() ) + switch( getPlotSize() ) { case HouseSize::small: m_maxItems = 20; diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 6cdbf593..cc7c3825 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -28,7 +28,7 @@ namespace Core void setLandName( const std::string& name ); //Gerneral - uint8_t getHouseSize(); + uint8_t getPlotSize(); uint8_t getState(); uint8_t getOwnership(); uint8_t getSharing(); From 67e74268a0250821b26be776698d8fae6536d990 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 13 Nov 2018 20:43:29 +1100 Subject: [PATCH 053/385] expose framework to scripts --- .../sapphire_zone/Script/NativeScriptApi.cpp | 12 +++++++++++ .../sapphire_zone/Script/NativeScriptApi.h | 21 +++++++++++++++++++ .../sapphire_zone/Script/NativeScriptMgr.cpp | 6 ++++++ 3 files changed, 39 insertions(+) diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp index 3963f7aa..7cc06012 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp @@ -3,6 +3,7 @@ #include #include #include "NativeScriptApi.h" +#include #ifdef _MSC_VER #define EXPORT __declspec( dllexport ) @@ -28,6 +29,17 @@ std::size_t ScriptObject::getType() const return m_type; } +void ScriptObject::setFramework( Core::Framework* fw ) +{ + assert( fw ); + m_framework = fw; +} + +Core::Framework* ScriptObject::getFramework() const +{ + return m_framework; +} + /////////////////////////////////////////////////////////////////// StatusEffectScript::StatusEffectScript( uint32_t effectId ) : diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.h b/src/servers/sapphire_zone/Script/NativeScriptApi.h index 64c8e79a..f5701a07 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.h +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.h @@ -15,6 +15,11 @@ #define EVENTSCRIPT_AETHERYTE_ID 0x50000 #define EVENTSCRIPT_AETHERNET_ID 0x50001 +namespace Core +{ + class Framework; +} + /*! * @brief The base class that any script should inherit from and set the type param accordingly */ @@ -24,6 +29,8 @@ protected: uint32_t m_id; std::size_t m_type; + Core::Framework* m_framework; + public: /*! * @param id an ID which uniquely identifies this script in relation to it's type @@ -44,6 +51,20 @@ public: * @return The hash_code of the script */ virtual std::size_t getType() const; + + /*! + * @brief Sets the ptr to the framework for use inside scripts + * + * @param fw The ptr to g_fw (Core::Framework) + */ + virtual void setFramework( Core::Framework* fw ); + + /*! + * @brief Returns the current ptr to framework set for the current script + * + * @return A pointer to Core::Framework + */ + virtual Core::Framework* getFramework() const; }; diff --git a/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp b/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp index ac7a1f7f..d7bd0139 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp @@ -2,6 +2,10 @@ #include +#include "Framework.h" + +extern Core::Framework g_fw; + namespace Core { namespace Scripting { @@ -29,6 +33,8 @@ bool NativeScriptMgr::loadScript( const std::string& path ) auto script = scripts[ i ]; module->scripts.push_back( script ); + script->setFramework( &g_fw ); + m_scripts[ script->getType() ][ script->getId() ] = script; success = true; From 1898d7bf5c1dc4fd001af698a13b32a8d6da0a32 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 13 Nov 2018 21:34:44 +1100 Subject: [PATCH 054/385] move all script classes to Sapphire::ScriptAPI namespace --- src/servers/Scripts/CMakeLists.txt | 2 +- src/servers/Scripts/ScriptLoader.cpp.in | 4 +- src/servers/Scripts/action/ActionReturn6.cpp | 4 +- src/servers/Scripts/action/ActionSprint3.cpp | 4 +- src/servers/Scripts/common/Aethernet.cpp | 4 +- src/servers/Scripts/common/Aetheryte.cpp | 4 +- .../Scripts/common/CmnDefCutSceneReplay.cpp | 4 +- .../Scripts/common/CmnDefHousingSignboard.cpp | 4 +- src/servers/Scripts/common/CmnDefInnBed.cpp | 4 +- .../Scripts/common/CmnDefLinkShell.cpp | 4 +- .../common/CmnDefMarketBoardGridania.cpp | 4 +- .../Scripts/common/CmnDefMogLetter.cpp | 4 +- .../Scripts/common/CmnDefNpcRepair.cpp | 4 +- .../Scripts/common/CmnDefWeatherForeCast.cpp | 4 +- .../Scripts/common/ComDefMobHuntBoard.cpp | 4 +- src/servers/Scripts/common/GilShop.cpp | 4 +- .../Scripts/common/HouFurOrchestrion.cpp | 4 +- .../ThePalaceoftheDeadFloors101110.cpp | 4 +- .../ThePalaceoftheDeadFloors110.cpp | 4 +- .../ThePalaceoftheDeadFloors111120.cpp | 4 +- .../ThePalaceoftheDeadFloors1120.cpp | 4 +- .../ThePalaceoftheDeadFloors121130.cpp | 4 +- .../ThePalaceoftheDeadFloors131140.cpp | 4 +- .../ThePalaceoftheDeadFloors141150.cpp | 4 +- .../ThePalaceoftheDeadFloors151160.cpp | 4 +- .../ThePalaceoftheDeadFloors161170.cpp | 4 +- .../ThePalaceoftheDeadFloors171180.cpp | 4 +- .../ThePalaceoftheDeadFloors181190.cpp | 4 +- .../ThePalaceoftheDeadFloors191200.cpp | 4 +- .../ThePalaceoftheDeadFloors2130.cpp | 4 +- .../ThePalaceoftheDeadFloors3140.cpp | 4 +- .../ThePalaceoftheDeadFloors4150.cpp | 4 +- .../ThePalaceoftheDeadFloors5160.cpp | 4 +- .../ThePalaceoftheDeadFloors6170.cpp | 4 +- .../ThePalaceoftheDeadFloors7180.cpp | 4 +- .../ThePalaceoftheDeadFloors8190.cpp | 4 +- .../ThePalaceoftheDeadFloors91100.cpp | 4 +- .../Scripts/instances/dungeons/AlaMhigo.cpp | 4 +- .../instances/dungeons/AmdaporKeep.cpp | 4 +- .../instances/dungeons/AmdaporKeepHard.cpp | 4 +- .../instances/dungeons/BaelsarsWall.cpp | 4 +- .../instances/dungeons/BardamsMettle.cpp | 4 +- .../instances/dungeons/BrayfloxsLongstop.cpp | 4 +- .../dungeons/BrayfloxsLongstopHard.cpp | 4 +- .../instances/dungeons/CastrumAbania.cpp | 4 +- .../instances/dungeons/CastrumMeridianum.cpp | 4 +- .../instances/dungeons/CopperbellMines.cpp | 4 +- .../dungeons/CopperbellMinesHard.cpp | 4 +- .../Scripts/instances/dungeons/CuttersCry.cpp | 4 +- .../Scripts/instances/dungeons/DomaCastle.cpp | 4 +- .../instances/dungeons/DzemaelDarkhold.cpp | 4 +- .../Scripts/instances/dungeons/Halatali.cpp | 4 +- .../instances/dungeons/HalataliHard.cpp | 4 +- .../instances/dungeons/HaukkeManor.cpp | 4 +- .../instances/dungeons/HaukkeManorHard.cpp | 4 +- .../Scripts/instances/dungeons/HellsLid.cpp | 4 +- .../instances/dungeons/HullbreakerIsle.cpp | 4 +- .../dungeons/HullbreakerIsleHard.cpp | 4 +- .../instances/dungeons/KuganeCastle.cpp | 4 +- .../Scripts/instances/dungeons/Neverreap.cpp | 4 +- .../instances/dungeons/PharosSirius.cpp | 4 +- .../instances/dungeons/PharosSiriusHard.cpp | 4 +- .../dungeons/SaintMociannesArboretum.cpp | 4 +- .../Scripts/instances/dungeons/Sastasha.cpp | 4 +- .../instances/dungeons/SastashaHard.cpp | 4 +- .../dungeons/ShisuioftheVioletTides.cpp | 4 +- .../Scripts/instances/dungeons/Snowcloak.cpp | 4 +- .../Scripts/instances/dungeons/SohmAl.cpp | 4 +- .../Scripts/instances/dungeons/SohmAlHard.cpp | 4 +- .../Scripts/instances/dungeons/SohrKhai.cpp | 4 +- .../Scripts/instances/dungeons/TheAery.cpp | 4 +- .../TheAetherochemicalResearchFacility.cpp | 4 +- .../instances/dungeons/TheAntitower.cpp | 4 +- .../instances/dungeons/TheAurumVale.cpp | 4 +- .../dungeons/TheDrownedCityofSkalla.cpp | 4 +- .../instances/dungeons/TheDuskVigil.cpp | 4 +- .../dungeons/TheFractalContinuum.cpp | 4 +- .../dungeons/TheFractalContinuumHard.cpp | 4 +- .../dungeons/TheGreatGubalLibrary.cpp | 4 +- .../dungeons/TheGreatGubalLibraryHard.cpp | 4 +- .../instances/dungeons/TheKeeperoftheLake.cpp | 4 +- .../dungeons/TheLostCityofAmdapor.cpp | 4 +- .../dungeons/TheLostCityofAmdaporHard.cpp | 4 +- .../instances/dungeons/ThePraetorium.cpp | 4 +- .../instances/dungeons/TheSirensongSea.cpp | 4 +- .../instances/dungeons/TheStoneVigil.cpp | 4 +- .../instances/dungeons/TheStoneVigilHard.cpp | 4 +- .../dungeons/TheSunkenTempleofQarn.cpp | 4 +- .../dungeons/TheSunkenTempleofQarnHard.cpp | 4 +- .../dungeons/TheTamTaraDeepcroft.cpp | 4 +- .../dungeons/TheTamTaraDeepcroftHard.cpp | 4 +- .../instances/dungeons/TheTempleoftheFist.cpp | 4 +- .../dungeons/TheThousandMawsofTotoRak.cpp | 4 +- .../Scripts/instances/dungeons/TheVault.cpp | 4 +- .../instances/dungeons/TheWanderersPalace.cpp | 4 +- .../dungeons/TheWanderersPalaceHard.cpp | 4 +- .../Scripts/instances/dungeons/Xelphatol.cpp | 4 +- .../instances/events/TheHauntedManor.cpp | 4 +- .../events/TheValentionesCeremony.cpp | 4 +- .../guildhests/AllsWellthatEndsintheWell.cpp | 4 +- .../instances/guildhests/AnnoytheVoid.cpp | 4 +- .../guildhests/BasicTrainingEnemyParties.cpp | 4 +- .../BasicTrainingEnemyStrongholds.cpp | 4 +- .../FlickingSticksandTakingNames.cpp | 4 +- .../guildhests/HeroontheHalfShell.cpp | 4 +- .../instances/guildhests/LongLivetheQueen.cpp | 4 +- .../instances/guildhests/MorethanaFeeler.cpp | 4 +- .../guildhests/PullingPoisonPosies.cpp | 4 +- .../instances/guildhests/ShadowandClaw.cpp | 4 +- .../instances/guildhests/SolemnTrinity.cpp | 4 +- .../instances/guildhests/StingingBack.cpp | 4 +- .../instances/guildhests/UndertheArmor.cpp | 4 +- .../Scripts/instances/guildhests/WardUp.cpp | 4 +- .../AccrueEnmityfromMultipleTargets.cpp | 4 +- .../AssistAlliesinDefeatingaTarget.cpp | 4 +- .../AvoidAreaofEffectAttacks.cpp | 4 +- .../hallofthenovice/AvoidEngagedTargets.cpp | 4 +- .../DefeatanOccupiedTarget.cpp | 4 +- .../EngageEnemyReinforcements.cpp | 4 +- .../hallofthenovice/EngageMultipleTargets.cpp | 4 +- .../hallofthenovice/ExecuteaComboinBattle.cpp | 4 +- .../ExecuteaCombotoIncreaseEnmity.cpp | 4 +- .../ExecuteaRangedAttacktoIncreaseEnmity.cpp | 4 +- .../hallofthenovice/FinalExercise.cpp | 4 +- .../hallofthenovice/HealMultipleAllies.cpp | 4 +- .../instances/hallofthenovice/HealanAlly.cpp | 4 +- .../InteractwiththeBattlefield.cpp | 4 +- .../Scripts/instances/pvp/Astragalos.cpp | 4 +- .../Scripts/instances/pvp/SealRockSeize.cpp | 4 +- .../pvp/TheBorderlandRuinsSecure.cpp | 4 +- .../instances/pvp/TheFeast4on4LightParty.cpp | 4 +- .../instances/pvp/TheFeast4on4Ranked.cpp | 4 +- .../instances/pvp/TheFeast4on4Training.cpp | 4 +- .../pvp/TheFeastCustomMatchCrystalTower.cpp | 4 +- .../TheFeastCustomMatchFeastingGrounds.cpp | 4 +- .../pvp/TheFeastCustomMatchLichenweed.cpp | 4 +- .../Scripts/instances/pvp/TheFeastRanked.cpp | 4 +- .../instances/pvp/TheFeastTeamRanked.cpp | 4 +- .../instances/pvp/TheFeastTraining.cpp | 4 +- .../instances/pvp/TheFieldsofGloryShatter.cpp | 4 +- .../instances/questbattles/ABloodyReunion.cpp | 4 +- .../questbattles/ASpectaclefortheAges.cpp | 4 +- .../instances/questbattles/BloodDragoon.cpp | 4 +- .../instances/questbattles/BloodontheDeck.cpp | 4 +- .../CuriousGorgeMeetsHisMatch.cpp | 4 +- .../instances/questbattles/DarkwingDragon.cpp | 4 +- .../instances/questbattles/InThalsName.cpp | 4 +- .../questbattles/InterdimensionalRift.cpp | 4 +- .../questbattles/ItsProbablyaTrap.cpp | 4 +- .../instances/questbattles/MatsubaMayhem.cpp | 4 +- .../Scripts/instances/questbattles/Naadam.cpp | 4 +- .../questbattles/OneLifeforOneWorld.cpp | 4 +- .../instances/questbattles/OurCompromise.cpp | 4 +- .../questbattles/OurUnsungHeroes.cpp | 4 +- .../questbattles/RaisingtheSword.cpp | 4 +- .../questbattles/ReturnoftheBull.cpp | 4 +- .../questbattles/TheBattleonBekko.cpp | 4 +- .../TheCarteneauFlatsHeliodrome.cpp | 4 +- .../questbattles/TheFaceofTrueEvil.cpp | 4 +- .../questbattles/TheHeartoftheProblem.cpp | 4 +- .../TheOrphansandtheBrokenBlade.cpp | 4 +- .../instances/questbattles/TheResonant.cpp | 4 +- .../questbattles/WhenClansCollide.cpp | 4 +- .../questbattles/WithHeartandSteel.cpp | 4 +- .../raids/AlexanderTheArmoftheFather.cpp | 4 +- .../AlexanderTheArmoftheFatherSavage.cpp | 4 +- .../raids/AlexanderTheArmoftheSon.cpp | 4 +- .../raids/AlexanderTheArmoftheSonSavage.cpp | 4 +- .../raids/AlexanderTheBreathoftheCreator.cpp | 4 +- .../AlexanderTheBreathoftheCreatorSavage.cpp | 4 +- .../raids/AlexanderTheBurdenoftheFather.cpp | 4 +- .../AlexanderTheBurdenoftheFatherSavage.cpp | 4 +- .../raids/AlexanderTheBurdenoftheSon.cpp | 4 +- .../AlexanderTheBurdenoftheSonSavage.cpp | 4 +- .../raids/AlexanderTheCuffoftheFather.cpp | 4 +- .../AlexanderTheCuffoftheFatherSavage.cpp | 4 +- .../raids/AlexanderTheCuffoftheSon.cpp | 4 +- .../raids/AlexanderTheCuffoftheSonSavage.cpp | 4 +- .../raids/AlexanderTheEyesoftheCreator.cpp | 4 +- .../AlexanderTheEyesoftheCreatorSavage.cpp | 4 +- .../raids/AlexanderTheFistoftheFather.cpp | 4 +- .../AlexanderTheFistoftheFatherSavage.cpp | 4 +- .../raids/AlexanderTheFistoftheSon.cpp | 4 +- .../raids/AlexanderTheFistoftheSonSavage.cpp | 4 +- .../raids/AlexanderTheHeartoftheCreator.cpp | 4 +- .../AlexanderTheHeartoftheCreatorSavage.cpp | 4 +- .../raids/AlexanderTheSouloftheCreator.cpp | 4 +- .../AlexanderTheSouloftheCreatorSavage.cpp | 4 +- .../Scripts/instances/raids/DeltascapeV10.cpp | 4 +- .../instances/raids/DeltascapeV10Savage.cpp | 4 +- .../Scripts/instances/raids/DeltascapeV20.cpp | 4 +- .../instances/raids/DeltascapeV20Savage.cpp | 4 +- .../Scripts/instances/raids/DeltascapeV30.cpp | 4 +- .../instances/raids/DeltascapeV30Savage.cpp | 4 +- .../Scripts/instances/raids/DeltascapeV40.cpp | 4 +- .../instances/raids/DeltascapeV40Savage.cpp | 4 +- .../Scripts/instances/raids/DunScaith.cpp | 4 +- .../Scripts/instances/raids/SigmascapeV10.cpp | 4 +- .../instances/raids/SigmascapeV10Savage.cpp | 4 +- .../Scripts/instances/raids/SigmascapeV20.cpp | 4 +- .../instances/raids/SigmascapeV20Savage.cpp | 4 +- .../Scripts/instances/raids/SigmascapeV30.cpp | 4 +- .../instances/raids/SigmascapeV30Savage.cpp | 4 +- .../Scripts/instances/raids/SigmascapeV40.cpp | 4 +- .../instances/raids/SigmascapeV40Savage.cpp | 4 +- .../Scripts/instances/raids/SyrcusTower.cpp | 4 +- .../raids/TheBindingCoilofBahamutTurn1.cpp | 4 +- .../raids/TheBindingCoilofBahamutTurn2.cpp | 4 +- .../raids/TheBindingCoilofBahamutTurn3.cpp | 4 +- .../raids/TheBindingCoilofBahamutTurn4.cpp | 4 +- .../raids/TheBindingCoilofBahamutTurn5.cpp | 4 +- .../raids/TheFinalCoilofBahamutTurn1.cpp | 4 +- .../raids/TheFinalCoilofBahamutTurn2.cpp | 4 +- .../raids/TheFinalCoilofBahamutTurn3.cpp | 4 +- .../raids/TheFinalCoilofBahamutTurn4.cpp | 4 +- .../raids/TheLabyrinthoftheAncients.cpp | 4 +- .../raids/TheRoyalCityofRabanastre.cpp | 4 +- .../TheSecondCoilofBahamutSavageTurn1.cpp | 4 +- .../TheSecondCoilofBahamutSavageTurn2.cpp | 4 +- .../TheSecondCoilofBahamutSavageTurn3.cpp | 4 +- .../TheSecondCoilofBahamutSavageTurn4.cpp | 4 +- .../raids/TheSecondCoilofBahamutTurn1.cpp | 4 +- .../raids/TheSecondCoilofBahamutTurn2.cpp | 4 +- .../raids/TheSecondCoilofBahamutTurn3.cpp | 4 +- .../raids/TheSecondCoilofBahamutTurn4.cpp | 4 +- .../TheUnendingCoilofBahamutUltimate.cpp | 4 +- .../Scripts/instances/raids/TheVoidArk.cpp | 4 +- .../raids/TheWeaponsRefrainUltimate.cpp | 4 +- .../instances/raids/TheWeepingCityofMhach.cpp | 4 +- .../instances/raids/TheWorldofDarkness.cpp | 4 +- .../instances/treasurehunt/TheAquapolis.cpp | 4 +- .../treasurehunt/TheHiddenCanalsofUznair.cpp | 4 +- .../treasurehunt/TheLostCanalsofUznair.cpp | 4 +- .../trials/ARelicReborntheChimera.cpp | 4 +- .../instances/trials/ARelicReborntheHydra.cpp | 4 +- .../trials/AkhAfahAmphitheatreExtreme.cpp | 4 +- .../trials/AkhAfahAmphitheatreHard.cpp | 4 +- .../instances/trials/BattleintheBigKeep.cpp | 4 +- .../instances/trials/BattleontheBigBridge.cpp | 4 +- .../Scripts/instances/trials/CapeWestwind.cpp | 4 +- .../instances/trials/ContainmentBayP1T6.cpp | 4 +- .../trials/ContainmentBayP1T6Extreme.cpp | 4 +- .../instances/trials/ContainmentBayS1T7.cpp | 4 +- .../trials/ContainmentBayS1T7Extreme.cpp | 4 +- .../instances/trials/ContainmentBayZ1T9.cpp | 4 +- .../trials/ContainmentBayZ1T9Extreme.cpp | 4 +- .../Scripts/instances/trials/Emanation.cpp | 4 +- .../instances/trials/EmanationExtreme.cpp | 4 +- .../instances/trials/SpecialEventI.cpp | 4 +- .../instances/trials/SpecialEventII.cpp | 4 +- .../instances/trials/SpecialEventIII.cpp | 4 +- .../instances/trials/TheBowlofEmbers.cpp | 4 +- .../trials/TheBowlofEmbersExtreme.cpp | 4 +- .../instances/trials/TheBowlofEmbersHard.cpp | 4 +- .../Scripts/instances/trials/TheChrysalis.cpp | 4 +- .../instances/trials/TheDragonsNeck.cpp | 4 +- .../instances/trials/TheFinalStepsofFaith.cpp | 4 +- .../instances/trials/TheHowlingEye.cpp | 4 +- .../instances/trials/TheHowlingEyeExtreme.cpp | 4 +- .../instances/trials/TheHowlingEyeHard.cpp | 4 +- .../Scripts/instances/trials/TheJadeStoa.cpp | 4 +- .../instances/trials/TheJadeStoaExtreme.cpp | 4 +- .../trials/TheLimitlessBlueExtreme.cpp | 4 +- .../instances/trials/TheLimitlessBlueHard.cpp | 4 +- .../trials/TheMinstrelsBalladNidhoggsRage.cpp | 4 +- .../TheMinstrelsBalladShinryusDomain.cpp | 4 +- .../TheMinstrelsBalladThordansReign.cpp | 4 +- .../trials/TheMinstrelsBalladUltimasBane.cpp | 4 +- .../Scripts/instances/trials/TheNavel.cpp | 4 +- .../instances/trials/TheNavelExtreme.cpp | 4 +- .../Scripts/instances/trials/TheNavelHard.cpp | 4 +- .../instances/trials/ThePoolofTribute.cpp | 4 +- .../trials/ThePoolofTributeExtreme.cpp | 4 +- .../instances/trials/TheRoyalMenagerie.cpp | 4 +- .../trials/TheSingularityReactor.cpp | 4 +- .../instances/trials/TheStepsofFaith.cpp | 4 +- .../trials/TheStrikingTreeExtreme.cpp | 4 +- .../instances/trials/TheStrikingTreeHard.cpp | 4 +- .../instances/trials/TheWhorleaterExtreme.cpp | 4 +- .../instances/trials/TheWhorleaterHard.cpp | 4 +- .../instances/trials/ThokastThokExtreme.cpp | 4 +- .../instances/trials/ThokastThokHard.cpp | 4 +- .../instances/trials/ThornmarchExtreme.cpp | 4 +- .../instances/trials/ThornmarchHard.cpp | 4 +- .../Scripts/instances/trials/UrthsFount.cpp | 4 +- .../Scripts/opening/OpeningGridania.cpp | 4 +- src/servers/Scripts/opening/OpeningLimsa.cpp | 4 +- src/servers/Scripts/opening/OpeningUldah.cpp | 4 +- src/servers/Scripts/quest/ManFst001.cpp | 4 +- src/servers/Scripts/quest/ManFst002.cpp | 4 +- src/servers/Scripts/quest/ManFst003.cpp | 4 +- src/servers/Scripts/quest/ManFst004.cpp | 4 +- src/servers/Scripts/quest/ManSea001.cpp | 4 +- src/servers/Scripts/quest/ManSea002.cpp | 4 +- src/servers/Scripts/quest/ManSea003.cpp | 4 +- src/servers/Scripts/quest/ManWil001.cpp | 4 +- src/servers/Scripts/quest/ManWil002.cpp | 4 +- .../quest/subquest/gridania/SubFst001.cpp | 4 +- .../quest/subquest/gridania/SubFst002.cpp | 4 +- .../quest/subquest/gridania/SubFst003.cpp | 4 +- .../quest/subquest/gridania/SubFst004.cpp | 4 +- .../quest/subquest/gridania/SubFst008.cpp | 4 +- .../quest/subquest/gridania/SubFst009.cpp | 4 +- .../quest/subquest/gridania/SubFst010.cpp | 4 +- .../quest/subquest/gridania/SubFst011.cpp | 4 +- .../quest/subquest/gridania/SubFst013.cpp | 4 +- .../quest/subquest/gridania/SubFst014.cpp | 4 +- .../quest/subquest/gridania/SubFst015.cpp | 4 +- .../quest/subquest/gridania/SubFst019.cpp | 4 +- .../quest/subquest/gridania/SubFst026.cpp | 4 +- .../quest/subquest/gridania/SubFst029.cpp | 4 +- .../quest/subquest/gridania/SubFst030.cpp | 4 +- .../quest/subquest/gridania/SubFst041.cpp | 4 +- .../quest/subquest/limsa/SubSea001.cpp | 4 +- .../quest/subquest/uldah/SubWil000.cpp | 4 +- .../quest/subquest/uldah/SubWil001.cpp | 4 +- .../quest/subquest/uldah/SubWil002.cpp | 4 +- .../quest/subquest/uldah/SubWil004.cpp | 4 +- .../quest/subquest/uldah/SubWil006.cpp | 4 +- .../quest/subquest/uldah/SubWil007.cpp | 4 +- .../quest/subquest/uldah/SubWil018.cpp | 4 +- .../quest/subquest/uldah/SubWil019.cpp | 4 +- .../quest/subquest/uldah/SubWil021.cpp | 4 +- .../quest/subquest/uldah/SubWil022.cpp | 4 +- .../quest/subquest/uldah/SubWil027.cpp | 4 +- .../quest/subquest/uldah/SubWil028.cpp | 4 +- .../quest/subquest/uldah/SubWil029.cpp | 4 +- .../sapphire_zone/Script/NativeScriptApi.cpp | 326 +++++++-------- .../sapphire_zone/Script/NativeScriptApi.h | 372 +++++++++--------- .../sapphire_zone/Script/NativeScriptMgr.h | 2 +- src/servers/sapphire_zone/Script/ScriptInfo.h | 2 +- .../sapphire_zone/Script/ScriptLoader.cpp | 4 +- .../sapphire_zone/Script/ScriptLoader.h | 2 +- .../sapphire_zone/Script/ScriptMgr.cpp | 32 +- 334 files changed, 1027 insertions(+), 1019 deletions(-) diff --git a/src/servers/Scripts/CMakeLists.txt b/src/servers/Scripts/CMakeLists.txt index a80e7821..06ea6827 100644 --- a/src/servers/Scripts/CMakeLists.txt +++ b/src/servers/Scripts/CMakeLists.txt @@ -31,7 +31,7 @@ foreach(_scriptDir ${children}) set(ScriptIncludes "#include \"${_script}\"") endif() - set(ScriptNames "${ScriptNames} static_cast< ScriptObject* >( new ${_scriptname} ),\n") + set(ScriptNames "${ScriptNames} static_cast< Sapphire::ScriptAPI::ScriptObject* >( new ${_scriptname} ),\n") endif() endforeach() diff --git a/src/servers/Scripts/ScriptLoader.cpp.in b/src/servers/Scripts/ScriptLoader.cpp.in index 739b32af..c68d5f5d 100644 --- a/src/servers/Scripts/ScriptLoader.cpp.in +++ b/src/servers/Scripts/ScriptLoader.cpp.in @@ -2,13 +2,13 @@ @ScriptIncludes@ -const ScriptObject* ptrs[] = +const Sapphire::ScriptAPI::ScriptObject* ptrs[] = { @ScriptNames@ nullptr }; -extern "C" EXPORT const ScriptObject** getScripts() +extern "C" EXPORT const Sapphire::ScriptAPI::ScriptObject** getScripts() { return ptrs; } diff --git a/src/servers/Scripts/action/ActionReturn6.cpp b/src/servers/Scripts/action/ActionReturn6.cpp index 09169014..82580430 100644 --- a/src/servers/Scripts/action/ActionReturn6.cpp +++ b/src/servers/Scripts/action/ActionReturn6.cpp @@ -3,11 +3,11 @@ #include class ActionReturn6 : - public ActionScript + public Sapphire::ScriptAPI::ActionScript { public: ActionReturn6() : - ActionScript( 6 ) + Sapphire::ScriptAPI::ActionScript( 6 ) { } diff --git a/src/servers/Scripts/action/ActionSprint3.cpp b/src/servers/Scripts/action/ActionSprint3.cpp index b44746ae..31767e03 100644 --- a/src/servers/Scripts/action/ActionSprint3.cpp +++ b/src/servers/Scripts/action/ActionSprint3.cpp @@ -2,11 +2,11 @@ #include class ActionSprint3 : - public ActionScript + public Sapphire::ScriptAPI::ActionScript { public: ActionSprint3() : - ActionScript( 3 ) + Sapphire::ScriptAPI::ActionScript( 3 ) { } diff --git a/src/servers/Scripts/common/Aethernet.cpp b/src/servers/Scripts/common/Aethernet.cpp index 68903bce..c813f2b5 100644 --- a/src/servers/Scripts/common/Aethernet.cpp +++ b/src/servers/Scripts/common/Aethernet.cpp @@ -13,11 +13,11 @@ using namespace Core; class Aethernet : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: Aethernet() : - EventScript( EVENTSCRIPT_AETHERNET_ID ) + Sapphire::ScriptAPI::EventScript( EVENTSCRIPT_AETHERNET_ID ) { } diff --git a/src/servers/Scripts/common/Aetheryte.cpp b/src/servers/Scripts/common/Aetheryte.cpp index e7b9df75..c8f602eb 100644 --- a/src/servers/Scripts/common/Aetheryte.cpp +++ b/src/servers/Scripts/common/Aetheryte.cpp @@ -15,11 +15,11 @@ using namespace Core; class Aetheryte : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: Aetheryte() : - EventScript( EVENTSCRIPT_AETHERYTE_ID ) + Sapphire::ScriptAPI::EventScript( EVENTSCRIPT_AETHERYTE_ID ) { } diff --git a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp index 460add24..51d94663 100644 --- a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp +++ b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp @@ -4,11 +4,11 @@ using namespace Core; class CmnDefCutSceneReplay : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: CmnDefCutSceneReplay() : - EventScript( 721028 ) + Sapphire::ScriptAPI::EventScript( 721028 ) { } diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 43e01820..b107ec66 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -11,10 +11,10 @@ using namespace Network; using namespace Packets; using namespace Server; -class CmnDefHousingSignboard : public EventScript +class CmnDefHousingSignboard : public Sapphire::ScriptAPI::EventScript { public: - CmnDefHousingSignboard() : EventScript( 721031 ) + CmnDefHousingSignboard() : Sapphire::ScriptAPI::EventScript( 721031 ) { } diff --git a/src/servers/Scripts/common/CmnDefInnBed.cpp b/src/servers/Scripts/common/CmnDefInnBed.cpp index bb9c262b..4d89e93e 100644 --- a/src/servers/Scripts/common/CmnDefInnBed.cpp +++ b/src/servers/Scripts/common/CmnDefInnBed.cpp @@ -4,11 +4,11 @@ using namespace Core; class CmnDefInnBed : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: CmnDefInnBed() : - EventScript( 720916 ) + Sapphire::ScriptAPI::EventScript( 720916 ) { } diff --git a/src/servers/Scripts/common/CmnDefLinkShell.cpp b/src/servers/Scripts/common/CmnDefLinkShell.cpp index 6c15df52..b340a4b7 100644 --- a/src/servers/Scripts/common/CmnDefLinkShell.cpp +++ b/src/servers/Scripts/common/CmnDefLinkShell.cpp @@ -8,11 +8,11 @@ using namespace Core; class CmnDefLinkShell : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: CmnDefLinkShell() : - EventScript( 0xB0006 ) + Sapphire::ScriptAPI::EventScript( 0xB0006 ) { } diff --git a/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp b/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp index 14864b6b..4429c393 100644 --- a/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp +++ b/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp @@ -4,11 +4,11 @@ using namespace Core; class CmnDefMarketBoardGridania : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: CmnDefMarketBoardGridania() : - EventScript( 0xB0027 ) + Sapphire::ScriptAPI::EventScript( 0xB0027 ) { } diff --git a/src/servers/Scripts/common/CmnDefMogLetter.cpp b/src/servers/Scripts/common/CmnDefMogLetter.cpp index 22922887..03de2ba0 100644 --- a/src/servers/Scripts/common/CmnDefMogLetter.cpp +++ b/src/servers/Scripts/common/CmnDefMogLetter.cpp @@ -4,11 +4,11 @@ using namespace Core; class CmnDefMogLetter : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: CmnDefMogLetter() : - EventScript( 720898 ) + Sapphire::ScriptAPI::EventScript( 720898 ) { } diff --git a/src/servers/Scripts/common/CmnDefNpcRepair.cpp b/src/servers/Scripts/common/CmnDefNpcRepair.cpp index 1a2e609e..5629d97c 100644 --- a/src/servers/Scripts/common/CmnDefNpcRepair.cpp +++ b/src/servers/Scripts/common/CmnDefNpcRepair.cpp @@ -4,11 +4,11 @@ using namespace Core; class CmnDefNpcRepair : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: CmnDefNpcRepair() : - EventScript( 0xB0013 ) + Sapphire::ScriptAPI::EventScript( 0xB0013 ) { } diff --git a/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp b/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp index 2efd1fdb..69d565ac 100644 --- a/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp +++ b/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp @@ -4,11 +4,11 @@ using namespace Core; class CmnDefWeatherForeCast : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: CmnDefWeatherForeCast() : - EventScript( 721100 ) + Sapphire::ScriptAPI::EventScript( 721100 ) { } diff --git a/src/servers/Scripts/common/ComDefMobHuntBoard.cpp b/src/servers/Scripts/common/ComDefMobHuntBoard.cpp index 7a36eaa9..732b88b9 100644 --- a/src/servers/Scripts/common/ComDefMobHuntBoard.cpp +++ b/src/servers/Scripts/common/ComDefMobHuntBoard.cpp @@ -4,11 +4,11 @@ using namespace Core; class ComDefMobHuntBoard : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: ComDefMobHuntBoard() : - EventScript( 0xB00CA ) + Sapphire::ScriptAPI::EventScript( 0xB00CA ) { } diff --git a/src/servers/Scripts/common/GilShop.cpp b/src/servers/Scripts/common/GilShop.cpp index 2d1baee7..8b9cac58 100644 --- a/src/servers/Scripts/common/GilShop.cpp +++ b/src/servers/Scripts/common/GilShop.cpp @@ -4,11 +4,11 @@ using namespace Core; class GilShop : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: GilShop() : - EventScript( 0x00040001 ) + Sapphire::ScriptAPI::EventScript( 0x00040001 ) { } diff --git a/src/servers/Scripts/common/HouFurOrchestrion.cpp b/src/servers/Scripts/common/HouFurOrchestrion.cpp index fc93006c..196a7d77 100644 --- a/src/servers/Scripts/common/HouFurOrchestrion.cpp +++ b/src/servers/Scripts/common/HouFurOrchestrion.cpp @@ -4,11 +4,11 @@ using namespace Core; class HouFurOrchestrion : - public EventScript + public Sapphire::ScriptAPI::EventScript { public: HouFurOrchestrion() : - EventScript( 721226 ) + Sapphire::ScriptAPI::EventScript( 721226 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp index 02471170..c6830f72 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors101110 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors101110() : - InstanceContentScript( 60011 ) + Sapphire::ScriptAPI::InstanceContentScript( 60011 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp index c572f7a4..60e1f2c2 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors110 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors110() : - InstanceContentScript( 60001 ) + Sapphire::ScriptAPI::InstanceContentScript( 60001 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp index caff9745..dd7b48ea 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors111120 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors111120() : - InstanceContentScript( 60012 ) + Sapphire::ScriptAPI::InstanceContentScript( 60012 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp index 8dc281b9..0193c863 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors1120 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors1120() : - InstanceContentScript( 60002 ) + Sapphire::ScriptAPI::InstanceContentScript( 60002 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp index c28741e6..61744f2a 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors121130 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors121130() : - InstanceContentScript( 60013 ) + Sapphire::ScriptAPI::InstanceContentScript( 60013 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp index 6be59559..ff6f6202 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors131140 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors131140() : - InstanceContentScript( 60014 ) + Sapphire::ScriptAPI::InstanceContentScript( 60014 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp index fde06fce..08b2c657 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors141150 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors141150() : - InstanceContentScript( 60015 ) + Sapphire::ScriptAPI::InstanceContentScript( 60015 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp index 90ea9137..0324fc13 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors151160 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors151160() : - InstanceContentScript( 60016 ) + Sapphire::ScriptAPI::InstanceContentScript( 60016 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp index 34a5d948..8523dfaa 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors161170 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors161170() : - InstanceContentScript( 60017 ) + Sapphire::ScriptAPI::InstanceContentScript( 60017 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp index 8e588e97..b4dd9b78 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors171180 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors171180() : - InstanceContentScript( 60018 ) + Sapphire::ScriptAPI::InstanceContentScript( 60018 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp index 9b398925..bc197672 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors181190 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors181190() : - InstanceContentScript( 60019 ) + Sapphire::ScriptAPI::InstanceContentScript( 60019 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp index 56583f60..eb877fd3 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors191200 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors191200() : - InstanceContentScript( 60020 ) + Sapphire::ScriptAPI::InstanceContentScript( 60020 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp index 8371b711..1bf1d276 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors2130 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors2130() : - InstanceContentScript( 60003 ) + Sapphire::ScriptAPI::InstanceContentScript( 60003 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp index b153f460..5e122192 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors3140 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors3140() : - InstanceContentScript( 60004 ) + Sapphire::ScriptAPI::InstanceContentScript( 60004 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp index c6ccb56f..ead27865 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors4150 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors4150() : - InstanceContentScript( 60005 ) + Sapphire::ScriptAPI::InstanceContentScript( 60005 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp index fbaffaae..e9391c05 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors5160 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors5160() : - InstanceContentScript( 60006 ) + Sapphire::ScriptAPI::InstanceContentScript( 60006 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp index e97cf024..8fac7b93 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors6170 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors6170() : - InstanceContentScript( 60007 ) + Sapphire::ScriptAPI::InstanceContentScript( 60007 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp index 2e7bdd6a..08e3d1f9 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors7180 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors7180() : - InstanceContentScript( 60008 ) + Sapphire::ScriptAPI::InstanceContentScript( 60008 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp index 1d27f666..7457e2a3 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors8190 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors8190() : - InstanceContentScript( 60009 ) + Sapphire::ScriptAPI::InstanceContentScript( 60009 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp index f8888a87..ef06aa30 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePalaceoftheDeadFloors91100 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePalaceoftheDeadFloors91100() : - InstanceContentScript( 60010 ) + Sapphire::ScriptAPI::InstanceContentScript( 60010 ) { } diff --git a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp index 8d65094f..3fb7fc32 100644 --- a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp +++ b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlaMhigo : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlaMhigo() : - InstanceContentScript( 56 ) + Sapphire::ScriptAPI::InstanceContentScript( 56 ) { } diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp index 26ebd5e3..db538952 100644 --- a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp +++ b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp @@ -4,11 +4,11 @@ using namespace Core; class AmdaporKeep : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AmdaporKeep() : - InstanceContentScript( 14 ) + Sapphire::ScriptAPI::InstanceContentScript( 14 ) { } diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp index f2d1687c..c820bdb6 100644 --- a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp +++ b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class AmdaporKeepHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AmdaporKeepHard() : - InstanceContentScript( 29 ) + Sapphire::ScriptAPI::InstanceContentScript( 29 ) { } diff --git a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp index 6edf0424..f99202bf 100644 --- a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp +++ b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp @@ -4,11 +4,11 @@ using namespace Core; class BaelsarsWall : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BaelsarsWall() : - InstanceContentScript( 48 ) + Sapphire::ScriptAPI::InstanceContentScript( 48 ) { } diff --git a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp index 01904a31..728d4788 100644 --- a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp +++ b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp @@ -4,11 +4,11 @@ using namespace Core; class BardamsMettle : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BardamsMettle() : - InstanceContentScript( 53 ) + Sapphire::ScriptAPI::InstanceContentScript( 53 ) { } diff --git a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp index 876a66a8..961003e2 100644 --- a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp +++ b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp @@ -4,11 +4,11 @@ using namespace Core; class BrayfloxsLongstop : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BrayfloxsLongstop() : - InstanceContentScript( 8 ) + Sapphire::ScriptAPI::InstanceContentScript( 8 ) { } diff --git a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp index 58899405..89e575ca 100644 --- a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp +++ b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class BrayfloxsLongstopHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BrayfloxsLongstopHard() : - InstanceContentScript( 20 ) + Sapphire::ScriptAPI::InstanceContentScript( 20 ) { } diff --git a/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp b/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp index 1db6bc4a..afcac3f1 100644 --- a/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp +++ b/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp @@ -4,11 +4,11 @@ using namespace Core; class CastrumAbania : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: CastrumAbania() : - InstanceContentScript( 55 ) + Sapphire::ScriptAPI::InstanceContentScript( 55 ) { } diff --git a/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp b/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp index 7de5c4b3..8528f003 100644 --- a/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp +++ b/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp @@ -4,11 +4,11 @@ using namespace Core; class CastrumMeridianum : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: CastrumMeridianum() : - InstanceContentScript( 15 ) + Sapphire::ScriptAPI::InstanceContentScript( 15 ) { } diff --git a/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp b/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp index de5494a3..5e055cb3 100644 --- a/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp +++ b/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp @@ -4,11 +4,11 @@ using namespace Core; class CopperbellMines : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: CopperbellMines() : - InstanceContentScript( 3 ) + Sapphire::ScriptAPI::InstanceContentScript( 3 ) { } diff --git a/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp b/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp index 7cf4c7c8..531bedfc 100644 --- a/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp +++ b/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class CopperbellMinesHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: CopperbellMinesHard() : - InstanceContentScript( 18 ) + Sapphire::ScriptAPI::InstanceContentScript( 18 ) { } diff --git a/src/servers/Scripts/instances/dungeons/CuttersCry.cpp b/src/servers/Scripts/instances/dungeons/CuttersCry.cpp index 2cbfa2b2..0b97079a 100644 --- a/src/servers/Scripts/instances/dungeons/CuttersCry.cpp +++ b/src/servers/Scripts/instances/dungeons/CuttersCry.cpp @@ -4,11 +4,11 @@ using namespace Core; class CuttersCry : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: CuttersCry() : - InstanceContentScript( 12 ) + Sapphire::ScriptAPI::InstanceContentScript( 12 ) { } diff --git a/src/servers/Scripts/instances/dungeons/DomaCastle.cpp b/src/servers/Scripts/instances/dungeons/DomaCastle.cpp index c9287448..258433a9 100644 --- a/src/servers/Scripts/instances/dungeons/DomaCastle.cpp +++ b/src/servers/Scripts/instances/dungeons/DomaCastle.cpp @@ -4,11 +4,11 @@ using namespace Core; class DomaCastle : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DomaCastle() : - InstanceContentScript( 54 ) + Sapphire::ScriptAPI::InstanceContentScript( 54 ) { } diff --git a/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp b/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp index 582de6e5..d80fcda8 100644 --- a/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp +++ b/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp @@ -4,11 +4,11 @@ using namespace Core; class DzemaelDarkhold : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DzemaelDarkhold() : - InstanceContentScript( 13 ) + Sapphire::ScriptAPI::InstanceContentScript( 13 ) { } diff --git a/src/servers/Scripts/instances/dungeons/Halatali.cpp b/src/servers/Scripts/instances/dungeons/Halatali.cpp index 800cc92a..f4a3f351 100644 --- a/src/servers/Scripts/instances/dungeons/Halatali.cpp +++ b/src/servers/Scripts/instances/dungeons/Halatali.cpp @@ -4,11 +4,11 @@ using namespace Core; class Halatali : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Halatali() : - InstanceContentScript( 7 ) + Sapphire::ScriptAPI::InstanceContentScript( 7 ) { } diff --git a/src/servers/Scripts/instances/dungeons/HalataliHard.cpp b/src/servers/Scripts/instances/dungeons/HalataliHard.cpp index d87558b5..6c94f120 100644 --- a/src/servers/Scripts/instances/dungeons/HalataliHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HalataliHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class HalataliHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HalataliHard() : - InstanceContentScript( 21 ) + Sapphire::ScriptAPI::InstanceContentScript( 21 ) { } diff --git a/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp b/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp index db5cd593..d971a867 100644 --- a/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp +++ b/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp @@ -4,11 +4,11 @@ using namespace Core; class HaukkeManor : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HaukkeManor() : - InstanceContentScript( 6 ) + Sapphire::ScriptAPI::InstanceContentScript( 6 ) { } diff --git a/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp b/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp index c743ec11..6453acfa 100644 --- a/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class HaukkeManorHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HaukkeManorHard() : - InstanceContentScript( 19 ) + Sapphire::ScriptAPI::InstanceContentScript( 19 ) { } diff --git a/src/servers/Scripts/instances/dungeons/HellsLid.cpp b/src/servers/Scripts/instances/dungeons/HellsLid.cpp index fcc0f239..2a13194a 100644 --- a/src/servers/Scripts/instances/dungeons/HellsLid.cpp +++ b/src/servers/Scripts/instances/dungeons/HellsLid.cpp @@ -4,11 +4,11 @@ using namespace Core; class HellsLid : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HellsLid() : - InstanceContentScript( 59 ) + Sapphire::ScriptAPI::InstanceContentScript( 59 ) { } diff --git a/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp b/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp index 98d8f160..4928ea5e 100644 --- a/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp +++ b/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp @@ -4,11 +4,11 @@ using namespace Core; class HullbreakerIsle : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HullbreakerIsle() : - InstanceContentScript( 23 ) + Sapphire::ScriptAPI::InstanceContentScript( 23 ) { } diff --git a/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp b/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp index 1dd359fa..be755127 100644 --- a/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class HullbreakerIsleHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HullbreakerIsleHard() : - InstanceContentScript( 45 ) + Sapphire::ScriptAPI::InstanceContentScript( 45 ) { } diff --git a/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp b/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp index 5d5016c9..3ebf2d44 100644 --- a/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp +++ b/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp @@ -4,11 +4,11 @@ using namespace Core; class KuganeCastle : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: KuganeCastle() : - InstanceContentScript( 57 ) + Sapphire::ScriptAPI::InstanceContentScript( 57 ) { } diff --git a/src/servers/Scripts/instances/dungeons/Neverreap.cpp b/src/servers/Scripts/instances/dungeons/Neverreap.cpp index 7e9e0c84..0ab7bd05 100644 --- a/src/servers/Scripts/instances/dungeons/Neverreap.cpp +++ b/src/servers/Scripts/instances/dungeons/Neverreap.cpp @@ -4,11 +4,11 @@ using namespace Core; class Neverreap : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Neverreap() : - InstanceContentScript( 33 ) + Sapphire::ScriptAPI::InstanceContentScript( 33 ) { } diff --git a/src/servers/Scripts/instances/dungeons/PharosSirius.cpp b/src/servers/Scripts/instances/dungeons/PharosSirius.cpp index cf3abe42..7fefad30 100644 --- a/src/servers/Scripts/instances/dungeons/PharosSirius.cpp +++ b/src/servers/Scripts/instances/dungeons/PharosSirius.cpp @@ -4,11 +4,11 @@ using namespace Core; class PharosSirius : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: PharosSirius() : - InstanceContentScript( 17 ) + Sapphire::ScriptAPI::InstanceContentScript( 17 ) { } diff --git a/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp b/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp index 16524234..3fc88190 100644 --- a/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp +++ b/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class PharosSiriusHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: PharosSiriusHard() : - InstanceContentScript( 40 ) + Sapphire::ScriptAPI::InstanceContentScript( 40 ) { } diff --git a/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp b/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp index 34aa9434..d71a5f7a 100644 --- a/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp +++ b/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp @@ -4,11 +4,11 @@ using namespace Core; class SaintMociannesArboretum : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SaintMociannesArboretum() : - InstanceContentScript( 41 ) + Sapphire::ScriptAPI::InstanceContentScript( 41 ) { } diff --git a/src/servers/Scripts/instances/dungeons/Sastasha.cpp b/src/servers/Scripts/instances/dungeons/Sastasha.cpp index 43d9692e..2590119c 100644 --- a/src/servers/Scripts/instances/dungeons/Sastasha.cpp +++ b/src/servers/Scripts/instances/dungeons/Sastasha.cpp @@ -5,11 +5,11 @@ using namespace Core; class Sastasha : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Sastasha() : - InstanceContentScript( 4 ) + Sapphire::ScriptAPI::InstanceContentScript( 4 ) { } diff --git a/src/servers/Scripts/instances/dungeons/SastashaHard.cpp b/src/servers/Scripts/instances/dungeons/SastashaHard.cpp index 626443a4..52e059b0 100644 --- a/src/servers/Scripts/instances/dungeons/SastashaHard.cpp +++ b/src/servers/Scripts/instances/dungeons/SastashaHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class SastashaHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SastashaHard() : - InstanceContentScript( 28 ) + Sapphire::ScriptAPI::InstanceContentScript( 28 ) { } diff --git a/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp b/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp index 0cbb3949..05ae83b9 100644 --- a/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp +++ b/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp @@ -4,11 +4,11 @@ using namespace Core; class ShisuioftheVioletTides : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ShisuioftheVioletTides() : - InstanceContentScript( 50 ) + Sapphire::ScriptAPI::InstanceContentScript( 50 ) { } diff --git a/src/servers/Scripts/instances/dungeons/Snowcloak.cpp b/src/servers/Scripts/instances/dungeons/Snowcloak.cpp index 48f3f82e..192c2a60 100644 --- a/src/servers/Scripts/instances/dungeons/Snowcloak.cpp +++ b/src/servers/Scripts/instances/dungeons/Snowcloak.cpp @@ -4,11 +4,11 @@ using namespace Core; class Snowcloak : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Snowcloak() : - InstanceContentScript( 27 ) + Sapphire::ScriptAPI::InstanceContentScript( 27 ) { } diff --git a/src/servers/Scripts/instances/dungeons/SohmAl.cpp b/src/servers/Scripts/instances/dungeons/SohmAl.cpp index ad467f86..7398b1db 100644 --- a/src/servers/Scripts/instances/dungeons/SohmAl.cpp +++ b/src/servers/Scripts/instances/dungeons/SohmAl.cpp @@ -4,11 +4,11 @@ using namespace Core; class SohmAl : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SohmAl() : - InstanceContentScript( 37 ) + Sapphire::ScriptAPI::InstanceContentScript( 37 ) { } diff --git a/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp b/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp index e94ef1f1..203f43a4 100644 --- a/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp +++ b/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class SohmAlHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SohmAlHard() : - InstanceContentScript( 49 ) + Sapphire::ScriptAPI::InstanceContentScript( 49 ) { } diff --git a/src/servers/Scripts/instances/dungeons/SohrKhai.cpp b/src/servers/Scripts/instances/dungeons/SohrKhai.cpp index 026b7c7c..2f53ea94 100644 --- a/src/servers/Scripts/instances/dungeons/SohrKhai.cpp +++ b/src/servers/Scripts/instances/dungeons/SohrKhai.cpp @@ -4,11 +4,11 @@ using namespace Core; class SohrKhai : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SohrKhai() : - InstanceContentScript( 44 ) + Sapphire::ScriptAPI::InstanceContentScript( 44 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheAery.cpp b/src/servers/Scripts/instances/dungeons/TheAery.cpp index dc3438b5..3fdc271d 100644 --- a/src/servers/Scripts/instances/dungeons/TheAery.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAery.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheAery : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheAery() : - InstanceContentScript( 39 ) + Sapphire::ScriptAPI::InstanceContentScript( 39 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp b/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp index 89fe39ec..bb4a0d0d 100644 --- a/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheAetherochemicalResearchFacility : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheAetherochemicalResearchFacility() : - InstanceContentScript( 38 ) + Sapphire::ScriptAPI::InstanceContentScript( 38 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheAntitower.cpp b/src/servers/Scripts/instances/dungeons/TheAntitower.cpp index be9c9120..49c5d8fe 100644 --- a/src/servers/Scripts/instances/dungeons/TheAntitower.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAntitower.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheAntitower : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheAntitower() : - InstanceContentScript( 43 ) + Sapphire::ScriptAPI::InstanceContentScript( 43 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp b/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp index 965decfa..58a0160a 100644 --- a/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheAurumVale : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheAurumVale() : - InstanceContentScript( 5 ) + Sapphire::ScriptAPI::InstanceContentScript( 5 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp b/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp index 654f35be..a121d8c6 100644 --- a/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp +++ b/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheDrownedCityofSkalla : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheDrownedCityofSkalla() : - InstanceContentScript( 58 ) + Sapphire::ScriptAPI::InstanceContentScript( 58 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp b/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp index ca7eadc6..2bc1de12 100644 --- a/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp +++ b/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheDuskVigil : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheDuskVigil() : - InstanceContentScript( 36 ) + Sapphire::ScriptAPI::InstanceContentScript( 36 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp b/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp index 88a37fa2..3381682f 100644 --- a/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp +++ b/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFractalContinuum : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFractalContinuum() : - InstanceContentScript( 35 ) + Sapphire::ScriptAPI::InstanceContentScript( 35 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp b/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp index 9674bdf6..09d7b2bb 100644 --- a/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFractalContinuumHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFractalContinuumHard() : - InstanceContentScript( 60 ) + Sapphire::ScriptAPI::InstanceContentScript( 60 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp index 87e8d879..c8109e07 100644 --- a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp +++ b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheGreatGubalLibrary : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheGreatGubalLibrary() : - InstanceContentScript( 31 ) + Sapphire::ScriptAPI::InstanceContentScript( 31 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp index ef8d2cc5..d0eb3528 100644 --- a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheGreatGubalLibraryHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheGreatGubalLibraryHard() : - InstanceContentScript( 47 ) + Sapphire::ScriptAPI::InstanceContentScript( 47 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp b/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp index e60ff386..1fb32b2d 100644 --- a/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp +++ b/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheKeeperoftheLake : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheKeeperoftheLake() : - InstanceContentScript( 32 ) + Sapphire::ScriptAPI::InstanceContentScript( 32 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp index 4e12cf38..4a393373 100644 --- a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp +++ b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheLostCityofAmdapor : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheLostCityofAmdapor() : - InstanceContentScript( 22 ) + Sapphire::ScriptAPI::InstanceContentScript( 22 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp index 41116fc1..c62e4e95 100644 --- a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheLostCityofAmdaporHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheLostCityofAmdaporHard() : - InstanceContentScript( 42 ) + Sapphire::ScriptAPI::InstanceContentScript( 42 ) { } diff --git a/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp b/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp index a037490e..a491c95d 100644 --- a/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp +++ b/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePraetorium : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePraetorium() : - InstanceContentScript( 16 ) + Sapphire::ScriptAPI::InstanceContentScript( 16 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp b/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp index 65aeba85..ba97b9ca 100644 --- a/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSirensongSea : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSirensongSea() : - InstanceContentScript( 52 ) + Sapphire::ScriptAPI::InstanceContentScript( 52 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp b/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp index 6a8d40e8..2111b994 100644 --- a/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp +++ b/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheStoneVigil : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheStoneVigil() : - InstanceContentScript( 11 ) + Sapphire::ScriptAPI::InstanceContentScript( 11 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp b/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp index e77c72a0..856c7453 100644 --- a/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheStoneVigilHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheStoneVigilHard() : - InstanceContentScript( 25 ) + Sapphire::ScriptAPI::InstanceContentScript( 25 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp index c09aeb04..a7788b52 100644 --- a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSunkenTempleofQarn : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSunkenTempleofQarn() : - InstanceContentScript( 9 ) + Sapphire::ScriptAPI::InstanceContentScript( 9 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp index a824afb5..31a593fc 100644 --- a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSunkenTempleofQarnHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSunkenTempleofQarnHard() : - InstanceContentScript( 26 ) + Sapphire::ScriptAPI::InstanceContentScript( 26 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp index 7bf8565a..44311393 100644 --- a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheTamTaraDeepcroft : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheTamTaraDeepcroft() : - InstanceContentScript( 2 ) + Sapphire::ScriptAPI::InstanceContentScript( 2 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp index 2308224d..f3198b1d 100644 --- a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheTamTaraDeepcroftHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheTamTaraDeepcroftHard() : - InstanceContentScript( 24 ) + Sapphire::ScriptAPI::InstanceContentScript( 24 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp b/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp index daee6636..2bc27a7a 100644 --- a/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheTempleoftheFist : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheTempleoftheFist() : - InstanceContentScript( 51 ) + Sapphire::ScriptAPI::InstanceContentScript( 51 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp b/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp index 7d9f7e6b..0d7910f3 100644 --- a/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp +++ b/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheThousandMawsofTotoRak : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheThousandMawsofTotoRak() : - InstanceContentScript( 1 ) + Sapphire::ScriptAPI::InstanceContentScript( 1 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheVault.cpp b/src/servers/Scripts/instances/dungeons/TheVault.cpp index fa1df40a..583a64e2 100644 --- a/src/servers/Scripts/instances/dungeons/TheVault.cpp +++ b/src/servers/Scripts/instances/dungeons/TheVault.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheVault : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheVault() : - InstanceContentScript( 34 ) + Sapphire::ScriptAPI::InstanceContentScript( 34 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp b/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp index 346138c6..61f515eb 100644 --- a/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp +++ b/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheWanderersPalace : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheWanderersPalace() : - InstanceContentScript( 10 ) + Sapphire::ScriptAPI::InstanceContentScript( 10 ) { } diff --git a/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp b/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp index c761ff6a..cef7b8cf 100644 --- a/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheWanderersPalaceHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheWanderersPalaceHard() : - InstanceContentScript( 30 ) + Sapphire::ScriptAPI::InstanceContentScript( 30 ) { } diff --git a/src/servers/Scripts/instances/dungeons/Xelphatol.cpp b/src/servers/Scripts/instances/dungeons/Xelphatol.cpp index 5136736b..6b5e980a 100644 --- a/src/servers/Scripts/instances/dungeons/Xelphatol.cpp +++ b/src/servers/Scripts/instances/dungeons/Xelphatol.cpp @@ -4,11 +4,11 @@ using namespace Core; class Xelphatol : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Xelphatol() : - InstanceContentScript( 46 ) + Sapphire::ScriptAPI::InstanceContentScript( 46 ) { } diff --git a/src/servers/Scripts/instances/events/TheHauntedManor.cpp b/src/servers/Scripts/instances/events/TheHauntedManor.cpp index 8a356c6f..320f2b36 100644 --- a/src/servers/Scripts/instances/events/TheHauntedManor.cpp +++ b/src/servers/Scripts/instances/events/TheHauntedManor.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheHauntedManor : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheHauntedManor() : - InstanceContentScript( 25001 ) + Sapphire::ScriptAPI::InstanceContentScript( 25001 ) { } diff --git a/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp b/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp index cfbe4e8f..44cea731 100644 --- a/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp +++ b/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheValentionesCeremony : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheValentionesCeremony() : - InstanceContentScript( 25002 ) + Sapphire::ScriptAPI::InstanceContentScript( 25002 ) { } diff --git a/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp b/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp index 012a4d39..9930fcdd 100644 --- a/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp +++ b/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp @@ -4,11 +4,11 @@ using namespace Core; class AllsWellthatEndsintheWell : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AllsWellthatEndsintheWell() : - InstanceContentScript( 10007 ) + Sapphire::ScriptAPI::InstanceContentScript( 10007 ) { } diff --git a/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp b/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp index 429311e0..302ef4e9 100644 --- a/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp +++ b/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp @@ -4,11 +4,11 @@ using namespace Core; class AnnoytheVoid : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AnnoytheVoid() : - InstanceContentScript( 10010 ) + Sapphire::ScriptAPI::InstanceContentScript( 10010 ) { } diff --git a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp index 5af95852..47f76d71 100644 --- a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp +++ b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp @@ -4,11 +4,11 @@ using namespace Core; class BasicTrainingEnemyParties : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BasicTrainingEnemyParties() : - InstanceContentScript( 10001 ) + Sapphire::ScriptAPI::InstanceContentScript( 10001 ) { } diff --git a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp index 3215caac..8af49bb0 100644 --- a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp +++ b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp @@ -4,11 +4,11 @@ using namespace Core; class BasicTrainingEnemyStrongholds : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BasicTrainingEnemyStrongholds() : - InstanceContentScript( 10003 ) + Sapphire::ScriptAPI::InstanceContentScript( 10003 ) { } diff --git a/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp b/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp index 2bd2ef61..b8f371e9 100644 --- a/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp +++ b/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp @@ -4,11 +4,11 @@ using namespace Core; class FlickingSticksandTakingNames : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: FlickingSticksandTakingNames() : - InstanceContentScript( 10008 ) + Sapphire::ScriptAPI::InstanceContentScript( 10008 ) { } diff --git a/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp b/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp index a76e7be0..4adf9750 100644 --- a/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp +++ b/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp @@ -4,11 +4,11 @@ using namespace Core; class HeroontheHalfShell : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HeroontheHalfShell() : - InstanceContentScript( 10004 ) + Sapphire::ScriptAPI::InstanceContentScript( 10004 ) { } diff --git a/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp b/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp index 42a6bb69..f461543c 100644 --- a/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp +++ b/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp @@ -4,11 +4,11 @@ using namespace Core; class LongLivetheQueen : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: LongLivetheQueen() : - InstanceContentScript( 10012 ) + Sapphire::ScriptAPI::InstanceContentScript( 10012 ) { } diff --git a/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp b/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp index 1fb2194a..25bec36c 100644 --- a/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp +++ b/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp @@ -4,11 +4,11 @@ using namespace Core; class MorethanaFeeler : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: MorethanaFeeler() : - InstanceContentScript( 10009 ) + Sapphire::ScriptAPI::InstanceContentScript( 10009 ) { } diff --git a/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp b/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp index 92b9d05e..251059ff 100644 --- a/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp +++ b/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp @@ -4,11 +4,11 @@ using namespace Core; class PullingPoisonPosies : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: PullingPoisonPosies() : - InstanceContentScript( 10005 ) + Sapphire::ScriptAPI::InstanceContentScript( 10005 ) { } diff --git a/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp b/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp index d42e25df..950f7b5a 100644 --- a/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp +++ b/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp @@ -4,11 +4,11 @@ using namespace Core; class ShadowandClaw : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ShadowandClaw() : - InstanceContentScript( 10011 ) + Sapphire::ScriptAPI::InstanceContentScript( 10011 ) { } diff --git a/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp b/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp index 620f3626..119386d5 100644 --- a/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp +++ b/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp @@ -4,11 +4,11 @@ using namespace Core; class SolemnTrinity : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SolemnTrinity() : - InstanceContentScript( 10014 ) + Sapphire::ScriptAPI::InstanceContentScript( 10014 ) { } diff --git a/src/servers/Scripts/instances/guildhests/StingingBack.cpp b/src/servers/Scripts/instances/guildhests/StingingBack.cpp index 229a0f0f..ac2b1808 100644 --- a/src/servers/Scripts/instances/guildhests/StingingBack.cpp +++ b/src/servers/Scripts/instances/guildhests/StingingBack.cpp @@ -4,11 +4,11 @@ using namespace Core; class StingingBack : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: StingingBack() : - InstanceContentScript( 10006 ) + Sapphire::ScriptAPI::InstanceContentScript( 10006 ) { } diff --git a/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp b/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp index 1176cfe6..e2393955 100644 --- a/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp +++ b/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp @@ -4,11 +4,11 @@ using namespace Core; class UndertheArmor : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: UndertheArmor() : - InstanceContentScript( 10002 ) + Sapphire::ScriptAPI::InstanceContentScript( 10002 ) { } diff --git a/src/servers/Scripts/instances/guildhests/WardUp.cpp b/src/servers/Scripts/instances/guildhests/WardUp.cpp index f54f91c8..889dd4a5 100644 --- a/src/servers/Scripts/instances/guildhests/WardUp.cpp +++ b/src/servers/Scripts/instances/guildhests/WardUp.cpp @@ -4,11 +4,11 @@ using namespace Core; class WardUp : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: WardUp() : - InstanceContentScript( 10013 ) + Sapphire::ScriptAPI::InstanceContentScript( 10013 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp index 52108b10..acd22554 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp @@ -4,11 +4,11 @@ using namespace Core; class AccrueEnmityfromMultipleTargets : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AccrueEnmityfromMultipleTargets() : - InstanceContentScript( 15004 ) + Sapphire::ScriptAPI::InstanceContentScript( 15004 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp b/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp index 3d710127..33e488a3 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp @@ -4,11 +4,11 @@ using namespace Core; class AssistAlliesinDefeatingaTarget : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AssistAlliesinDefeatingaTarget() : - InstanceContentScript( 15008 ) + Sapphire::ScriptAPI::InstanceContentScript( 15008 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp b/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp index 4ad02423..59cf12a4 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp @@ -4,11 +4,11 @@ using namespace Core; class AvoidAreaofEffectAttacks : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AvoidAreaofEffectAttacks() : - InstanceContentScript( 15001 ) + Sapphire::ScriptAPI::InstanceContentScript( 15001 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp index 9f459614..e6c698d0 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp @@ -4,11 +4,11 @@ using namespace Core; class AvoidEngagedTargets : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AvoidEngagedTargets() : - InstanceContentScript( 15015 ) + Sapphire::ScriptAPI::InstanceContentScript( 15015 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp b/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp index b028bc5f..061f6983 100644 --- a/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp @@ -4,11 +4,11 @@ using namespace Core; class DefeatanOccupiedTarget : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DefeatanOccupiedTarget() : - InstanceContentScript( 15009 ) + Sapphire::ScriptAPI::InstanceContentScript( 15009 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp b/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp index 5177c8a1..f47d47a6 100644 --- a/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp @@ -4,11 +4,11 @@ using namespace Core; class EngageEnemyReinforcements : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: EngageEnemyReinforcements() : - InstanceContentScript( 15011 ) + Sapphire::ScriptAPI::InstanceContentScript( 15011 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp index 2e658b69..a6f89615 100644 --- a/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp @@ -4,11 +4,11 @@ using namespace Core; class EngageMultipleTargets : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: EngageMultipleTargets() : - InstanceContentScript( 15005 ) + Sapphire::ScriptAPI::InstanceContentScript( 15005 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp index 0a11ae4b..d4308f8f 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp @@ -4,11 +4,11 @@ using namespace Core; class ExecuteaComboinBattle : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ExecuteaComboinBattle() : - InstanceContentScript( 15003 ) + Sapphire::ScriptAPI::InstanceContentScript( 15003 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp index dfd6fc50..10db2adb 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp @@ -4,11 +4,11 @@ using namespace Core; class ExecuteaCombotoIncreaseEnmity : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ExecuteaCombotoIncreaseEnmity() : - InstanceContentScript( 15002 ) + Sapphire::ScriptAPI::InstanceContentScript( 15002 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp index 52e56663..a8915102 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp @@ -4,11 +4,11 @@ using namespace Core; class ExecuteaRangedAttacktoIncreaseEnmity : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ExecuteaRangedAttacktoIncreaseEnmity() : - InstanceContentScript( 15006 ) + Sapphire::ScriptAPI::InstanceContentScript( 15006 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp b/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp index f128070e..623f41d0 100644 --- a/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp @@ -4,11 +4,11 @@ using namespace Core; class FinalExercise : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: FinalExercise() : - InstanceContentScript( 15016 ) + Sapphire::ScriptAPI::InstanceContentScript( 15016 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp b/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp index 24710a26..56342715 100644 --- a/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp @@ -4,11 +4,11 @@ using namespace Core; class HealMultipleAllies : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HealMultipleAllies() : - InstanceContentScript( 15014 ) + Sapphire::ScriptAPI::InstanceContentScript( 15014 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp b/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp index ade09f40..3eb502ce 100644 --- a/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp @@ -4,11 +4,11 @@ using namespace Core; class HealanAlly : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: HealanAlly() : - InstanceContentScript( 15013 ) + Sapphire::ScriptAPI::InstanceContentScript( 15013 ) { } diff --git a/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp b/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp index c3f98a30..ba568c68 100644 --- a/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp @@ -4,11 +4,11 @@ using namespace Core; class InteractwiththeBattlefield : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: InteractwiththeBattlefield() : - InstanceContentScript( 15012 ) + Sapphire::ScriptAPI::InstanceContentScript( 15012 ) { } diff --git a/src/servers/Scripts/instances/pvp/Astragalos.cpp b/src/servers/Scripts/instances/pvp/Astragalos.cpp index 76fb376b..9bd97972 100644 --- a/src/servers/Scripts/instances/pvp/Astragalos.cpp +++ b/src/servers/Scripts/instances/pvp/Astragalos.cpp @@ -4,11 +4,11 @@ using namespace Core; class Astragalos : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Astragalos() : - InstanceContentScript( 51001 ) + Sapphire::ScriptAPI::InstanceContentScript( 51001 ) { } diff --git a/src/servers/Scripts/instances/pvp/SealRockSeize.cpp b/src/servers/Scripts/instances/pvp/SealRockSeize.cpp index c25e5df3..957c9f22 100644 --- a/src/servers/Scripts/instances/pvp/SealRockSeize.cpp +++ b/src/servers/Scripts/instances/pvp/SealRockSeize.cpp @@ -4,11 +4,11 @@ using namespace Core; class SealRockSeize : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SealRockSeize() : - InstanceContentScript( 50004 ) + Sapphire::ScriptAPI::InstanceContentScript( 50004 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp b/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp index d7057b62..767b3a51 100644 --- a/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp +++ b/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBorderlandRuinsSecure : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBorderlandRuinsSecure() : - InstanceContentScript( 50001 ) + Sapphire::ScriptAPI::InstanceContentScript( 50001 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp index 08b72289..a697210f 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeast4on4LightParty : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeast4on4LightParty() : - InstanceContentScript( 40012 ) + Sapphire::ScriptAPI::InstanceContentScript( 40012 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp index 672663b6..d9a0c6d4 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeast4on4Ranked : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeast4on4Ranked() : - InstanceContentScript( 40018 ) + Sapphire::ScriptAPI::InstanceContentScript( 40018 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp index e9924ca0..5b08c17b 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeast4on4Training : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeast4on4Training() : - InstanceContentScript( 40016 ) + Sapphire::ScriptAPI::InstanceContentScript( 40016 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp index 29c63074..ab00a81f 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeastCustomMatchCrystalTower : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeastCustomMatchCrystalTower() : - InstanceContentScript( 40025 ) + Sapphire::ScriptAPI::InstanceContentScript( 40025 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp index ea726cfa..c62ebafa 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeastCustomMatchFeastingGrounds : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeastCustomMatchFeastingGrounds() : - InstanceContentScript( 40014 ) + Sapphire::ScriptAPI::InstanceContentScript( 40014 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp index 71380cba..1b3e00a5 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeastCustomMatchLichenweed : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeastCustomMatchLichenweed() : - InstanceContentScript( 40021 ) + Sapphire::ScriptAPI::InstanceContentScript( 40021 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp b/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp index 829334a0..2614c52d 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeastRanked : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeastRanked() : - InstanceContentScript( 40023 ) + Sapphire::ScriptAPI::InstanceContentScript( 40023 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp b/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp index 5a5630c3..86a1d7a2 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeastTeamRanked : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeastTeamRanked() : - InstanceContentScript( 40022 ) + Sapphire::ScriptAPI::InstanceContentScript( 40022 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp b/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp index 61bcb9df..109fa8c3 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFeastTraining : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFeastTraining() : - InstanceContentScript( 40024 ) + Sapphire::ScriptAPI::InstanceContentScript( 40024 ) { } diff --git a/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp b/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp index 1ac9d496..ffa05e9a 100644 --- a/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp +++ b/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFieldsofGloryShatter : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFieldsofGloryShatter() : - InstanceContentScript( 50005 ) + Sapphire::ScriptAPI::InstanceContentScript( 50005 ) { } diff --git a/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp b/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp index 6f321795..5156924c 100644 --- a/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp +++ b/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp @@ -4,11 +4,11 @@ using namespace Core; class ABloodyReunion : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ABloodyReunion() : - InstanceContentScript( 5002 ) + Sapphire::ScriptAPI::InstanceContentScript( 5002 ) { } diff --git a/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp b/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp index 1391996d..812ca933 100644 --- a/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp +++ b/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp @@ -4,11 +4,11 @@ using namespace Core; class ASpectaclefortheAges : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ASpectaclefortheAges() : - InstanceContentScript( 5001 ) + Sapphire::ScriptAPI::InstanceContentScript( 5001 ) { } diff --git a/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp b/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp index 134acf7b..213ea2a3 100644 --- a/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp +++ b/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp @@ -4,11 +4,11 @@ using namespace Core; class BloodDragoon : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BloodDragoon() : - InstanceContentScript( 5021 ) + Sapphire::ScriptAPI::InstanceContentScript( 5021 ) { } diff --git a/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp b/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp index 52798fc6..7d7a7904 100644 --- a/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp +++ b/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp @@ -4,11 +4,11 @@ using namespace Core; class BloodontheDeck : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BloodontheDeck() : - InstanceContentScript( 5009 ) + Sapphire::ScriptAPI::InstanceContentScript( 5009 ) { } diff --git a/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp b/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp index e9a5219d..9d11e0d9 100644 --- a/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp +++ b/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp @@ -4,11 +4,11 @@ using namespace Core; class CuriousGorgeMeetsHisMatch : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: CuriousGorgeMeetsHisMatch() : - InstanceContentScript( 5013 ) + Sapphire::ScriptAPI::InstanceContentScript( 5013 ) { } diff --git a/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp b/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp index ee13738d..dbb22306 100644 --- a/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp +++ b/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp @@ -4,11 +4,11 @@ using namespace Core; class DarkwingDragon : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DarkwingDragon() : - InstanceContentScript( 5016 ) + Sapphire::ScriptAPI::InstanceContentScript( 5016 ) { } diff --git a/src/servers/Scripts/instances/questbattles/InThalsName.cpp b/src/servers/Scripts/instances/questbattles/InThalsName.cpp index 11c9acb0..30651049 100644 --- a/src/servers/Scripts/instances/questbattles/InThalsName.cpp +++ b/src/servers/Scripts/instances/questbattles/InThalsName.cpp @@ -4,11 +4,11 @@ using namespace Core; class InThalsName : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: InThalsName() : - InstanceContentScript( 5006 ) + Sapphire::ScriptAPI::InstanceContentScript( 5006 ) { } diff --git a/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp b/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp index 24c4620a..3d59bb98 100644 --- a/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp +++ b/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp @@ -4,11 +4,11 @@ using namespace Core; class InterdimensionalRift : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: InterdimensionalRift() : - InstanceContentScript( 5023 ) + Sapphire::ScriptAPI::InstanceContentScript( 5023 ) { } diff --git a/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp b/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp index 7d650ed6..e66d6988 100644 --- a/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp +++ b/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp @@ -4,11 +4,11 @@ using namespace Core; class ItsProbablyaTrap : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ItsProbablyaTrap() : - InstanceContentScript( 5005 ) + Sapphire::ScriptAPI::InstanceContentScript( 5005 ) { } diff --git a/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp b/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp index 2ef58362..b300c2a0 100644 --- a/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp +++ b/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp @@ -4,11 +4,11 @@ using namespace Core; class MatsubaMayhem : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: MatsubaMayhem() : - InstanceContentScript( 5011 ) + Sapphire::ScriptAPI::InstanceContentScript( 5011 ) { } diff --git a/src/servers/Scripts/instances/questbattles/Naadam.cpp b/src/servers/Scripts/instances/questbattles/Naadam.cpp index 5710af45..24d86f58 100644 --- a/src/servers/Scripts/instances/questbattles/Naadam.cpp +++ b/src/servers/Scripts/instances/questbattles/Naadam.cpp @@ -4,11 +4,11 @@ using namespace Core; class Naadam : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Naadam() : - InstanceContentScript( 5008 ) + Sapphire::ScriptAPI::InstanceContentScript( 5008 ) { } diff --git a/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp b/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp index 4240d125..04e19bcc 100644 --- a/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp +++ b/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp @@ -4,11 +4,11 @@ using namespace Core; class OneLifeforOneWorld : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: OneLifeforOneWorld() : - InstanceContentScript( 5003 ) + Sapphire::ScriptAPI::InstanceContentScript( 5003 ) { } diff --git a/src/servers/Scripts/instances/questbattles/OurCompromise.cpp b/src/servers/Scripts/instances/questbattles/OurCompromise.cpp index 933b80b6..d1a86fb4 100644 --- a/src/servers/Scripts/instances/questbattles/OurCompromise.cpp +++ b/src/servers/Scripts/instances/questbattles/OurCompromise.cpp @@ -4,11 +4,11 @@ using namespace Core; class OurCompromise : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: OurCompromise() : - InstanceContentScript( 5020 ) + Sapphire::ScriptAPI::InstanceContentScript( 5020 ) { } diff --git a/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp b/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp index b1d0ace6..1e8eead9 100644 --- a/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp +++ b/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp @@ -4,11 +4,11 @@ using namespace Core; class OurUnsungHeroes : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: OurUnsungHeroes() : - InstanceContentScript( 5014 ) + Sapphire::ScriptAPI::InstanceContentScript( 5014 ) { } diff --git a/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp b/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp index d6213de7..ece6cfa3 100644 --- a/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp +++ b/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp @@ -4,11 +4,11 @@ using namespace Core; class RaisingtheSword : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: RaisingtheSword() : - InstanceContentScript( 5018 ) + Sapphire::ScriptAPI::InstanceContentScript( 5018 ) { } diff --git a/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp b/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp index 2c9977d2..ce800b13 100644 --- a/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp +++ b/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp @@ -4,11 +4,11 @@ using namespace Core; class ReturnoftheBull : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ReturnoftheBull() : - InstanceContentScript( 5024 ) + Sapphire::ScriptAPI::InstanceContentScript( 5024 ) { } diff --git a/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp b/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp index 58db4e72..96279282 100644 --- a/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp +++ b/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBattleonBekko : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBattleonBekko() : - InstanceContentScript( 5012 ) + Sapphire::ScriptAPI::InstanceContentScript( 5012 ) { } diff --git a/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp b/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp index 3296c99a..6c5deaaf 100644 --- a/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp +++ b/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheCarteneauFlatsHeliodrome : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheCarteneauFlatsHeliodrome() : - InstanceContentScript( 5004 ) + Sapphire::ScriptAPI::InstanceContentScript( 5004 ) { } diff --git a/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp b/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp index 357807d8..66caf3cd 100644 --- a/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp +++ b/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFaceofTrueEvil : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFaceofTrueEvil() : - InstanceContentScript( 5010 ) + Sapphire::ScriptAPI::InstanceContentScript( 5010 ) { } diff --git a/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp b/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp index 4301b69b..9524aa55 100644 --- a/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp +++ b/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheHeartoftheProblem : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheHeartoftheProblem() : - InstanceContentScript( 5015 ) + Sapphire::ScriptAPI::InstanceContentScript( 5015 ) { } diff --git a/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp b/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp index d0616873..7fbc59da 100644 --- a/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp +++ b/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheOrphansandtheBrokenBlade : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheOrphansandtheBrokenBlade() : - InstanceContentScript( 5019 ) + Sapphire::ScriptAPI::InstanceContentScript( 5019 ) { } diff --git a/src/servers/Scripts/instances/questbattles/TheResonant.cpp b/src/servers/Scripts/instances/questbattles/TheResonant.cpp index 191cc6c8..c09b35d1 100644 --- a/src/servers/Scripts/instances/questbattles/TheResonant.cpp +++ b/src/servers/Scripts/instances/questbattles/TheResonant.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheResonant : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheResonant() : - InstanceContentScript( 5017 ) + Sapphire::ScriptAPI::InstanceContentScript( 5017 ) { } diff --git a/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp b/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp index 4f956918..78fae391 100644 --- a/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp +++ b/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp @@ -4,11 +4,11 @@ using namespace Core; class WhenClansCollide : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: WhenClansCollide() : - InstanceContentScript( 5022 ) + Sapphire::ScriptAPI::InstanceContentScript( 5022 ) { } diff --git a/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp b/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp index 4fbeafc2..8c0c3923 100644 --- a/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp +++ b/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp @@ -4,11 +4,11 @@ using namespace Core; class WithHeartandSteel : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: WithHeartandSteel() : - InstanceContentScript( 5007 ) + Sapphire::ScriptAPI::InstanceContentScript( 5007 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp index 614b1f7d..b5161204 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheArmoftheFather : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheArmoftheFather() : - InstanceContentScript( 30023 ) + Sapphire::ScriptAPI::InstanceContentScript( 30023 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp index c2c4fac9..02a980f8 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheArmoftheFatherSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheArmoftheFatherSavage() : - InstanceContentScript( 30027 ) + Sapphire::ScriptAPI::InstanceContentScript( 30027 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp index 51b3dff7..b6c952b2 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheArmoftheSon : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheArmoftheSon() : - InstanceContentScript( 30032 ) + Sapphire::ScriptAPI::InstanceContentScript( 30032 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp index b888dd35..9164e297 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheArmoftheSonSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheArmoftheSonSavage() : - InstanceContentScript( 30036 ) + Sapphire::ScriptAPI::InstanceContentScript( 30036 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp index 4d6f98ee..6d0c95e9 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheBreathoftheCreator : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheBreathoftheCreator() : - InstanceContentScript( 30040 ) + Sapphire::ScriptAPI::InstanceContentScript( 30040 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp index 901dee86..858e3c06 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheBreathoftheCreatorSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheBreathoftheCreatorSavage() : - InstanceContentScript( 30044 ) + Sapphire::ScriptAPI::InstanceContentScript( 30044 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp index 2444c360..282e906b 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheBurdenoftheFather : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheBurdenoftheFather() : - InstanceContentScript( 30024 ) + Sapphire::ScriptAPI::InstanceContentScript( 30024 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp index 04d41b7a..9a90cb11 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheBurdenoftheFatherSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheBurdenoftheFatherSavage() : - InstanceContentScript( 30028 ) + Sapphire::ScriptAPI::InstanceContentScript( 30028 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp index 807283a9..55e43cf9 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheBurdenoftheSon : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheBurdenoftheSon() : - InstanceContentScript( 30033 ) + Sapphire::ScriptAPI::InstanceContentScript( 30033 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp index 2c7c212b..c4590c74 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheBurdenoftheSonSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheBurdenoftheSonSavage() : - InstanceContentScript( 30037 ) + Sapphire::ScriptAPI::InstanceContentScript( 30037 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp index 36707b42..8dd80f5c 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheCuffoftheFather : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheCuffoftheFather() : - InstanceContentScript( 30022 ) + Sapphire::ScriptAPI::InstanceContentScript( 30022 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp index 2d1dbae7..b84bbe49 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheCuffoftheFatherSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheCuffoftheFatherSavage() : - InstanceContentScript( 30026 ) + Sapphire::ScriptAPI::InstanceContentScript( 30026 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp index 833cbcbb..2f54eeae 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheCuffoftheSon : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheCuffoftheSon() : - InstanceContentScript( 30031 ) + Sapphire::ScriptAPI::InstanceContentScript( 30031 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp index abb2e61d..7c90efa7 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheCuffoftheSonSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheCuffoftheSonSavage() : - InstanceContentScript( 30035 ) + Sapphire::ScriptAPI::InstanceContentScript( 30035 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp index 937182be..00aeb92c 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheEyesoftheCreator : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheEyesoftheCreator() : - InstanceContentScript( 30039 ) + Sapphire::ScriptAPI::InstanceContentScript( 30039 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp index db24d92a..7793d5b1 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheEyesoftheCreatorSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheEyesoftheCreatorSavage() : - InstanceContentScript( 30043 ) + Sapphire::ScriptAPI::InstanceContentScript( 30043 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp index 4fe1a928..f9debc0a 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheFistoftheFather : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheFistoftheFather() : - InstanceContentScript( 30021 ) + Sapphire::ScriptAPI::InstanceContentScript( 30021 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp index 2db154b0..2428de47 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheFistoftheFatherSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheFistoftheFatherSavage() : - InstanceContentScript( 30025 ) + Sapphire::ScriptAPI::InstanceContentScript( 30025 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp index ac3e9d83..3701bf2a 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheFistoftheSon : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheFistoftheSon() : - InstanceContentScript( 30030 ) + Sapphire::ScriptAPI::InstanceContentScript( 30030 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp index 2a04d874..ecf691c2 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheFistoftheSonSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheFistoftheSonSavage() : - InstanceContentScript( 30034 ) + Sapphire::ScriptAPI::InstanceContentScript( 30034 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp index da84d428..b11bea73 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheHeartoftheCreator : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheHeartoftheCreator() : - InstanceContentScript( 30041 ) + Sapphire::ScriptAPI::InstanceContentScript( 30041 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp index 3946f873..b75875f4 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheHeartoftheCreatorSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheHeartoftheCreatorSavage() : - InstanceContentScript( 30045 ) + Sapphire::ScriptAPI::InstanceContentScript( 30045 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp index 151f02bf..452d046c 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheSouloftheCreator : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheSouloftheCreator() : - InstanceContentScript( 30042 ) + Sapphire::ScriptAPI::InstanceContentScript( 30042 ) { } diff --git a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp index 61a1a7be..2ec67e1f 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp @@ -4,11 +4,11 @@ using namespace Core; class AlexanderTheSouloftheCreatorSavage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AlexanderTheSouloftheCreatorSavage() : - InstanceContentScript( 30046 ) + Sapphire::ScriptAPI::InstanceContentScript( 30046 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV10.cpp b/src/servers/Scripts/instances/raids/DeltascapeV10.cpp index cd73672d..68d9ba14 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV10.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV10.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV10 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV10() : - InstanceContentScript( 30049 ) + Sapphire::ScriptAPI::InstanceContentScript( 30049 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp index 9a2da733..52bf199e 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV10Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV10Savage() : - InstanceContentScript( 30053 ) + Sapphire::ScriptAPI::InstanceContentScript( 30053 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV20.cpp b/src/servers/Scripts/instances/raids/DeltascapeV20.cpp index 5a5b7b92..910c47e2 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV20.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV20.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV20 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV20() : - InstanceContentScript( 30050 ) + Sapphire::ScriptAPI::InstanceContentScript( 30050 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp index 8f1cad21..a65efc62 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV20Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV20Savage() : - InstanceContentScript( 30054 ) + Sapphire::ScriptAPI::InstanceContentScript( 30054 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV30.cpp b/src/servers/Scripts/instances/raids/DeltascapeV30.cpp index 6c886233..56dae699 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV30.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV30.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV30 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV30() : - InstanceContentScript( 30051 ) + Sapphire::ScriptAPI::InstanceContentScript( 30051 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp index dc54d1bc..ed6487f1 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV30Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV30Savage() : - InstanceContentScript( 30055 ) + Sapphire::ScriptAPI::InstanceContentScript( 30055 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV40.cpp b/src/servers/Scripts/instances/raids/DeltascapeV40.cpp index 6181a52b..be9f64b9 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV40.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV40.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV40 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV40() : - InstanceContentScript( 30052 ) + Sapphire::ScriptAPI::InstanceContentScript( 30052 ) { } diff --git a/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp index 63b753c1..bd3f4d5b 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class DeltascapeV40Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DeltascapeV40Savage() : - InstanceContentScript( 30056 ) + Sapphire::ScriptAPI::InstanceContentScript( 30056 ) { } diff --git a/src/servers/Scripts/instances/raids/DunScaith.cpp b/src/servers/Scripts/instances/raids/DunScaith.cpp index 09bbe8bb..06c8e9aa 100644 --- a/src/servers/Scripts/instances/raids/DunScaith.cpp +++ b/src/servers/Scripts/instances/raids/DunScaith.cpp @@ -4,11 +4,11 @@ using namespace Core; class DunScaith : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: DunScaith() : - InstanceContentScript( 30047 ) + Sapphire::ScriptAPI::InstanceContentScript( 30047 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV10.cpp b/src/servers/Scripts/instances/raids/SigmascapeV10.cpp index b68624d6..d9608496 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV10.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV10.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV10 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV10() : - InstanceContentScript( 30059 ) + Sapphire::ScriptAPI::InstanceContentScript( 30059 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp index d97cfa73..1e57ffcc 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV10Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV10Savage() : - InstanceContentScript( 30063 ) + Sapphire::ScriptAPI::InstanceContentScript( 30063 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV20.cpp b/src/servers/Scripts/instances/raids/SigmascapeV20.cpp index 1dca0d5d..605c83a0 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV20.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV20.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV20 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV20() : - InstanceContentScript( 30060 ) + Sapphire::ScriptAPI::InstanceContentScript( 30060 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp index cf17ed24..9ee27657 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV20Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV20Savage() : - InstanceContentScript( 30064 ) + Sapphire::ScriptAPI::InstanceContentScript( 30064 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV30.cpp b/src/servers/Scripts/instances/raids/SigmascapeV30.cpp index 6e7c3121..898e409f 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV30.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV30.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV30 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV30() : - InstanceContentScript( 30061 ) + Sapphire::ScriptAPI::InstanceContentScript( 30061 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp index b2029d55..48e0c000 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV30Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV30Savage() : - InstanceContentScript( 30065 ) + Sapphire::ScriptAPI::InstanceContentScript( 30065 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV40.cpp b/src/servers/Scripts/instances/raids/SigmascapeV40.cpp index 1acffe7c..303b1cb2 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV40.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV40.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV40 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV40() : - InstanceContentScript( 30062 ) + Sapphire::ScriptAPI::InstanceContentScript( 30062 ) { } diff --git a/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp index c9b3c203..4f78764e 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp @@ -4,11 +4,11 @@ using namespace Core; class SigmascapeV40Savage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SigmascapeV40Savage() : - InstanceContentScript( 30066 ) + Sapphire::ScriptAPI::InstanceContentScript( 30066 ) { } diff --git a/src/servers/Scripts/instances/raids/SyrcusTower.cpp b/src/servers/Scripts/instances/raids/SyrcusTower.cpp index 2cc0ac36..e70e9634 100644 --- a/src/servers/Scripts/instances/raids/SyrcusTower.cpp +++ b/src/servers/Scripts/instances/raids/SyrcusTower.cpp @@ -4,11 +4,11 @@ using namespace Core; class SyrcusTower : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SyrcusTower() : - InstanceContentScript( 30011 ) + Sapphire::ScriptAPI::InstanceContentScript( 30011 ) { } diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp index 4f2755d2..235b388f 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBindingCoilofBahamutTurn1 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBindingCoilofBahamutTurn1() : - InstanceContentScript( 30002 ) + Sapphire::ScriptAPI::InstanceContentScript( 30002 ) { } diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp index 843aefbe..a46be3e8 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBindingCoilofBahamutTurn2 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBindingCoilofBahamutTurn2() : - InstanceContentScript( 30003 ) + Sapphire::ScriptAPI::InstanceContentScript( 30003 ) { } diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp index f479e526..250b23bf 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBindingCoilofBahamutTurn3 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBindingCoilofBahamutTurn3() : - InstanceContentScript( 30004 ) + Sapphire::ScriptAPI::InstanceContentScript( 30004 ) { } diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp index 3bb539b5..3d71d330 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBindingCoilofBahamutTurn4 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBindingCoilofBahamutTurn4() : - InstanceContentScript( 30005 ) + Sapphire::ScriptAPI::InstanceContentScript( 30005 ) { } diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp index 1cbffc8e..ef292f8e 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBindingCoilofBahamutTurn5 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBindingCoilofBahamutTurn5() : - InstanceContentScript( 30006 ) + Sapphire::ScriptAPI::InstanceContentScript( 30006 ) { } diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp index e7e10311..0b3389da 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFinalCoilofBahamutTurn1 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFinalCoilofBahamutTurn1() : - InstanceContentScript( 30016 ) + Sapphire::ScriptAPI::InstanceContentScript( 30016 ) { } diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp index eec5679d..9d92d87b 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFinalCoilofBahamutTurn2 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFinalCoilofBahamutTurn2() : - InstanceContentScript( 30017 ) + Sapphire::ScriptAPI::InstanceContentScript( 30017 ) { } diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp index d69ba344..3e5c1293 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFinalCoilofBahamutTurn3 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFinalCoilofBahamutTurn3() : - InstanceContentScript( 30018 ) + Sapphire::ScriptAPI::InstanceContentScript( 30018 ) { } diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp index f76a2c3f..bb4a3fa2 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFinalCoilofBahamutTurn4 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFinalCoilofBahamutTurn4() : - InstanceContentScript( 30019 ) + Sapphire::ScriptAPI::InstanceContentScript( 30019 ) { } diff --git a/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp b/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp index d4213145..4d5e5c5e 100644 --- a/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp +++ b/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheLabyrinthoftheAncients : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheLabyrinthoftheAncients() : - InstanceContentScript( 30001 ) + Sapphire::ScriptAPI::InstanceContentScript( 30001 ) { } diff --git a/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp b/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp index 2498ebeb..a10c2ffb 100644 --- a/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp +++ b/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheRoyalCityofRabanastre : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheRoyalCityofRabanastre() : - InstanceContentScript( 30058 ) + Sapphire::ScriptAPI::InstanceContentScript( 30058 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp index c96eb64f..fae2b3fe 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutSavageTurn1 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutSavageTurn1() : - InstanceContentScript( 30012 ) + Sapphire::ScriptAPI::InstanceContentScript( 30012 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp index d8aac76b..f7b175c4 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutSavageTurn2 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutSavageTurn2() : - InstanceContentScript( 30013 ) + Sapphire::ScriptAPI::InstanceContentScript( 30013 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp index 1909401c..cb88270b 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutSavageTurn3 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutSavageTurn3() : - InstanceContentScript( 30014 ) + Sapphire::ScriptAPI::InstanceContentScript( 30014 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp index 4bb2fcd6..610f265d 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutSavageTurn4 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutSavageTurn4() : - InstanceContentScript( 30015 ) + Sapphire::ScriptAPI::InstanceContentScript( 30015 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp index 4e1f4ecf..4b4fed34 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutTurn1 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutTurn1() : - InstanceContentScript( 30007 ) + Sapphire::ScriptAPI::InstanceContentScript( 30007 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp index 602a7d23..4fb47af4 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutTurn2 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutTurn2() : - InstanceContentScript( 30008 ) + Sapphire::ScriptAPI::InstanceContentScript( 30008 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp index 245d077f..c94efd60 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutTurn3 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutTurn3() : - InstanceContentScript( 30009 ) + Sapphire::ScriptAPI::InstanceContentScript( 30009 ) { } diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp index bfd1657f..8974b720 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSecondCoilofBahamutTurn4 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSecondCoilofBahamutTurn4() : - InstanceContentScript( 30010 ) + Sapphire::ScriptAPI::InstanceContentScript( 30010 ) { } diff --git a/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp b/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp index b9286341..ec389f1f 100644 --- a/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp +++ b/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheUnendingCoilofBahamutUltimate : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheUnendingCoilofBahamutUltimate() : - InstanceContentScript( 30057 ) + Sapphire::ScriptAPI::InstanceContentScript( 30057 ) { } diff --git a/src/servers/Scripts/instances/raids/TheVoidArk.cpp b/src/servers/Scripts/instances/raids/TheVoidArk.cpp index b359da00..86a6a9e7 100644 --- a/src/servers/Scripts/instances/raids/TheVoidArk.cpp +++ b/src/servers/Scripts/instances/raids/TheVoidArk.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheVoidArk : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheVoidArk() : - InstanceContentScript( 30029 ) + Sapphire::ScriptAPI::InstanceContentScript( 30029 ) { } diff --git a/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp b/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp index 3c2d117a..67bd9aeb 100644 --- a/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp +++ b/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheWeaponsRefrainUltimate : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheWeaponsRefrainUltimate() : - InstanceContentScript( 30067 ) + Sapphire::ScriptAPI::InstanceContentScript( 30067 ) { } diff --git a/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp b/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp index 13595708..46a057e7 100644 --- a/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp +++ b/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheWeepingCityofMhach : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheWeepingCityofMhach() : - InstanceContentScript( 30038 ) + Sapphire::ScriptAPI::InstanceContentScript( 30038 ) { } diff --git a/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp b/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp index f185a110..fbc4df00 100644 --- a/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp +++ b/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheWorldofDarkness : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheWorldofDarkness() : - InstanceContentScript( 30020 ) + Sapphire::ScriptAPI::InstanceContentScript( 30020 ) { } diff --git a/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp b/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp index e56ff057..bc94deb6 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheAquapolis : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheAquapolis() : - InstanceContentScript( 55001 ) + Sapphire::ScriptAPI::InstanceContentScript( 55001 ) { } diff --git a/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp b/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp index 4f5ac3bb..64f769bd 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheHiddenCanalsofUznair : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheHiddenCanalsofUznair() : - InstanceContentScript( 55003 ) + Sapphire::ScriptAPI::InstanceContentScript( 55003 ) { } diff --git a/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp b/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp index 063678af..3005ce36 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheLostCanalsofUznair : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheLostCanalsofUznair() : - InstanceContentScript( 55002 ) + Sapphire::ScriptAPI::InstanceContentScript( 55002 ) { } diff --git a/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp b/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp index 75290e8f..4b5c2d2f 100644 --- a/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp +++ b/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp @@ -4,11 +4,11 @@ using namespace Core; class ARelicReborntheChimera : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ARelicReborntheChimera() : - InstanceContentScript( 20019 ) + Sapphire::ScriptAPI::InstanceContentScript( 20019 ) { } diff --git a/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp b/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp index b0901b37..fe590f66 100644 --- a/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp +++ b/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp @@ -4,11 +4,11 @@ using namespace Core; class ARelicReborntheHydra : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ARelicReborntheHydra() : - InstanceContentScript( 20020 ) + Sapphire::ScriptAPI::InstanceContentScript( 20020 ) { } diff --git a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp index 893379f5..0fcac9c1 100644 --- a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp +++ b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp @@ -3,10 +3,10 @@ using namespace Core; -class AkhAfahAmphitheatreExtreme : public InstanceContentScript +class AkhAfahAmphitheatreExtreme : public Sapphire::ScriptAPI::InstanceContentScript { public: - AkhAfahAmphitheatreExtreme() : InstanceContentScript( 20025 ) + AkhAfahAmphitheatreExtreme() : Sapphire::ScriptAPI::InstanceContentScript( 20025 ) { } diff --git a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp index 5f983199..7147090a 100644 --- a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp +++ b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class AkhAfahAmphitheatreHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: AkhAfahAmphitheatreHard() : - InstanceContentScript( 20024 ) + Sapphire::ScriptAPI::InstanceContentScript( 20024 ) { } diff --git a/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp b/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp index d0c3d279..3e283f09 100644 --- a/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp +++ b/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp @@ -4,11 +4,11 @@ using namespace Core; class BattleintheBigKeep : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BattleintheBigKeep() : - InstanceContentScript( 20030 ) + Sapphire::ScriptAPI::InstanceContentScript( 20030 ) { } diff --git a/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp b/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp index b849d7a4..26fb633b 100644 --- a/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp +++ b/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp @@ -4,11 +4,11 @@ using namespace Core; class BattleontheBigBridge : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: BattleontheBigBridge() : - InstanceContentScript( 20021 ) + Sapphire::ScriptAPI::InstanceContentScript( 20021 ) { } diff --git a/src/servers/Scripts/instances/trials/CapeWestwind.cpp b/src/servers/Scripts/instances/trials/CapeWestwind.cpp index ad755e7b..d67714e2 100644 --- a/src/servers/Scripts/instances/trials/CapeWestwind.cpp +++ b/src/servers/Scripts/instances/trials/CapeWestwind.cpp @@ -4,11 +4,11 @@ using namespace Core; class CapeWestwind : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: CapeWestwind() : - InstanceContentScript( 20007 ) + Sapphire::ScriptAPI::InstanceContentScript( 20007 ) { } diff --git a/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp b/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp index 6b3f8da8..931f5d90 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp @@ -4,11 +4,11 @@ using namespace Core; class ContainmentBayP1T6 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ContainmentBayP1T6() : - InstanceContentScript( 20041 ) + Sapphire::ScriptAPI::InstanceContentScript( 20041 ) { } diff --git a/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp index 793e3cf6..2595a99f 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class ContainmentBayP1T6Extreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ContainmentBayP1T6Extreme() : - InstanceContentScript( 20042 ) + Sapphire::ScriptAPI::InstanceContentScript( 20042 ) { } diff --git a/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp b/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp index 48fb5198..b0ec25d9 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp @@ -4,11 +4,11 @@ using namespace Core; class ContainmentBayS1T7 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ContainmentBayS1T7() : - InstanceContentScript( 20037 ) + Sapphire::ScriptAPI::InstanceContentScript( 20037 ) { } diff --git a/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp index 0bd7ee35..846bb7bc 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class ContainmentBayS1T7Extreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ContainmentBayS1T7Extreme() : - InstanceContentScript( 20038 ) + Sapphire::ScriptAPI::InstanceContentScript( 20038 ) { } diff --git a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp index 77ba04ec..d7d6f352 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp @@ -4,11 +4,11 @@ using namespace Core; class ContainmentBayZ1T9 : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ContainmentBayZ1T9() : - InstanceContentScript( 20043 ) + Sapphire::ScriptAPI::InstanceContentScript( 20043 ) { } diff --git a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp index 6987135c..2ecd9f20 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class ContainmentBayZ1T9Extreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ContainmentBayZ1T9Extreme() : - InstanceContentScript( 20044 ) + Sapphire::ScriptAPI::InstanceContentScript( 20044 ) { } diff --git a/src/servers/Scripts/instances/trials/Emanation.cpp b/src/servers/Scripts/instances/trials/Emanation.cpp index 3af527e8..6860ffcb 100644 --- a/src/servers/Scripts/instances/trials/Emanation.cpp +++ b/src/servers/Scripts/instances/trials/Emanation.cpp @@ -4,11 +4,11 @@ using namespace Core; class Emanation : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: Emanation() : - InstanceContentScript( 20048 ) + Sapphire::ScriptAPI::InstanceContentScript( 20048 ) { } diff --git a/src/servers/Scripts/instances/trials/EmanationExtreme.cpp b/src/servers/Scripts/instances/trials/EmanationExtreme.cpp index 11849d3c..8bfefb1e 100644 --- a/src/servers/Scripts/instances/trials/EmanationExtreme.cpp +++ b/src/servers/Scripts/instances/trials/EmanationExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class EmanationExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: EmanationExtreme() : - InstanceContentScript( 20049 ) + Sapphire::ScriptAPI::InstanceContentScript( 20049 ) { } diff --git a/src/servers/Scripts/instances/trials/SpecialEventI.cpp b/src/servers/Scripts/instances/trials/SpecialEventI.cpp index af4eef79..8945086d 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventI.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventI.cpp @@ -4,11 +4,11 @@ using namespace Core; class SpecialEventI : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SpecialEventI() : - InstanceContentScript( 20014 ) + Sapphire::ScriptAPI::InstanceContentScript( 20014 ) { } diff --git a/src/servers/Scripts/instances/trials/SpecialEventII.cpp b/src/servers/Scripts/instances/trials/SpecialEventII.cpp index e76d49e9..450976b7 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventII.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventII.cpp @@ -4,11 +4,11 @@ using namespace Core; class SpecialEventII : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SpecialEventII() : - InstanceContentScript( 20015 ) + Sapphire::ScriptAPI::InstanceContentScript( 20015 ) { } diff --git a/src/servers/Scripts/instances/trials/SpecialEventIII.cpp b/src/servers/Scripts/instances/trials/SpecialEventIII.cpp index 864edc8e..d0a8a2ca 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventIII.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventIII.cpp @@ -4,11 +4,11 @@ using namespace Core; class SpecialEventIII : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: SpecialEventIII() : - InstanceContentScript( 20016 ) + Sapphire::ScriptAPI::InstanceContentScript( 20016 ) { } diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp index e02da370..6f8c70b0 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBowlofEmbers : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBowlofEmbers() : - InstanceContentScript( 20001 ) + Sapphire::ScriptAPI::InstanceContentScript( 20001 ) { } diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp index 57e2f0f4..22b137ee 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBowlofEmbersExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBowlofEmbersExtreme() : - InstanceContentScript( 20008 ) + Sapphire::ScriptAPI::InstanceContentScript( 20008 ) { } diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp index 4d3eeea1..6b9408cf 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheBowlofEmbersHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheBowlofEmbersHard() : - InstanceContentScript( 20004 ) + Sapphire::ScriptAPI::InstanceContentScript( 20004 ) { } diff --git a/src/servers/Scripts/instances/trials/TheChrysalis.cpp b/src/servers/Scripts/instances/trials/TheChrysalis.cpp index 9ab2c0ee..57adf3ca 100644 --- a/src/servers/Scripts/instances/trials/TheChrysalis.cpp +++ b/src/servers/Scripts/instances/trials/TheChrysalis.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheChrysalis : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheChrysalis() : - InstanceContentScript( 20029 ) + Sapphire::ScriptAPI::InstanceContentScript( 20029 ) { } diff --git a/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp b/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp index 1ac06a84..bd9762ec 100644 --- a/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp +++ b/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheDragonsNeck : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheDragonsNeck() : - InstanceContentScript( 20026 ) + Sapphire::ScriptAPI::InstanceContentScript( 20026 ) { } diff --git a/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp b/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp index 59fc233a..0900ff1f 100644 --- a/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp +++ b/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheFinalStepsofFaith : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheFinalStepsofFaith() : - InstanceContentScript( 20039 ) + Sapphire::ScriptAPI::InstanceContentScript( 20039 ) { } diff --git a/src/servers/Scripts/instances/trials/TheHowlingEye.cpp b/src/servers/Scripts/instances/trials/TheHowlingEye.cpp index f552b5ca..5fc19232 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEye.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEye.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheHowlingEye : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheHowlingEye() : - InstanceContentScript( 20003 ) + Sapphire::ScriptAPI::InstanceContentScript( 20003 ) { } diff --git a/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp b/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp index d79fa4c0..fbeead31 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheHowlingEyeExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheHowlingEyeExtreme() : - InstanceContentScript( 20010 ) + Sapphire::ScriptAPI::InstanceContentScript( 20010 ) { } diff --git a/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp b/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp index 61f070f3..1f301b38 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheHowlingEyeHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheHowlingEyeHard() : - InstanceContentScript( 20006 ) + Sapphire::ScriptAPI::InstanceContentScript( 20006 ) { } diff --git a/src/servers/Scripts/instances/trials/TheJadeStoa.cpp b/src/servers/Scripts/instances/trials/TheJadeStoa.cpp index d54a5d7d..52d2ed64 100644 --- a/src/servers/Scripts/instances/trials/TheJadeStoa.cpp +++ b/src/servers/Scripts/instances/trials/TheJadeStoa.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheJadeStoa : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheJadeStoa() : - InstanceContentScript( 20051 ) + Sapphire::ScriptAPI::InstanceContentScript( 20051 ) { } diff --git a/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp b/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp index 269fe63f..8b4f1857 100644 --- a/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheJadeStoaExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheJadeStoaExtreme() : - InstanceContentScript( 20052 ) + Sapphire::ScriptAPI::InstanceContentScript( 20052 ) { } diff --git a/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp b/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp index c127cd30..4d869a19 100644 --- a/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheLimitlessBlueExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheLimitlessBlueExtreme() : - InstanceContentScript( 20034 ) + Sapphire::ScriptAPI::InstanceContentScript( 20034 ) { } diff --git a/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp b/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp index 622a5392..c1bf0dd8 100644 --- a/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp +++ b/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheLimitlessBlueHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheLimitlessBlueHard() : - InstanceContentScript( 20033 ) + Sapphire::ScriptAPI::InstanceContentScript( 20033 ) { } diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp index e8e9d250..7600ef70 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheMinstrelsBalladNidhoggsRage : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheMinstrelsBalladNidhoggsRage() : - InstanceContentScript( 20040 ) + Sapphire::ScriptAPI::InstanceContentScript( 20040 ) { } diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp index 659f80a0..1cde1c30 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheMinstrelsBalladShinryusDomain : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheMinstrelsBalladShinryusDomain() : - InstanceContentScript( 20050 ) + Sapphire::ScriptAPI::InstanceContentScript( 20050 ) { } diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp index a2ea4f9e..bd67a04f 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheMinstrelsBalladThordansReign : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheMinstrelsBalladThordansReign() : - InstanceContentScript( 20036 ) + Sapphire::ScriptAPI::InstanceContentScript( 20036 ) { } diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp index cda5a938..9b2a0c87 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheMinstrelsBalladUltimasBane : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheMinstrelsBalladUltimasBane() : - InstanceContentScript( 20013 ) + Sapphire::ScriptAPI::InstanceContentScript( 20013 ) { } diff --git a/src/servers/Scripts/instances/trials/TheNavel.cpp b/src/servers/Scripts/instances/trials/TheNavel.cpp index efafa11f..6daf15f3 100644 --- a/src/servers/Scripts/instances/trials/TheNavel.cpp +++ b/src/servers/Scripts/instances/trials/TheNavel.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheNavel : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheNavel() : - InstanceContentScript( 20002 ) + Sapphire::ScriptAPI::InstanceContentScript( 20002 ) { } diff --git a/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp b/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp index 888eca76..145dc1cf 100644 --- a/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheNavelExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheNavelExtreme() : - InstanceContentScript( 20009 ) + Sapphire::ScriptAPI::InstanceContentScript( 20009 ) { } diff --git a/src/servers/Scripts/instances/trials/TheNavelHard.cpp b/src/servers/Scripts/instances/trials/TheNavelHard.cpp index c2853340..2f7f601a 100644 --- a/src/servers/Scripts/instances/trials/TheNavelHard.cpp +++ b/src/servers/Scripts/instances/trials/TheNavelHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheNavelHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheNavelHard() : - InstanceContentScript( 20005 ) + Sapphire::ScriptAPI::InstanceContentScript( 20005 ) { } diff --git a/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp b/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp index 3a947f25..cba40367 100644 --- a/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp +++ b/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePoolofTribute : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePoolofTribute() : - InstanceContentScript( 20046 ) + Sapphire::ScriptAPI::InstanceContentScript( 20046 ) { } diff --git a/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp b/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp index 8853d0e2..8b65f471 100644 --- a/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThePoolofTributeExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThePoolofTributeExtreme() : - InstanceContentScript( 20047 ) + Sapphire::ScriptAPI::InstanceContentScript( 20047 ) { } diff --git a/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp b/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp index 982b1a38..c16d50b4 100644 --- a/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp +++ b/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheRoyalMenagerie : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheRoyalMenagerie() : - InstanceContentScript( 20045 ) + Sapphire::ScriptAPI::InstanceContentScript( 20045 ) { } diff --git a/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp b/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp index b02fed9a..910219c4 100644 --- a/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp +++ b/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheSingularityReactor : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheSingularityReactor() : - InstanceContentScript( 20035 ) + Sapphire::ScriptAPI::InstanceContentScript( 20035 ) { } diff --git a/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp b/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp index 7c553c5d..a0253e07 100644 --- a/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp +++ b/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheStepsofFaith : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheStepsofFaith() : - InstanceContentScript( 20028 ) + Sapphire::ScriptAPI::InstanceContentScript( 20028 ) { } diff --git a/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp b/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp index 01573c6d..b0a48eb0 100644 --- a/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheStrikingTreeExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheStrikingTreeExtreme() : - InstanceContentScript( 20023 ) + Sapphire::ScriptAPI::InstanceContentScript( 20023 ) { } diff --git a/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp b/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp index 378b2844..fe3245ee 100644 --- a/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp +++ b/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheStrikingTreeHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheStrikingTreeHard() : - InstanceContentScript( 20022 ) + Sapphire::ScriptAPI::InstanceContentScript( 20022 ) { } diff --git a/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp b/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp index be095d69..450da17f 100644 --- a/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheWhorleaterExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheWhorleaterExtreme() : - InstanceContentScript( 20018 ) + Sapphire::ScriptAPI::InstanceContentScript( 20018 ) { } diff --git a/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp b/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp index 961de4ec..cb73810f 100644 --- a/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp +++ b/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class TheWhorleaterHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: TheWhorleaterHard() : - InstanceContentScript( 20017 ) + Sapphire::ScriptAPI::InstanceContentScript( 20017 ) { } diff --git a/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp b/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp index 203b6e7f..89003f45 100644 --- a/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThokastThokExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThokastThokExtreme() : - InstanceContentScript( 20032 ) + Sapphire::ScriptAPI::InstanceContentScript( 20032 ) { } diff --git a/src/servers/Scripts/instances/trials/ThokastThokHard.cpp b/src/servers/Scripts/instances/trials/ThokastThokHard.cpp index 12bf19d9..ee25d9db 100644 --- a/src/servers/Scripts/instances/trials/ThokastThokHard.cpp +++ b/src/servers/Scripts/instances/trials/ThokastThokHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThokastThokHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThokastThokHard() : - InstanceContentScript( 20031 ) + Sapphire::ScriptAPI::InstanceContentScript( 20031 ) { } diff --git a/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp b/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp index ad744b82..df1edf14 100644 --- a/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThornmarchExtreme : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThornmarchExtreme() : - InstanceContentScript( 20012 ) + Sapphire::ScriptAPI::InstanceContentScript( 20012 ) { } diff --git a/src/servers/Scripts/instances/trials/ThornmarchHard.cpp b/src/servers/Scripts/instances/trials/ThornmarchHard.cpp index b0b66420..b6f02b7e 100644 --- a/src/servers/Scripts/instances/trials/ThornmarchHard.cpp +++ b/src/servers/Scripts/instances/trials/ThornmarchHard.cpp @@ -4,11 +4,11 @@ using namespace Core; class ThornmarchHard : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: ThornmarchHard() : - InstanceContentScript( 20011 ) + Sapphire::ScriptAPI::InstanceContentScript( 20011 ) { } diff --git a/src/servers/Scripts/instances/trials/UrthsFount.cpp b/src/servers/Scripts/instances/trials/UrthsFount.cpp index 58f03d00..adefd618 100644 --- a/src/servers/Scripts/instances/trials/UrthsFount.cpp +++ b/src/servers/Scripts/instances/trials/UrthsFount.cpp @@ -4,11 +4,11 @@ using namespace Core; class UrthsFount : - public InstanceContentScript + public Sapphire::ScriptAPI::InstanceContentScript { public: UrthsFount() : - InstanceContentScript( 20027 ) + Sapphire::ScriptAPI::InstanceContentScript( 20027 ) { } diff --git a/src/servers/Scripts/opening/OpeningGridania.cpp b/src/servers/Scripts/opening/OpeningGridania.cpp index 294fd939..069625cd 100644 --- a/src/servers/Scripts/opening/OpeningGridania.cpp +++ b/src/servers/Scripts/opening/OpeningGridania.cpp @@ -3,7 +3,7 @@ using namespace Core; -class OpeningGridania : public EventScript +class OpeningGridania : public Sapphire::ScriptAPI::EventScript { private: static constexpr auto ERANGE_HOWTO_ANN_AND_QUEST = 2117539; @@ -99,7 +99,7 @@ private: public: OpeningGridania() : - EventScript( 1245186 ) + Sapphire::ScriptAPI::EventScript( 1245186 ) { } diff --git a/src/servers/Scripts/opening/OpeningLimsa.cpp b/src/servers/Scripts/opening/OpeningLimsa.cpp index 13ab9a94..2401ccc6 100644 --- a/src/servers/Scripts/opening/OpeningLimsa.cpp +++ b/src/servers/Scripts/opening/OpeningLimsa.cpp @@ -8,7 +8,7 @@ using namespace Core; // Quest ID: 1245185 class OpeningLimsa : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto ERANGE_HOWTO_ANN_AND_QUEST = 4101831; @@ -116,7 +116,7 @@ private: public: OpeningLimsa() : - EventScript( 1245185 ) + Sapphire::ScriptAPI::EventScript( 1245185 ) { } diff --git a/src/servers/Scripts/opening/OpeningUldah.cpp b/src/servers/Scripts/opening/OpeningUldah.cpp index 18eb3a89..42e9fada 100644 --- a/src/servers/Scripts/opening/OpeningUldah.cpp +++ b/src/servers/Scripts/opening/OpeningUldah.cpp @@ -3,7 +3,7 @@ using namespace Core; -class OpeningUldah : public EventScript +class OpeningUldah : public Sapphire::ScriptAPI::EventScript { private: static constexpr auto ERANGE_HOWTO_ANN_AND_QUEST = 4101650; @@ -98,7 +98,7 @@ private: public: OpeningUldah() : - EventScript( 1245187 ) + Sapphire::ScriptAPI::EventScript( 1245187 ) { } diff --git a/src/servers/Scripts/quest/ManFst001.cpp b/src/servers/Scripts/quest/ManFst001.cpp index 7b2cae4d..8aceb25b 100644 --- a/src/servers/Scripts/quest/ManFst001.cpp +++ b/src/servers/Scripts/quest/ManFst001.cpp @@ -12,7 +12,7 @@ using namespace Core; class ManFst001 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto SEQ_0 = 0; @@ -88,7 +88,7 @@ private: public: ManFst001() : - EventScript( 65575 ) + Sapphire::ScriptAPI::EventScript( 65575 ) { } diff --git a/src/servers/Scripts/quest/ManFst002.cpp b/src/servers/Scripts/quest/ManFst002.cpp index f8165da3..cd72400c 100644 --- a/src/servers/Scripts/quest/ManFst002.cpp +++ b/src/servers/Scripts/quest/ManFst002.cpp @@ -11,7 +11,7 @@ using namespace Core; -class ManFst002 : public EventScript +class ManFst002 : public Sapphire::ScriptAPI::EventScript { private: @@ -186,7 +186,7 @@ private: public: ManFst002() : - EventScript( 65621 ) + Sapphire::ScriptAPI::EventScript( 65621 ) { } diff --git a/src/servers/Scripts/quest/ManFst003.cpp b/src/servers/Scripts/quest/ManFst003.cpp index aa8631f1..b0c5f26e 100644 --- a/src/servers/Scripts/quest/ManFst003.cpp +++ b/src/servers/Scripts/quest/ManFst003.cpp @@ -11,7 +11,7 @@ using namespace Core; class ManFst003 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -71,7 +71,7 @@ private: public: ManFst003() : - EventScript( 65659 ) + Sapphire::ScriptAPI::EventScript( 65659 ) { }; diff --git a/src/servers/Scripts/quest/ManFst004.cpp b/src/servers/Scripts/quest/ManFst004.cpp index d6c2b44b..4231a30e 100644 --- a/src/servers/Scripts/quest/ManFst004.cpp +++ b/src/servers/Scripts/quest/ManFst004.cpp @@ -11,7 +11,7 @@ using namespace Core; class ManFst004 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -71,7 +71,7 @@ private: public: ManFst004() : - EventScript( 65660 ) + Sapphire::ScriptAPI::EventScript( 65660 ) { }; diff --git a/src/servers/Scripts/quest/ManSea001.cpp b/src/servers/Scripts/quest/ManSea001.cpp index 41d6ff89..61899a69 100644 --- a/src/servers/Scripts/quest/ManSea001.cpp +++ b/src/servers/Scripts/quest/ManSea001.cpp @@ -11,7 +11,7 @@ using namespace Core; class ManSea001 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: @@ -134,7 +134,7 @@ private: public: ManSea001() : - EventScript( 65643 ) + Sapphire::ScriptAPI::EventScript( 65643 ) { } diff --git a/src/servers/Scripts/quest/ManSea002.cpp b/src/servers/Scripts/quest/ManSea002.cpp index 2478e254..088a9153 100644 --- a/src/servers/Scripts/quest/ManSea002.cpp +++ b/src/servers/Scripts/quest/ManSea002.cpp @@ -11,7 +11,7 @@ using namespace Core; class ManSea002 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto SEQ_0 = 0; @@ -37,7 +37,7 @@ private: public: ManSea002() : - EventScript( 65644 ) + Sapphire::ScriptAPI::EventScript( 65644 ) { } diff --git a/src/servers/Scripts/quest/ManSea003.cpp b/src/servers/Scripts/quest/ManSea003.cpp index c1d3a077..e4904ba4 100644 --- a/src/servers/Scripts/quest/ManSea003.cpp +++ b/src/servers/Scripts/quest/ManSea003.cpp @@ -11,7 +11,7 @@ using namespace Core; class ManSea003 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -53,7 +53,7 @@ private: public: ManSea003() : - EventScript( 65645 ) + Sapphire::ScriptAPI::EventScript( 65645 ) { }; diff --git a/src/servers/Scripts/quest/ManWil001.cpp b/src/servers/Scripts/quest/ManWil001.cpp index b70abf12..03602e5f 100644 --- a/src/servers/Scripts/quest/ManWil001.cpp +++ b/src/servers/Scripts/quest/ManWil001.cpp @@ -11,7 +11,7 @@ using namespace Core; class ManWil001 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto SEQ_0 = 0; @@ -166,7 +166,7 @@ private: public: ManWil001() : - EventScript( 66130 ) + Sapphire::ScriptAPI::EventScript( 66130 ) { } diff --git a/src/servers/Scripts/quest/ManWil002.cpp b/src/servers/Scripts/quest/ManWil002.cpp index b58256d9..0412de3b 100644 --- a/src/servers/Scripts/quest/ManWil002.cpp +++ b/src/servers/Scripts/quest/ManWil002.cpp @@ -11,7 +11,7 @@ using namespace Core; class ManWil002 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -59,7 +59,7 @@ private: public: ManWil002() : - EventScript( 66104 ) + Sapphire::ScriptAPI::EventScript( 66104 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp index f9a46c43..c71fadce 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000233 class SubFst001 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto SEQ_0 = 0; @@ -66,7 +66,7 @@ private: public: SubFst001() : - EventScript( 65560 ) + Sapphire::ScriptAPI::EventScript( 65560 ) { } diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp index 8206de6b..481e3610 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000263 class SubFst002 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto SEQ_0 = 0; @@ -52,7 +52,7 @@ private: public: SubFst002() : - EventScript( 65561 ) + Sapphire::ScriptAPI::EventScript( 65561 ) { } diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp index 62dd4425..c019ea1f 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000315 class SubFst003 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -41,7 +41,7 @@ private: public: SubFst003() : - EventScript( 65562 ) + Sapphire::ScriptAPI::EventScript( 65562 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp index 89fcb0df..155db5ca 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000789 class SubFst004 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -45,7 +45,7 @@ private: public: SubFst004() : - EventScript( 65563 ) + Sapphire::ScriptAPI::EventScript( 65563 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp index f0a70157..641ec07e 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000629 class SubFst008 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -45,7 +45,7 @@ private: public: SubFst008() : - EventScript( 65568 ) + Sapphire::ScriptAPI::EventScript( 65568 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp index b1cb6e61..e9cee5ee 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000408 class SubFst009 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -41,7 +41,7 @@ private: public: SubFst009() : - EventScript( 65570 ) + Sapphire::ScriptAPI::EventScript( 65570 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp index 782848c1..d1339fb8 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000195 class SubFst010 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto SEQ_0 = 0; @@ -48,7 +48,7 @@ private: public: SubFst010() : - EventScript( 65537 ) + Sapphire::ScriptAPI::EventScript( 65537 ) { } diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp index 5caf16ab..e9839111 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp @@ -13,7 +13,7 @@ using namespace Core; //NEED TEST KILLCREDIT class SubFst011 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // GetQuestUI8AL @@ -38,7 +38,7 @@ private: public: SubFst011() : - EventScript( 65573 ) + Sapphire::ScriptAPI::EventScript( 65573 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp index 93b6f3b2..740da9b7 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000162 class SubFst013 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: static constexpr auto SEQ_0 = 0; @@ -154,7 +154,7 @@ private: public: SubFst013() : - EventScript( 65576 ) + Sapphire::ScriptAPI::EventScript( 65576 ) { } diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp index 45db93ad..abea218c 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000300 class SubFst014 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -45,7 +45,7 @@ private: public: SubFst014() : - EventScript( 65577 ) + Sapphire::ScriptAPI::EventScript( 65577 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp index 1c221595..a574dc7b 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000286 class SubFst015 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -43,7 +43,7 @@ private: public: SubFst015() : - EventScript( 65578 ) + Sapphire::ScriptAPI::EventScript( 65578 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp index bbccc753..3e793627 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000429 class SubFst019 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -38,7 +38,7 @@ private: public: SubFst019() : - EventScript( 65585 ) + Sapphire::ScriptAPI::EventScript( 65585 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp index 908c2ff5..6c1710ad 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp @@ -13,7 +13,7 @@ using namespace Core; //NEED TEST KILLCREDIT class SubFst026 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -40,7 +40,7 @@ private: public: SubFst026() : - EventScript( 65706 ) + Sapphire::ScriptAPI::EventScript( 65706 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp index 045ac1ba..90e5862f 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1000430 class SubFst029 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -38,7 +38,7 @@ private: static constexpr auto Seq1Actor0Npctradeok = 100; public: - SubFst029() : EventScript( 65708 ) + SubFst029() : Sapphire::ScriptAPI::EventScript( 65708 ) {}; ~SubFst029() diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp index ea27aac3..2ba2eb3b 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp @@ -12,7 +12,7 @@ using namespace Core; // End NPC: 1000632 class SubFst030 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -54,7 +54,7 @@ private: public: SubFst030() : - EventScript( 65709 ) + Sapphire::ScriptAPI::EventScript( 65709 ) { }; diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp index d120d80c..6ab413f2 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp @@ -13,7 +13,7 @@ using namespace Core; //NEED TEST KILLCREDIT class SubFst041 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -46,7 +46,7 @@ private: public: SubFst041() : - EventScript( 65733 ) + Sapphire::ScriptAPI::EventScript( 65733 ) { }; diff --git a/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp b/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp index a35c5967..1c947ed9 100644 --- a/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp +++ b/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp @@ -12,7 +12,7 @@ using namespace Core; // End NPC: 1003604 class SubSea001 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -54,7 +54,7 @@ private: public: SubSea001() : - EventScript( 65647 ) + Sapphire::ScriptAPI::EventScript( 65647 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp index 4b5e3c35..760db8ac 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1002278 class SubWil000 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -37,7 +37,7 @@ private: public: SubWil000() : - EventScript( 65685 ) + Sapphire::ScriptAPI::EventScript( 65685 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp index 2a461cb2..fdd6ef2f 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001288 class SubWil001 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -38,7 +38,7 @@ private: public: SubWil001() : - EventScript( 65686 ) + Sapphire::ScriptAPI::EventScript( 65686 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp index 3087c84f..20f65c02 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001289 class SubWil002 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -42,7 +42,7 @@ private: public: SubWil002() : - EventScript( 65687 ) + Sapphire::ScriptAPI::EventScript( 65687 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp index 4b558331..6d857111 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1003896 class SubWil004 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -47,7 +47,7 @@ private: public: SubWil004() : - EventScript( 65689 ) + Sapphire::ScriptAPI::EventScript( 65689 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp index e1a11261..0cf698ea 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001299 class SubWil006 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -40,7 +40,7 @@ private: public: SubWil006() : - EventScript( 65701 ) + Sapphire::ScriptAPI::EventScript( 65701 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp index 0a873bf9..9d2f2200 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp @@ -12,7 +12,7 @@ using namespace Core; // End NPC: 1007621 class SubWil007 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -44,7 +44,7 @@ private: public: SubWil007() : - EventScript( 65703 ) + Sapphire::ScriptAPI::EventScript( 65703 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp index e2e78206..097320d5 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001675 class SubWil018 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -44,7 +44,7 @@ private: public: SubWil018() : - EventScript( 65932 ) + Sapphire::ScriptAPI::EventScript( 65932 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp index 4754adce..550d359f 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001691 class SubWil019 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -37,7 +37,7 @@ private: public: SubWil019() : - EventScript( 65928 ) + Sapphire::ScriptAPI::EventScript( 65928 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp index f4947d51..0920de6a 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001657 class SubWil021 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -41,7 +41,7 @@ private: public: SubWil021() : - EventScript( 65930 ) + Sapphire::ScriptAPI::EventScript( 65930 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp index ced80b96..1d090eb0 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001679 class SubWil022 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -41,7 +41,7 @@ private: public: SubWil022() : - EventScript( 65931 ) + Sapphire::ScriptAPI::EventScript( 65931 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp index d79f36af..11097fc0 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1003995 class SubWil027 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -35,7 +35,7 @@ private: public: SubWil027() : - EventScript( 66131 ) + Sapphire::ScriptAPI::EventScript( 66131 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp index 7215484e..1fcef78e 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001497 class SubWil028 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -37,7 +37,7 @@ private: public: SubWil028() : - EventScript( 65925 ) + Sapphire::ScriptAPI::EventScript( 65925 ) { }; diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp index 778d645d..eddeabad 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp @@ -11,7 +11,7 @@ using namespace Core; // End NPC: 1001992 class SubWil029 : - public EventScript + public Sapphire::ScriptAPI::EventScript { private: // Basic quest information @@ -40,7 +40,7 @@ private: public: SubWil029() : - EventScript( 65926 ) + Sapphire::ScriptAPI::EventScript( 65926 ) { }; diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp index 7cc06012..e4dc2e7e 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp @@ -13,167 +13,171 @@ using namespace Core; -ScriptObject::ScriptObject( uint32_t id, std::size_t type ) : - m_id( id ), - m_type( type ) -{ -} - -uint32_t ScriptObject::getId() const -{ - return m_id; -} - -std::size_t ScriptObject::getType() const -{ - return m_type; -} - -void ScriptObject::setFramework( Core::Framework* fw ) -{ - assert( fw ); - m_framework = fw; -} - -Core::Framework* ScriptObject::getFramework() const -{ - return m_framework; -} - -/////////////////////////////////////////////////////////////////// - -StatusEffectScript::StatusEffectScript( uint32_t effectId ) : - ScriptObject( effectId, typeid( StatusEffectScript ).hash_code() ) -{ -} - -void StatusEffectScript::onTick( Entity::Chara& actor ) -{ -} - -void StatusEffectScript::onApply( Entity::Chara& actor ) -{ -} - -void StatusEffectScript::onRemove( Entity::Chara& actor ) -{ -} - -void StatusEffectScript::onExpire( Entity::Chara& actor ) -{ -} - -void StatusEffectScript::onPlayerCollision( Entity::Chara& actor, Entity::Chara& actorHit ) -{ -} - -void StatusEffectScript::onPlayerFinishCast( Entity::Chara& actor ) -{ -} - -void StatusEffectScript::onPlayerDamaged( Entity::Chara& actor ) -{ -} - -void StatusEffectScript::onPlayerDeath( Entity::Chara& actor ) -{ -} - -/////////////////////////////////////////////////////////////////// - -ActionScript::ActionScript( uint32_t abilityId ) : - ScriptObject( abilityId, typeid( ActionScript ).hash_code() ) -{ -} - -void ActionScript::onStart( Entity::Chara& sourceActor, Entity::Chara& targetActor ) -{ -} - -void ActionScript::onCastFinish( Entity::Player& player, Entity::Chara& targetActor ) -{ -} - -void ActionScript::onInterrupt( Entity::Chara& sourceActor/*, Core::Entity::Chara targetActor*/ ) -{ -} - -/////////////////////////////////////////////////////////////////// - -EventScript::EventScript( uint32_t questId ) : - ScriptObject( questId, typeid( EventScript ).hash_code() ) -{ -} - -void EventScript::onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) -{ -} - -void EventScript::onNpcKill( uint32_t npcId, Entity::Player& player ) -{ -} - -void EventScript::onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Entity::Player& player ) -{ -} - -void EventScript::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) -{ -} - -void EventScript::onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) -{ -} - -void EventScript::onOutsideRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) -{ -} - -void - EventScript::onEventItem( Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ) -{ -} - -void EventScript::onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, - uint32_t catalogId ) -{ -} - -/////////////////////////////////////////////////////////////////// - -BattleNpcScript::BattleNpcScript( uint32_t npcId ) : - ScriptObject( npcId, typeid( BattleNpcScript ).hash_code() ) -{ -} - -/////////////////////////////////////////////////////////////////// - -ZoneScript::ZoneScript( uint32_t zoneId ) : - ScriptObject( zoneId, typeid( ZoneScript ).hash_code() ) -{ -} - -void ZoneScript::onZoneInit() -{ -} - -/////////////////////////////////////////////////////////////////// - -InstanceContentScript::InstanceContentScript( uint32_t instanceContentId ) : - ScriptObject( uint32_t{ 0x8003 } << 16 | instanceContentId, typeid( InstanceContentScript ).hash_code() ) -{ -} - -void InstanceContentScript::onInit( InstanceContentPtr instance ) -{ -} - -void InstanceContentScript::onUpdate( InstanceContentPtr instance, uint32_t currTime ) -{ -} - -void InstanceContentScript::onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1, - uint16_t param2 ) +namespace Sapphire::ScriptAPI { + ScriptObject::ScriptObject( uint32_t id, std::size_t type ) : + m_id( id ), + m_type( type ) + { + } + + uint32_t ScriptObject::getId() const + { + return m_id; + } + + std::size_t ScriptObject::getType() const + { + return m_type; + } + + void ScriptObject::setFramework( Core::Framework* fw ) + { + assert( fw ); + m_framework = fw; + } + + Core::Framework* ScriptObject::getFramework() const + { + return m_framework; + } + + /////////////////////////////////////////////////////////////////// + + StatusEffectScript::StatusEffectScript( uint32_t effectId ) : + ScriptObject( effectId, typeid( StatusEffectScript ).hash_code() ) + { + } + + void StatusEffectScript::onTick( Entity::Chara& actor ) + { + } + + void StatusEffectScript::onApply( Entity::Chara& actor ) + { + } + + void StatusEffectScript::onRemove( Entity::Chara& actor ) + { + } + + void StatusEffectScript::onExpire( Entity::Chara& actor ) + { + } + + void StatusEffectScript::onPlayerCollision( Entity::Chara& actor, Entity::Chara& actorHit ) + { + } + + void StatusEffectScript::onPlayerFinishCast( Entity::Chara& actor ) + { + } + + void StatusEffectScript::onPlayerDamaged( Entity::Chara& actor ) + { + } + + void StatusEffectScript::onPlayerDeath( Entity::Chara& actor ) + { + } + + /////////////////////////////////////////////////////////////////// + + ActionScript::ActionScript( uint32_t abilityId ) : + ScriptObject( abilityId, typeid( ActionScript ).hash_code() ) + { + } + + void ActionScript::onStart( Entity::Chara& sourceActor, Entity::Chara& targetActor ) + { + } + + void ActionScript::onCastFinish( Entity::Player& player, Entity::Chara& targetActor ) + { + } + + void ActionScript::onInterrupt( Entity::Chara& sourceActor/*, Core::Entity::Chara targetActor*/ ) + { + } + + /////////////////////////////////////////////////////////////////// + + EventScript::EventScript( uint32_t questId ) : + ScriptObject( questId, typeid( EventScript ).hash_code() ) + { + } + + void EventScript::onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) + { + } + + void EventScript::onNpcKill( uint32_t npcId, Entity::Player& player ) + { + } + + void EventScript::onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Entity::Player& player ) + { + } + + void EventScript::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) + { + } + + void EventScript::onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) + { + } + + void EventScript::onOutsideRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) + { + } + + void + EventScript::onEventItem( Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ) + { + } + + void EventScript::onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, + uint32_t catalogId ) + { + } + + /////////////////////////////////////////////////////////////////// + + BattleNpcScript::BattleNpcScript( uint32_t npcId ) : + ScriptObject( npcId, typeid( BattleNpcScript ).hash_code() ) + { + } + + /////////////////////////////////////////////////////////////////// + + ZoneScript::ZoneScript( uint32_t zoneId ) : + ScriptObject( zoneId, typeid( ZoneScript ).hash_code() ) + { + } + + void ZoneScript::onZoneInit() + { + } + + /////////////////////////////////////////////////////////////////// + + InstanceContentScript::InstanceContentScript( uint32_t instanceContentId ) : + ScriptObject( uint32_t{ 0x8003 } << 16 | instanceContentId, typeid( InstanceContentScript ).hash_code() ) + { + } + + void InstanceContentScript::onInit( InstanceContentPtr instance ) + { + } + + void InstanceContentScript::onUpdate( InstanceContentPtr instance, uint32_t currTime ) + { + } + + void InstanceContentScript::onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1, + uint16_t param2 ) + { + } + } diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.h b/src/servers/sapphire_zone/Script/NativeScriptApi.h index f5701a07..566422dc 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.h +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.h @@ -20,206 +20,210 @@ namespace Core class Framework; } -/*! - * @brief The base class that any script should inherit from and set the type param accordingly - */ -class ScriptObject +namespace Sapphire::ScriptAPI { -protected: - uint32_t m_id; - std::size_t m_type; - - Core::Framework* m_framework; - -public: /*! - * @param id an ID which uniquely identifies this script in relation to it's type - * @param type The RTTI hash code of the implementing type to uniquely identify it - */ - ScriptObject( uint32_t id, std::size_t type ); - - /*! - * @brief Gets the ID set for this script - * - * @return The allocated ID of the script set during object construction - */ - virtual uint32_t getId() const; - - /*! - * @brief Gets the unique identifier (hash_code) of the script - * - * @return The hash_code of the script - */ - virtual std::size_t getType() const; - - /*! - * @brief Sets the ptr to the framework for use inside scripts - * - * @param fw The ptr to g_fw (Core::Framework) - */ - virtual void setFramework( Core::Framework* fw ); - - /*! - * @brief Returns the current ptr to framework set for the current script - * - * @return A pointer to Core::Framework - */ - virtual Core::Framework* getFramework() const; -}; - - -/*! - * @brief The base class for any scripts that implement behaviour related to status effects. - */ -class StatusEffectScript : public ScriptObject -{ -public: - explicit StatusEffectScript( uint32_t effectId ); - - /*! - * @brief Called on each tick that a status effect is active on an actor - * - * @param actor the actor the status effect is ticking on - */ - virtual void onTick( Core::Entity::Chara& actor ); - - /*! - * @brief Called when the status effect is applied to an actor - * - * @param actor the actor on which the status effect was applied to - */ - virtual void onApply( Core::Entity::Chara& actor ); - - /*! - * @brief Called when the actor (usually a player) removes the status effect by right clicking it - * - * @param actor The actor on which the effect was removed from - */ - virtual void onRemove( Core::Entity::Chara& actor ); - - /*! - * @brief Called when the status effect expires - * - * @param actor The actor on which the efect expired on - */ - virtual void onExpire( Core::Entity::Chara& actor ); - - /*! - * @brief Called when the player with the status effect collides with another player, eg. hot potato - * - * @param actor The actor which has status effect - * @param actorHit The actor who collided with the status effect owner - */ - virtual void onPlayerCollision( Core::Entity::Chara& actor, Core::Entity::Chara& actorHit ); - - /*! - * @brief Called when the owner finishes a cast - * - * @param actor The actor who finished a cast - */ - virtual void onPlayerFinishCast( Core::Entity::Chara& actor ); - - /*! - * @brief Called when the status effect owner was damaged - * - * @param actor The actor that was damaged - */ - virtual void onPlayerDamaged( Core::Entity::Chara& actor ); - - /*! - * @brief Called when the status effect owner dies - * - * @param actor The actor that died - */ - virtual void onPlayerDeath( Core::Entity::Chara& actor ); -}; - - -/*! - * @brief The base class for any scripts that implement behaviour related to actions - */ -class ActionScript : public ScriptObject -{ -public: - explicit ActionScript( uint32_t abilityId ); - - virtual void onStart( Core::Entity::Chara& sourceActor, Core::Entity::Chara& targetActor ); - - virtual void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ); - - virtual void onInterrupt( Core::Entity::Chara& sourceActor/*, Core::Entity::Chara targetActor*/ ); -}; - -/*! - * @brief The base class for any scripts that implement behaviour related to the event system. - * This includes but is not limited to: NPCs, shops, some world objects - */ -class EventScript : public ScriptObject -{ -protected: - template< typename Ret, class Obj > - inline std::function< void( Core::Entity::Player& ) > bindScene( Ret ( Obj::*f )( Core::Entity::Player& ) ) + * @brief The base class that any script should inherit from and set the type param accordingly + */ + class ScriptObject { - return std::bind( f, static_cast< Obj* >( this ), std::placeholders::_1 ); - } + protected: + uint32_t m_id; + std::size_t m_type; -public: - explicit EventScript( uint32_t questId ); + Core::Framework* m_framework; - virtual void onTalk( uint32_t eventId, Core::Entity::Player& player, uint64_t actorId ); + public: + /*! + * @param id an ID which uniquely identifies this script in relation to it's type + * @param type The RTTI hash code of the implementing type to uniquely identify it + */ + ScriptObject( uint32_t id, std::size_t type ); - virtual void onNpcKill( uint32_t npcId, Core::Entity::Player& player ); + /*! + * @brief Gets the ID set for this script + * + * @return The allocated ID of the script set during object construction + */ + virtual uint32_t getId() const; - virtual void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Core::Entity::Player& player ); + /*! + * @brief Gets the unique identifier (hash_code) of the script + * + * @return The hash_code of the script + */ + virtual std::size_t getType() const; - virtual void onEnterTerritory( Core::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); + /*! + * @brief Sets the ptr to the framework for use inside scripts + * + * @param fw The ptr to g_fw (Core::Framework) + */ + virtual void setFramework( Core::Framework* fw ); - virtual void onWithinRange( Core::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); - - virtual void onOutsideRange( Core::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); - - virtual void - onEventItem( Core::Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ); - - virtual void onEventHandlerTradeReturn( Core::Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, - uint32_t catalogId ); -}; + /*! + * @brief Returns the current ptr to framework set for the current script + * + * @return A pointer to Core::Framework + */ + virtual Core::Framework* getFramework() const; + }; -/*! - * @brief The base class for any scripts that implement behaviour related to BattleNPCs - */ -class BattleNpcScript : public ScriptObject -{ -public: - explicit BattleNpcScript( uint32_t npcId ); -}; + /*! + * @brief The base class for any scripts that implement behaviour related to status effects. + */ + class StatusEffectScript : public ScriptObject + { + public: + explicit StatusEffectScript( uint32_t effectId ); -/*! - * @brief The base class for any scripts that implement behaviour related to zones - */ -class ZoneScript : public ScriptObject -{ -public: - explicit ZoneScript( uint32_t zoneId ); + /*! + * @brief Called on each tick that a status effect is active on an actor + * + * @param actor the actor the status effect is ticking on + */ + virtual void onTick( Core::Entity::Chara& actor ); - virtual void onZoneInit(); -}; + /*! + * @brief Called when the status effect is applied to an actor + * + * @param actor the actor on which the status effect was applied to + */ + virtual void onApply( Core::Entity::Chara& actor ); -/*! - * @brief The base class for any scripts that implement behaviour related to instance content zones - */ -class InstanceContentScript : public ScriptObject -{ -public: - explicit InstanceContentScript( uint32_t instanceContentId ); + /*! + * @brief Called when the actor (usually a player) removes the status effect by right clicking it + * + * @param actor The actor on which the effect was removed from + */ + virtual void onRemove( Core::Entity::Chara& actor ); - virtual void onInit( Core::InstanceContentPtr instance ); + /*! + * @brief Called when the status effect expires + * + * @param actor The actor on which the efect expired on + */ + virtual void onExpire( Core::Entity::Chara& actor ); - virtual void onUpdate( Core::InstanceContentPtr instance, uint32_t currTime ); + /*! + * @brief Called when the player with the status effect collides with another player, eg. hot potato + * + * @param actor The actor which has status effect + * @param actorHit The actor who collided with the status effect owner + */ + virtual void onPlayerCollision( Core::Entity::Chara& actor, Core::Entity::Chara& actorHit ); - virtual void onEnterTerritory( Core::InstanceContentPtr instance, Core::Entity::Player& player, uint32_t eventId, - uint16_t param1, uint16_t param2 ); -}; + /*! + * @brief Called when the owner finishes a cast + * + * @param actor The actor who finished a cast + */ + virtual void onPlayerFinishCast( Core::Entity::Chara& actor ); + + /*! + * @brief Called when the status effect owner was damaged + * + * @param actor The actor that was damaged + */ + virtual void onPlayerDamaged( Core::Entity::Chara& actor ); + + /*! + * @brief Called when the status effect owner dies + * + * @param actor The actor that died + */ + virtual void onPlayerDeath( Core::Entity::Chara& actor ); + }; + + + /*! + * @brief The base class for any scripts that implement behaviour related to actions + */ + class ActionScript : public ScriptObject + { + public: + explicit ActionScript( uint32_t abilityId ); + + virtual void onStart( Core::Entity::Chara& sourceActor, Core::Entity::Chara& targetActor ); + + virtual void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ); + + virtual void onInterrupt( Core::Entity::Chara& sourceActor/*, Core::Entity::Chara targetActor*/ ); + }; + + /*! + * @brief The base class for any scripts that implement behaviour related to the event system. + * This includes but is not limited to: NPCs, shops, some world objects + */ + class EventScript : public ScriptObject + { + protected: + template< typename Ret, class Obj > + inline std::function< void( Core::Entity::Player& ) > bindScene( Ret ( Obj::*f )( Core::Entity::Player& ) ) + { + return std::bind( f, static_cast< Obj* >( this ), std::placeholders::_1 ); + } + + public: + explicit EventScript( uint32_t questId ); + + virtual void onTalk( uint32_t eventId, Core::Entity::Player& player, uint64_t actorId ); + + virtual void onNpcKill( uint32_t npcId, Core::Entity::Player& player ); + + virtual void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Core::Entity::Player& player ); + + virtual void onEnterTerritory( Core::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); + + virtual void onWithinRange( Core::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); + + virtual void onOutsideRange( Core::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); + + virtual void + onEventItem( Core::Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ); + + virtual void onEventHandlerTradeReturn( Core::Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, + uint32_t catalogId ); + }; + + + /*! + * @brief The base class for any scripts that implement behaviour related to BattleNPCs + */ + class BattleNpcScript : public ScriptObject + { + public: + explicit BattleNpcScript( uint32_t npcId ); + }; + + /*! + * @brief The base class for any scripts that implement behaviour related to zones + */ + class ZoneScript : public ScriptObject + { + public: + explicit ZoneScript( uint32_t zoneId ); + + virtual void onZoneInit(); + }; + + /*! + * @brief The base class for any scripts that implement behaviour related to instance content zones + */ + class InstanceContentScript : public ScriptObject + { + public: + explicit InstanceContentScript( uint32_t instanceContentId ); + + virtual void onInit( Core::InstanceContentPtr instance ); + + virtual void onUpdate( Core::InstanceContentPtr instance, uint32_t currTime ); + + virtual void onEnterTerritory( Core::InstanceContentPtr instance, Core::Entity::Player& player, uint32_t eventId, + uint16_t param1, uint16_t param2 ); + }; + +} #endif diff --git a/src/servers/sapphire_zone/Script/NativeScriptMgr.h b/src/servers/sapphire_zone/Script/NativeScriptMgr.h index d3294e54..5d326cef 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptMgr.h +++ b/src/servers/sapphire_zone/Script/NativeScriptMgr.h @@ -19,7 +19,7 @@ namespace Core::Scripting /*! * @brief An internal list that maps script types to another list containing scripts indexed by their assoicated id */ - std::unordered_map< std::size_t, std::unordered_map< uint32_t, ScriptObject* > > m_scripts; + std::unordered_map< std::size_t, std::unordered_map< uint32_t, Sapphire::ScriptAPI::ScriptObject* > > m_scripts; ScriptLoader m_loader; diff --git a/src/servers/sapphire_zone/Script/ScriptInfo.h b/src/servers/sapphire_zone/Script/ScriptInfo.h index 058860ee..2632c762 100644 --- a/src/servers/sapphire_zone/Script/ScriptInfo.h +++ b/src/servers/sapphire_zone/Script/ScriptInfo.h @@ -60,7 +60,7 @@ namespace Core::Scripting * * This is tracked so when we unload this module we can call delete on each ScriptObject and correctly free it from memory. */ - std::vector< ScriptObject* > scripts; + std::vector< Sapphire::ScriptAPI::ScriptObject* > scripts; }; } diff --git a/src/servers/sapphire_zone/Script/ScriptLoader.cpp b/src/servers/sapphire_zone/Script/ScriptLoader.cpp index 46ee4ca5..657ffff9 100644 --- a/src/servers/sapphire_zone/Script/ScriptLoader.cpp +++ b/src/servers/sapphire_zone/Script/ScriptLoader.cpp @@ -101,9 +101,9 @@ Core::Scripting::ScriptInfo* Core::Scripting::ScriptLoader::loadModule( const st return info; } -ScriptObject** Core::Scripting::ScriptLoader::getScripts( ModuleHandle handle ) +Sapphire::ScriptAPI::ScriptObject** Core::Scripting::ScriptLoader::getScripts( ModuleHandle handle ) { - using getScripts = ScriptObject** ( * )(); + using getScripts = Sapphire::ScriptAPI::ScriptObject** ( * )(); auto pLog = g_fw.get< Logger >(); #ifdef _WIN32 diff --git a/src/servers/sapphire_zone/Script/ScriptLoader.h b/src/servers/sapphire_zone/Script/ScriptLoader.h index 11d399c4..403556c8 100644 --- a/src/servers/sapphire_zone/Script/ScriptLoader.h +++ b/src/servers/sapphire_zone/Script/ScriptLoader.h @@ -86,7 +86,7 @@ namespace Core::Scripting * @param handle The handle to the module * @return An array of unknown size ending with nullptr if success, nullptr if not */ - ScriptObject** getScripts( ModuleHandle handle ); + Sapphire::ScriptAPI::ScriptObject** getScripts( ModuleHandle handle ); /*! * @brief Checks to see if a module with the specified name exists diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index cbd8cada..8cb15069 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -187,7 +187,7 @@ bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorI scriptId = 0x00040001; } - auto script = m_nativeScriptMgr->getScript< EventScript >( scriptId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( scriptId ); if( !script ) return false; script->onTalk( eventId, player, actorId ); @@ -197,7 +197,7 @@ bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorI bool Core::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { - auto script = m_nativeScriptMgr->getScript< EventScript >( eventId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) return false; script->onEnterTerritory( player, eventId, param1, param2 ); @@ -207,7 +207,7 @@ bool Core::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint3 bool Core::Scripting::ScriptMgr::onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) { - auto script = m_nativeScriptMgr->getScript< EventScript >( eventId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) return false; script->onWithinRange( player, eventId, param1, x, y, z ); @@ -217,7 +217,7 @@ bool Core::Scripting::ScriptMgr::onWithinRange( Entity::Player& player, uint32_t bool Core::Scripting::ScriptMgr::onOutsideRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) { - auto script = m_nativeScriptMgr->getScript< EventScript >( eventId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) return false; script->onOutsideRange( player, eventId, param1, x, y, z ); @@ -227,7 +227,7 @@ bool Core::Scripting::ScriptMgr::onOutsideRange( Entity::Player& player, uint32_ bool Core::Scripting::ScriptMgr::onEmote( Entity::Player& player, uint64_t actorId, uint32_t eventId, uint8_t emoteId ) { - auto script = m_nativeScriptMgr->getScript< EventScript >( eventId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) return false; script->onEmote( actorId, eventId, emoteId, player ); @@ -245,7 +245,7 @@ bool Core::Scripting::ScriptMgr::onEventHandlerReturn( Entity::Player& player, u bool Core::Scripting::ScriptMgr::onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, uint32_t catalogId ) { - auto script = m_nativeScriptMgr->getScript< EventScript >( eventId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( script ) { script->onEventHandlerTradeReturn( player, eventId, subEvent, param, catalogId ); @@ -262,7 +262,7 @@ bool Core::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32_t e std::string objName = Event::getEventName( eventId ); player.sendDebug( "Calling: " + objName + "." + eventName + " - " + std::to_string( eventId ) ); - auto script = m_nativeScriptMgr->getScript< EventScript >( eventId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( script ) { player.eventStart( targetId, eventId, Event::EventHandler::Item, 0, 0 ); @@ -288,7 +288,7 @@ bool Core::Scripting::ScriptMgr::onMobKill( Entity::Player& player, uint16_t nam uint16_t questId = activeQuests->c.questId; - auto script = m_nativeScriptMgr->getScript< EventScript >( questId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( questId ); if( script ) { std::string objName = Event::getEventName( 0x00010000 | questId ); @@ -304,7 +304,7 @@ bool Core::Scripting::ScriptMgr::onMobKill( Entity::Player& player, uint16_t nam bool Core::Scripting::ScriptMgr::onCastFinish( Entity::Player& player, Entity::CharaPtr pTarget, uint32_t actionId ) { - auto script = m_nativeScriptMgr->getScript< ActionScript >( actionId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::ActionScript >( actionId ); if( script ) script->onCastFinish( player, *pTarget ); @@ -313,7 +313,7 @@ bool Core::Scripting::ScriptMgr::onCastFinish( Entity::Player& player, Entity::C bool Core::Scripting::ScriptMgr::onStatusReceive( Entity::CharaPtr pActor, uint32_t effectId ) { - auto script = m_nativeScriptMgr->getScript< StatusEffectScript >( effectId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::StatusEffectScript >( effectId ); if( script ) { @@ -329,7 +329,7 @@ bool Core::Scripting::ScriptMgr::onStatusReceive( Entity::CharaPtr pActor, uint3 bool Core::Scripting::ScriptMgr::onStatusTick( Entity::CharaPtr pChara, Core::StatusEffect::StatusEffect& effect ) { - auto script = m_nativeScriptMgr->getScript< StatusEffectScript >( effect.getId() ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::StatusEffectScript >( effect.getId() ); if( script ) { if( pChara->isPlayer() ) @@ -344,7 +344,7 @@ bool Core::Scripting::ScriptMgr::onStatusTick( Entity::CharaPtr pChara, Core::St bool Core::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, uint32_t effectId ) { - auto script = m_nativeScriptMgr->getScript< StatusEffectScript >( effectId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::StatusEffectScript >( effectId ); if( script ) { if( pChara->isPlayer() ) @@ -359,7 +359,7 @@ bool Core::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, uint3 bool Core::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone ) { - auto script = m_nativeScriptMgr->getScript< ZoneScript >( pZone->getTerritoryTypeId() ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::ZoneScript >( pZone->getTerritoryTypeId() ); if( script ) { script->onZoneInit(); @@ -371,7 +371,7 @@ bool Core::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone ) bool Core::Scripting::ScriptMgr::onInstanceInit( InstanceContentPtr instance ) { - auto script = m_nativeScriptMgr->getScript< InstanceContentScript >( instance->getDirectorId() ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); if( script ) { script->onInit( instance ); @@ -383,7 +383,7 @@ bool Core::Scripting::ScriptMgr::onInstanceInit( InstanceContentPtr instance ) bool Core::Scripting::ScriptMgr::onInstanceUpdate( InstanceContentPtr instance, uint32_t currTime ) { - auto script = m_nativeScriptMgr->getScript< InstanceContentScript >( instance->getDirectorId() ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); if( script ) { @@ -397,7 +397,7 @@ bool Core::Scripting::ScriptMgr::onInstanceUpdate( InstanceContentPtr instance, bool Core::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { - auto script = m_nativeScriptMgr->getScript< InstanceContentScript >( instance->getDirectorId() ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); if( script ) { script->onEnterTerritory( instance, player, eventId, param1, param2 ); From a8040d9236c036684ac849284e34f0f435dfb458 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 13 Nov 2018 19:48:22 +0100 Subject: [PATCH 055/385] Added land type storage / loading / usage --- sql/update_land.sql | 1 + src/common/Common.h | 7 ++++ .../Network/Handlers/ClientTriggerHandler.cpp | 4 +-- .../sapphire_zone/Zone/HousingZone.cpp | 1 + src/servers/sapphire_zone/Zone/Land.cpp | 36 +++++++++++++------ src/servers/sapphire_zone/Zone/Land.h | 21 ++++++----- 6 files changed, 48 insertions(+), 22 deletions(-) create mode 100644 sql/update_land.sql diff --git a/sql/update_land.sql b/sql/update_land.sql new file mode 100644 index 00000000..9827b1c5 --- /dev/null +++ b/sql/update_land.sql @@ -0,0 +1 @@ +ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`; \ No newline at end of file diff --git a/src/common/Common.h b/src/common/Common.h index cc4fedf1..602ea356 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -781,6 +781,13 @@ namespace Core::Common SharedHouse2 }; + enum class LandType : uint8_t + { + none = 0, + FreeCompany = 1, + Private = 2, + }; + struct LandPermissionSet { int16_t landId; //00 diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 5ec751c4..40943d99 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -379,8 +379,8 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( playerId ); //memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 ); //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); - //landInfoSignPacket->data().houseSize = land->getPlotSize(); - landInfoSignPacket->data().houseType = 2; // we really need to save this in the plot + landInfoSignPacket->data().houseSize = land->getPlotSize(); + landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() ); landInfoSignPacket->data().landId = land->getLandId(); landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 8f45e1a5..a0ed7e93 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -190,6 +190,7 @@ Core::LandPurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, player.removeCurrency( CurrencyType::Gil, plotPrice ); pLand->setPlayerOwner( player.getId() ); pLand->setState( HouseState::sold ); + pLand->setLandType( Common::LandType::Private ); player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.sendLandPermissions(); diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 0d5bb7b3..54e90c8a 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -35,7 +35,8 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_nextDrop( static_cast< uint32_t >( Util::getTimeSeconds() ) + 21600 ), m_ownerPlayerId( 0 ), m_landSetId( landSetId ), - m_landInfo( info ) + m_landInfo( info ), + m_type( Common::LandType::Private ) { memset( &m_land, 0x00, sizeof( LandStruct ) ); memset( &m_tag, 0x00, 3 ); @@ -57,8 +58,9 @@ void Core::Land::load() "AND LandId = " + std::to_string( m_landId ) ); if( !res->next() ) { - pDb->directExecute( "INSERT INTO land ( landsetid, landid, size, status, landprice ) " + pDb->directExecute( "INSERT INTO land ( landsetid, landid, type, size, status, landprice ) " "VALUES ( " + std::to_string( m_landSetId ) + "," + std::to_string( m_landId ) + "," + + std::to_string( static_cast< uint8_t >( m_type ) ) + "," + std::to_string( m_landInfo->sizes[ m_landId ] ) + "," + " 1, " + std::to_string( m_landInfo->prices[ m_landId ] ) + " );" ); @@ -69,6 +71,7 @@ void Core::Land::load() } else { + m_type = static_cast< Common::LandType >( res->getUInt( "Type" ) ); m_land.plotSize = res->getUInt( "Size" ); m_land.houseState = res->getUInt( "Status" ); m_currentPrice = res->getUInt( "LandPrice" ); @@ -161,51 +164,61 @@ void Core::Land::setLandName( const std::string& name ) memcpy( &m_landName, name.c_str(), 20 ); } -uint8_t Core::Land::getPlotSize() +void Core::Land::setLandType( Common::LandType type ) +{ + m_type = type; +} + +uint8_t Core::Land::getPlotSize() const { return m_land.plotSize; } -uint8_t Core::Land::getState() +uint8_t Core::Land::getState() const { return m_land.houseState; } -uint8_t Core::Land::getOwnership() +uint8_t Core::Land::getOwnership() const { return m_land.iconColor; } -uint8_t Core::Land::getSharing() +uint8_t Core::Land::getSharing() const { return m_land.iconAddIcon; } -uint32_t Core::Land::getLandSetId() +uint32_t Core::Land::getLandSetId() const { return m_landSetId; } -uint8_t Core::Land::getWardNum() +uint8_t Core::Land::getWardNum() const { return m_wardNum; } -uint8_t Core::Land::getLandId() +uint8_t Core::Land::getLandId() const { return m_landId; } -uint16_t Core::Land::getZoneId() +uint16_t Core::Land::getZoneId() const { return m_zoneId; } -std::string Core::Land::getLandName() +std::string Core::Land::getLandName() const { return std::string( m_landName ); } +Core::Common::LandType Core::Land::getLandType() const +{ + return m_type; +} + //Free Comapny void Core::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) { @@ -314,6 +327,7 @@ void Core::Land::UpdateLandDb() + ", UpdateTime = " + std::to_string( getDevaluationTime() ) + ", OwnerId = " + std::to_string( getPlayerOwner() ) + ", HouseId = " + std::to_string( 0 ) //TODO: add house id + + ", Type = " + std::to_string( static_cast< uint32_t >( m_type ) ) //TODO: add house id + " WHERE LandSetId = " + std::to_string( m_landSetId ) + " AND LandId = " + std::to_string( m_landId ) + ";" ); } diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index cc7c3825..f8e64a49 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -26,17 +26,19 @@ namespace Core void setOwnership( uint8_t state ); void setSharing( uint8_t state ); void setLandName( const std::string& name ); + void setLandType( Common::LandType type ); //Gerneral - uint8_t getPlotSize(); - uint8_t getState(); - uint8_t getOwnership(); - uint8_t getSharing(); - uint32_t getLandSetId(); - uint8_t getWardNum(); - uint8_t getLandId(); - uint16_t getZoneId(); - std::string getLandName(); + uint8_t getPlotSize() const; + uint8_t getState() const; + uint8_t getOwnership() const; + uint8_t getSharing() const; + uint32_t getLandSetId() const; + uint8_t getWardNum() const; + uint8_t getLandId() const; + uint16_t getZoneId() const; + std::string getLandName() const; + Common::LandType getLandType() const; //Free Comapny void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ); @@ -79,6 +81,7 @@ namespace Core uint32_t m_landSetId; uint16_t m_zoneId; Common::LandStruct m_land; + Common::LandType m_type; uint32_t m_ownerPlayerId; Core::Data::HousingLandSetPtr m_landInfo; From 361b0b463bf09ab2f2bea079a6a24ffdd04ef1b8 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 13 Nov 2018 23:46:10 +0100 Subject: [PATCH 056/385] Started moveing more housing code into HousingMgr --- src/common/Network/CommonActorControl.h | 552 +++++++++--------- .../Network/Handlers/ClientTriggerHandler.cpp | 70 +-- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 61 ++ src/servers/sapphire_zone/Zone/HousingMgr.h | 3 + 4 files changed, 349 insertions(+), 337 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index e9817c9b..da2f6a20 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -10,310 +10,306 @@ // The following enumerations are structures to require their type be included. // They are also defined within the Core::Common namespace to avoid collisions. // +--------------------------------------------------------------------------- -namespace Core { -namespace Network { -namespace ActorControl { - -enum ActorControlType : - uint16_t +namespace Core::Network::ActorControl { - /*! Toggles weapon status -> Sheathed/UnSheathed - \param param1 status 0|1 */ - ToggleWeapon = 0x00, - /*! Toggles Autoattack status on/off - \param param1 status 0|1 */ - AutoAttack = 0x01, - SetStatus = 0x02, - CastStart = 0x03, - ToggleAggro = 0x04, - ClassJobChange = 0x05, - DefeatMsg = 0x06, - GainExpMsg = 0x07, - LevelUpEffect = 0x0A, - - ExpChainMsg = 0x0C, - HpSetStat = 0x0D, - DeathAnimation = 0x0E, - CastInterrupt = 0x0F, - - ActionStart = 0x11, - - StatusEffectGain = 0x14, - StatusEffectLose = 0x15, - - HPFloatingText = 0x17, - UpdateRestedExp = 0x018, - Unk2 = 0x19, - - Flee = 0x1B, - - Unk3 = 0x20, // Animation related? - - CombatIndicationShow = 0x22, - - SpawnEffect = 0x25, - ToggleInvisible = 0x26, - - ToggleActionUnlock = 0x29, - - UpdateUiExp = 0x2B, - DmgTakenMsg = 0x2D, - - SetTarget = 0x32, - ToggleNameHidden = 0x36, - - LimitbreakStart = 0x47, - LimitbreakPartyStart = 0x48, - BubbleText = 0x49, - - DamageEffect = 0x50, - RaiseAnimation = 0x51, - TreasureScreenMsg = 0x57, - SetOwnerId = 0x59, - ItemRepairMsg = 0x5C, - - DirectorInit = 0x64, - DirectorClear = 0x65, - - LeveStartAnim = 0x66, - LeveStartError = 0x67, - DirectorEObjMod = 0x6A, - - DirectorUpdate = 0x6D, - - ItemObtainMsg = 0x75, - DutyQuestScreenMsg = 0x7B, - - ItemObtainIcon = 0x84, - FateItemFailMsg = 0x85, - ItemFailMsg = 0x86, - ActionLearnMsg1 = 0x87, - - FreeEventPos = 0x8A, - - SetBGM = 0xA1, - - UnlockAetherCurrentMsg = 0xA4, - - RemoveName = 0xA8, - - ScreenFadeOut = 0xAA, - - ZoneIn = 0xC8, - ZoneInDefaultPos = 0xC9, - - TeleportStart = 0xCB, - - TeleportDone = 0xCD, - TeleportDoneFadeOut = 0xCE, - DespawnZoneScreenMsg = 0xCF, - - InstanceSelectDlg = 0xD2, - ActorDespawnEffect = 0xD4, - - CompanionUnlock = 0xFD, - ObtainBarding = 0xFE, - EquipBarding = 0xFF, - - CompanionMsg1 = 0x102, - CompanionMsg2 = 0x103, - ShowPetHotbar = 0x104, - - ActionLearnMsg = 0x109, - ActorFadeOut = 0x10A, - ActorFadeIn = 0x10B, - WithdrawMsg = 0x10C, - OrderMinion = 0x10D, - ToggleMinion = 0x10E, - LearnMinion = 0x10F, - ActorFateOut1 = 0x110, - - Emote = 0x122, - EmoteInterrupt = 0x123, - - SetPose = 0x127, - - CraftingUnk = 0x12C, - - GatheringSenseMsg = 0x130, - PartyMsg = 0x131, - GatheringSenseMsg1 = 0x132, - - GatheringSenseMsg2 = 0x138, - - FishingMsg = 0x140, - - FishingBaitMsg = 0x145, - - FishingReachMsg = 0x147, - FishingFailMsg = 0x148, - - MateriaConvertMsg = 0x15E, - MeldSuccessMsg = 0x15F, - MeldFailMsg = 0x160, - MeldModeToggle = 0x161, - - AetherRestoreMsg = 0x163, - - DyeMsg = 0x168, - - ToggleCrestMsg = 0x16A, - ToggleBulkCrestMsg = 0x16B, - MateriaRemoveMsg = 0x16C, - GlamourCastMsg = 0x16D, - GlamourRemoveMsg = 0x16E, - - RelicInfuseMsg = 0x179, - - AetherReductionDlg = 0x17D, - - Unk6 = 0x19C, - EObjAnimation = 0x19D, - - SetTitle = 0x1F4, - - SetStatusIcon = 0x1F8, - LimitBreakGauge = 0x1F9, // Max level, amount, build type (chop sound), lb type(0=pve lb 1=pvp lb) - SetHomepoint = 0x1FB, - SetFavorite = 0x1FC, - LearnTeleport = 0x1FD, - - OpenRecommendationGuide = 0x200, - ArmoryErrorMsg = 0x201, - - AchievementPopup = 0x203, - - LogMsg = 0x205, // LogMessage? - AchievementMsg = 0x206, - - SetItemLevel = 0x209, - - ChallengeEntryCompleteMsg = 0x20B, - ChallengeEntryUnlockMsg = 0x20C, - - GilTrailMsg = 0x211, - - SetMaxGearSets = 0x230, - - SetCharaGearParamUI = 0x260, - ToggleWireframeRendering = 0x261, - - ExamineError = 0x2BF, - - GearSetEquipMsg = 0x321, - - SetFestival = 0x386, // param1: festival.exd index - - ToggleOrchestrionUnlock = 0x396, - Dismount = 0x3A0, - - // Duty Recorder - BeginReplayAck = 0x3A1, - EndReplayAck = 0x3A2, - - // Housing - ShowHousingItemUI = 0x3F7, - ShowBuildPresetUI = 0x3E9, - BuildPresetResponse = 0x3ED, - - // PvP Duel - SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client) - EndDuelSession = 0x5E1, // because someone went oob? - StartDuelCountdown = 0x5E2, // begins a countdown; also does some duel bgm thing. - StartDuel = 0x5E3, // actually all it does is set the challenger actor id; - DuelResultScreen = 0x5E4, // win/lose thing, also reset a target id just like what EndDuelSession does. - - // Duty Action - SetDutyActionId = 0x5E8, // ContentExAction - SetDutyActionHud = 0x5E9, // disable/enable - SetDutyActionActive = 0x5EA, - SetDutyActionRemaining = 0x5EB, -}; - -enum ClientTriggerType +enum ActorControlType : uint16_t { - ToggleSheathe = 0x01, - ToggleAutoAttack = 0x02, - ChangeTarget = 0x03, + /*! Toggles weapon status -> Sheathed/UnSheathed + \param param1 status 0|1 */ + ToggleWeapon = 0x00, + /*! Toggles Autoattack status on/off + \param param1 status 0|1 */ + AutoAttack = 0x01, + SetStatus = 0x02, + CastStart = 0x03, + ToggleAggro = 0x04, + ClassJobChange = 0x05, + DefeatMsg = 0x06, + GainExpMsg = 0x07, - DismountReq = 0x65, + LevelUpEffect = 0x0A, - RemoveStatusEffect = 0x68, - CastCancel = 0x69, + ExpChainMsg = 0x0C, + HpSetStat = 0x0D, + DeathAnimation = 0x0E, + CastInterrupt = 0x0F, - Return = 0xC8, // return dead / accept raise - FinishZoning = 0xC9, - Teleport = 0xCA, + ActionStart = 0x11, - Examine = 0x12C, - MarkPlayer = 0x12D, // Mark player, visible to party only - SetTitleReq = 0x12E, - TitleList = 0x12F, + StatusEffectGain = 0x14, + StatusEffectLose = 0x15, - UpdatedSeenHowTos = 0x133, - AllotAttribute = 0x135, + HPFloatingText = 0x17, + UpdateRestedExp = 0x018, + Unk2 = 0x19, - ClearWaymarks = 0x13A, - CameraMode = 0x13B, // param12, 1 = camera mode enable, 0 = disable - CharaNameReq = 0x13D, // requests character name by content id - HuntingLogDetails = 0x194, + Flee = 0x1B, - Timers = 0x1AB, + Unk3 = 0x20, // Animation related? - DyeItem = 0x1B5, + CombatIndicationShow = 0x22, - RequestChocoboInventory = 0x1C4, + SpawnEffect = 0x25, + ToggleInvisible = 0x26, - EmoteReq = 0x1F4, - EmoteCancel = 0x1F6, - PersistentEmoteCancel = 0x1F7, - PoseChange = 0x1F9, - PoseReapply = 0x1FA, - PoseCancel = 0x1FB, + ToggleActionUnlock = 0x29, - AchievementCrit = 0x202, - AchievementComp = 0x203, - AchievementCatChat = 0x206, + UpdateUiExp = 0x2B, + DmgTakenMsg = 0x2D, - QuestJournalUpdateQuestVisibility = 0x2BE, - QuestJournalClosed = 0x2BF, + SetTarget = 0x32, + ToggleNameHidden = 0x36, - AbandonQuest = 0x320, + LimitbreakStart = 0x47, + LimitbreakPartyStart = 0x48, + BubbleText = 0x49, - DirectorInitFinish = 0x321, + DamageEffect = 0x50, + RaiseAnimation = 0x51, + TreasureScreenMsg = 0x57, + SetOwnerId = 0x59, + ItemRepairMsg = 0x5C, - DirectorSync = 0x328, // unsure what exactly triggers it, starts director when returning to instance though + DirectorInit = 0x64, + DirectorClear = 0x65, - EnterTerritoryEventFinished = 0x330, - RequestInstanceLeave = 0x333, // df menu button + LeveStartAnim = 0x66, + LeveStartError = 0x67, + DirectorEObjMod = 0x6A, - AchievementCritReq = 0x3E8, - AchievementList = 0x3E9, + DirectorUpdate = 0x6D, - RequestHousingBuildPreset = 0x44C, - RequestHousingSign = 0x451, - RequestHousingInfoSign = 0x452, - RequestHousingRename = 0x45A, - RequestHousingItemUI = 0x463, - RequestSharedEstateSettings = 0x46F, + ItemObtainMsg = 0x75, + DutyQuestScreenMsg = 0x7B, - CompanionAction = 0x6A4, - CompanionSetBarding = 0x6A5, - CompanionActionUnlock = 0x6A6, + ItemObtainIcon = 0x84, + FateItemFailMsg = 0x85, + ItemFailMsg = 0x86, + ActionLearnMsg1 = 0x87, - OpenPerformInstrumentUI = 0x71C, + FreeEventPos = 0x8A, - StartReplay = 0x7BC, - EndReplay = 0x7BD, // request for restoring the original player state (actor, buff, gauge, etc..) + SetBGM = 0xA1, - OpenDuelUI = 0x898, // Open a duel ui - DuelRequestResult = 0x899, // either accept/reject + UnlockAetherCurrentMsg = 0xA4, -}; + RemoveName = 0xA8, -} /* ActorControl */ -} /* Common */ -} /* Core */ + ScreenFadeOut = 0xAA, + + ZoneIn = 0xC8, + ZoneInDefaultPos = 0xC9, + + TeleportStart = 0xCB, + + TeleportDone = 0xCD, + TeleportDoneFadeOut = 0xCE, + DespawnZoneScreenMsg = 0xCF, + + InstanceSelectDlg = 0xD2, + ActorDespawnEffect = 0xD4, + + CompanionUnlock = 0xFD, + ObtainBarding = 0xFE, + EquipBarding = 0xFF, + + CompanionMsg1 = 0x102, + CompanionMsg2 = 0x103, + ShowPetHotbar = 0x104, + + ActionLearnMsg = 0x109, + ActorFadeOut = 0x10A, + ActorFadeIn = 0x10B, + WithdrawMsg = 0x10C, + OrderMinion = 0x10D, + ToggleMinion = 0x10E, + LearnMinion = 0x10F, + ActorFateOut1 = 0x110, + + Emote = 0x122, + EmoteInterrupt = 0x123, + + SetPose = 0x127, + + CraftingUnk = 0x12C, + + GatheringSenseMsg = 0x130, + PartyMsg = 0x131, + GatheringSenseMsg1 = 0x132, + + GatheringSenseMsg2 = 0x138, + + FishingMsg = 0x140, + + FishingBaitMsg = 0x145, + + FishingReachMsg = 0x147, + FishingFailMsg = 0x148, + + MateriaConvertMsg = 0x15E, + MeldSuccessMsg = 0x15F, + MeldFailMsg = 0x160, + MeldModeToggle = 0x161, + + AetherRestoreMsg = 0x163, + + DyeMsg = 0x168, + + ToggleCrestMsg = 0x16A, + ToggleBulkCrestMsg = 0x16B, + MateriaRemoveMsg = 0x16C, + GlamourCastMsg = 0x16D, + GlamourRemoveMsg = 0x16E, + + RelicInfuseMsg = 0x179, + + AetherReductionDlg = 0x17D, + + Unk6 = 0x19C, + EObjAnimation = 0x19D, + + SetTitle = 0x1F4, + + SetStatusIcon = 0x1F8, + LimitBreakGauge = 0x1F9, // Max level, amount, build type (chop sound), lb type(0=pve lb 1=pvp lb) + SetHomepoint = 0x1FB, + SetFavorite = 0x1FC, + LearnTeleport = 0x1FD, + + OpenRecommendationGuide = 0x200, + ArmoryErrorMsg = 0x201, + + AchievementPopup = 0x203, + + LogMsg = 0x205, // LogMessage? + AchievementMsg = 0x206, + + SetItemLevel = 0x209, + + ChallengeEntryCompleteMsg = 0x20B, + ChallengeEntryUnlockMsg = 0x20C, + + GilTrailMsg = 0x211, + + SetMaxGearSets = 0x230, + + SetCharaGearParamUI = 0x260, + ToggleWireframeRendering = 0x261, + + ExamineError = 0x2BF, + + GearSetEquipMsg = 0x321, + + SetFestival = 0x386, // param1: festival.exd index + + ToggleOrchestrionUnlock = 0x396, + Dismount = 0x3A0, + + // Duty Recorder + BeginReplayAck = 0x3A1, + EndReplayAck = 0x3A2, + + // Housing + ShowHousingItemUI = 0x3F7, + ShowBuildPresetUI = 0x3E9, + BuildPresetResponse = 0x3ED, + + // PvP Duel + SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client) + EndDuelSession = 0x5E1, // because someone went oob? + StartDuelCountdown = 0x5E2, // begins a countdown; also does some duel bgm thing. + StartDuel = 0x5E3, // actually all it does is set the challenger actor id; + DuelResultScreen = 0x5E4, // win/lose thing, also reset a target id just like what EndDuelSession does. + + // Duty Action + SetDutyActionId = 0x5E8, // ContentExAction + SetDutyActionHud = 0x5E9, // disable/enable + SetDutyActionActive = 0x5EA, + SetDutyActionRemaining = 0x5EB, + }; + + enum ClientTriggerType + { + ToggleSheathe = 0x01, + ToggleAutoAttack = 0x02, + ChangeTarget = 0x03, + + DismountReq = 0x65, + + RemoveStatusEffect = 0x68, + CastCancel = 0x69, + + Return = 0xC8, // return dead / accept raise + FinishZoning = 0xC9, + Teleport = 0xCA, + + Examine = 0x12C, + MarkPlayer = 0x12D, // Mark player, visible to party only + SetTitleReq = 0x12E, + TitleList = 0x12F, + + UpdatedSeenHowTos = 0x133, + AllotAttribute = 0x135, + + ClearWaymarks = 0x13A, + CameraMode = 0x13B, // param12, 1 = camera mode enable, 0 = disable + CharaNameReq = 0x13D, // requests character name by content id + HuntingLogDetails = 0x194, + + Timers = 0x1AB, + + DyeItem = 0x1B5, + + RequestChocoboInventory = 0x1C4, + + EmoteReq = 0x1F4, + EmoteCancel = 0x1F6, + PersistentEmoteCancel = 0x1F7, + PoseChange = 0x1F9, + PoseReapply = 0x1FA, + PoseCancel = 0x1FB, + + AchievementCrit = 0x202, + AchievementComp = 0x203, + AchievementCatChat = 0x206, + + QuestJournalUpdateQuestVisibility = 0x2BE, + QuestJournalClosed = 0x2BF, + + AbandonQuest = 0x320, + + DirectorInitFinish = 0x321, + + DirectorSync = 0x328, // unsure what exactly triggers it, starts director when returning to instance though + + EnterTerritoryEventFinished = 0x330, + RequestInstanceLeave = 0x333, // df menu button + + AchievementCritReq = 0x3E8, + AchievementList = 0x3E9, + + RequestHousingBuildPreset = 0x44C, + RequestLandSignFree = 0x451, + RequestLandSignOwned = 0x452, + RequestEstateRename = 0x45A, + RequestHousingItemUI = 0x463, + RequestSharedEstateSettings = 0x46F, + + CompanionAction = 0x6A4, + CompanionSetBarding = 0x6A5, + CompanionActionUnlock = 0x6A6, + + OpenPerformInstrumentUI = 0x71C, + + StartReplay = 0x7BC, + EndReplay = 0x7BD, // request for restoring the original player state (actor, buff, gauge, etc..) + + OpenDuelUI = 0x898, // Open a duel ui + DuelRequestResult = 0x899, // either accept/reject + + }; + +} #endif diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 40943d99..2a68da5e 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -327,71 +327,23 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR break; } - case ClientTriggerType::RequestHousingSign: + case ClientTriggerType::RequestLandSignFree: { - - auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); - - uint8_t ward = ( param12 & 0xFF00 ) >> 8; - uint8_t plot = ( param12 & 0xFF ); - pLog->debug( " Ward: " + std::to_string( ward ) + " Plot: " + std::to_string( plot ) ); - - player.setActiveLand( plot, ward ); - - auto zone = player.getCurrentZone(); - - auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); - - if( !hZone ) - return; - - auto land = hZone->getLand( plot ); - plotPricePacket->data().price = land->getCurrentPrice(); - plotPricePacket->data().timeLeft = land->getDevaluationTime(); - - player.queuePacket( plotPricePacket ); - + auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); + auto plot = static_cast< uint8_t >( param12 & 0xFF ); + auto pHousingMgr = g_fw.get< HousingMgr >(); + pHousingMgr->sendLandSignFree( player, ward, plot ); break; } - case ClientTriggerType::RequestHousingInfoSign: + case ClientTriggerType::RequestLandSignOwned: { - - auto landInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); - - uint8_t ward = ( param12 & 0xFF00 ) >> 8; - uint8_t plot = ( param12 & 0xFF ); - pLog->debug( " Ward: " + std::to_string( ward ) + " Plot: " + std::to_string( plot ) ); - - player.setActiveLand( plot, ward ); - - auto zone = player.getCurrentZone(); - - auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); - - auto land = hZone->getLand( plot ); - if( !land ) - { - auto pHousingMgr = g_fw.get< HousingMgr >(); - land = pHousingMgr->getLandByOwnerId( player.getId() ); - } - - uint32_t playerId = land->getPlayerOwner(); - std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( playerId ); - //memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 ); - //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); - landInfoSignPacket->data().houseSize = land->getPlotSize(); - landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() ); - landInfoSignPacket->data().landId = land->getLandId(); - landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() - memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); - landInfoSignPacket->data().wardNum = land->getWardNum(); - landInfoSignPacket->data().worldId = 67; - landInfoSignPacket->data().zoneId = land->getZoneId(); - player.queuePacket( landInfoSignPacket ); - + auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); + auto plot = static_cast< uint8_t >( param12 & 0xFF ); + auto pHousingMgr = g_fw.get< HousingMgr >(); + pHousingMgr->sendLandSignOwned( player, ward, plot ); break; } - case ClientTriggerType::RequestHousingRename: + case ClientTriggerType::RequestEstateRename: { auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index a4756d82..5fe3a1ad 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -3,6 +3,11 @@ #include #include #include +#include +#include +#include +#include +#include #include @@ -13,6 +18,12 @@ #include "HousingMgr.h" #include "Land.h" #include "Framework.h" +#include "ServerZone.h" + +using namespace Core::Common; +using namespace Core::Network; +using namespace Core::Network::Packets; +using namespace Core::Network::Packets::Server; extern Core::Framework g_fw; @@ -84,3 +95,53 @@ Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) } return nullptr; } + +void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t ward, uint8_t plot ) +{ + player.setActiveLand( plot, ward ); + + auto zone = player.getCurrentZone(); + + auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + + if( !hZone ) + return; + + auto land = hZone->getLand( plot ); + if( !land ) + { + land = getLandByOwnerId( player.getId() ); + } + + auto landInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); + uint32_t playerId = land->getPlayerOwner(); + std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( playerId ); + //memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 ); + //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); + landInfoSignPacket->data().houseSize = land->getPlotSize(); + landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() ); + landInfoSignPacket->data().landId = land->getLandId(); + landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() + memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); + landInfoSignPacket->data().wardNum = land->getWardNum(); + landInfoSignPacket->data().worldId = 67; + landInfoSignPacket->data().zoneId = land->getZoneId(); + player.queuePacket( landInfoSignPacket ); +} + +void Core::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t ward, uint8_t plot ) +{ + player.setActiveLand( plot, ward ); + + auto zone = player.getCurrentZone(); + auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + + if( !hZone ) + return; + + auto land = hZone->getLand( plot ); + auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); + plotPricePacket->data().price = land->getCurrentPrice(); + plotPricePacket->data().timeLeft = land->getDevaluationTime(); + player.queuePacket( plotPricePacket ); +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index b1a77858..6089cf27 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -28,6 +28,9 @@ namespace Core Core::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); Core::LandPtr getLandByOwnerId( uint32_t id ); + void sendLandSignOwned( Entity::Player& player, uint8_t ward, uint8_t plot ); + void sendLandSignFree( Entity::Player& player, uint8_t ward, uint8_t plot ); + private: using HousingZonePtrMap = std::unordered_map< uint16_t, Core::Data::HousingZonePtr >; uint16_t m_lastLandId; From ddcfdd16313795ef84596c495ad69c4795b2ac8e Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 14 Nov 2018 09:22:17 +0100 Subject: [PATCH 057/385] Decouple land from packet struct data, add worldId to serverZone --- src/servers/sapphire_zone/ServerZone.cpp | 13 +- src/servers/sapphire_zone/ServerZone.h | 7 +- .../sapphire_zone/Zone/HousingZone.cpp | 21 +++- src/servers/sapphire_zone/Zone/Land.cpp | 113 ++++-------------- src/servers/sapphire_zone/Zone/Land.h | 12 +- 5 files changed, 62 insertions(+), 104 deletions(-) diff --git a/src/servers/sapphire_zone/ServerZone.cpp b/src/servers/sapphire_zone/ServerZone.cpp index 2f3f4adc..0844538e 100644 --- a/src/servers/sapphire_zone/ServerZone.cpp +++ b/src/servers/sapphire_zone/ServerZone.cpp @@ -31,7 +31,8 @@ extern Core::Framework g_fw; Core::ServerZone::ServerZone( const std::string& configName ) : m_configName( configName ), m_bRunning( true ), - m_lastDBPingTime( 0 ) + m_lastDBPingTime( 0 ), + m_worldId( 67 ) { } @@ -188,6 +189,16 @@ void Core::ServerZone::run( int32_t argc, char* argv[] ) } +uint16_t Core::ServerZone::getWorldId() const +{ + return m_worldId; +} + +void Core::ServerZone::setWorldId( uint16_t worldId ) +{ + m_worldId = worldId; +} + void Core::ServerZone::printBanner() const { auto pLog = g_fw.get< Core::Logger >(); diff --git a/src/servers/sapphire_zone/ServerZone.h b/src/servers/sapphire_zone/ServerZone.h index 1045e322..52101668 100644 --- a/src/servers/sapphire_zone/ServerZone.h +++ b/src/servers/sapphire_zone/ServerZone.h @@ -29,6 +29,9 @@ public: size_t getSessionCount() const; + uint16_t getWorldId() const; + void setWorldId( uint16_t worldId ); + void mainLoop(); bool isRunning() const; @@ -47,8 +50,8 @@ private: uint16_t m_port; std::string m_ip; int64_t m_lastDBPingTime; - bool m_bRunning; + uint16_t m_worldId; std::string m_configName; @@ -56,9 +59,7 @@ private: std::map< uint32_t, SessionPtr > m_sessionMapById; std::map< std::string, SessionPtr > m_sessionMapByName; - std::map< uint32_t, uint32_t > m_zones; - std::map< std::string, Entity::BNpcTemplatePtr > m_bNpcTemplateMap; }; diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index a0ed7e93..125531d3 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -127,9 +127,15 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) uint8_t startIndex = isPlayerSubInstance( player ) == false ? 0 : 30; - for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); i++ ) + for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); ++i, ++count ) { - memcpy( &landsetInitializePacket->data().land[ count++ ], &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); + landsetInitializePacket->data().land[ count ].plotSize = getLand( i )->getPlotSize(); + landsetInitializePacket->data().land[ count ].houseState = getLand( i )->getState(); + landsetInitializePacket->data().land[ count ].iconColor = getLand( i )->getOwnership(); + landsetInitializePacket->data().land[ count ].iconAddIcon = getLand( i )->getPlotSize(); + landsetInitializePacket->data().land[ count ].fcId = getLand( i )->getFcId(); + landsetInitializePacket->data().land[ count ].fcIcon = getLand( i )->getFcIcon(); + landsetInitializePacket->data().land[ count ].fcIconColor = getLand( i )->getFcColor(); } player.queuePacket( landsetInitializePacket ); @@ -140,10 +146,17 @@ void Core::HousingZone::sendLandUpdate( uint8_t landId ) for( const auto& playerIt : m_playerMap ) { auto pPlayer = playerIt.second; + auto pLand = getLand( landId ); auto landUpdatePacket = makeZonePacket< FFXIVIpcLandUpdate >( pPlayer->getId() ); landUpdatePacket->data().landId = landId; - landUpdatePacket->data().land = getLand( landId )->getLand(); + landUpdatePacket->data().land.plotSize = pLand->getPlotSize(); + landUpdatePacket->data().land.houseState = pLand->getState(); + landUpdatePacket->data().land.iconColor = pLand->getOwnership(); + landUpdatePacket->data().land.iconAddIcon = pLand->getPlotSize(); + landUpdatePacket->data().land.fcId = pLand->getFcId(); + landUpdatePacket->data().land.fcIcon = pLand->getFcIcon(); + landUpdatePacket->data().land.fcIconColor = pLand->getFcColor(); pPlayer->queuePacket( landUpdatePacket ); } @@ -231,4 +244,4 @@ Core::LandPtr Core::HousingZone::getLand( uint8_t id ) return nullptr; return it->second; -} \ No newline at end of file +} diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 54e90c8a..5b530822 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -38,7 +38,6 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_landInfo( info ), m_type( Common::LandType::Private ) { - memset( &m_land, 0x00, sizeof( LandStruct ) ); memset( &m_tag, 0x00, 3 ); memset( &m_landMsg, 0x00, 193 ); memset( &m_landName, 0x00, 23 ); @@ -66,52 +65,19 @@ void Core::Land::load() m_currentPrice = m_landInfo->prices[ m_landId ]; m_minPrice = m_landInfo->minPrices[ m_landId ]; - m_land.plotSize = m_landInfo->sizes[ m_landId ]; - m_land.houseState = HouseState::forSale; + m_size = m_landInfo->sizes[ m_landId ]; + m_state = HouseState::forSale; } else { m_type = static_cast< Common::LandType >( res->getUInt( "Type" ) ); - m_land.plotSize = res->getUInt( "Size" ); - m_land.houseState = res->getUInt( "Status" ); + m_size = res->getUInt( "Size" ); + m_state = res->getUInt( "Status" ); m_currentPrice = res->getUInt( "LandPrice" ); m_ownerPlayerId = res->getUInt( "OwnerId" ); m_minPrice = m_landInfo->minPrices[ m_landId ]; } init(); -// setPreset( 262145 ); -/* auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT * FROM land WHERE Id = " + std::to_string( m_landKey ) ); - if( !res->next() ) - { - setHouseSize( HouseSizeType::smallHouse );//ToDo: get house site from ExD (Landset first 60 rows) - m_currentPrice = m_initPrice; - m_land.color[ 7 ] = 0xFF; - m_ownerPlayerId = 0; - m_nextDrop = 0; - setState( HouseStateType::forSell ); - auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::LAND_INS ); - stmt->setUInt( 1, m_landKey ); - pDb->directExecute( stmt ); - Init(); - } - else - { - Init(); - if( getState() == HouseStateType::privateHouse || getState() == HouseStateType::sold ) - { - m_ownerPlayerId = res->getUInt( "ownerPlayerId" ); - } - else if( getState() == HouseStateType::forSell ) - { - m_currentPrice = res->getUInt( "currentPrice" ); - m_nextDrop = res->getUInt( "nextDrop" ); - m_ownerPlayerId = 0; - } - } - ItemsOutdoorContainer = make_ItemContainer( InventoryType::HousingOutdoorItems, - m_maxItems, - "housingoutdooritems", true );*/ } uint16_t Core::Land::convertItemIdToHousingItemId( uint16_t itemId ) @@ -126,37 +92,25 @@ uint32_t Core::Land::getCurrentPrice() const return m_currentPrice; } -void Core::Land::setPreset( uint32_t id ) -{ - auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Core::Data::HousingPreset >( convertItemIdToHousingItemId( id ) ); - setHousePart( Common::HousePartSlot::ExteriorRoof, info->exteriorRoof ); - setHousePart( Common::HousePartSlot::ExteriorWall, info->exteriorWall ); - setHousePart( Common::HousePartSlot::ExteriorWindow, info->exteriorWindow ); - setHousePart( Common::HousePartSlot::BasementWall, info->basementWall ); - setHousePart( Common::HousePartSlot::OtherFloorFlooring, info->otherFloorFlooring ); - setHousePart( Common::HousePartSlot::OtherFloorWall, info->otherFloorWall ); -} - //Primary State void Core::Land::setHouseSize( uint8_t size ) { - m_land.plotSize = size; + m_size = size; } void Core::Land::setState( uint8_t state ) { - m_land.houseState = state; + m_state = state; } void Core::Land::setOwnership( uint8_t state ) { - m_land.iconColor = state; + m_iconColor = state; } void Core::Land::setSharing( uint8_t state ) { - m_land.iconAddIcon = state; + m_iconAddIcon = state; } void Core::Land::setLandName( const std::string& name ) @@ -171,22 +125,22 @@ void Core::Land::setLandType( Common::LandType type ) uint8_t Core::Land::getPlotSize() const { - return m_land.plotSize; + return m_size; } uint8_t Core::Land::getState() const { - return m_land.houseState; + return m_state; } uint8_t Core::Land::getOwnership() const { - return m_land.iconColor; + return m_iconColor; } uint8_t Core::Land::getSharing() const { - return m_land.iconAddIcon; + return m_iconAddIcon; } uint32_t Core::Land::getLandSetId() const @@ -222,46 +176,24 @@ Core::Common::LandType Core::Land::getLandType() const //Free Comapny void Core::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) { - m_land.fcId = id; - m_land.fcIcon = icon; - m_land.fcIconColor = color; //RGBA + m_fcId = id; + m_fcIcon = icon; + m_fcIconColor = color; //RGBA } uint32_t Core::Land::getFcId() { - return m_land.fcIcon; + return m_fcIcon; } uint32_t Core::Land::getFcIcon() { - return m_land.fcIcon; + return m_fcIcon; } uint32_t Core::Land::getFcColor() { - return m_land.fcIconColor; -} - -//House Data -void Core::Land::setHousePart( Common::HousePartSlot slot, uint16_t id ) -{ - m_land.housePart[ slot ] = convertItemIdToHousingItemId( id ); -} - -uint16_t Core::Land::getHousePart( Common::HousePartSlot slot ) -{ - return m_land.housePart[ slot ]; -} - -//Color -void Core::Land::setColor( uint8_t slot, uint8_t color ) -{ - m_land.color[ slot ] = color; -} - -uint8_t Core::Land::getColor( uint8_t slot ) -{ - return m_land.color[ slot ]; + return m_fcIconColor; } //Player @@ -275,11 +207,6 @@ uint32_t Core::Land::getPlayerOwner() return m_ownerPlayerId; } -const LandStruct& Core::Land::getLand() -{ - return m_land; -} - uint32_t Core::Land::getMaxItems() { return m_maxItems; @@ -322,7 +249,7 @@ void Core::Land::init() void Core::Land::UpdateLandDb() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_land.houseState ) + pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_state ) + ", LandPrice = " + std::to_string( getCurrentPrice() ) + ", UpdateTime = " + std::to_string( getDevaluationTime() ) + ", OwnerId = " + std::to_string( getPlayerOwner() ) @@ -343,4 +270,4 @@ void Core::Land::Update( uint32_t currTime ) UpdateLandDb(); } } -} \ No newline at end of file +} diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index f8e64a49..51e4e982 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -62,7 +62,6 @@ namespace Core void UpdateLandDb(); void Update( uint32_t currTime ); - const Common::LandStruct& getLand(); uint32_t getMaxItems(); uint32_t getCurrentPrice() const; @@ -80,7 +79,14 @@ namespace Core uint8_t m_landId; uint32_t m_landSetId; uint16_t m_zoneId; - Common::LandStruct m_land; + uint8_t m_size; + uint8_t m_state; + uint8_t m_iconColor; + uint8_t m_iconAddIcon; + uint32_t m_fcId; + uint32_t m_fcIcon; + uint32_t m_fcIconColor; + Common::LandType m_type; uint32_t m_ownerPlayerId; Core::Data::HousingLandSetPtr m_landInfo; @@ -105,4 +111,4 @@ namespace Core }; } -#endif \ No newline at end of file +#endif From b0fd8beb0be82635766c620eeefdb7bd733eb445 Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 14 Nov 2018 10:00:16 +0100 Subject: [PATCH 058/385] Cleanup of housing definitions --- src/common/Common.h | 14 ---------- .../Network/PacketDef/Zone/ServerZoneDef.h | 18 ++++++++++-- .../Network/Handlers/ClientTriggerHandler.cpp | 5 ++-- .../Network/Handlers/PacketHandlers.cpp | 3 +- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 2 +- .../sapphire_zone/Zone/HousingZone.cpp | 22 +++++++-------- src/servers/sapphire_zone/Zone/Land.cpp | 28 ++----------------- src/servers/sapphire_zone/Zone/Land.h | 26 +++-------------- 8 files changed, 40 insertions(+), 78 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 602ea356..f1d58363 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -758,20 +758,6 @@ namespace Core::Common SubTag2 }; - //Structs - struct LandStruct - { - uint8_t plotSize; //0 - uint8_t houseState; // 2 - uint8_t iconColor; // 4 - uint8_t iconAddIcon; // 6 - uint32_t fcId; //8 - uint32_t fcIcon;// 12 - uint32_t fcIconColor; // 16 - uint16_t housePart[ 8 ]; // 34 - uint8_t color[ 8 ]; // 36 - }; - enum LandPermissionSlot { FreeCompany, diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 7fd1d293..d0a31c16 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1596,13 +1596,27 @@ struct FFXIVIpcLandPermission : FFXIVIpcBasePacket< LandPermission > uint64_t unkown5; }; +//Structs +struct LandStruct +{ + uint8_t plotSize; //0 + uint8_t houseState; // 2 + uint8_t type; // 4 1 == FC, 2 == Private + uint8_t iconAddIcon; // 6 + uint32_t fcId; //8 + uint32_t fcIcon;// 12 + uint32_t fcIconColor; // 16 + uint16_t housePart[ 8 ]; // 34 + uint8_t color[ 8 ]; // 36 +}; + struct FFXIVIpcLandUpdate : FFXIVIpcBasePacket< LandUpdate > { uint16_t landId; uint16_t unknow0; uint16_t unknow1; uint16_t unknow2; - Common::LandStruct land; + LandStruct land; }; struct FFXIVIpcLandPriceUpdate : FFXIVIpcBasePacket< LandPriceUpdate > @@ -1667,7 +1681,7 @@ struct FFXIVIpcLandSetInitialize : FFXIVIpcBasePacket< LandSetInitialize > uint8_t unknown6; uint8_t unknown7; uint8_t unknown8; - Common::LandStruct land[30]; + LandStruct land[ 30 ]; }; struct FFXIVIpcYardObjectSpawn : FFXIVIpcBasePacket diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 2a68da5e..8fb9c7c4 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -345,7 +345,8 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestEstateRename: { - auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); + // removed temporarly, there is no such thing as a LandName +/* auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); uint8_t ward = ( param12 & 0xFF00 ) >> 8; uint8_t plot = ( param12 & 0xFF ); @@ -368,7 +369,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR landRenamePacket->data().zoneId = land->getZoneId(); memcpy( &landRenamePacket->data().landName, land->getLandName().c_str(), 20 ); - player.queuePacket( landRenamePacket ); + player.queuePacket( landRenamePacket ); */ break; } diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index de2f34d5..f2ea6053 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -664,7 +664,8 @@ void Core::Network::GameConnection::landRenameHandler( const Core::Network::Pack if( !pLand ) return; - pLand->setLandName( packet.data().landName ); + // TODO set estate name + //pLand->setLandName( packet.data().landName ); } void Core::Network::GameConnection::buildPresetHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 5fe3a1ad..fe6b2c22 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -118,7 +118,7 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t ward, std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( playerId ); //memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 ); //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); - landInfoSignPacket->data().houseSize = land->getPlotSize(); + landInfoSignPacket->data().houseSize = land->getSize(); landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() ); landInfoSignPacket->data().landId = land->getLandId(); landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 125531d3..d02ce81f 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -129,13 +129,13 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); ++i, ++count ) { - landsetInitializePacket->data().land[ count ].plotSize = getLand( i )->getPlotSize(); - landsetInitializePacket->data().land[ count ].houseState = getLand( i )->getState(); - landsetInitializePacket->data().land[ count ].iconColor = getLand( i )->getOwnership(); - landsetInitializePacket->data().land[ count ].iconAddIcon = getLand( i )->getPlotSize(); - landsetInitializePacket->data().land[ count ].fcId = getLand( i )->getFcId(); - landsetInitializePacket->data().land[ count ].fcIcon = getLand( i )->getFcIcon(); - landsetInitializePacket->data().land[ count ].fcIconColor = getLand( i )->getFcColor(); + landsetInitializePacket->data().land[ count ].plotSize = getLand( i )->getSize(); + landsetInitializePacket->data().land[ count ].houseState = getLand( i )->getState(); + landsetInitializePacket->data().land[ count ].type = static_cast< uint8_t >( getLand( i )->getLandType() ); + landsetInitializePacket->data().land[ count ].iconAddIcon = getLand( i )->getSharing(); + landsetInitializePacket->data().land[ count ].fcId = getLand( i )->getFcId(); + landsetInitializePacket->data().land[ count ].fcIcon = getLand( i )->getFcIcon(); + landsetInitializePacket->data().land[ count ].fcIconColor = getLand( i )->getFcColor(); } player.queuePacket( landsetInitializePacket ); @@ -150,10 +150,10 @@ void Core::HousingZone::sendLandUpdate( uint8_t landId ) auto landUpdatePacket = makeZonePacket< FFXIVIpcLandUpdate >( pPlayer->getId() ); landUpdatePacket->data().landId = landId; - landUpdatePacket->data().land.plotSize = pLand->getPlotSize(); + landUpdatePacket->data().land.plotSize = pLand->getSize(); landUpdatePacket->data().land.houseState = pLand->getState(); - landUpdatePacket->data().land.iconColor = pLand->getOwnership(); - landUpdatePacket->data().land.iconAddIcon = pLand->getPlotSize(); + landUpdatePacket->data().land.type = static_cast< uint8_t >( pLand->getLandType() ); + landUpdatePacket->data().land.iconAddIcon = pLand->getSharing(); landUpdatePacket->data().land.fcId = pLand->getFcId(); landUpdatePacket->data().land.fcIcon = pLand->getFcIcon(); landUpdatePacket->data().land.fcIconColor = pLand->getFcColor(); @@ -207,7 +207,7 @@ Core::LandPurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.sendLandPermissions(); - pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); + //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); pLand->UpdateLandDb(); sendLandUpdate( plot ); return LandPurchaseResult::SUCCESS; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 5b530822..99f19548 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -39,8 +39,6 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_type( Common::LandType::Private ) { memset( &m_tag, 0x00, 3 ); - memset( &m_landMsg, 0x00, 193 ); - memset( &m_landName, 0x00, 23 ); load(); } @@ -93,7 +91,7 @@ uint32_t Core::Land::getCurrentPrice() const } //Primary State -void Core::Land::setHouseSize( uint8_t size ) +void Core::Land::setSize( uint8_t size ) { m_size = size; } @@ -103,27 +101,17 @@ void Core::Land::setState( uint8_t state ) m_state = state; } -void Core::Land::setOwnership( uint8_t state ) -{ - m_iconColor = state; -} - void Core::Land::setSharing( uint8_t state ) { m_iconAddIcon = state; } -void Core::Land::setLandName( const std::string& name ) -{ - memcpy( &m_landName, name.c_str(), 20 ); -} - void Core::Land::setLandType( Common::LandType type ) { m_type = type; } -uint8_t Core::Land::getPlotSize() const +uint8_t Core::Land::getSize() const { return m_size; } @@ -133,11 +121,6 @@ uint8_t Core::Land::getState() const return m_state; } -uint8_t Core::Land::getOwnership() const -{ - return m_iconColor; -} - uint8_t Core::Land::getSharing() const { return m_iconAddIcon; @@ -163,11 +146,6 @@ uint16_t Core::Land::getZoneId() const return m_zoneId; } -std::string Core::Land::getLandName() const -{ - return std::string( m_landName ); -} - Core::Common::LandType Core::Land::getLandType() const { return m_type; @@ -230,7 +208,7 @@ uint8_t Core::Land::getLandTag( uint8_t slot ) void Core::Land::init() { - switch( getPlotSize() ) + switch( m_size ) { case HouseSize::small: m_maxItems = 20; diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 51e4e982..41557cca 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -21,23 +21,19 @@ namespace Core void load(); //Primary state - void setHouseSize( uint8_t size ); + void setSize( uint8_t size ); void setState( uint8_t state ); - void setOwnership( uint8_t state ); void setSharing( uint8_t state ); - void setLandName( const std::string& name ); void setLandType( Common::LandType type ); //Gerneral - uint8_t getPlotSize() const; + uint8_t getSize() const; uint8_t getState() const; - uint8_t getOwnership() const; uint8_t getSharing() const; uint32_t getLandSetId() const; uint8_t getWardNum() const; uint8_t getLandId() const; uint16_t getZoneId() const; - std::string getLandName() const; Common::LandType getLandType() const; //Free Comapny @@ -46,14 +42,6 @@ namespace Core uint32_t getFcIcon(); uint32_t getFcColor(); - //House data - void setHousePart( Common::HousePartSlot slot, uint16_t itemId ); - - uint16_t getHousePart( Common::HousePartSlot slot ); - - //Color - void setColor( uint8_t slot, uint8_t color ); - uint8_t getColor( uint8_t slot ); //Player void setPlayerOwner( uint32_t id ); uint32_t getPlayerOwner(); @@ -63,7 +51,6 @@ namespace Core void Update( uint32_t currTime ); uint32_t getMaxItems(); - uint32_t getCurrentPrice() const; uint32_t getDevaluationTime(); @@ -81,17 +68,15 @@ namespace Core uint16_t m_zoneId; uint8_t m_size; uint8_t m_state; - uint8_t m_iconColor; + Common::LandType m_type; uint8_t m_iconAddIcon; - uint32_t m_fcId; + uint32_t m_fcId; // unclear, may be wrong uint32_t m_fcIcon; uint32_t m_fcIconColor; - Common::LandType m_type; uint32_t m_ownerPlayerId; Core::Data::HousingLandSetPtr m_landInfo; - //item storage Core::ItemContainerPtr ItemsOutdoorContainer; uint32_t m_maxItems; @@ -103,9 +88,6 @@ namespace Core uint32_t m_minPrice; //information - char m_landName[23]; - char m_landMsg[193]; - char m_ownerName[31]; char fcTag[7]; uint8_t m_tag[3]; }; From 99be183f46b253acf5de4b398510f77e225dd02a Mon Sep 17 00:00:00 2001 From: Mordred Date: Wed, 14 Nov 2018 16:54:09 +0100 Subject: [PATCH 059/385] Removed old mysql lib --- bin/libmysql.dll | Bin 2359296 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 bin/libmysql.dll diff --git a/bin/libmysql.dll b/bin/libmysql.dll deleted file mode 100644 index 479cefdae16a8539b20143de05600169d6bd36cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2359296 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

U(D~abM)t$wEk3!{%pd>CRu|5 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 T;UG0@VnT0ud-R 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 +QI+Mez z1Sm7ri#ipoH*`!Cq3&hMYQ|wr6OI^NJmT-7B^Q zicQa8Yp;D}MnnByeWktj89kqE|Mb)4DDaNv?LgafEOfX%bf`UVcV443_*)LAvnrT* zp8N&=D1XkNyXtMSt_*ISJ8u@u+qmlZ6%B!}uq6536@Lv}u;M`A@Ab-uSAV=-#VZZ3 z7hCU}JI{pqDinZ#e$^-D-*NfF-ZJXsvZaXh7a)1qK*Quf||YWO;k-H7OK0M7&b2*c#kiJ0_J>8MO=AL-lwB z-e~M?Ut73;jWPhvWnASH0d{jhu-DbSm<#CzpeiB9(X~a+bCKX?qd{{b6m;j zli&N%90sI*M(?dd>2yVlg58z>cf?DR3vRnLUr68p7Q*7;oZS44A3PXkJy_S;||SV^hpC&v}F=_Fuha+|H!0+>YI>=@&9Oh z8~CV-tABhqyGb^%VHZdsK!6}Y!GJ~rN?4)+vmq*hg}{a_1h5arxN42`>^f+F373KuCgw-2eB?y}N88`t&LZMTs3`3sXwHiSEu$v* zAy%x+(geXOl_o@OXvA-7c|guTTd-*qc3Xd$QF`-LjIFV3sNZ?kWqTvwg-N2l0W&E7 zENEA;%TMD2R=xq-8|GP3EBv1b(VIrkR_ZIROcGF11Pz zbQ_eVa#6SKuSE%_7VLM_@69{RdoUv9;)oqa@lL5VN{Fj0?M9m_*2STV6Enr`wKuW1 zu^@LilZ^F-8;~RbPu;2lUM49us)Jv!nCfum#IORLIFBN0lwj&C>h3jsva?%B3gt=f zm6TDlgwB;96>QGYHSV$4M7X2?L?gzQ>;%0kMi=`VI2kTBxVH1?dsYg2MoZ)5mPHVV zKj{ktJR5r?421ZX@TP}w3UfsOIhz9YZ#w3WWba_SIV+(P=M#5v;>55i`CKp{oOJt~ z45zBlF6?)4f|d>J?cY)%yPDr7x333Dw{A>=Wef5Zu!VJ4ojsU8OB%1U z=l%*h?BU&*_dEfO<^R~}M&1(YwcnWpr0EhC+T8Zn zsQ9>0I_D4i)Vtu|ch`HnmR3Yvu@GZnVQ-@g9?og#5hueDR?12!byjcu;(%;^F9%71=p5RG26!9|BWlLhlGk)L zeiNUtF}rt+K?WX`7>asTi?RmX?BBFDVI80EvoJrx;KErA{*pU**5>0d%wFr_0DDEt z39klNy!At*qg@>2qW{7RQB}j@8$3s6MCpDpejX0iwAZ*17bY3rb z9x8+Z6vy4LTt|ORN0iwJ!zhu9@d5lu@W_cHUmR)f-zZ+}{910O%8(-`)!zBJ>B#B< zj)ke#b(YmOm_S+9#?4Jb!U!mjW}HCCf{?ZIcxSV8+yHBvV{!}CvkVOk>=y5ivv1#- zI@Vqv{ThCUPme=rH$u&s6nY0CE03!|=qHHVz7K)==mz|rn?+d;A@nTI+=NgR4}E~p z)6?R>EP?IWb`ngRFP?q_Oa@}vhz~Gc_AW~5M*6zoSSi!rhmj3IcnYV1z|Mgog)f} zKiV{GlYL_nB-0xQ;=W$0#hYQG0zqbIOsQvF0o)N>yPi};65M|CutMm#Bx(K^V36s! zBwt=P+K+_@o2?r*9OET=_^2#O?lFDsxU^QGt~svCU(5T2G-#OIBp*(DPv_A#C2dMD z!o3)^fNa}P{aMtKOhwWZM{wQmxbQO6oI{mo>8w>CKc8x$-4cd0ufYu+u1ar4mu_Sa z;jBsLMeTomUA+N3HP-iKODgwKVXSJerY2G8FW2^y-r?q-2Jt2~>3U^9&*Wu`!iA-t zDBDj4W8;$QRNG%KnZAZqA(ZLC$3T6ClxPd(x-=XVIxi7EyDaOn zX&+6DWbzJ#Kemngkti>$N|CFoo+UU7xs7fDCd+Ze zm;VLjz5tsDR?YqGr1z0Dkdg{}l^Tdr@5}Y90~?YyUXCkklTD`_r`HVWQ^6OGD>zuF zNW++~v-e45X_p+GYwZ~Ah(?uv;rMvn-ST^Kop6h+qV zAczY$ZKxZ?GZ+cd`*rl#s#numbS3yO{+KQ~de)5N^u_BL-n$;*3rElD6s`Thq#b$M z*CzDI^EstpSxLZB(35sBt;=zF!>x|GHRPZOw;h{Pe6MXLbc5t!x0&oXZj*|EFbM7v z$VxhRJ3bu8_3TTLeQU4mbvEe^%1#E=C=!gt$MS1bLc(_9j0)r;IP(%?!DIf0D!XDX zTrK*a?5}X?DCsH^=7G-yyh*KKEGSc-{iWA@Qms6uZnkUa`hm5h?LCQN0+C3kHYNA|{}SGEmNM+h|msZ8Q3b`;f3PDI`F#qVHhbSX?<4C%N=w zAuDeOZulBZy6NULupFIDV;kgs;|xe~G_39?*Lt>M`!}Zs@Srx9GJ_I?w9tMFMy<4r zU!Q=<>V=c@@O%EU( zIUtKD?K+~Sa#3=#X%RpsMgU3a1H}FvKq_q2)3GWL_gM4<7D#6sM0{TXLqtAqHXesj zxeHe$ZN!>e*qm{crxk*#myi-6s7lnjn%|b0--;I{^VqYcgm4mW4LC;#hXgR4Fz7%$ zNy2am6^TVFoLom@@jwQr2g2f=AbYm)ODqWO5V=HR(DD2=4Bo1RIR?if9Erifly+SV zJ_Y*6-WnQ)FSIZR@-f1ZK;Eac>i_`;?*szb=Vx)!fsDs%WM84N9D(eJ9?4Go36X@t zj`aw&vt4?MTSM&EW2wJMxPF+-p65xas%8B^wnfV(Tk4GcRD&{zmFwla{aDkR)FKE| znOBc2WbvRaPgryu$Em-K_1}QOU^$_pMz)i;kOsv?gYw5GL8u|IY=~Mx+iT&^I&xH| zOb(CAIZne30C{bp(d4jyz-k;q=yO__Bh-&@BtlCm?K%kMa@Z9SKo&*-$?F4T+IIjU zIqdGQd$)e=ZCdMfIqVp9u6g|cdB7&8Wh0&euTf)^{-AUVTfdv*_1b-=wurQ`eNTjF zdOG!+-)Iv09z^{0(050l23$(-gFc_~ZS)mGMJ=-4B^MEVSHBQvSNn9-OSt)bp+dy8jvt8P)3D}1Co$am?6P8n=@;|@EJD?1bD@dRPFA26?=Dcx~Tmf+sM0ojK z(*3KhHbUcr3ui<+LYZ;z3DFL+&g5Bfsl>$vRagQcF5r^GQ1v(Tu6{68udQ~s>2=$$ z)%}J!Pii%ON6mvGYJS5!6B$GG%Gas)6^vIzx3zkssLyZyL+f+jdZYf+dZWIt-pSXi z*G%=!{Em9f|7pGE@2mGMkZMGKwPCKnm{Qes5CelwBZnEN9!JUFQF-Jr1KB)lsQT*- zv!i$Q8oDi1_q}@EebH_Cj+(zU%$88S*Bj;l>(yhPeF!42Z;f`LUVZb8r7Pg%dO`u9KY)q8EwQ)tjn{q_2DJLNlS{uZ&NgzD9a ztrFrTnkJ<3#INk6)^dK6#uvO_;w>kxo?sy{)N;WH)Awvmx8;zQB=$|Q@Pa!bANY1b zdTbCkrvKIwMGN_e4*{jc4^sL#oUSc!vkU2{9y3T{mda_TPLXFw7rXZk?0Z^6aXd@F zstqwI4z%M`bYeSw1i(%QXj>_ee_$={3>b`VVS#Pe0!TzN8Z$bIGk>)knixWVsjlBl zsb~G_uapfBH}>lYm;?)aDIrNo=?GZqV-I}{?g-fF;~n~lsjPhqf8|;w4+U(yW?6(d zzj^=dBGSfEDf*g1Ux`$Vz9!RGECT5WY_j0CFuLM$s~A(U-e?e^&jqKr*iW`m%cZl) zZs~m$x4Q$tsrjZ-T<~f1OUl}f?WjkLX6yIDD;#}*hsMR0vbLbmpWihfcdj#_U?h*6 zhF@$}Qz?sjOrAOg-^v7uwz|w>skF@~CQGFZRs--rdjSTDH~F2+#omYP0iz|R`JLU^ zy!_5Kmk#1X+_lt7hjDc33InZ&o+2Igr$IJg1&tVAPwA-3Mxjs?IlPpV6(hBD5@bw>)A z4T)IrJf!01f1nLAOF6$g<2^PD_t#Ktw3h57Ci2rCL6678{s(_NBpsq9p&e33X`dN~ z+P*yAH^>%1_RWvdoFVNLg7JF|#)BaktQ1vWr}R5|>A9iO?Ns`Ht@MO&=_t_7bxN1% zrR|~8_FGYUtX5i~NNPX3a{aoq_0mTl(OaHQr9VS4{R9#gO{B5|SS)=>Y$yIip5lI# ziqV5U3hu&kfP?i^B~JU$uz&_HW(OwIz3*cDAwVyiK$?J=eJb8V@9&FO91{S{9w12K@lOHf?8MUbmm6pLY7WNW3g* zr&2dYQ8&~=_89@f?QmwPMNHm9CDf_(%QDe>j?z|0i4Dr|Jp@RdO22GmIE{o6&{f5i zbC*$wWmf>z7ZW0Z{z!zDmN)=9gu|(_jSnMtfK~t@7TS{PqBajE7yAfpfT5+vc`h9X z&7n+}8NRR2Kipw8;f74AfjZ@C<>5xF3G4DQN9~$u$^aq_s8gwHI&raoJw}sdWq=*x zffdx-Rn*&b)F3_3YJijkilS1F*;e%ls9)+a*{WI)@J20noVF3-A>2%~RlUIjLu^%l z=7AVn)k{2JvsFPhfjk!YNWNkg;-oA6ZPmX91ojDVBDYs}*s3<-^WA1#s$`Ze6>n0f zE=G^oVjPJ)zTBm>I*>mKEgJfwPamL}V^!BKm5;H@pkohZ$w3y`Wr4U;x*TPz8i!A1 zxG#@TA!iYa9#*ZUvZaoCn-qt%%*AHmOptaT+~E!)EE8cnP7BfK4sNcqx_~8vIMr(` zdF3gn_b29I)yQa^36pkV?%3GYjz&ixcuB z79)(!6U%kn+c^b6MA#`j;$|``=j5g=(}|^>ngdEg`W!cVn9_-elsna_M3JoNTKYsc zyN}W-UKynm;?8U75OJkZIuU4C@?xg}DQz`~gXKkS@?K>YMi^K~eu&fB6{B#Abj2i0 zkgmiFsnQi&8Bj8?Y&eVlG&EJ=vV~tv)}{aupRCO3rD>K@vW1A}Yd|7>#Wr7QGf~f# z{^fJv#W3KF@}$)YH{hQI|5m2eiaG2gkRf*=Bepe~_QCssL_V#yQKOX=>N*S zn~Ob;EW2?pdqKcgA3na)-*7OO|mN2;3XY!krBd{zQ9Wz^8N2cqtW&JoR+#S!wn z6~6ore6v>|Ud)!~t@PzL)z4nJ8DJ>p7CGJpGW6x2l;am7AScqN=|E=w$We-GeF|Cm4TKGf-+iNx3WN8)ap@&0kd*xGu8%DuQaft2Wj|tTJMGp zl%1hg#mLSk-|UqcHS8JmB7E70TegtJ)FggNwn%MVr;<}I*e04&>5Q$}EDn^;npGUJ~`US>g+?s#J$HD5OkB@3ePL-{xmFLlm zippBB7v)kDcmE?DH7FDHR4u+)i$88qxO1Y;y_8$r-Lf<_iT*Wet(LM3D=|TBRU^PT z!1=uGFH3R$$Lc<=Vzj}KML(hqjV+eVsiF4bUdm#t{^A|142G|5WyoA?8=q)jA8*Is z2K?(PwykNJQfw=$DYh+)&gKc!^~uz?zC;%3tR2^RR`~;IZvp}qdeg<1kjnPFiL`xoo;}opuMeQ+=3?94 zT4R>lAK=GiO|}B`PHKYzZMa}tipGVjY558@?H!qp6l1Z?%>&3fGKDwyL!g0!58s?> z0gO~3EEz!Cjp~KJ;PMN`aOaGhoYt%Osy9xH6<{m_$ENk&u%JW{x__{wHArV{rrHsW z{cAlzFAi7X*w|3)Lc~HfJrkRbn944FOxg|X1pY+odq0;<-A>>N44pZtR@@?~;!!$r zsEK4gO#Ai_Z5eg3eJJc<&*E1$EDP+gi(_{fh0z@-79}LHUn0KV5DhwFA`iwRs5Fr_ z1cwKh>=A(XbT)fNKp77M0|mCi4L@*1@BZOf`6aTQb+>}k9XlrL_QxK2T}hLM?9~;Kt8Y6Ps)_K-me^Ms_V!$8-=OTG*w8~ zn<0)&J1E%i5iIw7M*}2l46Z7aM7Z4uH((8dz9e2hf40Lcb@jmhVyV_HHZz(^(Y$=mX2UTQi&wEMTFx7%gIWX#=?MUs%*( z23?On%AHz=O;flstiIghf@PUSyd5_M&mb?cc=SEIzP2?j8$qCnye_AT}>a&9?bxVjq#G{F5k(xEkV( zplUChc}%n+7WdulHVOAVhK^idb*WTlF^HLH+%E_aRONvM9+!L#4gJ?3i7Jlv6`fQ} zKm=#N#{-B|dJ_H`{L8EbTAv9hv^%tpNOjYcpJ02C#a2`>^L{`98;Js+*CCrU0IpHf zw1z$Bo#yGhEFZ2t6K$#m*MSX16(64+yb-g=JI$NIY(JqUU}waU>wdqL_r_X|nTA5jsoH->gB8$d;jnaO^uvwQbj9ep9E%yI zLUmU;4=0)l;h}LR`l3-hi>3#F?6MWq1rS&l4bRhv?DusfjL3S4aJ|73PP>Q6I*UZ6VlFSCklCaWGpUe-;sMLxZ zD&#m2T53fKRQNc@5$Y*z?O^(CRSyBt4Qf_vx$Vc z0C$>gg^8bZP=)quGF#H3s)h8QcCuo_hVp6JKcLLQ6{RHH;bw+@xaNg}o&me*y7y=0 z!~jjjYCDMK*Gg!ZZZxk{akD_ZdN_MvSeSGRSw{cOT&F`|b}jYNn0S>^2UvW7wE| zWRoezvymJC4YzUtGjiH!TsFpqfqHxRO$8aIvcqptudK>;$QSImcm5KmARsWJ^&u+0 z5sl?G5-&9IK4fFF(zFyOp}&9;;LZ!JF!JhwndWc6Zo(XoFSWjD%mWeu_T+ly#*zxO z3x$*DA8YU7g&lQ1ZU2sCD^OB~i4kAwG@G$xb{`@m_v1JX9&MU(He5;QMgpPi$$hdP zPvF&uv!{e4K)9EIqKlQROEXKs*>(Y4!WdGhPIep?N3&xeYILYm0(&|H2sG4)3-~0Q zaN;o$GoY<(&vYh0;rI$?XRT?#htlUtI=25E}s@G za2)A#UQ{5UxyW@QAYlpuOIjWw2Wse8xw34Vry8*WH_KO6N5QnVwA=R7LF6h_Z-=oe zNAtQUIpA=jj$fiQiJ#nT0xr5eF7_Af3+Nf0SwSu&TGNim zMrT)A^8_e0kB1J-t31JDtE#3fBnO-e>6q&5+Gs>??^E-;(c|h9w(6m%4vOW$S3n6F z9a1TX%0^~8Bw}jb!*R&wKo~{Cuc=$Rg91?v<;3y`(=*EYXFcl}WYx0iXT0ES$~@Pa zBG+^6HqjouON+59XF-Eug=epduLSlfRwR%r&CjRBgQZM~uuU2uy+@qBPON_#c zjeC#g-E|sVz~^6rCeySQa3=W#y!5BAL^LK+O`EK_wKXjGU!bHywis9Inaj;st-4E1 zzU5}G5jNs)YQqcbZfDnqV{##6*?TQ85=onF4w7dpITkMGU_Y96zGJV+Cteh0%3`;? zs9R%_YQKq=6P_Usq9bRrxk4B!A8|CT87Q|`Oz$T~tImrVCuTW5Tzx*Xs7p+S9Yc@~ zsZ~eUpJNXm3!yIfQ^a-5w&Dm&qExxi>^KIYMbX9JcKSqZU^6%moK}lBN3KNslV6}3 zvHr=Xj+}HX10tC-eLG(p~$4I81ai#umq4Jpc9 zL`dM{yV)+S4Bti|#>?dPSD8-BI-5Mt+EI&l++c)YFbgJmHs-BfCq4lXV!a8@F7yk; zZmNYP440vM?+oKsAVz)8`=OVHxW_SLr@el10M;Zjoem33$q_! z`NC{INCbjo61@0eMX~OXVBI_@Tmu#%1?R|fuz#S(9mN5#IRwQSoiK!e(+lXBMFF?D z)~XuM;})s48+nvO99#zOfP3cRmknkywmvtBEYUP80yi7Jo-YSJoL@5<9rqjOeJ=lz3<+kf9Hx{tci{Zt)ix%&$(Bh35gcmohm1juRSGZMMzsK7) z{}u6}^&7qER&Qt3Z>TC?vw^_0)5g+nWuBv`YxO)>UPE+00_Ev~q*Q|4k9aMhJsJNT`dMzJ<9eX*EV*rHv9rf~ItlbU9{O+_CNBwFSZV8kLur;ymF~Fn2<*mqy z%Mgz+0ZNp#6vOegv#Xq%kIJB!Y^$Ehmt=eJLZ6k>8f*>4V7F2*#=B{Z>)f`EVBybJJY(V)v}3&E;oBrn<2Pbh9@30QwFGZ$GKSsumi(HH~T5jLsvD?ppIn$A_p+- z32xR8Rp8B~TagWi_YvSth~e-ilr$5TUR(q$X(Gjw(5zX3PvRG8YiV_G!%drCLKWOV z({J9HIZaq58#=(<2yV2$s}3FZWE`F4Thz_7$mX4L9#$hsxHWSTUde;YbhL}>HjRR= zrZSAg`w1PjQGyMOv7RKF;+!W@D}yk|kgHU|m$BH&!KqVrx>+Z$BoN~3v3FtXwivMo zVXbqXWMk0i02=>~0yLiHxZyS$|ApH4TL??>RFk%P#St{V(OKAQ-?4ffMp-^%b15^y zK14YQb_&7v671{f&P~T|sF9V%BX{96pl@v|T1|?)+{r_LOqwA>F5ORU>21>d13H<~ zoPkO6TrJFX!Dbw)q$f z5CfZsVmRT`y)#>K9Ff=jldOTT0|e!Fo^-M1mR?DVLrKjpcD{E~mX^f&w-Vq(zLBp& z9EWRcU)D+7sr#~;@LS@7oRbX(o6VgX?1K-L4bw&m>$mMhUNm3~X8U7k7zs^mRb*@# zN`dS?Fa!y1W}9m;WV=|$D$2H9D`=}4iM((zb0HtG*|JD0An3l4RIbE;A2o3?mps_2u)$!HpXrOI4sD~fhihhl1dB6A=Hf#b zASW)Q$fGk%d$s7_Q1tL^JMagc8i-qiv}m4%$~7x7+JN|-O|Am(T~H!d(+f+?$PAnP zLvq$a)T@4kQ;#jPs7dUHblI?R@m)Bm@K91jxm9K_{Cw&qc^NyE=}$Sc%~S|n84p4k z@dKa$g1t627X#;;2Ay>_O%FA*DLfQf{eFm?nMEJis=q|QYjWfHqtaIO4wiyk*qP8a z-IYxqb|zYT>P!`PP7)#KYoJPU-Rvmt13VAa*uhx1(C7pM@BYs4BJjhwN$D41S)iPDphUP|eG6Elk%$iB4AwkO8t zJPCY{Ht>%A+VThe)@`lvYC|I{Ox2+zH} z1&E*+As#}Y)+l-BmPxqA>aTw+#fQ&n^*==qra$LjuD;9jtKOB%bG@-(O60(E@CCc5 z3l*m|$;V;XjaLRu^vYnA{Lw>4A4M@!ohjh2iW>L4s#4`RNIqN>o3_{FOmZwrDv$9C zF_)DnQ#1xB@{(ds&Y3RjhJXWXF2}8u2Ya zaq^Vcd5>cepx&Cq0?*)ANim77xBl1&zJPS|4o0zM8rIgkeiZzM^Ot3 z6l*B#b}w)vOe;$Po+wb^tUh`HK5V<<=im<{&z0@6^9}w4P&hdQ$In%7dYg7&(c`>;B9WKMkz zjTdkB#;_oMvQoQ+rlH$#eu6+LI)z2bYe*IN|@mJHYubOT#>YdF-gVEr7eG4ULcY9sF>dgrH zofTfN@}5^=Z0M};Ih*`2i`r+ccUIu^QsWah`rw(Pjw~U?mEBd;B2fi8uZs>Ob2kh^_4Oky5 z>{!wXl^%{7(p}RtJWa8*J{JXvTSh=nSdRocnV5>yR@C145%LuUcOXw_wZNg5OSgF8 z06x4+OKNEBj2H-hJkdnVx*Yr_)`sl{0^9@mqp_%(IDDf92PdH5i$It+z0l2W{vU!3 z2f`NVau3dEFKb1A&WqB(D@~5W8!XyA;_3wE)6yTimcCu)cZ%9&7`6tvMf!B~!zZT6 zu<(Sxsu16Ll-DwjBH8xL-h1Dqv;Ej3rX$5ZcMQ7d8{nI3FNQOI zqoEitZsDI5|N8mL#{0@9`pQy#WvRZhBwRVr?Tp1&mJp=NkwUVY00w!})hS81Jq9_@ zVR5X}>dQ?C<{%T`#Dw7CuUV_b@7(ITR%|_|Gh04L z_T|Q8mhKSaGfQ8k>Zv`-4?xB)zjFtuP|(Xafj0ck2E;Zac9kCc7Gk|vU7a6bC3PO9 zpCw~EW*1y~O*gacFr z^Jm;D+~dzRZL&;0I{kofXT{~Eg02#;<;&dVL~>3Qt49|e!cYQX)YtV z2+f9|feZc$*$sOjO;2Yd@CRZ#DFwnh?qaj(L+XeXPkI`V1g+5+Fnsk&sx<8et~W7) zv3~*|l--vOU7ShCFX!XgFssjq7ti>*oP;r|JX?Yp6<(L=8W2L5*GaFGT!t3P|GbEx zPuz$r_m=??3X(s^pGYZmK5iVrumo!W$Z4B_x&pHVtH)YbX3_IPoGL!gCSi5+c&V50@n$S}2h4B1^F=He*rDF>71eAk zI>c5V1xCe<@X(AoGdsmsnCgS{cpk#zee)&;OVA9!vsLw=B7)fh5sfEE_hXqwuVEe+ z?Z!M_p5j~1=W!Kg>}wG;UPQfcZbocX#5|sjSWMPuy(-PwU(wH2`uPR@{EU7!!z=0$ zjmCMKGK*fttSZ`xS%vS}N%Cwolh0$S@zsbL74+`gHDZST?=?Ocsxiq|n4DSk64kgv zuW>xDaiX$-dg6D!6s}Py?OU7hFgo!4eY@JE_ienda3Zj(CX$nW+%3Jx3NW>ceY2rZ zR^yuu_PHX@rs&jqjClw}TpMP=+MD4Nf_BP5LJE5emxvlaK!AP? zKO2wNicspx@P@>&;>Tstj!tp&Bpfa3bh}ju5UX3KM;8?xMr-9Ao7Oq9I{9fpM+*b zj+ml#hA0z|{$EM_BizhfBk`XB5ZlM2bQ0f%kN<$gTR7F4brNR>_$Mfy(>HsYe_BJt zjdA3}ty4BG6`YPfBXt~x!x*Uu%Kr8C|A?|<(ca#a9e@S3PTAP*LzI2`_5TOTeg%cX zl>Gw#&?$QhKK=vB{yV4IFq*c92wg+dR{r@tXc{%W51RgQz7IkF_`h|7mR36M45A6} zKpS>si(~2r=vA(}!E0s*foy)_b+eOg2wvylItm2?$hs31LLn{dEO}PLt^Qp(I0cPj z>u2dco7ozyHy+Qng@6raK^&$ja*D=m7r3mcR7_2*0w)3WEfaT`MW#AM*!$_eZ#d46 z##{-$T0U=g_s&nME04fH;%ckyso!JN3gnRl2A7-=01#ODDw?zNZr+^W%usXMFrOou zGr;i`%%S!xCUB1~Wfa;V_Fu$41~oeBJmOHtSE4CHoh`xE;NR`=PouT>7#TZ=H)ck+ zqZ+Suxe&jI&6>lxDX~(CWqns!ZbDKt%N z@*$wZvmvRLm&<`Gv1wcd_TKFjO?Q3RUAXfclGoQtrilr$4_N-gAgkSb=>8UhARGFj(7a z2r;<(Lm7{9SgzBxFv6}|{iF_&a#coUi@Le5`h=1cLcJZBg3+H(JV`2^WO~#C#k)&? zLqk#w>^T1FZK#t!41(*R<)I#@cdj+LdJH>=92o4sg){OMm_2rm<4bAK)RU7n_2iJs zGOYCG+-8=}7{wdeCJn%j?|D6#Owa5MSW=O3#^{>Q@*tFh4s&g;zmm(ubpg8n zamd7drCq*!7zN7p&n>4XH%oqruBSC)V8cRje~#(gbMVbD^DX)Ka|>K7h$_?SM;!AS z-maK$G!!7}LqtI(%+xh-(M1x4m*;Q5dy#A4+Ow;&o?0O-x`-xJo`LiYf-lSC(f3G= z-802_2=}363*kOkWlJ;{@4v~#^%OVLbcM<(laUrG94guGdrLy?pc^v?LjnsBT>V_c z3A>PG<3_~`wkG+xl8V3dsA%^nv|Dd6H$FkWR=)7igq_u-9&-zv{@otHCC6qL~23~DX(xs%udN+fpl zxsvwtD%H9J(zya&t#=0HVt+ywcy@(|Hm%FIEX8-H?x@qvluywKS{|b`J$^TP6?+!( zyq?Y`&)7OB0@zEkY2y8QDsmQC;9LtD`&M?#Hz2;?As_)vJIY%N*vC9-7ozk<(N_IS zd~orc)Pr?@6TYz6B?A&ojRHI>$XCf$7>8B;4(QbPw0qpp=Q^n!{jp9!1G`O`3h6eE z+O(#ESZ|W=?#=^)A0^k3x9m1{>6hp-`v*>FxEMw05BOOvi8OihaGr?C=*T6tV!kuc z&3a+vUZ%lJ=?ilk!G!T2dx`@~2nmC4K})$A*KHBo9RV%4w&iWc`i%!o25Dw|==2>K zw8G;GuUfTLlcGHvlY49VVbA_+=K5}iZ;&X;httNhs0wCgsPxCEsoUY`fgrz9&p^vwW>0VKhc#?R##PMc?d?fEC)}SO=OJV829E za06}Xun%F?_`24Z8Ti5$1S!l>EIly$MRGFyO5y6}WnE@p=p49=%3 zGi`s($3>?F_j2dq>L1J42WQX}vq(Oan?JeHc#Tjs(iHBZB)MP`|$`2SCVzfQtzM$TTAQu<>74GED!|^=G%LMY` z>K;Jsx`#q6!F^$J!!qHB=Iq)XME|Ii=$|@25z?PXer-9hB^R~99&#X(3k%rht-RxS zMCN|C*Ahv!ax)_5=wy_E%XjcjoQziUjT_so4MLSr7lKX%NpHrA7QB*E; zPV}1pRd8B>x;Nvf;sR9oEJVHZ7II&Is|~0(;c5K9HEY<}>HzL+)smK@`C7%_NKdQe zToigjh+I36bV@2RVTPDJlgh0ATH^*1BDeuqcwW?af<2J(MDPTq&`gmyPjD}If`Twp zFya>&lOoO(oEC1D?*>aC_YboJk841{4%|rW!1!{D#ty6<#g_GkKQatIh-IHyaQi_t z!Dj8!E_-x|$6myv8RRQ~E$N-~r%+Ni{5SPZ+N>qf#X=tV6nVskAE6~zDlVD~YgdA4 zeJ-t;9EXoM0MY4La5U`04*sH&$5y=rt;sCy!rVXrx??b|#nHu9#f^xZ7oVHpgbU`g zu3?MX-R#A1DKcxW&rQLvAxQ2>pzI=r6CrmakOC&*4h@_D_m3CR4pZ%O7=NgizfZ&AAr3#OJ7kDT%Ww0Xni4v~r+)Enam_GSzxxiLEovwSp5d&P~?&3dcv~ zmpK1;4w+yy6Z@Pu7HSU22JJ=k$(>Yww6c~IAy7uD8LiGu0KZe8Yp0Wu@|K$|#Io3% zEg9Q~Es?TbgJ%&uEKov!*}v}4s451sKzzH|Rp>Jk1ag57TRasO#A@O`EJtqk3#@S- zYzT>4ut_h&R!~7(!LEs*(mSy*(g99gwODm6^aOv!m(sIfjpKazZD4iJf%%47m;3-D zuH#)W(1+N4UH zK3%PpO~S2b*+`Nqj74H0hw2^2TEQgav=$`R3(AWr0Os*1B4s%lz3QM9o@nf+mZn+| zfo6Eec`a;t8x=`b3R=FR*fXbFPqlRH%XwnhspuxK|Ai>g(#p&50%qks+H19L{2k4~ zig2nq4|mBYaOy5RRb*kWd`1ux08MwXFP*ivd{y8+RdlgeSAT+ha_Inhkp+B3x983F za(vepkF70s)C$lM8lnY7VRsi&#uF2Aj+u?8`&8cyEU88qE>9Qaxq zwfN{K;={owhlGMN#R=Df$<;?swP4#g)#86bJ=IK`BV-Z_faxw}PAFRhoS6c_Ij+^3 z`f&>dqMsP8#GGou|5&)K{wIvwD-FTvm#w_PqoHCCuBWN?3wv?(5pmJW(D^ZlII#-% zo^oEKZBQHO1`sSVf@Y%)I792Pja*X?TvzvZpn6bn3%Ic?gQ2~g1MN>iRh$dftT+6U z2>3Xh>F^)=-{21nrUO10@@_T-q>mN-T$B<84X2_2w{|HCj5Ab#`l^r04dO`HrEC0Ye0qxe8rj3 z$3DSHBjYHYmS3dZEfnoRFlSFYENp|vFkj9vid=f?>aYW zEvJ4GnsGdY6+UEB!WcZvIg(B9lfCOiXp>S3aFqlDz6Kn|*O{={!cqk4vaJxC=`U|U zF~BD>==Zg8tfl8A*{VD8oPT1uH%)tnaffO-~B22CnnL8i^Vx8 z9e}BJZYo~A;#qE{gj|QILk9o4Y?Yk%41_e zdNt5*BXd{H)MW(w6tn`qr?T(kd!%2t#a=lQX9!oL*b%!oP*7*7up>XOA!`JtiLczVs{7w^Mo||7z(F3w(4vYr6&W^>YY}! z)u7z!_(&WD^O(v{)pv1!m4Z(jeI7JqBXwZaiO10vB~JRZyYgTK3e4PO#A{Q}gc=4@ zY9oBW(oz4j9te-BHV~~s76qY%ogD&us@cy6Pa~B?4$;k!`TLfUBYa%HMh=Bs$1abd zp&+}H#~}K`P(-7~prs#vqTp@>Y!yvq@YG`*u$qc?h<0(PDyFL7cS8>YvkM>UWDV_` z>%BPh(rKbon0-QH(vCf;^6Vqn`9f*{)n`$qT-}Y|0^Bfcg1JQi zMwY%AHI!~N;w(1_ICNaulN<$ewe`iBqlGnIwGev1&$`(+LE0J}r-4vR z8;hQmom-*2URIo$Bs>m12sf@tP1w#0SmmYfX+%BUo`6F~BZg~@;KisN44r0ApV!-w zR$>je!5_0v1 z2)ewB*WI7ks_KwX!k&n?bIkgyUjtTfiS=nPRJD%97_Dk`YTgY{Bn@So)i>K|+*6>R zB_9A{I9GDtTyN^RxMCBO{R)bGd^ps^9ojB-Q^`vNz`3I&8trkhg?%Bc(;)aucgXcF z_6LU6*7TRUW_Z@lqKK`C@W12C#T4}CBTHJX*Q8F(M$?aUy-6U`8s-+~26YGJtLKP14M5_B}E$9VtLsX38oaP-aAtYs_N8i|I)zPbLc0~5EhPpK(2;2~x} zb7!mVr~8RG-$x{!WVYIN<*e^1&RS}~wc-|}7=#;byBd(-r+5h}c|$Twx2zecI=AHI z*>>5BrEiwnb{!Dm5G2jHMd}*sb5^Z=P%7OraLqEgbgTEa#fWxY>*m{^Q8&RpgbL#HqjE#jHUoO>0t4n^cnckp+@zZ=1clkN0!Mn%}XL1HMMW9qgpOi z+{{c!!?hn@H(cxzaOuKMnAMZuHZLG;@e9p~#+F^qMQ|o|G6xt?e;4y0o-6gb%y4XEk)D>u?ZI}+sX?o|R z3O=!bD>mw5bq`SQ(a9JW1jzRyU!(El)*uKk*f}56yF0VzSdC(0f!B>$O)F&JfFq3hYGSK=cowIs%EJ+ZoX6l z-Gu-CZ&Ln)Gc!*%O7u#4DxB2W+&ArEq`~635f^&D$N3k@aG{F_H0ur2Hp)$L>eS8P z8(G;fO}K~G%)P_d1@IXBwdET08ABc14{Sk;g=Z~5Ry3Q;D~=>l727FVGq2zoCL;ss zkQhr!ut1~p`_aAnm`6}6<*GMQD7Y3(1u&zB&ahMd(zvTDX4>1-cb7xuY?4~hj zsoS4_kxd8ul5TMNB>#tuhnmRJz<-6$++lx%Pl25O5B>(l9|Z3OoGp5JVeZQC*a3r4%=-sLgT>oTk>^SIU}_^3dAoU4o}rWE`uz% z8KID^>ID>IJ|x+yeum)7S}fR8!=^c@wu&=&ET#a{u;n}(jZ77njbcIPf& z%ZT&G@5Ye61=i0HY{PdradYoPRtAa152$?>mV_h>?GTG-nyF-bT)P`p7?k~p8ekFI z@f}OwuV*wWLoym6g0&g?=cL+2t?&uJp)Si!TW*P8p?r0$Brp25`Lo;4BaU0S;9NzmT0cnn044 zlbXNIRY(a;Kf3PVmzT9H21UiF>;1ntIpW#GOZTE41!&sJ55 zI$BzTPvFm~<`x$GF@4uEOesWHHQK75=k=UwJ~62VK(ywNk}h0mb~m^D&G6gPt-lk8 zo{ZlKRQJ?U?8hxUE~=+CaH?4s1BL1FCjk6^p{YedA29R(N{>?st7omJ;LGwS5NqqC zh?hp-;F3*3%mN}rVGiL|C&!qUNz?Yl+c~)j%kT$JCC_a6vZb-*e3*Xbprk*(hKOr8 zq4OSmYdME1AH2+kXCon{gS)&TAOu5&u)i1nlpA1;4=Ng=W!2QX18kF&v*eUGH?oYe6!!78>@k46Fc zVXJht2e&fmKqy|T!@oJHDZYYkVVOVYQP}SPG@-iDzx1be*+loyxK#Rx&3KH~KdRQa zA*Y-$pMYk_OneW1`Ue|?RNkzJX8dt|?`HgpzR_S9sw|;pg&L2x8Tc+RCA&t$F68`*6}*{8&hFw5(2M<4_<{ckxp=R^i!| zJHgnjGeNv7f8F_Up?|$9eQxrb2f*JXo<(>Sr%#XE0Of%pe)DandOu9Z)#*_b#vpB?Ax8WQV8LGbZU9-hv;b z?MUStp6tkW?S>;m23 zZdp3hEvb0P!PD(4VuZQnFnxDg(gK|y7t90le9p6M&C09ZM-uqjRDm(-%kXGl*!=KQT)8CV$v-bRgxyzafg!#&7^_QO!AvYlez5|tF-KzYLcdC z1WMoz+W5ntD5VidSOSgY1a=Q_O4B}abvtw@;(p=JO~<|nkP->qFEH(Xf!?RL7Sd}C zzrcvQ3-IPHV0G3(@?#+Ru-Lyg7-g%jre)+N{u=$pShyL+6QDvGUZ1~J%PD>)w;-Q* zzw{~WN3Uf=jyoj9D1M0*#11W&KxaJx7KVg?*!YX7TCDhm21L*jQLJOhG8D8d5BP>k z^=7K`_iw2^J!Nu?sYz;AGxo|uq&oA<2BWc3IEhy=CsuU`qdND3uQdo(`irB;KHpF! ziTDj@@(oo6AcSay%n-K{R5(%wTr2#5qhC~q*nv*is9H#V(&IJ^IN1eT z$i|O*oP=uZuIkY8q{+`jm=j|dST`~Upw8uHm(zet_zg6afzs%1#m(-013{_SdRT(D zy%CbygB{>7x$CXhWXC2mR~YUq>ehTU#b|EH3JMBY!jEb7CYNJyx(d%tAptB-Gln2` zCCoAlyHJYCLSzvhZz#af2wU75_6vl8n`mS)WSRPSoRecYx^-j&JsPTEqu-5eW2)MO zBy8@4Y}(^h@i075EAi5~D7aufXHrbkIrBAY!c)|oMwTi!Y{IY^FHCiJGG zY4SlVm7pZb$TJ~#EDg?=8*L$?*f=yaK4J1`_+IjOALMbfP9B4#O z-(C4{wH%la<>EC)2{Dz24Hc*`zneE2Dj2wy_{3s5;x+mbsma@^wZ3?2sV|Fq!zRDM z4_~&bHJ}+b)ka@pKPDnNxPqeo1+@p5K%pty6NqmhK5csw+3El6M#@|o%Ra^pjB<$W z2Ooy>ehRzm3J(m09qs*V`8tjcMIS<$;Hy9adj&1y9(USTr+f`lq5HM=zUC<;G-x@f)VTwui=!2 zeKebHr1x44Q14kqYeBOGHC>i3K!q8J*v3d_IWv*>qG~_7M`}NgcH9#5M2WX-6L1hk zy%wk=s!hmE<{GxDUlA?13)uVEAqWJHHj*B7ab_n)Nj>n|O&UOj*tuE}2hu5EzeD~I zNN8|DW4sBsD5%OL-bnDukd8v8F7 z8<6o$+Bed_ZS+Sz(*GmzUOaM4zM0E?`OI-%7@T&VRK{-tEz-tK%mxErxDJm&%Zse0 zV`)&iJ8Odaov)}}#(U>*Uz^XqehC?s0yxZ_3Qn&UZgks1m}o;9*ds)sG@j~k+SA}` zYr%X*%2!$q%J5KTyL<$D>DPaNiS!v02MRx*yo(p9i_$p$U;<0WP;93lvB6lMNXuYs zG(GUZV>MKmF(P~{tQd=8+qoLWqQBd|1&Ac{&$iP~3jL(h521QCp?WrjV52Z%#D0=uiAb{x!0R|A{`t|BP$ke!YV3Opa5wQR4QqShVV+Tk#ubHq_Kdw;_Zj-N5f6ebvngquSX(I(g;W>A3=N@HF^whOe+LX~n9m*kayBbD%3P-olLF2_p3@-hGP(DIqfd zZZxtyxRDpJ3h%l1(6{6LwZqxI4ZREhL@TU-^S+q5815F)6o}Tjo_7oO32C2QxgC}# z6o-G75~Cf<$SNy2;AZQ2h7@@0wnx^E$JK07O^+6(JrYX3ru(qNMotg*5OV|87b}yw zvzBw2shf;=9|N4qTrEO8M{JQnp8)zF+1QK6sSWcuGl|EU3?3&{<8cOa9!H3RX5CDc zYDudN_-E1?UkhCghr0C;@c{D+aAGTzv)-Yt79M+Jark;b9=Q^}$a@VaMgWqpw zm$1-lgq_z7xPq?Zhaur^q`}(FtEzWUF6BLkz5I(2`((Gb?!{L)_ zR@9rR5^+cyqlZ&2AAJg^5muhj5b;R8LR<6X-F z?5i^_eE?yQQ5@wrUur_gH;q4upr%XpNvw0A)(yd$EA^yqILdd~fRxH}g40&c!>Tg} z+p~KQm4zcyoR$VlaP1BIcJ){xdxy@eH$sP`&QjS!8~uipJm+#b2FQw|oTAC49=n$Q zInMAH7c4mHl>G!$du4%}fS73l?#9S)b2j$o!$25Wc5I>jo`G^;3W^61@Z!bDvk;ZT zymWpX1ni^OCWt<@GSyVZgA;;(3hzYbD43VlD?jogZwjU_{FPsU0l5U$JY*uH%*VS9 z9zds)LFOoNB1cdmJB~TRAB-3ZffZK5ZjODKwqVeRp4&` zUzHn>LH@A8q>GVYGM_4+}?n9?h^Q#rT}ZeQsm3Ae$s9J~{@uKAoR z<}(6h3;c*}WW1!tj!fNP*LnbN~aWeqe$uVB~N*1%fQl zh%zvlBm4hWEgAh?ui9f^t5D7Gk{#b)t(v$Q4Wj!WFlBn55_yN45Xt)+LIlncgj2H3 z8=+2JO8l^kS}eEgO~!GAGT>^5caA!!vCR`Go7%M3q5&iX4gmsJ5(w_+R&A2vIh(zW zkV@$TaBQgnG%22=IXDG79%j-`nn}dGMj#qYF6K*p?oxU;j%HXHUBTYUnm7+D+{iHx z<#>4{;a)xF`zehTM+{==n~>-$TUGbd1`ylbbw9li-*@kRaU52g+!8co4$670>=N3* zt*LQJ^5s4P{@Ai@2VNpXSY7)FJ3j%G8k$HkfW)Sw1(^Tr&=nNKnx<(zY9|VK5PAt? zq&9Jc&JCSEUWGK3VxUwyz4zIp4ZyUsN0JxH^XE{w&*1}JgU^zlCH4z7@f|EfWI7H% zN)QpiTn@u#@!Hw(V&tHB$RwHwn=bTt@>sl$<+J`}(E!HAVZX z*1l$FU+c859PR5N?JH0FTB3a|&7#2}u=i4gH=gYvoX`KY(F_AW4{F?5IH)J_Kg1qQP4HBpo(N3ma;fW3Udlc$^qu|#&1u}L80SeXfcqx zmSGc!JTp!ts!^K?nT!!z9wzWONb0l+6Hv#|2~r)m5B)EUAZ)Tb6ysO}0AN?d_3>09 z;F4y{=tA|wl0)=&`(jKYeAMs{nw0q1%|GbGs(vVCQ4WJVmFDJlnsUMrDT^{1@Zv@m zWikk6pgnaPP4DfLvW;e5eKZv;>#%?Yrd+(Nwp?I>Zl@00sty62+FIbE71CBk3?eHj z0mV(F;%paCsb%0TWq;z|93Edme$BtBS=%X+J%w*@d%QB%f%|cg(E}yxyI}dD0X&5a zKqobUhDXQ?&79S^ZPsVbl-@Jv6|D#$ji8zHIuTH>V>{RecwJb5csL(e9+*$}IrNrE z2Sf|WSG%a1nAws#boF`s*ratJy+u%TXbONc<%(;!AqEleB7(NWYl>@h_fvVL8%VKL z-Gy*TRb{;W?F4X_1^+BTe;2Vo{U(qN^8ToYcf= z7#NJzjU|r&PRSKqXW?1MFodu#(;k@Y0tVjDxumMuT;psS9`nVA^p(R@=QX{#0sIG7 z@q-SFi#=0GJT@(x12Z~^t#q@uH4rdh?Is~prM)I@@oLq+u36mF;*`1_C-*- zL)VM2F?%3)CLYvb-OooR4*eUt`b#>*n)g#X=#AH@kloVI2#NR@j}ID_(YX1eBb7L$ zghqrVU_xqKS3ka(V&E5%9rp9}HLVcBVn^z(N+*i;4N8H=MM^#<>-;>NF znS{U@Bx*p!s32HCqXA7E&|sJll))g75H(<1NMocm#d82Hfr&GNnH#H_D*TpB^Xe9PcfiI%Ia1{I^)#D$=8 zH7r+kqGRF0Jy+v-(uOLljASxS$5bJYOL`-tA%78NDMZI|ovVV)OVUmAw#uGw?1 zrkH0mNRX|2kFWR?eQ(m_P9#n4q<@sAC=q>T`&hpF8f%?QYQ*V@3D}vhuqYyRDLIF}KpI$T?VrUbA#; zyLHj={UCKF$6_EiteD{rTk4ip^u}~frES{A-RAB=g167-V9PJ2-BvBD$~w#}F-uod z+j(mE_s5YTmkubwI*9DnT1nat>lu}J4T%}n*bW*>S&O8s;lwAV3OTWEguYb7HuXXfBOgN(8Dg5Vrz=Js#x30*WawBu^#L72#0$q_^60Y32g0)Wd z<^ksk@7qmd#fR(KJAz9~+zxZPxOe5q&fgoIzoS9kH`n|@L~@Sl4>5A)+NDNzSNYN) zMa36Sf0!Wk4o!B%=T84l>RpIV{QBt#aqRf8yk9XrntFdg-p5S;cIth-ybqhswOpIH zoLSn+dt&8MZ1&&8h1*g*b?}k%a5C@f#Zcr<&iU%%a+lolm#}Dzp~A*jT2Y%gCZ&Xr z2V~R~os=ib{~4pO9P9RD-am6XiMSl9E%xYYgDg8h1nfVa|C88hFnED-T z2#Is|hv}Vz-VeySZE)7R`?8vne2Z*D_6bS|v2mrfhV(Zu zsLc5iJc{6&_)XQ;<$vJ;eYJ1%TU9UZ7tIQetuz69^*lX`^7r!6;94jM_<-+@B(Hta zwuVV<4w*P~lt6hdAG^8vh+M~{tOa~`n!e@Wcp7Vp-U~K0rd5N`A2If8;op&Hetm$y z(WY+mb!1qp!R=2NdZqQ?QD#sNDvk(Ak|%^<@BPNz2vSHzl7w;4`U;68Ne6(*dL_mn z$Z(oD--|eaqr&wh#XrX(Oq5bN3j2%Iu?ecOZY8AtlG;PUVgKjT^aw+5 z`tP*08ULk<;d*K5zK-bJ#Jp;%x$i!yTF$IVed@=aPy?DQ;C?9pNy`f*wT;G3bSqyB z(XGjbFe0eD(QtDApk++!McU4eO6xhq5bVeLzShiN7W(s@PXt8*sY+t1q_dvyQA3Qm2@0aPqxkM^ zyn`r_wC+EQRs*w<+mkdDShjpGmkB7RbyA#DzlRA1Q!ZS#+yNOGFO1K~#yg5pFKO^eV&`~C+L(IT z#f$W?Mj0-VP}B%Gt%A2z5NTD`PZ6wCTIGxmkv00atluoA=(YlHk61p&HS2lxUdsCt za@uA(w#O!8?)+-p)o!9eoUr~=@SKf;`PMHfk+LFL#)xQnUPC(gKatEuKp2Db6CY~c z5LxR6=67*^WU;GxZf-h~I|{zN)OPN}^$@t8bE&D#2wRO1(0gI~3 zcfh>_>)hfy=-3P#M`i}^!-#ThVzz7b5FBi#C(^W?ZGhar&<00)+e8k1Vj700p3II! zrfeGcT8ocBvfYa8&Yx>NL-z%*2f-J&432dlv7&L6R?6z_G2hXr1lOTsb_FvrH!U+h zxz(9K&B1&fUAIJ{j9kVDE3u6H#b4sy=k@J3Sa(TjYsOO2n@KI7pu@%7C_Sx4Ip}b6 zMK+_?oR@khvQA>f?#K;^Z9cL(y`PeV#k$xGi<_|d=8s(bC^7K!xjZGFcJnvt-wdF7 zq=|LE12e>k0iJqy1a$>td&GFox|vJY5@WwH*{Y_ULKJNawJPh}$7$)Fyg<{FsIQp5 zts>fo0>oa2Z8d%S@sw1mg||Yg(8lM6lRm7`uK}XXTA|*~)aVoBZ7Fa3_M6#Rw@Q5X zMR&IqJ2O!@K9*EII957#ofbCeAIUa(P>~l6DsuSeicE0f`o%>CwD2XA=>0$ojpDa; zMA5#`8xiBxhylgj*0S&;E%axks%62ZR{;;+rETcut#$XLf@zCZ4cA`St?dkSv)qH- z8V$vyt*A|VA=K`8V5p}dtG(A%BU(rsv2t0s_!d171R|#usi><} z6f)p-9C3&mDp5|60E%aCUHMG#5 zp*Vkoz4Nti|BOYT-xjoH;QhNoFXf*b%cbyK7rn3>RhbqNI+$vFeQAl&9j!g0Y`(=K zk8hI}?IOC%*UiT`V%e-%+!9-bZo^3SW_)=vAS)SQ`n!WC5=O?e%;$9soGU z?`bXcE93_7J?_Vrj$#Wl)z9Y)JgGx!Au}TU$Gx)jBjZGWd;TCciM&LcEL~ML}tp7gimrY>_gWfqTws zSFp<+yPFqdSm5N>j9H8(FL2={zV5ZC5q38>bw5tP+R3fPR5Ui32L&8LB`!K9-G}l`05vFV-emeFj27k~&~9`oFPrd|F&_!}-mz@@@sH>z z+*o?>AV-1gy0*FgrpxB{jNRq#jgaU(2+c^`->C^N9mamV)Pbh9E z=+epYbMPH1PZQ(rC)4#IJQdK#v4dS(y6h^)LWZhlB=J69XAfi_B@rH?b*Y> z5joi&KmQi;Zv+2A#5F9a-z0~NDSxyN7pK)4J@+7Ne3FH4C~hcN45$-xy@un377_yV zxN@F5b=Oxe^+a17Y~=CFJ4;=TpgYl7nvoM(?d~ic>*y>Um(y8#Sx&I6*c>Vun%gBQ z4s_qFD`|R-T~AGe{Zc6Gxx*}uE^?WU+S*UaL6*#&4BISof4OipWS_|*f~|cM(hIc1THoinSr^kKzv1K zxvLq_&y0p+i{d$EM}ZwodR_WK$qIiy^>&k?7!SJ7QY8$@B6aIndAFli#IbH}BLf9Mo1i zfhd++Kark3CLxib@|Ttt9pjLQgG&y^3h2@pUy`A+T$C&)x?YuI2Rf;X0Wo`weFA5q z@+*}ZrAls1Mc$tRW&9`0Y40mX4!rWu8ufoA+frjpE}4n-)jwI(3j>Sl(`~mt{8@ja zq`bU;w!CLmdGnNag_;hu?S?S}P;X4?-SGsv&MqMoLw*OL5cjI6S-tiFiI6BZIG044 zy1ml_$lsf)&ExGKrYjGz&Q4GnW+q+IYWN9XOM02)_`NDNhgQi;F03_NMqcx2V9GUS#)`uas}>3 zPmdI%OfuQJrh2e8*3pe>Ru$L2CFjHaw(3{W8?o!5G$plpT&yA4`iO{%&kT zP|a-hC$ydI+B2@QCtbQ*d*RdIp9|yX*FEJ-gZQ;i`tr1q+6(QgoE-Y1jr+Vt-o0Mb z5NW&H>p!w$-YRqzd%Qkt1#r+-iLb{PL9j8bsLks;yrO6oI3?XHCz0AEKxT&5^yMe~ zy-?E`z-aooYZMW)A2>R}y^bNzMM`V*BoOaeORAV>`<$I44oK`m0rhHiBz)3Iu?i;V zldc!|yH0Ll1IG9#(~Jed?sOfeH%C{ET!EmY$FXWSV$JJIjH4?`R!Kl&=Cz0GD2xu9)(jo z;5hz{w9S7s(DarPFsKP6@e7YGL9K>4$!BJ?L4DwKJ+?T_$g1DY-F-Z*(yD;-gr)(c zB|0gJAS8batVwp9n%C2%1gw)kS4KLbF=t;PX`d@ZTn|z~$Kgs#_5AE- zKU0b$O!bMKt-1LvL(2Td@#sV1QuYPmxm)wnT87VD~x|$sGt(Fgk1)P~oK(qQ2s6(Yn^i`E;EP|D1=J+-pYfsaM1?FU4=xN=MA!Wvg zi%;!yC8$7xD5YgXru0+X-5F93>hs#;{^)uM?(zkG!sIU6cR44gg@I^jn1nj_M{g?# zo*KC-H!x=yg&*K#j^gLZk*la}7)2ild|c4ti90*ND)PR*;w3XGy^AZG+pVA8AS~f# zUeOE9tv@J~e8xL)mwOM%j`7$Y)JVd!8ubf<>y|t8^UYQDN{ObxdZY~M3O-Q{i91jp zdGDZ*a8YJiRUa`9d#CQb9G!t{PyidnCfcXha>mwc!5PVqg^Ej}$gFx(r6wCmMbjun z(wPvB_(S-WrGnPC`^dQm<;(e^r+XK=-@!9yA{TCDAsA!2GUS&YK~3N=6GjwYeXP*n zmmB{UpB6mxH{+avNxDfAe=m6Ev~iBC%~Dr?WPHzHJz9Iw29Fe^=BMxUd=%pada2r~ zXGnw{6)BY)-%}mdo2)NXg#~Gyk7BLw+Ruk-Auh5YRfmIZh0}X@T=7wJ!h+Y;LUp8U zPKfob7P^gR?U^pNJxfh`EmT2>ICz4av)6$Zx}2bTS&GrJ(cDm+ETO_TZe(JYEVLru zaz*aV)z*vsVW8>H6!|(&QR9==Vc1+N|I6CWa;W>h*iVTVP|U9=2D?FuxqDwBg0$!_ zx@CZj!|^ZSbq-zL3EIxpb+-myCDJ|9dm*Kz&GPoH{FsZ!^6~)6kp~zv7+Q2j zIi0#FU`5RAqFr5Og3If$@Cub^$c&WbM$0_W$Xk?iTb+5;jJinSjMCDZjL*!^tivLi z5+`bbInE1RrQY_H$0&Pkf>YuYIy_o7=2^6!9RatybhdEa!<;mx==ex79*MQDf$~u7%|Sol|LIWqsdz8g7=? zPq$Z8rS;hlNE}&QKi`}#Ybf#dvGPXD4nHQ_u?$(qXTKNpNZ0QZdtI<~0p%os&PhrKN4WM8xa} zA<#|Gw|pT?EiHQ|NZf~raTwyhW{*(ozOUiesfJ%DN#-ZsPOW{q$Pq83vEKpXsHP)6 z4*t+6Xg+0s?tIH7xvVCC>JTiNtKA~qusYv@Bn78$f$4M@=QRAys$$%0x-ukyRS3$k%&Gp*}^S-1nE}3B5X0Dg3Zr;x4 z4fWp#9%UZxlw8&~;&KQ!*Y6mV;LH69&Ou^;#??+K&zjvIem#$pvCYmnlafo#^?P`m zEVH}Px{w6sdQmcaF~FaRfM(^Wp#90W)0?CfZM<2Z@`(I0`odehnOW0&vG=F3PfDu{ z*z9VyBfO5kOtP99WEyKLZ*N}LyO*h<4@cqsC4C6hqoDYdBq+J(w0;hLz59dzMS`&} zx!KrPWrgKMZQ#lNLqT7rT~*?3yVp2#qBhQpbXwnwG^OvQt^bAAEUv6={+8XEY}1)c z6#Nz|E{D~fdhhV~jf3WT`N9k-j4D(s)Ul7|^1PRV;T%O#o|Jy6M zJFTb4Aqu$@`Bfw!TE5&=TBGXzZh+>KT7c~&_3W3d#$isn)-PCFW<{fUAn=FuWA9$@ z#*H_cC&h>@cru}1#}@co-5WfarjHMvOb2%0cLx~-pbe+^;iVee!FHESbhn?7@g zQtK4$ux>_bXwF(5$uwuxQxPp)C@odGOxIXT*?{_*lt+^kBQ0x`Y4EQkq%nudbCul~ zF)?FifndG{RhIX>r`BFs6-E0F4K~agc#wbAceV)Io6F2iszQ7(q=xhs<89EyGNC++V|uFlPOlZCyASOg)t>so>rW%Pj1jEqYnlMYXDJe=pv~= zBv#1^rrH&>{6tQH@%H-qpmM&NYaKfQG46={E5UMo9i3L#dXaHKu(wnTicM(X)D>C? z%^=(YG?cQL#;21C#YYm{dtczx5?!wpi;jlUAgZqg#HAZw3HEyKtqr}WX9P}7G8WkJ zo{WGLV(HbXhV|)~{s1`})0xCtXdK-aVk^Ip-vkKMtAKoxmRh&aOi?h+M{Xl_J z8Ci;w3`EK{@p|eNDGH%P|A$YrOOKY9(n;r4*5@|ndK%J`=@$wsgNugs(zxRM#kWg} zrS}X-QDmpU*b%$7qW8+`7jm|V0P|rDL4`up6lRWvCB2CqaUn1suFfn+BtQBMk0goK zRwRn*w>^t$$kc6eAMC83NA7Ct1Ew9iETE#~N_hQpJ~0`!>c^>>(bqrsqbfin6UL%M zk@ZoP-4B@9E*+caNKiX+Jx`FLa@)II(Mg4(X)vJX!oFJT?OL1BEjUE2Yg&r_RD!;h zaidvY>3zw(P}Z-`Q5x$mBRjFO(z3q8)Hll)uy^$bFR%`%;F)95$Eb{~t-z>gmYUSh z5^fizHjWy}B&tuUtj&YUN(L{m!gg?d% z$AvqRT2b{Z4n5-AWBTwl{~UML))H1?#%9t+D<*LH6s?#PT~v_q9|VMtMf|%WzP(zg zfk6s3?SYfOQ$02ERK-)^`Z8k<-i#eadHwzsjF!>JjfZu|K6^49lgXs$uk}el4TblN zKBO*kZCzwlI{#c;ptC`xEy)FLb6u1XUbfre@7%uq7lpOwR#{_ z%ze%c!dq|WJdf~b+Y3{f&83xSBU9P&`KiU%r=5MF{Y9dkU1B_^4{OMTWq!^IT&@Z$ zF#zLfa3zc#38T%r+YY3%WDi}(S5jqv|Gd6V^^fV>E6Q!A{|@_v@L(aqFWt!@fid0C zd_*pt`o^>oTKSIkli#qcjWq(AC|+eNqv1XBQ!jleH_P*zyY`dI`p}-lOe-OQ-(hz( zeQRXmk1kByTOlc}J$$9=zR*2HtDtX+bzWOWWkfmiv?^nE2S>t(sYKstmQ|SkH4)_j zG&=JkR6R5A-j^8(cN5E{L-U*HJevy<#kD?h~`?~lK!`~c0Z|vW>o4SZKMn|Q}x}EG`TBNJ&<@>YP3EXFF6pH zuHi6pluof7lm?%WYQ+PZIcuzWOM%@!ycAZsyvPkqPeOe$7LidYCi2KG{+gApNQKLc z%Cn%bJ}+ftL>`e8YhH?9VyZl}H$Up?GChD#kfGYuR|p!bb{1n9QnQtL-0G22WIqk- z>MbF3xTUh5{H;v30*bk&sI9Jft4}3LD-HIpThUW5Ywf?+bK>3w)^7!% z`Kxo}km6sH8s?1l-@Cfx#O8>&u2NH}Q3-{3y?)6Dj&ldFgA(iX~?;{x$4HMARow4qQ zYIG-$s6~wa=PfDflcc7PeM{cXDm^WprEnNW?sA-w7!YVy0{ZbH+Xt7DmQ>zo|r}%H{A*u_`ZS=^ER+`--S$s8X zNhCeqQ(EWtkpb4Abw6Uwy)D0NTBQbDTY?a)G7i72Vf z)i11z2Fy70n{g_OI;Dj>Y?oWlV!6rIHHS}BV~M+va2m8e``e4V_cmS^B9+# z-d$n`Xnmi!hJ1CP3by4|*6-mQWi3W&kUq9H%2y$!oYx##(o@EN!}w znpGMXLS{hDY1}O>iW`wycYBlDE%HtHadk&sX=QOKuBQDtXsR}(w{X2vd!o~K(oqx7 zDcaXk+uP|o;g~^5knzSm=85vuBTif>r-3V!!-z)|4F?gycU1U_9{Un6o~J$IJAJ7y zH-O7h!u>r#q{GN}gZ6ETF+y&e&7qsjWQcRQWdzf6Az}7`fD0)vmavlskxcrN` z?pBaOxlcZTzhmp;>ttHVZKR+{!SKff5+9Y8q1Njv>JsViKf;rvL2%xaApav43`ftJ_+tkuX`#tjd#+BfyN~3@~f#{bd>d6>q7M``pKw_nz zVNjBUx#WXz9)c^)bxCg})^|By(>A=5m_29tCz-@<%7Vtx zw1P0s?Z0}nzNv;>;Zbn|pwI)QN$E6cpm3vYWnYuV3yz31f}0H00Gg9*11g&6%yuUh zx@idC$)v(vtxTN_*dk7Y?kZs{ZLOGae7wm3TXv(p&I`eg^+BZ$ks^n`L{ad8DuG zr03MLKFa#4`W`%TKxO*I?K_mB@+YNfxAc_~gJWeEu{};3_~0>c=bCGr!&dfdVrY66 z8V{h9c&s_9DMIqqwYoKpcW)EDG}``@m6Oe4F1I;&*pXG$5^={brF$-+(3UYkfb1f8 zVE3#<7G*DPHR$$evPe>3os6gT2fLRQ=*U^USFa|2mfe_tFeOwnK_MDAC1Sr@sJyBm zH4)j2Tnafk1Tq1%7cwg?7xx-y=f-o(wVk{kh1nEF=2I2<(P)WWU1Ow|m$R{$5s^%q z*{zwa*)7A$TZgq|wzjtpD-Z26J}dU0UM#y(uk1>xJE&BJ|8gZ2`rNJV&_2`X(a$x% zrwTf!^_=To*0V|_-1uv&yEL>L<;I?E2@o=3h7R zb|bB#HK+8((7qP8aZE0<2G);fKX$!C`O2r-{V78knSJxbPnX^E`bgz0bOK+=jhG-n zz|WlKKo(~KySWdcZwLi$DgtrK{T$HH&y(aRoWQ_D$25E6Gni&qRymJXS?% zZ0dEsVzygs#o;1^WfELEB!&o4HN=idyo1I)^>Dmy6)`E^qI4A z%Vl`4;BZ-SU&ir+otcx%QQcpY^Jv3T{C+wz&E34`$a_xm-BF%)ETeJ}*I#-b>bm$U za7Jf{m-rh;s~QLOQWEq?b@rsbW1nD^Dba2&7)Rj5AD$QWzctTxg?^lYM-N%t`mmZm zzA8zkaB{!RZa#=K_dry<9V>qifj5mjz8(%Ek8W*xOZs(Ud(l4NK!3u66dRqJHm{O# zQIT}MigI>2_s+9M$Qr}VScmRvxhOtTZ8&eCD2}t=F4m6+cs=%+g-;!|xxp@$#+0CsE4JDCF?b zRyV!Gu`=BW%2IFe>!)2UncVzq+xEKJW3KXqKd%lrCCnO+Qc2U#)ytZBUtH#)f1}Ll zZpX^2qUDKJci==FHwY)np$v|~iuj+wiPrNZxWvc`bX?bxAJ0D14pZzrQ;MQEO+{}# zub~isbopvEI*mLC6AJQ1I##ia#4o0#dbg2AicvuwIO5IY?|R=f&(QH}#y%@*tfXmQF>?OATPv+MN2NJjg^a)V zIR1~#cJobRNcfF4W7cIrP*$9ei}t0Y`gt-HNy;S+^IuY3B&l*%0L9agL#hV{r9vN4 z3hpe&dBVUok#t53aryjmTxoB`$>nI%`8@n7-|I3@K6U?4G+d$LLdGcv*B=|Z-l@G}YY5_lGUH*a^b2%0WC{+`r?9HusR4SpQ~@ysPd z4jHOtgl|1hjqv{_y?qc&m414AKh#OFh0xn+4XPiYx3~4vTSYX644}0TV4TP|T?Bt@%P&vHV=BcrH&LX}t>qn%w34RE^=#^DL;FY`(T6pzy3c zM2;71)YbMLvOl?p{0ewq`3XXZQ zN9>ouf6tbkcaEA!{_#Y&zSfk$%f&Qwz)mndwR`euP?7@!ga6c zIq1f6H+iCE$r-hw>=&KNJo7c#Pwr9si6;(!%-Mz*wbyjo8;Nz-acNxtZd1h)R_xs8 zr?yU(r!#=hrIA%GoSbtL0q5~T2{j$z6Vuo%fvDx%g zsvlCO974!DIO0ppxcK>B5HYT|zZKHPB-`I#@nSW0qiZ{=>QOBe#101LSe3P&0fISU zmq`jiHv^-^ATPE@Isg5P7Py%AYkS_$2&f0^eV=v6=sD!?IrMc4-_q|`hiZFmU%lcc zb{~2S`#S2kk=C|9r{r_%ALf-Cd9gp|J%bkR?}+`7CMo@nYPq@Rto9)HIm*vu@+9Q@ znrcc6VJ?!6+$V!t2vrwkE?W2l`Ne3+mTSab=QX%DEh$zJY3A!1vJ!0K#8x}8GC#2r zv~lxwgaMV7XM~cA;2gai5lu+4BGp)TtUUJt;}&eQNhRl1{R*!5)iZ{{msDAPp0Nq8 z!a`i6B-V6^vyFnYaN3)(tA5<2p4L*=*axOPU}Rwl?kGU}Z*9JV?Uh+a``!9b%%5C> zS&=U`rslB3T$i>pZAN5Re1tOg==KELJlP0_*1F)Nkkq1vzg>i!q5t5{#R*Hm*3ns@ zv=58Ky`}A_^FnJ5G}P`j+fiqZJ&MAPd8@3)$S9f)Ro2^W6amA5kXt5O73X)>8yX-B z+NG~Yr_{7k62N)XD-yset4qodxkkS+%h-%Le#1Nrm@;u_X`<|y5QPd(~xCG*Uo7@Xk@g^N{gqr zWJxG)T(q5n3demhM@ijX*HwON8eT|&WxN&DW#8%QO6zia@ktf9b~9ARz}9!7#dosBcdEsQ z1?}Hjd}q+m=Ne|J6k?71cgkZa)Gf|oKgs*G$j4!MzpYcS7P_6k!4o63Z^O>FG2dT_q>n#J z#?>k#RV8bRT|&Bu|6npIwt{isS(o&0+u`yYlO;m9G&a6I7#pR}ovq(6TQ8ig7X)J$ zVoo2!3{`9-Nwi!N{eXw1^6;Hxw)eB%9}^EHUt+6Oc?Y2@j+nS~!UdDqMfA7$4yje{ z9Glzoh5I^@t3CKbQY6Mkr`(i{^wMtQQ#{Bw#kcUFzViD#ERc|gc$gy(VIF2marfCD zF-@MoZa)`G0x4~ZJYWTUsE~*Evkv)t-#?EgCp$_FPtQD>M|VN_MY1x)`oX0#E*BH> zzOU!~F-jz4CLW!g?fF;!{fvJ*`1d^jI{7z`e{b;5%fGAn_W}Pt;$IK{lssd;fG{KF zT%l_PM6Rog4IvLn_gf9LlPqlDX4 z3BBwQmmKRTF#hzuuXjEI4{_r~Vp`NNqyeu1s?O00pH*z#fZ;Dd45fA=KUnvV$);mu z9xK(;j3I)YKl)hdG;SIi(yiW^(1bK_H$UM41&X}X1uKLPRF|9kivA+c>aDc8Lvnl|#n{G#ilflS zuq%&(JFrY9HIOXFxr!}9iwYG#+%~(CY>?-%qfkdgwjxDGCW_5aq!xhQo_HFH@#3~R z6SvhRxUHTvZIynJ^*o#9K$-5h7OM|Ma66k-D;}vKU~zyqPN#92hz}too5jIt1w}%8k1gn#j9&y%q$Af2EVPP%D2i)dE;Ta^w5DszRR?wDR>U zgH{eIqn1kx%YA)GZLby!n?%YqeKVMpu$f3g?m#<-Nj@?Ee|M7N0)rLmnnboqKz zvY*(|sChiX6GvEXv$(>NyD{Hs{H+WDu>N#R*eGf-bn+LZ{1L4PS_=ebVwgU&LNAo| zou_&T4#oo7n$a%(A(ZWWmh99jKV75P>w5`QeJ4e-^eI*Z5X zqpV+!89Wsl@380mnEC*p2^$8Uo_#o|v~J-9$a;W97O0{EjuSRKk&?$Ef$fPbaz*kZ zi`zw(4g4isP%R+5+UCZ?K2$GDa9P7Rr5KvHhN)VWd1$$^N;Vzbc2-)$pO)gnZ7SLr zA!eX1j=Ftjpz-`ZThUh`V=9?BEt4B5Zn4g5{+gNwktMFk5_jaH$db{)TRbA&W9$L2Dq@Odxhs~0^^(SRq4ymNt4Q_MqgA%EemmGkD+PnegT!u7TfwtED@dTC@F z#R$@OA#i%6o>Vl_Y|OW2Xd9p3z<2zpT6>I%Q?_j$e7qAvk;se#_-BURCxt z7+_epF}I$T87(i%d5Ldd`t1xUmSZDBs4SO{&v0cDvP;tGMbzg;L%L|M^?tToTh!;{ z5+Kp&;ZoeXo{!_eR;$wR8Ikl|!VJN+%^}m}iEoZhd^11s%?Z}I$%Fs_W8gR6{J5x% z`SFHeza|bSoHz4h^HZ~(o_U5ztYY^OpGbVjj!GvX0dmy8PQT2v63%ouQKjIze60J{ zc}g6xgMOBlfLW%b%A;{dAy;Y*XBK%e@H`S(c$hQ)OBaxeJ>vi3w||d_&;gKB?`Lb= zUS)Z{V!ZW3Qbh8tW`2^iQ*PU>8*0>oVJnK=O0EIBmVk9BYxFEKmKG@qm^)~%}az6r(FLfMppg`O66@E}SW*S409O>f%|Z+iyvTG8NQ1FgW~YxnW} z+~to9{^3kyp$Ec;)G*delk5oNVk@?8BF8w-sHaS{$EZ?ml1vx8(P%08)kX zmdC1VXNT@!&pHYy;P+KNIcixyQIBpO|E|s+5;W%8`;XFO`y1GRsJHSq>^o7IwRyN;8WU3pjz|FtpGb zQh+nVPPO5iJbL{e?ZJ8p%SyxJ-ONnaF-JfPeaIB2-gGT=9`&MR28_nhKuHd2T5ea| z87Meq)?$a-8|jDUqW; z+vyx?W??qnGAA=5KF-UgBv#xx`WCbbF}0R4nx#(L9u@2&eHrcHQb2oP785Uiu9;B1;fS>;KU-`e!Hw};=%Yi#}7V=v&%~Pvac_bsm$a*JhArZ0d5nF zTxR7_2!mKPCeH0qwv2p&F~w#uF^NAPG8^VS1u*U^c{g~)WRE>0Q65R zWdEAya}m^`J<{&PIISl#=e)vrC$nN0v!X8ekEaD&EhVAPxuf~W(vpYgWedvUZPU6qQQ#YJpgmovwqW{}LJAW4Hh4`$YCuB6Mo=%6`1 zV6NPz=E{Q9Tp7+7+&P+Oh;YBSysldK-6Ln%bs_x;Dt71 zEXK#l`POyp$u_;UZsaji7^@e0-TQSdyoiTL?UC5+{KDLeUJhJDp>PqSe>8x-&mo_X z?oZfC`bqZ-^wL@E{qIQtd*9WU&Svk!^X0St3HJV3q0i8Z3---`f`8X8?LJkSs5Hd4 z!~YjEg$D5d=RtsyGSzhmMcIes9B`gh*4GB>W>wA?9S6R(Ie8p-T}l;!2m4l@Ert}% zYgq{vzZY1?^OE-w_UG)pRecUpcpsO4`gzebQ!|mojfCrh_}-yF0$R$^=DLo zq})l$dxu$1N^wbVFh6fNZ;?Q)+OQ_pHP=!!GDmiZ2T0Y|*{EvDR*Sq8D;*AVcQU{V z2gU$_*yM^TTB)h-zpo1G0afW24dgF>kQ~TN zI*@?`and@;Iqt|tw)WHoML18`hVWSaik8>Y6L^UDHb;ytz?UhteVq^%&3G$cYAUqO zoHJMl>^W{xnaHv=&z7>DF5vHc^Ml|YFS`4^VucMffEVd#tr(lWZ~uwFiS$U*!!7=w z>Fm*IMv)nnnvWk4KIJm&=hOjrUTA&itjcb&D~tUXOaN|^3v{gkiX`~{-Akky99QZY z8BQcx=$KGIwkxNLoi)ab^$}CsEL~o-ucQK9wGg+xiiA1MPZQ@(Q^Z;ewUH1@#+*RY z&m3Clm%Js;JxW|~*>*?pd1)jT$(sRi1A#FI8Q0=)?>^dFQGFEo9dCw4l+QUxIP+WJQc zZGg^7>d^yIHxpi-@NHF++l**5mkjeL*1v5YTTn=%Xj|f3aTaAGW#1wtLASS8Rz<^- z-2QAEU0-(AaU{SDCC#_R+o^3R;4RqH!spBJ*3L-zshpkaVQ6BCv%i4Duq(isrD+@f z$WsDv3E!6ZQbaJWY3arV+B3t7-eB{gLw1*!2Yp-9BmQl)F|x2FnWRJjz<@t;)Omf| zup8T`O4%Z<&@XHlx~LLRJ?qQ;@wy#PMW*Vo65m$sf%_oYv9A(iW;r{U9Sr+8dGl>9 zLi^`u;1X=p!h%PTn&#WJ^~)rIf4hv~ME~ZfZ--Y+#Cyk^3%4hH+gs0>5jY9YL`9vB zp`~{xNY>>TUZ(-)66B_ljUl zrWmb*5Dj%uH?GtJn}|1{9q+1#`pnZIMjtK76z)&Gofh(-k|VO}&U zMNMp1Xp)s?J8F40Kcyx#5a9ZKc6Xay6FV!Tp{bIq()2xSItI*1J=(oQ-1cMdATPnZ7MB#Z~mS z*kWzNiABa@e&I1c7@8vg@rg34kMdpzRTOMWoLM0x}z+2Dq7%3E? zqI05e(~{fGsF3EO-z>KN%J$j(Qa*2r7ip9o>fwz8cBr*v4YEUhRh1?OL!riButP1B zI*KiCUpjk-I&srKy+e)Sp8M~x8b2J!Y8=c>^@7#SW2E?tb|?=Yp(Kw>rPO}{-}(Ln zr29XM?|c!h{d@S%|LdU5TO&Rjw3(e1UFbFhPYO$Tlc3jrFEa(&{I5goz12Q2S6O$? zRs$0NC{i>hw~30C4DH7phR*_ReuXCnEL;?=pY_;;gd?*leD<0@wx- z)NfCLIL}~I-GYgHGn=*oah8L&BMIUxXtIM)oHuGwv3kYWj_+~Ave=sh1@?an#aVbf z6uG_##W_NhLUEo#MYL3*IEy;Gv{<;n{}ILcs*NN{p*U}nPy1pN=Q$K6FvLKM2p;d1 zKu+MFc!GS~-$8LcU#e%6V#9dohjIQ*D}*?9lJ+VXXOY%xp%wf^#Yfxl-zpp!=O3$6 z^02t?e!~sPc0I~gxAe?t|E)|Y+Kh=?};PVj9>hod`O1nM};XH#TIM0}~ zdd=$7vAcM&A)G51N?siC8%lhGA)K!m0O9;0ssJen=PeEHB#86I0U*wcRoM}c$dVY& zTj97jFa`TCoHq`{a322u3a^93^71f_XvABeNVPL=|3W|pL)6^QfiqpB35KL_Hh zi?D*N#J@QS;B25mB>>L^45T%eQ$vA1}SmJ+p^LE%XWrT78>82jDD#EJ*-o zCBpuH4B#AoLjat^ZU5f@IEOR%&Ln{I#uR|_=6?X->_;Gw1aQ7_0DyDR?7AT6%pf=; zC;Tjl;H;MGo#VKqQK0L62+kz=YYM@6ljHwI1m`P`^EGE7IA2c~Blmd(=QKO<=MkJY zDg@_^0}-5C1i?8MVXz_+g5caD2+l3w5hM|u-#$jwO&c9wfZ+TbQD2DQth{w`gl*d5 z5CrEf*3w%jWZ4!$aNdzZaK6}vZ!YNN+NmR5m_m_SC6!oXqxcA6pmza3*|aN53!k8} zLF~?1c+N58ASpcOhclODd+z>fwx@-E|HVITX|^Yyf4A^&HgU+VTDf)+aF*6t?rDu$ zNY3VglRW&5Moha`cTbzob>gwO6J+JU$$Rzez)1<%N5H-rIGGARMLMwI!}}!tQhn~U zyYwrj-J^eLnxS6?4(TP}kd6tQT#6d{$-5AWpS(xc0w)c`2Pan}**Lk#SVFFRa^;cB zL#|wMxyhBPL^59}ne!#{2+0iU{Ay{5BtrEaDL10(n=yhg_ZIo{Kv#Ewe&H?hpjsshSPV~!$Xd%XjQfhY5 zzUy`)pD^1+()K@lR&jJP3I5M=-cLA~J^#?NO20D|;lu^3zWK<0KD1AmwSmpW3~%Kx zNHb4w=C|5>USKB^PjBIG(R)$^(@}mIb8mTRg)aFNO3$0vS;RXH6 z6PSwDPQmo_9GWyxRbl^hS)jN(zf;)pJ5ucU3&WtUc#*NC3)R*QKP8#clB~9h)U#+w zR$JqFMxmrSYNKRZ=Sy547v5)DI(D5AuC`8cOPwm@&+6GOY%-QL?1ON^QgSgeJYLXoHw_5y6`NNdp-6qW56f z%fzMCBrW_?dOvXeIQu3&*t9%hls4oKRa^JlL_kRabr7pY*tAmS?r0vROzutdBz`%7T!cm zNz-x^G<<77zgdI#q4?KR9rO;Og~1&}@03aJ81UArca{sU-n5$T`3g^|?h)jT4H+^D zB_&!&sAS@4X+y)8=Ep84od9BlGWHN}0;?18m1@zfzSiN*rZm0js20p zNK<3%J$}WT%{^zg{EAe|FZzO(YoQyN=4V&ks6{tWoQy*(DCLjr3}x)4WnVH?*F`pD zyvkebYs8tp#(@oLjNPglGF!h@{No@CTrPAP|2WqXZuh)$kuy<}UBBEIQJxHh%VK53 zMi6d~p(mEr_goM=l`S%2eC3P+%4mv_hqO+$#X%oRzW0ddtR=BmtJo)`a}(=?-K&f} zFR@GY+u2sC*;eMWt=z)4ax>cs*x8e!z6G{toTftS7cI#{)lxwAOn*TXlh$F}0+_za zR^+sm2&_Y`@Y2bs&!i(3Q+%>H>@=}kcuk$M#Lo=JJYl{?(P}r1(n1gLS58_Z8qybY zgkHiw_ry*ue3%n7hb=CuAsu!vl*)1mUq^lxj~2d43Tj&YRqeq{X@hU|plKEUFKX*b zgTOmlHmVVe-K5ylaDX6AV|VwDKzvEv@l69lNqVme9Z$hQDWIgRtCpz4<^d*C>wGP3 zK%HEXbH42_wnY^PHILd4K0Q`RGtOR9m)J!G2Nxw~0|S<@K3QD;yslrC?1{Gre0$q#on>;Gw>F{6Iz&XVJi!gOmTtO#kp*#4ij*4w6oTK6)c5^)bXrX_T z0pPeeNgWrr5PwV!EN7RQG8OF2B00nqV{6w9Byf$V1^7;8)pq#?HLGMqF6tW*E{Eu- zzTs$a#(pOAFG;YlDaw+Qpsw3B+lSCONk2k!P=Bn=k7Y^2qX8-?rC}^>7!P?vT}+Fd zOS{x;J0N`u`cRrV&lPNUNBnDIU!kV{n%(oPs=xB(GSsXX3blTO+Om?%+N`p5`&5ZX z;o?q5EDXO~($v^Dp0?*H-%N3a)5y>|;yDHc>T3puSdB8yHz=SaH|$P)Zi%l^wzkIq ze4Kapy3=-=e&xIxn+#?1J0c0Y;|z1@$=J_3o#tmuvSUF;^n z{0hb4u2&s|8+n=;^?^gCr+gV*1l^Kzu-YNSozaKVQ~GGW1i#2Cuby;hbabssDre!P zUo$Si^rb(6It{;>N?`i*K=EW_XmTdd(FvbUrLk6K61^dFrOP*()$2$ejz2+WBujh_ zL`3bdWef#L#*?Ifj@jqqD@oJp8!hMK3LG5G?(!8grjFS8l2^^G1w8f7t;W8&Wen*` zV{$oSkCLH(pj|P6w8q56qc4=H5&CbL@Tw&7L)~A}WrIp$LO_8Bm6Q?V9?W5Guyc~+T)1+Wx zLP{_(Iw_ctoXWG5T|er=6C#EVb4_)SogvD>l#P>=@av{u7bjCOT>1(z3-&_T-exMZ zSIQh##s&r!Qgo(AqPb$Y&1ySD|acuRSPi3ev5iB;FBrNK$upT4K9%CdU`Sw$v zd#gFtVmnK)sgN$4kaBNDV`nPi$V??12{8=pwz(o4`D88amgywIkz5gu0H!l18kIEG z6e+D~W=c3RN4dAs$vVdxNfg47IgT}{Mx;Dk&9UC;QSBCcXOWNOSu?LEU|AmW5u>s- zQ#@QP#ZMX&Sx!=uL#CR(!;#(>)3Now&!F1xf`=R%lLP}H?uvL@^2ge{$oY9z?t^B zDf;i8GlRf^9=}39KM!Rd91snCbrNzk0O|+3Hu}X`dF~mMXa5)GX*w&9cTk?aeR+`n zpqDC&v>jED#ahqG>%{#{OTNg1(2?dQHjjW(lr40xHJ(zjuU4mh6i+^!tQwC#(?Zep z?6k55$9ML{U&CpB(PVJUuCboE7jO@hX2l(@h;BxCeV&yW4VNs66Km^aS-;Yy;9R9J zyh}QzW0!np$1Z7j$1W*Jbgl#`*R9Ztst1AFsC@n4HWyg;AP`e_;kJ716@BgcFF`(X zwTy|sjOwxXP4#$yxrk|tp|$3;xJz%u40y~f#%J-7eXs6Y^bBwSj6X|ex(aj)Q}P%< znB_K9w%n1KSfos>TEDQ$hSLC$mmtFVeG-F)O zVg15(%X8g~bYmoe!>{|YlTE7K#Wc-1Y`kHjYS;1b1#JhqgKcRY$9D@c(DPfeU!wfygYD_@7P>BYq#`8{!exarOL3Ph&Z~~p zz9l|7YY#_iQJ(FN7`r01&uO6{G&oxBD#_$#j2uV!D|Z^cJ*Zk+tq%xsERenSX(9mG;1W_&znEY^s+-%J`I%Q;n#{K{ zZ@zU$K(dULEDuN)-$7NnB&*?bJm^ zM*MrD-zK4>Wy!jh+t#%Z&=zf#fQbLqmXT|3lJE6J{hvhqhg*kV_oiN=?VQagzu|p( z-Nn(374k`_X)Qcd*Ol%F%((GJ{6Lut4{JNm@xHv);+tm7D6UD6*=SdQr}*-teL%uq z{08%U9sb-Xpt9OJhgUv_kQNCcfkQ&px6u;57>aT;%7{sP^}&t}W};DfmScmfRM39% zikpK=c}qGr$mfv_iAj)zD^(SkTwbr=OKMPiBkT95hqj3Fm4Ki;vR(>8F(9&D?mrno z>%g__Pi6;d-o{(j9$s)LWj&{U4_iCb??G!DzXC+yDT}`neW6Xt$l^P)lHY;($d9F} zE>-ic*M@q!RE?!?%9B*t_Le+Jo%9I8{XV#a>wu}<*I|9b;KTQtGnRWZ1f)^-nCB`l zJM$Wi4C~S@L@MNZ<@Js&I3xD595@`wQ0vNnl>P8eNLuRZu(JPAsuxr$cZc;y{U0=C z6RALr>ao+INagi`$wzH}(>JrkvFd`rA<~yR;2gFh`ot%z@$8zI_SLc*u#C zagZINJvf3_Xy^IbgW2jS->W^Cpnrl*qj~zPdcr};hB!}A*N-+r`Pth|G@sZuUVNC) zCZE|Us(FF?GAe?5PnQ}1Ycwo<^!DSY!f)Vjef@F{H;j6XhrP2d8s)dvAJlX4WTdbcH}d5BnEucfjKAIB5Zym-mM5W z6+l_>znll<$9)@AmZr%4tM65P6tO@{puO(U&l8+)Yb@nRlicX~tJZ?_{AS!^J&(-V zKH8(oGh{zIx`B{FcN2w3azz{xx0 zI_*j$GjLxT-1L(kBRllQi;e)iM#hV!r6O?7I<~*zimGt|?req%9U9VW9r}n~Q8>T) zta|;Ixu^%1{z1-Im;o2n-w_t`#w$|+m((v%0b^1D!|Ug$fT76%!x?c097 zfbFgioVY`P?5@-W;_kYajZca_`sJnk87r^)s4t4oD6UKs_OcZ02Bn@~Z8dP;Zx&i# zm1}?assc#ALR5Kz6E(~x*3T70;eRC)-21NhSO5*x-QopSA>j>@Jc0_OCF%n}6Obj6 zCijAJ&6ZD@%}0b)NpV%-!}P9Pu!#+<*r{>Jc9h46(PE6XKE<{kOSQN8890p|!DO2C z82dg2!F(UAU$k0!e?0;YH5}(zPmlvaE6n%5OA&>!?b>&|$F^%WAKkP-E5sl=1o4%Gg+G(&@33vXu*)-RA+BDI^X3sV(+U%dL(yJ&AT z+)Wa+tDg}8Ob`1XjCEa=)q_tQv0g)EG;#S7KC1rS^S?LnN<+GiMlBSV>`7hHd~XV zpcr>mnC0#;a!P7<0TH%jbR78D5S-`^_Fl+Y6mAv{cv1eb+a3^-sq&0s`pTg;BidXatL2dby}jLfsO z#XuxBq;cmQuy(gF)fC7(4sL$+d!dy=eo;Xf5kA)C3z6KRyD=jRNd6+6BkBJ)YwrRW zRdF_cZ?cs-5ge*Ne5JcY?YBz?Skw?wNLD`vjcjJ_{ z$MHhZxuy=gwJAIrtfDtC&gn(Gv<3r@mT&!dVQQ@^WD0k$9nH5 zgEt6sDerjUeE0mD$Kkv5mJvStMt9sTi?MGRbjQuS99_{JVcRVua4|nK!}kV%>6lN# zAOx`!=72Al$9d=bJUGBz-W$X|B3zG50Ps7Hqt(h z&9Cx4fc<@*PlNsarFs+g_i6Pe?C-bLo3OtPy!|h*zase;Wq)TF$YFnld;Q;Ie@(tu ztH@NWuXf-odxag2vcT2?yBO?zaBqgSDE+~`v#doK{03hhTT@%IPJd#o$*S%-IfPYR zfEHtvReg78;I+{}Sk>;KfvH9y1JPQ|J&c@pnOtgz;!@$eGq8sRyBeryHCfa#ibchI zZL3?arA)%2TCLSx@CC#5t1vqo<4qMu=FdARCXsxIAvJGV!mfy$6EVkiwsk_nIzH8& zEm(*hoxV~W40PZSMie^uXI@`DZIn?R19Fx*L(ut>^cRU3erxL(l}78%BK`tx4dzaI)D%szdjvYyC1sEd(D^7N8j;Qrx zJiKr6qnNI&Rr(@Ih`e($#9 zHIy=GShpXLYekR$eG1d%sNW2p$-W+~qNnMC%`-dTOTA;c>zy_6+B;TEA*)obH$ed8 zP1oDr<>Kh!Yc|){>^_(OLe?v)%wx3uhfke-^C~apz0+#*T_uH@9=<$yM~8y{*(j|9 zsq%h}VuHo4-DbmBzkyM^%^p}}hsd1XRM`DY$5 zwmt>Hhik<5KrurBix_Vz5QZ`OM@9o9!|dczMmo7RN_soiBkvq>a&fRQoztwVn_0qG z*|~60cXhKa|7{UV>;Ks zl1o{1fNr7~+)T*{`6GT~{28g#n0>H2-KyeO?VQ7~wntORuokm~PH&6HR%OY8xtCFi zgJ3(fl@P4IN7nRbBee}bAcf}VQ<`Sw7*jjQk5QS!HG7plnK()5wT`Y4VJXiu{! z9AMc+Nk{arfrJ85;6mpde_>C=-*6I+D-wLNmq)}Zt~Ezb9{eZ8fH^antn^~b4u>t1 z7c-lUY5Lfq?He+ib!m6?`akTv&2>7sF1J@3k8uEaLB|tva@*aE!`%X2tZfJ#Zg%m; zw9|CXcANj)Y>W!8N%YJv=c%o*xmMVH^Ze(`x$SZpi9NwPlJl@~L zqnGf0wcb!JWV zWio@jK45Mb8=U{-eC_pcmI`wQ?;0|3)Tu%Pj*fAsOu|LI!TC4f86a?HT(6u=r?O25 z%5DBU2Us$^iBWnF?_W$7sl`NvTtsXZ6X?BGO|)ypEVazF zKBv{!8;F(1$grp@n0i`!R7fe#xuNeJ{MyY`4YDSh6LTMAO;lu66Z3&rDSgf1Pi11x zRb)LNWF?HscMJ%8)D|?!x@Z7d3!DLKV17m~$0MqHt4UBMV@YYurvs*8HEb70M#=2_ zzdsWf`txMUiCaJWe?AL8{Wm4pYD~c<{~|M%nt^LiO21HNg~n7<4_A>pPBJUiTFU|@ zDAAp8Jn9d%!pSEdTaScAco9Mf*M2cMU*6e#MzN(MGB#BiH$k0)Q8kaUy> z|F(w%33XSdGr-UM#<6J|xr(*4x=cY=(o?%brY`^XR4%$B!9O~AIO?5*`ETJx)TXrI zFh1Hj@5tL~&sl7;OZWgB5f1;xXiZH$wnBf;?Dh2ArNO#-$u5EoOs8Yh9wK!&IUMz} zr>H$Alb~bspLoZyU+yEYQDVJP>vVm#>ZgwSA4r@XGDptyU$8qi$v&NR8Rt&9+@{wP zn$s;#pMopw+Pq#CifZA8(e0NWQPk_&^cTt5yMZ|d&B1TnFX)g z&EJ$7{FamjtDSYz32^Pf6w6ru`+e5^u6a`|`C5j!lU|3Ev*ArP18$8#GMX$UbPJh;1uCHqyyg#^QxY|F3 z|Grf?dPY8$LGb9Cil+EnPV9VhYa^0!ZAzJb@Qm8<;GyN_AxQq2W+2H5ld@;WtEmyr}z&<4xjQD z^&mCETIS!!{^;<>!uO}iMnr21kI;&3nhV4I6Z%r#LXf68U93CVSLv=Jz75(qL42t= zZAP3n-@ReXs@W|nB{0{KRh^`qZl+9*g}GFUPFI_6lzta_HgXO{d}ZZBuBeLjkf{1- zcR2C9IM3;y8S#D)7^ez3`_cMTikP1iQ5)l6IWK7R z8>!RLHLs{gM%HrISw~%*jJMluuG{UtWh~NaS+2fDdtJDO-r%~KEOAV36P7j15AfIL zz}QI9Np=!frG%%jBpcB-DIVL1ebv}L2Pu3hL?Y@{cVK!;?L2zO$F4nQ3p{EgL+vr) zHVlW$6w+MoZnp=Buvj7l7Te8oEjO0C6u1auxvQQ~Q=MY*rKt6ck^X72OY2|xdXv{R z%$HpVQPTQXz2vXUCNB80QPf2pYKwLFRPxQtT&QuT1cn9f93h+p43@9cdQg}JKsUfE zbZNuu_XZ!03*73v+%--ZcgW4$r*B3Bz)T_zyjb6R^t@NO zMBuo-IK7&Fo5o{E)^^2xm@#jaJSK@cxX-y zo$AzZt2!KzqXxZNro?#?+`ejVQ1TNYS z$Kzak){URMXD*M7$$Pe0>fei#_k_8V_lViyUPgySYYLR6|LE14#c`Iikyr1NlamFR zUumrQ9e1;Paw%-WtLplBL1xaOxw#8%)x)$Sb8|C)u_tAS=b8WOKW=7i4s(xG=q;7n1}sJV<%!}Tsw17ECAbsjk6~23E<#N&Keh& z>L->k0dY0QG5Bxy#g4%n!`J%P&$sxpJlT5L*Hmi<7R>jJ&>LcLMC6Pn@IVq?w5Qbh?=sv9MLFzx9c{;mESZo1(4m^`A=SfQ|C_Viv|Hf-SeY!{;oH z?Re9LzvNn6zmh^U=g6rx3BdatH=|;9^R;5SDK&GZG*+iCAdUFq_b}$MEka7 z#l1V6V%BnTY1u2vuyobz%NU-UQ|M{jm=BLyl*TOVV_0!kmZNn$D~#Oqt)D4&r6-DI zz3Yw^ILiiGdmgJ7aW&xInGsq*$HkWXEgRTecdoq>gDC&>pGiXMw&*K0+` zW@mONndoh&j#b!|rRlG~NK)l4Q*2!8Z3J>C%xuS?W4E8Cc4d=WUHjHO8cx|xkJ=y~ z8@6NNb=vHSROKW&ORj4sAG=_DgSd)(AS&?+E9+hB8L=wrsnr&bW?>4{F z`7Uj*u$Sp^iWKRfki!|{u!F)Du%r#g6nBF79zuk;_PC=a5=m*Q3>5TXe0#5)=MFvoJ$W)2sc(qXh+ZlLtrBovjUcAm8PkGFYpQ3zJ@8XOul?SECIaG^p89XI%M_6L_ zA?TK0(QJSs1}MQ3zqA5RMZ>rCY!GGEO0-~Y9&7mHN_GSrd?T@u9Kjb5j%P~jUYo}j zKA6*}JdM!sB}T(PmXvcy$xY|%#m2#KQhiCKVmFzPTV(f^&_lKhQKg&AF|=bTNjUxB z1F2^VM1!ElYr|-B+`$Lzw|5r|cX~gptbJhkrx90^H?gv|Xt<>Yf-W|i;zvw8P#`>U zar+Skm3~qOP%9bU^sx)bb2Fk=SZ8I|!2w;NEgsN!0M&^}NClBdaQH;BML~8zPbiQ* z3c|{@^GQIQscMoCpV(&)<`mlf$DPv)?FwYwYeMW%$ia{au|*+GA*%_B?*}C)(1iU! z^eJ==I8Z23PBFv|fU#-I44_|J^ z|H!}BhE$}1E9~EkCqMZpN^d%zkYles-hs^4bO9wVMHoIy!m2a9*ZA+tI?nA%8x3i1 zTgpK&;rH?Dzwf@|Z72r=bYtYUFw1}ZeJNleDKpw7cKd+XTH$@s@cY^&Rr^vmdou z>>X9;O)B(Ve${AhNE0XQNE1qilZ{uX8%WHp$nqw&&2hJl4=1$Gakr0$e^fnN%72lw zondSh5fCsU;B)Ar2qDH}Gy;nQL=oTX%JTiZ=j^be-t;;|vK_^GL4t^Ze0VnWEoO9j z*XZs7r_JkRU7c)%Tu^EubsT{Fn6XSK>^dEvQ)NAw7>vR4Xg^zG^s}3des($i?2CAa zEJ{5#_T7&5gbt?t?wtu=zcXAIgUa_5BPe{sK? z|DZh2Ve$9xMhTscx@O*Tx)~So+L^XfavpnZyjsT`n&^Pw(*qeSW6l{)8^Z46)`KGp z)*6{!&K&?)ordQK?ToRigqO%#*lA31HiXdPa}II$-HkOR{~jkZfA=<-1YLWoub$jg zhh_LgVW_k-2OsXNtH6_VZBZxr)*O7etI*d`f5?k#hE9r)-y^(JjOUX4OnvtXuifL+ z|3rrn*DL?x{IR=${yGApXL(c5;`pHo`tVb1a&|9=^M?&&sj-Rl{blPjVFxyh(SP13 zoZ!`D)~tVDy>_RI_L-ZFaoS=GW?iD#WL+-tfGd<+%mGD>XNlk#d$*R$#NR z;isYr^%W!$`L})YsEo9;F)%oSwo?YHlgg?>A`FuwOGkTW zS2XJnviUNxrWUX0W&~RG5iT?Yu^ZO89 z%HR*DSE6K-MHF`s_SUU`D)O~EnGj&)RPMGYEhZzbfrsg=_JWKd^bqz7JcwHw~%S>>A(05JFX8DVf>dYIa2dks^pI`l4ur6eiMB) zUvlqwA3|ZKk5lICe6d5A)n64_ELxT9{;Dij6JD$;Q>Y3NCrOJNO$%Cs__4YyRY|g? zE=M3rFX2wd1-8&ZEn+Q=jT?vU{CRz1v}cpz~9F zz>|1~9i4iTNCFW?Bf0HVoBqz}_9J|;g13bwz>tlh-#PE6GkX&qzpLmC+tfLc9Vd?ngIn^LvKzg_^2W(S4hdw( zuRWmqCrW$-vFxu(eACH6*d7Jw&yh)UtSG6D-(_a|v$Go=ze|T)vE1#tsC@f7X7_{A z^qB@I^a{^rbvmg^I#C}Ffc|8k0O8o$&1cWmnzjK}dcy9MCJeR`EUwj?b@9(dM4SKk zYzeSRK=ZceuV>!cW|3do2p{X5<{PfcfBM(KqCv~f$xVQ=ue*!JH>3@etMY7|UT5iF z9TI;^e|&gDOD*|DW}Cjr4M*&2P!>J`bVE2XXyazH--S6dj(ecj@)Eq3VQDl!~bCe{yTC zqO}Z)rpB`JQZH`Jmu(+>K74skl!D=9O82V|x8^=^YkmVUjZ@w5^nspo%c|acjIw;u z$i%g~+FBX7*>LL`m&Ue(TqWqc{={FNu z{F;ARpUNA4&6g{`<`PksvoFWus&_=n0b_Ab97#+CqSLbfOs~42lznG z=1(&Kq6A{ir?*3C;SA9#L;PFGDI*;yjeaTmRfX$m37G}|bFWa*{xB$7g*b-mlv(DB zv(?#8wH?RVeRB4*n{F~g6;#M)wB#AqVWXhoJLs`E!Ip^Lw*uAdroa9?0*vsUW%?gD z3et|q@`cbJzMvlDz?m^rR;*9uaEIk9>SV?dLlO6_P=wR}6EH%E)0~mIHZz-K zAq#Dc2t)Yu9noVpW}n|fDL5mXEqIeTsvPd`$@jg^3odc<(GRRn4=(J>quXp)lMsGU zT!nws7x3X(GXM8Nx(XaDYN!^J>Q8--8L%98QfGER$wjG(X-{Dn7F>|-iC+<(%3>vD zDbq_Th{Yw{p|>p5eQ4Q&7ZiD>qfFtlU)aQ01lvswy`C!IIFDm@CH3%q=*4d@p6QP;WNM|0Cuysx?S9}ymzAzxaj zzDbarfsN|%mZFYux0K&IHdu6Wu?N}X4(zGBBX808iP+x5JUxD>-1;X*`J%@`cM`8`Zle0rw}XTIDB! zEW_VL!}GS=Dz!0=7vqR|TV){WwuLCDt~zN{);MrRo_H9xCU9?EoruoGu&{W`RSOAo zhHM+q4~r;fK)fUqH!-)sULBVYGmlaLF`%Pe->D+OvKjtWqf50@XI~JBuG6jyrO^KKmwHv5B$5i@1XVLFbMJVSa>of}g`Sklr|239Hi`dLoYEI1YR|ZBe zstni{<>!m(2j(sq{|rQbI=7g3|p4~1y{pt=fgS4jtzg!EZmCNsJ%v3 zC~8ZXw8VfwZnez7#fmXY7tYJ)aP@&0m*gX)S@$+`Mb9~4s_VeoEA(HmJmMrfFw7%pU9DYMkjr&F)5E0+-;FIBNK(QusaL_P<3~l$12=&3@O#_XiUNLNfilZlV-YWy%g?&pyi-d@Q zoAn3_iJ|p=E>sK*f~jjixn`_RM^~TTkMCjMNY!sEnq6n9VMVIzU251YX-A{sWL!3V z;}f$th5sQ*soJeL2|-!^E#v)lsSw)w=>yCCx;Og{->LBU!7%$BMomJ3h?>mgimU!H zil=B2t;o6sR0Kr}DsroSQ>-GVLrP?ZLzGGl!c}75w0kmN2YU*eW!2#Lt=six8H$X{ zveRAfP?7Uo91duzmrh2TY5{T=8MHBVxgmT++gF)89le7&clf$p?|8$G7n3RjadYM@ zTv!QXWu+djcYGs=s{dLLDq8~Q!oN|JQ-a&-P#mLEM$SS)xw0HU!r5ldyTdb48q9$B z+2eI=}8Hk@dcfo>6uIf}??@C^|dR{EA)8Uu;^O8y)Sa+rWT>Sb}|2eBKean$W z6P(DP$Rm(ueCQSutNv+9x4#lrRp-LcFl@2)7_pnTs9#YUDpcIY%z@m-pIPzgGJk30 ziRRo+9v*AJ*PySF_Uehlb;%!KY*@e_03i3>Y5qJx80V<_ApunnZA^2%A|hBp#Yv#R zw)_U+JX3RyvSOKw=V_)whEHUM&N?59xQq1aKqDG$pAoIwpA{p7e*NTbn%A$czptb?|#+GI`HpmFDbQQgreEXx7kS*3h>pR`3sD3Sdri*e249($X zBdJOLXbw*f%|UdI$zgK!CTn#~S!gS*k%WCQF_lX6wH-U-U0ft0dwn{1rn@F5T?r=`O6+q=yx9;Qpsu2LJbclh_!0Nb;b@>9T;}?Hr zu8sz~dX+&Tj2Pvq)$t5QfHJ~uS}WRuwz+rt*vWZMZ5-Y(Z0-U~#8@!}guNeULxz62 z;4w}6{MlF{;d4YCNBDc!KJOKkxlR-f^KWBe-{(!^%V(clU_aQyB|cn}akhSPN_2;f z9UeK)GIYhOQ?dQ8gm5v&)9Fp+uuF*`-c19O|2X~WUk*MTyT@po&~-$pt#+~~Zdm&^ zY$*FQ{hlqHd12r9JA`4%A3Hz3GBNdZZDsB3h{f?u=?)tm*pb1YOhamXrRIS7Kv-^E zzDq87j;(rYX2nT3G|cAUTZKrW{iFcqsN2B{E<62SSotsI^V$E(Z-K=5mS{yz*Zwu* zw3bR71)D^`RVQB%p#>V?JW)1`=&`cjIKpq47{4(*a;vL^A_Jn!ZrhtC2{MBV@oq)s<-=hp*7|!MbJY1Mm0tCWz6hl@oLk1~16#tr!00`{ z|F)Q7G4gpqY9f1XRAqf{3@jWZ@%~YA_-~GWe@)L``)n|ECOeC@*))9f`cWJ29MyHp zex!*TQfGRda~HZwj;#y(3*Lz5Oc3A6EpqifEY=}K21);&0Zy1DBgV6g*Ew{ zk;XS%Nmqr|@d0*T8Lk$T)LOXll8s=gzQRDk`L*vlBeFi}Sxz%8VL1zE)UV)Uz)t#Y zRH9`a*&V)Fa9;y9Y#e4pybf1S!cG@&T=djj$WiHY}S4;SuE{e@q$C0>;T_ z{~n2sq4rQWQCD^H$-&$-IhcF#^VE2_zJZ5aq|&KHnT;NM{T3%j2HR8l;kc2heMGL^ zHwB}tf!l3vUF_nQ)5-J>dGS};I34PRf)O1tAdCJ>&^2qV;a#A<@mf&J(WqPUTSy2y zGxp^xY>xWfM6R+-;wNvr-C6b6OLk{*aA7hV(y=&arl4fafn1VlQN*q9yar?#1W#jc zdBVE8W@eTz3A15m)_%H(tX`6=Xcut%$~|_y<`jh!v19KY{@wAV`bzl@EVNOZoQUrP zOU8H6J!WFY?P-%Y4Z)hli}laFYmk4TEnsDCks6~)veXtv;r%l~KuSF%FVQNeQVVUN zO@E&3@o#OXB(o=(m0l^8zMBAmmrL>f2Slz@xk2Qw%gaSXo};oei2OSBP}<@6Els!h z5X4LuveNzfDXXRj)eBx8tB9)(te=zu{(<85w~8G6t5z}F0*mi51ctW7%!%arZ`)$3 zP+&k?bg^|B*cK<`dr({0Y1<)f@f7;OG88V=7L{ygRa;cZ%h0ySCVR6j{v>@yZUCQ` zs_uqTw8axbFyngAuC26T_h7V!(%wzF18k*wvfwP&&W1mXB1TBYq8}htGpX-WD77Y3 zAuayBdA2g| zbTa&$TmR_*k2_;nsRvjW+M>1aKMHx`q@-9e`I=4tJ&DVkwK)tzU&6Lc zLbg)wDC}GP+R9KjabW`#;FOnArtuh#lQcKfF0d-6R^~d=A zkQh=79ov`vF@l$hAvB5Q@?d`q7$mN7S#@v@Z!dpkC)k439cO-_q(xxGS8(dN+?(2M zLG-Pqpv#i~BRqk2u^@Fae_^W4kn`G0e?lDiHHFQIctYD=Zqr3PK!@*x@vC%aU5%DXN9lQ9Ub9Y&kPfqo6Z`1PpE=5B)pt@f z5>8Ps*2YT5B>YiqPIGSmbOY@EL4U}ZvJZ7FBz_$JqvZM$ua@l_kXo#Ce05)?<3f{U zV?X2gkhCMyj*vfjzYFlKYsj*NXiFwa>4s*VS?~OT#4VqqUL@mH!*TykysB zj%7NS&x7>{xi|6mcm9q6Z{_&`@ZG#0B+gmzbE8kTO;$jM`P&U>oMaF1O#!|^{11uS z!aF#ZeOBp6k4)@@czN>U@Q>mAr1m{|pV~PaW!N3tpUH=^ty5Rd!Yoy*m=h4%p0G>F zmw{^88{{$3$YV(xMHbkON=MnD?e~$g(y{Xp89T#fp}Po`3cStVDVlGT`>(3%$3JsS zZ3cE4SlWFGw)AABW95gZDDA238<1q2+?o(M9!DXj%ENyi4cX(A*1E^vvB7`5rnaeu zNW|_SJ5Vhhw^CKS{4KJKzDIa(wl*67k<|}Zk`>Px&l_=HhxiA{b|2Z6zeOz~+iM^L z*nsXlPfeDp`nIa*U)@VAB;5IJp~+8ACFS1vpv!9{oVXuXI?CI4?t;wpnDS0ycJSnV zX&+BIemTQpa)!V6B^4rsJZRsgJNYBxWsDz@Wfmqf+S((>J);VAg zluPzgl!IB7j`e$GBy?_YAofn%HTiois6Wcd5Tpwx&7Es$M=`beo%Jx$BV>BlX@YdeiTUgoe;&qR5ej$gXzJf_5|q*&Fu+2R4LZK2SjnyEu__q zszhhHXmUrL7|bDzk#d5OuygwPgPhe@r8Igplbo3w1|r;?-o=ZcbamL8OXqFv`bnL#^e$dqE$lstoD?w9!$yq-&YGLDa-I1&}yQ&KJ24>pgsF`)A=OqK5IMt9a&a-VOeCG zEGsN2JuE3KA?f`7uP-4?6X$5lvn)$rJwy*>)SuZ$31KRh!Wk^t&y#trtedbCguTb& z$ZF-3TI?bGHOhC^x&o*`cJSBi@3U-Jv|I|y-|IkxAz@V$e7hQrZnr%H3LET1os&_u zeJtN^eDq`5CdVL`>SY;fHBk$5BXyT0xwJ{83)Kk*DI0y% zJ4$-A-5BEuPM)C$2o|7xP?W~d5(QX!d_KM6!~RiqNrvbfpP~sxAGOr1%BtOKbfvEf zuh}{EQpHsB$gVf62B%f~vGiSXXtL()h|Op99B)TLBG(ywHXF2R6}xZ#twkKfs=i{%nzTARA-zd$rhthMR>ypAI7;JmhXPGfd*96R>z9r?ca zwto%##2eq%5&9#eN*ATIltyp*4WFRo=8fUs+OPTSC$eUHH2{@gZxPbl2B_sH=WtnGMPr=aLP(uTnCPkooS zH6Ba*Hpm19LSWuBu|;7)f|h^b9yt@Ygin|HPkOa3e(mg;jNhl)*Vy&hHu~$%^!7@7 zd!m1*cR8E#gitdGMDx=4SM%8L1g?j*pDd#^HLu6leAM@+*#RscB{B!32#WpY}tJ)s6@9pm^(qp769y`v+?P%+iiK6Xa?QKd} z0&bIG?%%hel9f2I?V;?%W=wL}k$~TZHk_sTSi&^sMx*y?bKyZ?Mw#@y$T| zCx@kRP`Cm8fg9?>apu3;8@xtBwkEEpq-g6^usC=DlJAN(LNPR1^M!$#FpDmm7-Ugb10`9jj#f{ zD2&qIn1MPs}~D;Vs)Sc-{K1i#x8j-UmV)7_r2ASAmC z1h?9c_^uJP+6~7_oGOh&6X_E3OY-*KBcnXLB)3Q+mrLX&?FCLltqj4@NZYA$qL*uX z%$oSm#YHRPyMhH|Oca?fogklG0y`-OxZ5*Oaue)l+K+GqSHaLx=UH~nvmo^u$9h|~ zE}buWoW+(**6vBVvBh8g4>q>D{w|QT8d{0xxDMkv@k!%3;~Di_0((#j-@mj&cnizK zPR1CqpSf?BO0{j}UU@F*tW?K1h12`|X$sZdbbOe#=_O=5Evl@-iOpv(KPhdRk<$_0N9C*ca@f9dHf>8eD&uGd z7@QE_lcqke%3S_W-v6u7DE|k>A;!{P(s1@r4jz?`bEr|Ul;!&s=QD|Fj^dm|cszBK z0h>GI7=u9z+O$s4e&*P*2P*7p5{7YYAr26|%WKc|QMa`Z!JL^fO~Q^c2&)JQce(?) zM0QAO7sOsNgVHx|*C9ptE|RLq?2zHUN2WOm+pZQ~T5DvQ#i(f0_SfiWq3h{ExNU*9 zWXrag-_>k)%BaNhz1wB{8atRfP4fo*I~du>*kt?iEmofB_Js_9@~aBpzXv@?2DF|! zm+?Mh6!e$D`?D<`XH~1*E>t;`p-jqRzae?X+t{GxJXzj>S+{ZlgygJ&4-M}5+ ziRi_}LNJJZh`W$h6Tj2`-45*Op-g}RWz@cim`K!)xZd?m)t~q#Hj=M)u96#o--V#R;uhf0=?ci=N52XVzj4tPBSmCvrIznbC>_8Ky7J_%gT^ z4n0L7X61R~7MAL9DPX`9T%1^0_kHZKaZho@b#h_hy1>;)-k)K6F-)Qml!Wt3^;VAm zHNBwb*1U4>^`5vA{S&xs<9 zej`%#fpJo>z<3O?QeI)|avIAkxNvEX%#fUQhl(VxlskMvR;R5y`BE3aT*Vh7fy<$L zAW8cS6M8LT4ank67JEGfc3a>wPTgy6z1oLasN90yKV6OD=>kCES&<}BWZjt95RW66 z)Qwjb)RT%CIJ{q}}lrp_n9ahUjb(b(eahXfe3sCZdThi}G6uvnyLt53FG?P2#ULOLHy_kywPtc_UsREQWx}#7jMa;RK+D?%{_w=m~#}F&}L73g>R}@W9RNa zwIxBKNFNJd9hJd&#Fwn?+A8pHg2KQ)%TZrP97dbNNU5&O_X4WSy;9rl9d6wv;v(ma z$7fpJ60$=mV)E`{hunHjK(!ks5Z@keFK6w(}C>e}VCab;f<8I>gvYT>98-g)Mg-eF=X{DS;+Pu`uc z=_UI6Tw$wm?@I+mHVH!Wi3>&a%fBLHI0}~A#EN@k2GEtDkN<%lH3W*wUS0HI{$E`! zXhvatAg#XHn|!u)>z~I#p!={Wg#(dMUIa(c5zq1UL`J2PO%5~MHem96NIgYT1rG-j zub?ZZpfjhF`7-I1yTBYysXyaO(snm>I8!$J)3<^U_2D>1|^i1XWr>FSorP`huqVeJW$|K12AWO7p+ zo28Nr*IVnSKp1V`C1O}x10@;Zk$4`8RKLM$x&xe8ja%2HrAfw!Ry*p>k-h76N1Yrl zLIG^LyqQ~_8K^#joXc=A`&@)uSf|(SddpG&V<{5supM4J#Z`fB$Zn3ntL%K#ZWjaJ@x`RcdgLUOO&>~gVp(IC+iSQPgigi=Pm52>= zQNcJ7D-F~B*VoS-kpE3){-gCPB>!Gq!rar6B>DSW?4oY|4hFGgZRjt8)q9KRHXpjzsl@agoV*P32m+9Y^ zREQ7+AK1h4fE-=U-*wM}B1ES)GfpZjE+3AFpqejRD?z$83xKqV;3qs)zm2Okictf@ zAc`(MB1{-fPeUTY*s1>j1ZaIA#&+0u*9zW9y!d+96k?Rpc7nYRx~Y&Q~z@4&RDR){pCZS;D(v5x#iDYB-nlNyN)IdvqH+#&pA1mHiwU7yUL&e)7GGjT=uhM# zJyr+>b{#=x&|(t_GkwDDg|9ACdb0X#RuRQc`qH$-jkYBC)=XHO4D6I@iL8I@F()TT ziskqrJA0&g;HTmeG3*i1UiZcCZO%>dCS!^+-=Ayooh>fS_aHiV{RCkd>bv1}eZ9;z z$@*_Ot|-@%w0C7tR#D7AqS!=jwrSRK@(W*um7-o#q|bj6Nqf5z#l^#9C*rH^Umx63 zPl?L3QlSk$RH{wGIv~nQ#h$!UeGGH4;f$-xJJ;3ey)|d=%%yQ#q$-Z@Hn|eE@q)=- ztTgrLH_8$rA&~t(Y2WPJaWC`f&D8fZ+c1&bu78P~4ZRd5Y_$@Kwch%tm}=Q6Bwej| z2!+J^P9Vcb@4JkklUEr*3Sl!Mld1uvq$j<9)~dTESNDqht}oF-iaS_$ckY$mMZp_i zK|bsMwDcji*;9@YIx&V1F#;K(Z_o*~1vdFSxiEO+w%jXyowd{e#?9lgVHZzoq8Cyk z8Wu6l61q2$>*>{5r8pHM$wUP@pqoP!>uzKsBjkv7qZ8#Tlx&lUOq^p^E!kR`$rKRx+1r3{u5? zhM+;JxYvOS>mi0JuHX|@+_47GP{o~M0&M`dPUAzV;ubT{iC|om6kAc}lRj*y;?^12 zu+d{=iYo3*(s>7{;=TyHeCv%sx5!US6<5Xknp+=EW|0~4g(_|wAOBNT+%FpCix$ro zE#ALT#g$5$s<_`ViabyiS88pl;`+?c0jjt{HNC=wGgq0@)nHXzPrSYs{#Z$TvW*aq zG-nsw;+9#YM)rM%O;`oC-z~oD%WyO>kA;(k+iMSulNjOg1K2T`ovjL(pi;}F&1Gsu z5tT%lE8h&s{i|FsVLaM*tzw^guvUv@GW5n}B~?s`mbVAySrWV@BDZP>@;C|C&yO(# zajRwq=h>CztF@zb`w!`;T}WQO*^;POg58QG*uUc0jIo(A3Z{_$%WkF@GmOXZc z&*pZA6O96UBBchCGD=t_`f{n>uE}WVDGxqyGPbIw-+$4n`i-wKB#?Q>t%fY7X4T#L z(||9zpbnyXzEE8oCqx&sdO6(-vG_2hw6v@=a#&G4Phy0xA3}8nOxPk1sOzW`1G}!> zj=C4*+2Wg!>&qNO=2DmqMc~8Q9@hbxsYNhaxYqRr28~Y((}x-R|@vy?t7*OyUR>a&%W_LG^42^TE8NUgI>e`KR9V7tS3 zpz0@HWR&!WfpmWw11C{##N=j%t-Lhde|$;0tE+;ZKHqR%_saB_Ox4-Kh$`job#@jo zj>1;4KoMvvO-c+sAj-{h-iFR3f@k9&Y@FG2EwJL3tT-{-RzAa#BA7M-(hL>81~|qDP+pEyTc}DxJoyml%med>9Tu9jDZY z7gYG&t{A_&STG5e>A+^NJ&OU z@yMrLuOARW?7yVyrx84q>TqBz5$^AgP(`VYjQ(!Mi9+mp-hgPLnx|0xG8)Z<*!9r^ zqK%10+YpUrLhSmdK%&*pQmF1V<9OuLt{*TWRMsL`SYyFs*b$>qVkMkx#HZsVSNe&x z!W$HsN*0<~PFOBB^a?+CCzl@6k%G`1DSr^K* z)4rL-#W>n2tCAxYfGOCxU)mT|1R(SC7ihwv;U|W{H{%S6qxpuy7W`-QE?DutZ zyu$3m`Hrg~9a9y7g7hsCUoAktf&5}uWh+m0sJNdO%xwlR;HUP`EcRK(IRtBOMK%Y5 zSPS@GBO^Cx+eKW|OMO|KODIP12>|Qo84J@{S(t7P&Yx{AOqc1yo@7qk$)q&kK%y1< zSnziPP6Ol?oy&}_Ts(x;<$;iusmoZOWu+%CIgSuEUYj8_DV7rgBBARSRJ%e}`$3+$3 z7#-e)h;vw0O9$i;ZNjT5PjRu&R$MI0tFf2wDTT238kRlhDfQWR zuIQcsToSNIY zQZ>vu4DX7L@EH;@d}DOAeZ)6RICce0*dh-#bmdxKhOV68sG+O#f*lxR=q4#Xoqe|O z#WHlWq+y+E=%)4$-Hhna{f#v5tlCH?49;2(5&MU2@urK1?O2R>4IZ{i=k6;(+icF# ziuG5QsMbZzRJDZ+TykRi8o@{wwN*~?q`GvjVtooiz0$+OK76xO$Z;Ko=j;v_zZu2{ zlMq~Hrhe|c(Y2Llw}mcR@Ji{>PC9fdT{c4>e?j_(bm=qRWB3z{@%56U@UJ~&>N zCKPzaP>FJ_Wgx$Lvh1R!zeo1dzHHU>^ufXHez{^UaM(4d-M4g!%#!|g7xmhs&3VX` z@Z4m!uTE{$&d)Q6FJ8%&>E`h;V>QBUm|SRmx8udaxsDgz^RYaG^A=x%;#B+(bXkha zFc2GDU~_w>FJ@=QmW8X|e{h(9mi+>|+j9e3MFZFfFa;o%*>YmQ-u-z!zpu_B z+!8t6?U@mSuQwxSxIH(;fL{Sv>baS3;;Y=t%xGC|&*x*&=Jw;vc6%nr;GZ`mPjY*v z#DJqr;1suKY7A&Gfz#Zc>tet#2PpoXs;D=*J=e$Jhk;A^Gu@tPG2kmEaHiWcKL-4@ z37qBj6vTkv?MIvM_AH3O*O`&$yFCkIz%QG?LbsqjkGIx5wZU z&B#mKo;zYdrwLr@_S_i*Uf}ps>b1=6DT)C<1ZWcBKDTF441U0je81asR}A=)39NE^ zX2yWen!tzLp4=F4b3fXZZqF?-_*yeEN8_#-@QWt!5w~Yn3|M3W*SS4;G2qM?+Q)0? z;%?8av7m8A{Kw_?((RcYgD05q1_jRtUQAcRCR(qe#^ak5oHf<#>i+<45ae-Ly4{|+ zv7qf{64`jUJ@aDlpPTR>D)^)re4`0}TEVefY-X{lKZ|En(0Gg$>1rt8o zgg+FfT&F+C)4wx6@8(IV*QV>Xc~>adT#l@O^>+%Pbdumzshr<2GK|kfH6K>GYimpD=rk zcZQb8`N(ui37a!nvgW+pmGH6&8LJ@JcAL?tAfC8LdWz>!&La4BC*rs>f?$-Zr|jtb1h-opI)X?p44)W?aVLq zkGSfVgBw^=P7{S!{qFC{GJFubXscn-xy_erghryNNWH#H_#=t;5b+pD`u!50bEgmj zw3fg$Ocyv_{Q9k>p5bNO({dNBzuJSqPeGSjEFDqce*sJuAZw*lt))ifZv*%5oRtFe zn_8-j_LbvGE&PPsSy{p(H`;5?O_c<2E`P zhHGaLyzzY&eospinsDxdRlGDIGs@dqnow7WhTDsRo}9gN#Q8%ny#kLCnqQh6MeZ5W z=3c8CX3Q_s1Ht3@V8fXa`I7+j2Y&|v6fyPtc!dUBg{b6U4X8wtv0uoo%&F}C|I>BW zYYS3c2|Fpd^qo)tn+$Pl>q^*TLfQ>Tx+~!|6SCicWVjMqO~^|IB-54fh6(wV0m*VD z95Er^Q;;>;t{KM^q*V6{WZ=P^UCiELeiiTIzRo~(mv2<=`b?iwzN>rwsyg9K?0i)x zY)PUMazV~^UiCn^(5FAG1ng>2oi4dpze;ilcLZjF)lv77bYPoa6phmB8&RzH{nqGh z-8{>~hXOMlFRtMj8>VU$!X=&3&&s+L_cafmDm@CD2aI)l9{kkkDC~L@20Jw-3cCWB zv2x9Wb;*c=ZD!Ogx5piYb^g;p2|Fd8(p1*ROc>nM;iNY^mI4vv&T$ zjQV-EXGt{bPfXZkx2Gfu3z#r?vC=5a*N<|l+k=FYu~02Hqh9Cs+#QA8Zo;m2dy1p5 zn^f{yDJ|aYVr4GBSpU^;46^=AJ$v;Z@Z>r+v>329FZ16IxC#Gez%j49qK4dsGryqs zGaDpG|JUqVav+6YWIb@U%Z&v`dp&`9(kH}*Vs9YMo4{>5hEpDw$s6l^N#?w(JuagS zzyuSZhTsc=RoDNEa=xHOV>_?L5L5_c2&#mEpAHy*98;_FI3)E?tIqE@3%A#MO zO6tlAS==ZYPC$l)r9y@i1{s2DXEH&y6!fH0m&lrF`oRv8-NZDmx9|pugalpIX0FI1 z1}TW|`-h^&cd(D3mR&&J4gQuY6OUQ1wXOZc_%Y=kLX4?DGKsOAjAF#Nxj#*%N;8NK z=YD9W`MgSl$SH*?_dTJ=&>1DeNrMdHh+q&IvZG`;mJ`wYN`(x^wC7cCsK$6}Z`1qq zhMY|O@9#=)$l(x2-@&W3B}#8daWc40^@asA*%xBzLFlGcbVgQB)4wmtRH{w9`3pL2 zLc5bB$A2WLd~Zcwc$(5vx~021;$_}t*DcaAWlXw?Cn_xt{#AyTK6ef!K}e3B8Yfq@z_rZe;^(9{ zFw2kVU1TL<#gkjC9EX(Y{{;7tMr!zhB6ykp(mRl=s8h;7vcRmk$h7{1FRO%uTI#N7 z!Wt3^{R+D9JIja?432Mnopb!)yeckHgF?wJTo?!?!`J}oBAdW0`#}85E-u)o-!}`E z1%9Jcy@8pkMgs~q;o^e55KZ_|I~b%?1-JiSdX~X#Bm8qlXrioA#-^Ufjg&Rjx?K7coRG1#V!75V zl9(3#Sq|UIoBcCUCH~Aix@_ZUWbuY;xea3?aSI}L;65&boBg-OX^!GGV?D!ubnn>< zH9Mv?jF=M{4)Zm7eS-gd+}e+{q=4hLjTsw9G>pBi!I_V=?`QYQ48EBA!OwCIp}!)| zX=nIz zL%f9E1f#abNzhrxrh6o)FU7HWu_P$LsQVwQLIt4I)?^qlW~vy8j?LG{Vq}IUNDS+4 z%S7yFMXV8f=yCx>^GlElAOEfZ?LsWl{D}*pogpE`< zq%BC#`)*GpvMwoa>v#@NQ}u$IB5Y`ovPBfQ4n^RQ!c zu4G&{PO$0sIO-HyJ;_mrbxup6;WNC@yR6VVMK#;|K(#fQ2IWOsptjE_`5$=)J+k{q zsb*?x&?t#>Y!inV}KlwsNWlEYu)8bO^966k| z>#L+d;uXcankLMh>3vAU#-?+(1%pGXMcu`vo_L8_7>((u7oVBod1c{O%RR6r$?CrbBwVBsGR3i8 znfJ0nEN{LdlVf4Idf9iLl`V+4(0`!E!^k-~(^OE^2Pgm(%)DJ` z-u3=-Mc%vo=f2>mYXC%FU#uT~SB`KHQyb@Z#jVK*E<{xZBr=-Y zX+7V)17qGY3#jtcAz>APIF7msK(jvQ|Zry(An#wiWrD_^U3H>&TMwX>0!J67HNigX#1JMlW5xy70Uyug2 z7kX1eVqi2%lwzEZMd2FDyO8HKMJ0Oz8ihlz!YDD8mUqv?lns%fxGxDD+JRTG!l z^dIm<#^l1rn0U-6=$>;m$oSH~dAn>o5D)TA*1vVvU|Hh3f@(q@Xl5036_6hH3aMDn zovbe(k|gtzNvi}X6D>n|;O6(28A_aClENGpgWoB=P<8uMu;p>r< zcOCYAWkF73&8-uB@%an58|)HcAentOCI*Y_`cE(fVo>d_1-K_)Tg%THr43Q;tm!GI=g z&?K-Cki}j8Bt#6@rx4?6Ys7m6TLPQjtg^YT+CJLqQ>|KUAKKd1r&YjKAt9IqRE$U! z1vMb*TrMjA%pVBs`#m#zlaOra?|nb-@A-TPd+(fcXU?2CbLPyMnKQJ5sdojNSB}Yv7H^NxK_kW9C zy)#4H0*zBlIR^@`eQaHENh$1!8!@QGH9noS1DDt#fb;oK{_*e)=)mD@wh`tH-+hBq zkPb|waj`;5b;1HH+!}GAx$wmII!gcZf zuG`kz{Q3|4U6-thD=-+fje2ZdpBmCtC+sI5qFIk?AJsIG;$w9*+I0HXhFrBCSUYq> zeP%qC^W$StA?%=t)JI9Utk_myTt{fMrer-FX@e1^>?&k|_K=fRusOJX4DP*x4UcAx7NyuL~GaLxaay zYQ2lG0~=j&470AXc~oAZ|2WhV%|#iZ#PUyLyZc*-;aT^q^kozEk3Gj36- zwugNu2rZK(${2a&El*eC1`5#foOhS8!1aSj5O2=kesDo^{tZJ}Z$l1jhYRI;S%kbP zCV5GD#SR5aRK_@UJ&pxstLq_gS4XfCO{_~iREew2N<=z9I`Mm82WXlu$fxd;`403s zi|g25HoD#yQ&9QNWw_q3I4wNl2;>g}U{$OnWQ}0xnYSUB4_G<&==y?Sv4ee$q{zEk zk!~p<60w9~;MtumR#Z7kQUa^i0B`0?n<;ooWM@!&#I;%qam-t8Q`VLE3MwrJ z@m)(74OG-gR%kb2hgeGPc%T!rj0IdJ88`FvYmk0*Df|2Gf5-836mJY~2J=C+IaJ^V zKL|0d=l%}0(B7?i%a30=Y%}3q?L6BG8fXiXRNIQ=nzIZW&7|6${8{JETk$MyX~en! z!(tunLHs>ZFnN9;Jv^d~4;8p107=-gPSfb&71{z^+hxPgn2O+>*a`#`$2AILaL)1W zikjRsn>K}1l#*F_5X|!xl(I8aG0q2^a}dt@(9b9-%@_(eKO9G;{R_EI@fCz_F7Q;6 zZVx{&hNr=`<#W_D`#}Tliu~cdq-U`8i=P4Ji^=#dl@F%RHH79Tg|!CUS#6OvCuJcL z`i1EgT0(_0MxHKh9*S$Nvv$ZsbM~Uj&+P~;9tOi4s&kCAxj07JJU0d(J1+c~juw5?Px2>>TV0nZiSM1T`7LdxZw6q~ciW|Cry zl36z*o`Wk%$Sf%e_)`H+1~@qic$)yH0Gx6WQho(AtnN4J-BQre;n6A76rAGli8U?&tfDM3+i;(gn(6qv1&Z1)`DaWE@RxL97 z2AO>m1-x8R%^AKhP#teBBOe07P*9r!0 ztP*O4UpR}tkbfjf|6*W12T%mMbrE&zeuUKnWOnI(px*&xcIW8kg7P!1@M~w$*IaL) zYu`s*yT94847M{s4CP1b%lQI4SYIA1z-C{LPKOj|r|EN{;Vd#tS)i`npOjW$fs|t) zC0bvmjg$Zn)|avBLtwKn4@Sz}oRsgJMc^_Yv(BQkCMndl`;$To^vJ9mq)>nE z4-N>h*{A!1D+Ji=*MpIA6Gt=qxKw*B-Y@9q`dFlBg@>I*hfQJ+N1>(z!#arl0>o1H z?@!Hs0X9`YfAH%9Y^s65i2Vi7w8F2PMPKp$4%Kj9w2}U9k()Wv_b+U|01u`PrUX6<|{x3`WXNfun!@#BqiEN zzeHqaj`aOWxn6(=QwO62*i;9Dk#d|I0);1?MJG*CqK)*sfd#IZBYl5T{v^PIse?xZ z*i;9Dk+O=D((Wv3H%W;$(%&R9Ge`RVq+|&2VCo=7fK7EU7%87%zk^nI##wa6BqiEN z|0=M+6?3HTPs)=5JeWFoK!8nkFc>Mf0JVr+ z6r~G~5Ct4Y509n*+OeR9F9%Zq9|^Fj00txP6`*N_UpkAvG&vQ`(ytSlnWjO1PTeiQ zgZ6&`Hv9izq-1hZbZ3!nk`m3*4`W3P)i$kz{-m@C@Sy!)fX)6t7%Be+G_CL(XVEt% zDbXx_S!8Bf2mMJ|BEW<8e*rf8|6rs@oRkyJq7x=5(JXx(mr8;wrghMtl-&Y6X#W>r zv;Pl9N-fZ|!tb3$-^PE}?073b*|9Y{*>M-%%kVw}?^E&qSx&NJ&kf0rzdDm0zrQva;a-y+v+zC<@1ybF zavi?AKH2f~jAX~-*Cab;;(ZFGwlfshD<#6js9GOX7B#oIA~!fR%aWoZOcDriX_h5NMMx9~DL_aWl%B)nQ>d~#@3V7y>_E0h&FyvW zqo_&+LTXfmrvw80nq@*+Jfgsx;?)X`DZ4Ku(LA+tVU9_&3W&L`7ID5a8h~ z8yOX$R3N~|SvG1=damR2q&x3R=k%llIX!A_Ng}sPfDpX{GVar;x)cbPM$MsFAdCjW z=t1fEEs(UTG0ywO$g9y-V}Lwn0CJ#RsRnQ?fMcTp?*MQdfa9V8X8|}K!0`isqK_+= z$L)yQopr`}Mp7Tbd?2nl?mh0;`~>n3zh+<&{F+Vr9=vIuBTnxT`95hg21W0Ytdo3g z2zp7Z4V?s?|3Yb)0eQcS2HXlD>>ck{(SW}O5Y~?O>j6Mh7d-$chUQ^TFO$IzB7p&S z1eT}zk{|^ZaA!vqCO=+1D#8?j0DH%KG%A8!Ai(1B8iSJaHF+pJ$DH0{COOBVX11Ms z8LBV=@_rK);Wq*SHjnq)s0h^p0alOqyFtlW%E>wI^d2|KIUY5$Y>^ozLEaNl5hQ^? z{5=^J;al!MsDkC=JvAsfyU0`FIqmeGrjF)?9aMEXYHrVq+%OaJejgQKgFt}s<863iAr_<@}G}+S`HM5~2Gt7p(T~QH^b7w;p3?T2Bs0i-~1eieHvxAcJ zM{-Dbx}Dx`S}P@9cLP`IBg=uk%JpCxY#{Hsfgos=s`CJy2Wa>OU&&T&hXGYl05fgw z#ay1t^hLM}M)Q2(^nPLTqv0!aoH<^v-Yg?_UB* z^L*{}er=LNx?o^tKNgu`?lXu2a0`UN6~JVHU@8Dw;qFx-COL_m9K-1~OmavU3?%1s z?p3J5{Kp$z0c;ZpgDZe%1%jynqLZ^0NSfz6r}sOP9MS~?$?=HHFbDERR{+-vguxZS z5P@JSfav7txladk5+N0^uV4Um%$MKRP+LadJAG-VUyA zpbM%<7Yw9ls>ltKA#ZdA;1CFdD}e8~51~f^M5kvrkTlO(r}wPM9?}H^$@#6w3=<-* z00tt|2n16N3`Dp?AehP^Iyp{`G#4tN04f19Ca9kaJ*3}qX+P}r9ySR+9F^b`-0@Ha z7l}8zvS<|ugDZ=_3ItPGL?@WMBbw(cr}rz995NaP*8V?4W~SjV5TQ^Y46ZCP1cIq7 zqLXu$JO-YlPVZ5Zoalzb2iyTsWf~3x$@!Z=7+hKWTp*arB04$uaB{wNdcQTviEcQ| z7MYob!$5K-2!z3vMXW$Dl|^)NJ|!oH=cLnn(j+Ik;qV%FMD!RA1Ic+pAPlZ7?iUEA zvWQO30!~i5)7#E<0Tf47bi*N&=jI(;Sy%-Eltoo^W$^{~M0lYrs>oW1PR}+VX`VAq z?-`Rl(G7=R^31AC!(kwM5Gf5kxN2}^u~;CO$|5>B*8&Mgf8ag!!h3p}i$9)VPh_2x zYCnV?=rbJRUYEdd_yF{6Tt6IgdJl1?!ogZ~C~A*vJ;jNHi`5%lgZxz>46Z>Q6$qvV ziC&AlfTVf8bb7xunMzZRfjlb|nVFWyK!gl|Ft`Q@pX3!XHAr-FJ^_;E(Vbr1Bq#dR z<8LA})AATd&d&wH;2NY#Aeb5?Iytv+a=vkTzcI;)KJ}O&GBYiYf#k#rguyk)p%a`t zrUr>l&Kp3|JSUvq6I^(pO{${LJ^oYVW||%Y=~*oh%(=%v1g}6aRY-JtCUbhecY41! z*%N*0VHKH~rpLh2zQCq%RK}co3`E!=5KMC;Iyuh*N%M3$y8t@Np>{WEgB|+o)Ct{)z5%}%Jdq=@Ym->ecekh%_=fvI z3IQ*nJ)Z*+-Vq4!RF=@b&w&UOpb&dF;Hg}Iy`SRL-i6jnklZL25<+$BONdg5EKDK> z0B->h1T2U(e)I40$q@N0h|#OaAwj`|QGF1Yq_02%kKWX%g(nun7d$W7arpxHlouvD z{@a!8czABI<3HWWj#s_Oj&!_t%t>~{;XM=Y8)qjwD)BDQPj)=%Np^J2N_KpFbF$;h zTaq0Kc=zFb9^OmvzUJ0s$AO|`$3IaUqF+I{p$Yw8^RJT)VBgFr8q=P`p?}g=qjF z3I0QDEV8LTuv&ur>QEeq&JgD~5Elg}kP#MzbqvR@^K#oZIyT_^?Eb}c?&@_qd>6Am zjqcy^#Vlgoh#5fXJMBiQR@1_T!MYTuQn0C6(rSeGSkw7EmK2SoHxx;u{yY)kV(M0r z=hR@it)be6b3e?3mgASfdzk*a$PuAobuL^7v=K-1%g;5r&Rfci5$x`C^X`S5T^q~0 zn_TBCg~$=RzpJdFC7r&wh2D_6+glQ@;smqpf1)kz6Cr!GxFQ|LhH+mqLQHoWDbi+l z7f$-D>P%^fkm)|I;?5R2^RGs(E^$!Q^U$2_D$f55C4TXvUp7WZD-jTxpSzjVdm4yN z4BHT5#(@KRA@@PHX&AyQxDI-94$#3f9J$?(vnPlKbTgch{E+YQ5)T`Lkn`%!N$sv< zaY`1^H#E1L^#oV&#Vs|iMU+ux%mt}dgW-c1_x+5dR{f&{?z>=z-b` z2eY|&A!zNXQtd&zGLEgl_lSKT%;v`$**Nhryu$%xiDQ2ce2Vj_&JQ+@TTf0XY^y84 zb+K!Puq)}i%gYeVL9 zBmCM;)7PaM2rZF4$Df-gcbvxsh*OpLaG}*0fe37+?8T>W?~13igzY|m4q}EA4>%xR zPQ-h0ic#89l(0x^DJgBxaTT)PV%bhNg-&=c=(20L`*@hN9xIbwKG)4uKJx+53(~bEx4KYANASY={m$th>AJNd3 zlG2ibQ>iXn!{L;`9>jnPI+XEo@032ffEyr9V?OEqBYTP-1|80v!7!w#z7?Dyl=e!@%u;L z-=A_oIZgP$8Ut(`v+4LM?)}w6oWNUSTP-<(`#{oyEC5C?o=7nikbtK&_k)QYpLFb3 zKe1@LwGR+X1x4Mem}%w9SL|@mVMd%uMLR$cI>HlLIvU!#k9U{IQ|U+=f)<{aQ*f8h zbJzll^I3`PHt1O2$QAs~iC`|fB*MPt6~$Gvo0gUyRmNYC?A zNXnh+O!_ufInWy}x;4o2D=G2C^RulnBs2&xy&va|@Fl;)Bb8^4i+f)z2`xFk5HfYz zs(OTd4MfW2L7odAsOVN5aW9BGJg?j# z55c{%6x|WAI^!yWxU7+eY#i1`tFY-Quuk}OAL!~FC9y))>yt$j9Pa8%<MvN#5f?}GB?i%@^%($DY;bBjNGu{# zBEsN>rAYxoGXBAbbGi(I|FKWNOLeD%PCDa4@7WXWA9v&4?N6-}P5WdT4uQA39DZzn zI8JxsmG9qJe!kiDjvX`x%Uk6n++x_|3OkJCX4gIvtBvK{Xkl?*@N=c+#Y@^PTx>{p zvGFnDo}kE`zf}SRR%|839%xa9b~IQD5-m!6p6j4&^}EA!il;u8xwz-^67_d+Tn2$ej7!=ZY_bhGTafd&IN6VE3UEb1 zH39;p`5XvVB;SC)tMNA$e-4!uC@!ur2EodBX4m2Y z-y!e-9(XxpXIenHEX}mwc$2)!xkC!j{bc}Cp(roVjF@qLJj)}s)W>1eY ziAX1$O$Bm#jr%m7tTk>_7q?$j?~lb9Q}=NzPMjiAX;Ss+O&Rhqfn+n%kU7e<7%yx> z#88pyV8f<@k)7dSf^sRFnQC%715eGCbYSa`;y=|>*?&Xk_GXKkuz&n!L1$MK%e6)d>iG%Y1;K#lls;8yW4Xc zI^#8KfUW@w&Ca&^GtLXO>0y7dLshV!;eXAdhrm+0z;T2JT@EAv?0=hqb{r8EDGUDD zPE-h2^S;8aLsGK^OKcY7MY5+8Ae040lG+)kkbEL2{SllD-ZBNHCTKWh&u=O^6R)K` zNhFq))j@`L#cZ4(i;D;c!b7uTC;Bt|8{OyptIo~Y=nf-t3W{oP@JqEfqb0$iSouC* ztomNK6vd==kYwAP%|RDaE@6Lw(yGZ-@qz3H)T*Bk>vTvLLkwbNgs;a$hrRF}{{+V_ zE=7?0OBLKK!k%78=h&Y=K-MfWlN)if!1e4EoEs4De{Xk%K>%!a%j?t~18&E5OM%6r zNQiYfp+SjHs&*K0Nf>QijtLFOVD?OsG5M;QmIC}-j<;Cxh97#fVm1eu)uN2Wge(T} zz0l=jAnaTYl8_c_#6i7uxG(`tw8*!DfC5A z%NzAr2{o!CWe2X+1xH}m*7s+ zn`B8xpGC|TKo1J2@k`jz=X1go$w>;(&WC0fqg~R-A4x4USnA!PP6nix@vGXCSr80#?%Hr0$%|M2;Gg<2Al5)qixi{2)YiM zhSf0eNUJ^wi#MO$kNkqU#&(#fN}HUOryP{W!dxOH>OP_#8h`h$+#YRe<3gkyVVzf_ zR*hs;{Tzfgg6b-w`X;=PwRi-sg6eeVd0{V(#x+>nln&+!J8{o!PO{c)l&KO~ClSk1 z{t%br!PVnR%iMtWp>P}p@(y09-gr5vkwkNUg zoOaNWryP+dQRPPC){z$QUg+S+RdML$yjC}`3A|D?sTB8&aTVD&QqKsqsLBKA#q*0h z5YLeZEaBnx`o`vA2FM3yWG0YCSNzcpXeTh+LRcfrH9l0XWnJ+-H`>uuoo$)L*%G<; z%ypVVU~Z)jufK~fj_IM@`58Xj(eE?=pr1X7&&Xu0vf*+QT)ehuA-e*R&>*Q)hE%H% zT->jw--YMW?PQ0*s!f)*?2cHY9$ zaFw01X0JR&HJ(UrCbElhhufvp-2?BUX8axhxzANJwAm`+8W6@w+5)@ixG_fB@_xu3 z+g>=U$OzpM##O2jLarP@ z$Vd>P%o#w0w50_U%o>b@T|~m}3g;eWas^@y<)hv7Lugi31mBnFfCF2~m^iv#ZHt}5 zAqaWL@2)eX3lQPFSO#ZnALrReq()8W88#;$z+8mi>ok)ZB{Khb4RbU^|H@loQ?7tG zi7w7sq44o3tbVDM$6}1k3h1<_xbyix;Wy%L96>Yl7IG=;J5LZoMp4peIs~KU8dl!# ztI>mf^%U=QHgFe#x*Vdl3fgDSfZQPX&t$5}P|SsLcD2vW9cxvVV{&E`*I8yX@^-Z6 z?1e1Uov3RiUIPzcX>)5a&p;kWUsFJ#5p^Sx`HTD*#o?-~ygL~@wy}z%7E3vW zBmAe223`+c5R_O&udfSdDR*hdH-pHH^4}VJRlQ$@D>|^AuZV)d(NK#E&5m7Rp1Y_>=snC-)3M0|;2_KO?2_#$B4xAeMc9A>VF z=4^ux2chfaDKu+-d&7A4Oz(GGx!%_E9T^Bg1d|(2chJ#Pe;83r4u4R4{u)eDjl?Eb zHy+NxquL3w=@u_^LsSYjGww^njO(nN=5*QCEoIXxuXXT(uT9PZmHobiFu2m)60WQXCK{5yRV@l-y*+Z)mKu!z+r zRx{FJg7Y=3oGw(V+*Whef{qqt2`hFH%R>;(XiHeJVhO7i6_+++35!-b`!8X=L|plI zOITNE7g@sEgm{3$3v|&XtV$Z?&1J04$N9KT%UE|)?f?BU*1%P)=OU|EZRRT0PKXY? zMC}Fk0yzOuJmH4$z^`Ou)Aqs|m`Omm8is@$!wJOW65OW<0}s9_N7!v=ZxJ0ghRg6N zLdR|R3J%rwo9zYg)g9M9mh;pNHj9#jCbGvQ7}rT#;=)i(WDBdSy z?$ydr-%S9m2B-`g6xr>8{#z1yd7>Rtftq77ya1-3Hb71sEzphs7irJh04dR4!^{*z z@M~85|S9jU;VBKk&EJq&n0#iB@5xZM6-SpCQszVne63%-Ilh zJtaN-dw8D069ZTMBpJ&ls+*x}JP~wl4Z2#e)_}Fbpz9s|XTU*jD$9^>M65D-ipp&A z_^f7m7~Z774*^!)$87p-;=!tW#Y2of2M;ywV}8i4o{#6G>SOve{8p%Eu2wSCMk|=5 zE$harOL>bFx>S5-?I>^2hu~RrwcK3~V{>6-!5w<3{h(m7Y2qjpwe*zCMV9-(%wkpj;G1X3+vq5g9`SEx7MqYRDf zpforYz+e3*NJd2+I>jc!Lxx_72Wd+}#mwt5->gvA$4*m*;f@OW26d)yiYcp^IT7%6 z0=(*2cmsUj0AI<$D`9PqU#j=6-CtJ|3Ci zRqiDKp$bqqu9M>BEALQ0bv-Um+32bdxt{T8u4kHD4Hom>>3YnKv0{E2E*1DW0`=8N zL1n99MU3p@0Dw#^dgyLst5L3jdgKP{VvaSiOTL0CZ?Q?+VMiR1CB!|AG>x84G_HEb zq7TJ`SzizP;-?sL^>d(G?W~d>dziNu&A!ymRnjAjr{5_(dN+-@op;G)YUhvT@oMM2 zQs5oHP#u4>>mcOTBF`nsLz+>b<%pia_9c+Z9Ko(pB-LC_!g9yH3R;uGZ!n?R#VtC$ zj%Y)ZBP+fpLUr&z{LEOFcikwVrt8Rljho6}v6Z33A*G6qtchL0+HA7f=LfW$#u86>ddtKK4(7zPzbxFUl^;`gj;Z;=Pc`hYwV zU&BkeAB*4HXLTD^Y0Iqcr;VYM3WmsWPeW_(1)LJ(^uXQ?Y3m?q_Yc8B=3Yz3ClShd z&W~%KXq|{)bAZ@Uon$u7P<7R@4&HmsR??bN8kM-qT&aAGa zfcFlB9m66-77uc1BX&-)7$Y~u$ox6WVkB>hg+~DC8EA@D(1ZJLS~R6C>$9x#Rxr%2 z;G)@`SRBV$TDFCIgJ1%;YSok$a=*b^kOn+knLGkNRz)gZPG8lC-M*nKdfCQKFac&Uf&`+|_6AA+vh^|*leaVTTxVn*A^RfR?fiJB{J0 zdtVsamfS~hJJvonAJ8%ywbzZJvguA-lT^D|`YRSWHH`Ix`wL(jta`;#reTD~P(wu> zL_@is(lBSyo)d-oKXc71kq=$nvyfjxoFu7${i5nFVuht7p--a3u4xqmXWqlN|#MHLZn)qyG&zCJM6A+&V_M^@mlr(3crA@?7HlTrS>Yf)LtqbKBT zgMwYUCRN(f0Q>FnT5i8-OX}~gPm(s*I$lA74-uKIw>ftNT~O>L7~|B=MCsxG!q+h6 zK2v*5xu=3I)Toasw+=YSm`u5RGUc+c({fx^lRT6wwxxh3Ejgx_;1^?oRdXL>GSDaZ6|{8p%4S7X8390S2n*m0x8SKN+E!Lw<{?K17Sb{G%bj{AlT9Li!$ z-z;Fp?IR2_RqkzxtHwPYi?Y9Z5$$snREd=}RA>Lpz z{^$1F*E}8en~#Qm*l$b7e#2@b?6~0<37=5b!v;c`JG8*yLH{E%rVV_n@p>~wB4@hW4k$@5L*I#r6~;+jH~nV1M&%opKTLZBvi=wnU(D^KE~R`NrYge4B2<2byna zhcIrmX?8sitz+qHzBNg;pA-9g&9~>T1PbxK*|lGoZ*KuXb3HH2x1HR4YYHl@`k#?* zns4;n&wM-hZ_KxYDCB?7eA_R~x7K4(%(v(N|2N;_nl3coUK+%F+u6r_+u6r_+j%kb zZEM7QdqLPl+ipeL_PGHZ(GTHOGYN# zeA^$*e7hdde&(A=YC8_fapUnBZoWOkUcH{ow`X9!RX?GXAEbeXEV%u!m0R?4L~C_D zY%KhrCXqy7X6I2Td@>m8g0L?PIjFADGm^{ecrq#PROpXD(A4%$&MM%OT7w%o5 zI5Y2~vjlcY0ft}ST`PPmmsemVbyWrSZp^5dd9OvDRxwkt$k&jMLY_npDEaaV=ZErG zc&+4gWOuJT4F4;#9sjSD6Y&31rHb;v5)CeG<9Uqac{q3;pbB}IBv4jB{0NAY6^3GD z<=|NntxJJe4_fOBuq$W|Z73?RYb`nMG}^NjV^OB(xY9OdDA&-Lj-;G=Cr)ZSQEyCf zo=`?>H`}q%xPiqt=MG46~+)`nM`iC9k_Z#Ye4+;C?3n7y-8gB-!O!a ze*JF@;k6hfYL4y00MO&Htc9(s1)jnG@Q%Lr1b$1kHy_7O__e3-Kl$UA2CF9pUF(A7 zV}j56(YV3#{9rlUGt<})52HZ09L6O*<+;jab{7cfyHa>%CO3t1%U6=i{0`F+{?!op zEKkX;!SeZ7nh%!WqgLM&qhJkAh6@=m_%c;@0dlV7xmP$p2$p+-<=MgV^kDhyVENjh zGAFoXu~ZumWFt;nvN+=7oDUDw9O;pVvCh-a#~HDa$;YX=v$>u8jE(H%2E(eJjX~y8 z;8oNOF1<{t_IW(1)pA&w<4X>?a&bqlRF4!2yTAS#&6SIJ=|m+HRKw(}EP$O93cQNL z;67|dJ^CJ4vJ<=aXmGa}sp={jH`XmiZZXPyGdJwt!}3Kg@a9k^AundgmBA%*luWw$ zTzce}WDKf#6Q#f-cp?)oq~gKpDj+vXfp!u(YT(YqXS1F}OsTWDupkw6R?ou3UyB7I z<1nWUDnrI@pbDfAho!(@$<9E%q`>d+q`LtikM3G{bTNKs1YNU(uKZxY56XkCY5Ekv zBTn6UG!wXdvSo%e!QIqh@ulzWI-;FOE_^kdk-f=?^)q*hmg zQMcjAWK=_&HS|b4HBH`BsrIiZC;S=}?zZlatx{ zRe050v-|ppXX|N%vudqHPl;4QSv#Nt*=7ayq5lu8fK=;*;o86awNhv+dM7oB{#QIS z(~7L6qPaHy4OHT4i^f?Qd?daeuX+d=nrm%e+Scl8kr?q`FQ$plESmVFbN_WYK%z1D z+-Ct^xeGfDE^MB$@M6!=rvV~b)}c@8dCt(s;Mw$LL(P&edj$Ei#mC?*x}V;WgluUx z#4)ZD7{4R73y=03{a+korG>_YyZE?((E;NEMhA=w7#%L>nthDADjW5i1kd&SX4f?0 z1fu{L`V;s*QYKWl{t#YGNA@JhwNy*n{sHKjlnJ$3z1diYN$Msrp6$`tlHO_c(zD6u()jLC}N6TF#pY(0ZD81N$v zGo+Ow;|yb2Z(3p`O)Foko`v80pOA$Ow0}xQhScSII)eT=y^_=V0}w(!#&?h{pZU=7 z9r9e?g2GAsB0N%3BVS8f(2rc4_V1{&q^_6H6l?dD0)^0#k+m`Am!!QPfV%#ApK_W@1t;E%wuF3@6<%8~Yq^jgNx0 z2bx`rL8CR|Q=j@;0x<*A`=5WNn}b30ySt@?2|aP+R-Y7Xi;JU%UQF zO<7yhM2iC@?2~|499WFSfpnT(Rs|K0)=B#=*3u>?S;6&=>u}vD>=SGktFA;pCGU#h zZA7&Ltj*~Rx-A%2f-WlwFP4h=62e+M!3$t1HP;W$R)`5GA0}uC;VVDLk}m~ev_h~H zyEw!O!d`*Mr=W{51;w5x6V9ige>36!o2Dp3BH9Xdx;a=~RjNM#=>i8xe41TjNO?qN zq6RE9>g2^ViKLn6kI@`Jxe_R%&HZRlF&VuIIJn$WOhza3$>=q~>UkE$a2i*`ogqG%Z@_i{tn3R&+FC>z56n7X5CK zja6^PoA!tpQe!l)RZj+_y)i?sYHuun7mj*`!&Fe)3%YgMtIvzM1sM^Y@;$v$j|DRQ zSA=lEXV7bUjrm!c`PuY7pKY-iKcw=0z(4G3SIp;SeU7?wo=lC>3!g^TU`dRZ9Y9P2 zA^f#*;D&w(b?GfdvpkLSuNQQ4DBRJ!fc23AiNUc>Gx&0R&yJNh5Ymh$0K7;xAw4IE&r}=EV_(ZLq*0cBot++VsUK|;gP47h-7N1IYMI<=r>ZHXd9L<;n zbBZlNCUMoBYV~5%doiCcKH>bJYd)(16yA&ZmUWj#il_A_lja*u0@AqyBb}Y1Y2K=I zT7Q~ju0Ji70xPNaRA*xa5C11BKjw^G!n@tAbhmiHI?Th@gqAEJQ4|l#vHex5yKKzGrFJ5&8Co@m#rMbs&uA*%)`I>FOz-B{j zk1RDMObIQB0YjaQqk((lbd9#QS%Y8gc#|*&BxzhFuUZ90amqFL&OO?$w`Q z2OxHFuC{I*XFRv@lDT!G>S8tyox3sdW@p#xll+kRt{rxM32Jp(GQ3VoGWLli_+os? zMm!kE&jx@V925zM`G!`^$APIN;NsKjm;!*Hn$c--2F$_FQ}R8;Hrigu`JaZiO=AuC zT5L76V>_(#Yzg@H>AyH{%oF&}3^)0=lk?BcynM~;z(7@TIWMuPLmuAo$?(Re#3`XQy{rl<@XA1g;a{3(A$t&9R=aR=6B`1w zR;>~IYasqLWN#dT!@|Xdm}k4Y*H{C4AFw&yj@3;_q~DQEi551AQ^1e^qZ=1N+L{t9 z3vefNouh8Z#*qtf@ZZ@4Q*iY$ezJB)8nKpGmY%Fg*r&N6c^!^*+U_SmABEHg^Td6} zAkN15w}Nw-V8s4Dz&F7|0DHMgoaNko<}VloAiPmP!*SasfpCH}!@@Ux24m1RwqPN= zjln_(;+q5u?K^DP2Y5nVk0WZM4GCAhYPgQkj(b$YCDt;n7#p8)X{YivE*46a5mKRU zXzgAFHE8so$zC_yeC#G65U?0b4hChdb zIg>7h?t*a@X!>XPxp4T+@ORSp5Fk-KzS{}y-)4|mUpXy@rv)7H!&)YB> zcc0_f(fcowys$|SUAX_?3b_@zirUf!nXPolP5&NGsTQ2F&m>`A0n@D>s6zy@#1?@4jPkT(gpgkt=#vYqV7gD5Jeu1KgW`;3U zO||?S&+)02bv;beXMlm!AF`!K9C-Af$(0^UB&MR*2pJ2_Yt1C*6huaPcn@k2o){{E zcyb1yTvX9)KaxY#8;Pl=aOfX{fte(Tsobwd=J3V8GzCt7j(=&&oQ~$c_?Ho8-7T24 zl6Q%eCSzG<7@LezEq9>qw`PX7({l!%XJv*BdalIt4VhuY;7YYr;W;Za3==%nvKG(d zpB|A3#I@$5*GuZGGYl)44q{ZOB@z3I- z1pNIc{q3$>6^emi(0e|(?yd1+unFL)EzhzrC9+?m{p@J;5M zwa=T{c1O;x{5vqbBD3yUd^!3Y6TwCwFP$U8MOvu;P)uDWqpp( zBDmaPV42F0vYK&!GYu&Va8})BUAAI5MjJjH)!bpVAU+$$COWQ@;#CxcZ4BuGIoL^wwTaA?q> zeVF65)*Pm(Y@fW408#1t5pAy$AI-Jq?5R0KohFB3;4CNF3at%oV;VZgG$I_>aT-|X zSRJ@=&x-9#BndTht$qudiKiq|3V*UiU{ttBNitJVx=4YZ=igKLA|=I40Ree8nrwS(+5IQKezQ zTbr>E58HSI7t* zjBK`y0X_m3De*pQ88Y34Q)fgF@>L(S#X{MfZ&BMaVA|wj*eEFU=UJ4lMotMyuk5Ic zt*zgPy`6uKRFi%0tJv!h(s_sm9VrH_TLx;iO0bNI;*U4l9Y9y)^ z*5m3GmYNEy1mY2N3p|S`m~ad-PEx~hd|^9QYt|N6b6V6x($oc*8u%PSn@|LF6qj6z zvS@P=l@-Yio30mF5qBd=J#4LHi=U!#9L`g){Jd12+p9}S5CbF;i zyJBlEv}VY$1;A`%dqtX6oomf#WIKB?3L+S#Ibrr^kvyVAn`)#W%E6wnLwmp)*9nD@xP&VRXh3~MgxUPOVKMqu?b+P&4 z(|a%-8tvGw$M>&=FESVB)he%roi>+(} zEKjq!e+r|Nnj5uDP_D+;YTGHb1tW;n7(;JYSP+ilkmT=*lW8Z!dw9-i>6HS=Eh087 zn9Lr5J%nf<3#PH3;R$E1DE1r8XKqZA^LS;j3xFy!+2gYb=5}Hs0A!d#PFL6oN@QC& zK^qdB{V3Q$wZu_YpGE81MkAjOjAh&KrM5qCK)wPpY(v7IMOG>1_?1f;d9=6Lk09Cf zOs7#7X}3?b@qUqpts9-%2~@HwuR&Q9OXEuGLmT){)1T*9t|azlMBkqZU=IN3@m=MgPkwLilHon;;;r|_@Nl6>Dw#-syhg>OekOT$6+ z#aVC5Q|2z>qAO4KIammj9-Jp00#>GJEv1a^WTkH5Y(%fWwuc(yGM}COK;Ry(lMtA& z*%Gk;jD2d`3AH5#RYO<-$PM*vKIYJX>F36P9SUGJ&PcKuq(*tyr2!b27)%H)XD_yz zk3>Y?UAYc9p)fZsMmgj4pz=vQA3z+*y%+fal;s?tjc37en&f<29O=!yM5?9TAlj(9 z*cmRnd`tccIX{1*oSUC7Ps_hi&d#4APtO0rI&1z<)=$hY#P4nE$6!iq&Cgq(mhWF} z%|HKuy(6Avl?MyDZdQ@DBRI;RYf)Zauj~VZ2Z;Xl|r(bW41PRBYVBVUQ&03` z^;n-!uIRzNe5CGM8mjIJ4%z7L+UWjb!zg&b+_w82aNEII*U;qpBBohbPTlKPv`)k>b78T z0Qu7VLfHzuG(lu#0S!s5#Oy?0EGrP7mBW6BNKX|qhV(oK0N9^G^21i6EewhSYG)6N z^j{`e8RF}b+KMb}NP)l6Fe6&b=I<&Hdma5mW*K?8#vD2jEBq8#?pH zh`_7rIPsUXCau7$rPBB>T#&O!KAh^R)0WE+@(}x|Ph(rfF%P>QGbH|fRwDufl$EVd z6JKGzD<^S`zk&PofWkh4n6wvLC8>59L=R#ai^Q){^JP>)E^A&dRgW9tY&tkpIS29u ztS8CFAwhi-J0;2}vpQtvtHy)FtOAS@B|(T~Z+2K$fviI(B2N|z!2+{akeoz>+v~jm zV*_{(jG2RDkU0R1(I!TZU_SIM0DIVL$e~9t_fp4*XFnq33&nV;z<#(dcD=x+m}vr= zH~1LD7$FlYXP5s*FP2u6A;oBI5BL(~>2(P+8W2^_jdz zu<&$op1XUYK=;U(hTNywIIsdkMK^Dwk!TLAQo{@3KEkZTBsWy(Yu_L<+BCZeGc_X* z6Y%92lPmH)8~#J+DWBzOpF`VUs_pP%`I(J><6JmyKcejo-%*U+1rg%3xAO~>#=3;! z`~s1rOoS7_WiR#0SLM07iJBvPk3b&&R>q5LYIHQn3N?&_Ax zlx2~MqvbsL1#)rzZI}r{PGZXT4DD#hfeE{vG_q&rA4`w#|!C>szrJR}_+M ztwrkj81c~qS-#0s=I1EPXQ437>>nr|q%zLMqa?Y6AfqqPm<~;FZ z?|EcaWsLGI=aKt?_=Jf#4TwE_s&RK);O^uNAAgkB&nSWc*<{HyvJfo=1-Uz$EHP{j z4KSBr?b!mSgv;*Fy#k)~^Sk_qn*9ySH(~`iQY75cmsMFs*Wu)VQ?Rc~rCQqP#b#g~ zLW9qw+DdaWWjZmu9Chpj+kMOE9*5tMx!A(q6s-RY9fmAY_E2_YR=5IJ9Q1ZX3MYmk z!7ry)?)ySC+8@CvUpZ%+s|{Q3Z)M+8Cg6i_nTK78XZY|?g343D89#~wEpJ2l=Aw(i zQ!#_GB%ToSlySbRh}+ot!hDlF>`Ul3bV=k;h#c@k#w2foPjoTJkl?f1bFk^tecF#U z$846mEfRmr!r|rm_1ti>v)$;#fqEj0SkNW~5Ly)hD?OF(ko=+D$puM8uI?$a8&CSD zK;x?2;ky#NA?{&ctt4uB+;@kE74i?Lme1me3oQah!2)9ZwmnSM5Il#kSKHV}gmFR2 zTfHf~nDpK;^$-?C!KW_B5N$Q3z0nb&vq-gPP**NVe}E*FfnUcxz6?`-(ka1cK zrN=FX&mb@+vC1T&ql^r81hs}mHi`>MtcQIDxggz*{OXBq5fcSU7q$fT6_*lV)AfE!#ig;l8F2Pc4Z?!kdc7P@ERBQ?ibsd--+3nSz$?9t^^FRDuyS(QlJPO0Z-W3InWdW^Qw zNwrJxzxpj6PU1WD+ia=!GdwI1_w_7LiphNB(~pp=(!=JUJK+)o4EFy4I!P=WfE{vI zvW1a%?8314R)$>X&`nRXvpiM7Yz4E;J&;5F9LlS6oy$icmu|&g=Q_X9MYpzGV^|Th z?HVei)VGSlNmC59kozSz9-;tYD8V2JeSE&O$!^ynXn zE$6**wt9Y{6qtr&&`2`zS8V0x%$bI~AbUhQ%FjB2oYQ&vU|c$26%j8;K^f*0&^32( z&Kv?W=$V~EY*_^PCpRAApPjd1EX7!5otF?J2zZXV7KXpm>}N1&)o+XC zs}{&f3*>?Ya>fG1jRTt=_5+v^0{gul?8U$ixpsQk>>l9XdVn`@;H%L2J-{akSY1j5 z)zU0Iv6S6UL|`wf=~cPrH`t%_mfSmYMSn#!*sWJ^)uS92Jap>IW z_ruUvxTV5kP*olK3@qMC$JeRo?KXBAB4Vuf=awlW(D~u~w267qhv>v`CErQo7`1 zMS}>%D1V_q<9(dQ0X`Otr}1kx9}BpizoVy%c9X{MJ4tMc4?z}UX!h0YYJ((U%PR$R zHK&TTyQJEsc;{2bTk)V)xAB=`n>kbbLyxj^NZWQtW{IO{mRN`n18-6k8o${jB=wQ^ z1tjmsz_9)7#Fr#Kkl)lz7s`8_$9OU#=`HB=bobF#F7433B%oZ>>Ha)pQUq;N1g+lq zNL|$m;`fDItw?*t!xmz#ANqr z^w(wZ`(cus^R8$J%X0S6ujxh&(yvd{9D5!W=E_IfM$uhg=k}<(@-p{QTntixT|>e0 zmBI4GoK4bWE6_fOBLTb5`2k`RQESmoqZwEUSI<-9v$i0#cgF1ngG*)Xs1?N|`0PJDIFm)7yxRSl!M%7rUxn-!N&mm+kdHFK+t$TJg zf}&iU&n#aouL!x)JggR76Pdi@%lEKHAR!pZz^KLS7zSYa9fhLuZ&Z?DN8oK0TAnP@ z#cUa#u;mw?ZCvUT!>gW~uHdGU#YRwwi*`KZnzqQpp21!t&i$2a29f1nDW;KZK7z3m}PKWDR3o}AYlSD4;1R7@NSN;s4erO*Xcu$ zsA3yj?XR$-OnUSSw2gY^Hf-R+t9oXII0-Fnvtb9?t&tYlLpWVHT{xR?y7D&MDbIp8 z|0T5x?ebd=yna14t6^u-6L^cXOBME%P^mwsF^pCW`=sl)T=*Vx-_Gs=UXA+>+FlTH z-L97dL+!c=CzrYk)`OTL>Cv}H1iEG^*I~;^I<>m%c8ssWj-f9hD#lJC-TAhly!JfL zBwJ3ziAjq4zo>Ey>8d8RYq9j$pGma37D=HWQNFrIs$GZ_%!D?h+2<?5dt*zFMSq!XzM@LhYO?U#Zsbfzx&kE=^mEse(*7y-AJp5DF1P zslFVP5t!;j@Mi(Xc;mvUG%_U;$Y8Vo7pMc~;cdwW~yWl+Nm?U8T~a89b#-dh~ZZ1tN^wPEaa|aG?-{ zN4mjni17L$YFF|4OVqA;(qlT3BBX6a6YHJ}->EJiLId-*_2=HCWODQ9@KDsASM+NP ztPx;=GFq5a#&D<{4||b%HAmV3q{?*29A)$2m#DrUlhfU=n27zcvONT*u*Qkv5ie zI-G9g{Vc#XW4* z{7fb_x$dKDl*cg8` zGJ<7=4o;g|klmV4&%I_M{}=* z*7t~YU$GJ#xV`WD-ahw{A31Z*{#<+Qwbx#I?X}k??!8w2 z^GYse$(@-4k_T_-CXx}j48pa^iqy7d0*MNIbD8fKUpNVvv9iiX$uRo=5pfy_4OJ@` zVX^XynNl85NiuOBNY$8rvye$I-d)&av-c*3}ZrbISd(w%ifk+tzMJ#!QSAj1lZCu%Dg=4kpuDUazk_nndiMgMv_z zq}Nwu)OQB0g>(k37vyRSyBaJRay2X#NY~0Y;5rj=e_)+o$T-#8Iwxg+5!{#19Z2xD z$l-)Kn3P%}J)%CGusvtEnqc>e1$p8fdE(4GF(FTk%aazBZ2@|;*=5hrkCPChwlkWR z2r*?F5t`2`z#8?j9ALKtL~Tr2B_+3)t)-usvX%IuRy_gnMqbfnnjm$yg*6^w5&An}tIb#!~2JeGRD@Db9i28fGATaf0(0>{rLAL6~#_^A_-DqimBnpU*}9 zbUviS$#>iVZ*+dMGy{-<-Fygg(B>14*jl19o_`ZWaqSvoQ30(gk$jxq$(u3c%C;G} zS%QerqUwFrA5xRZoe#?^PKR~B9mTBfAf>dc0Tv6UR0Sd+HyKRdTZv*101AIU7U)&5 zhldkXS_tZkvp;~0FarH&cqExv^V=6tEBhX5^fx11@%GUUZY9_ew+r57f))X8y)X~L zI?&ryh3-p4+1@S^?_etmJ4;uEwfRFBJHVxGt$)sLn#ptir(M@uMj| z$Amdps2+(VIi{=V)rMD3Z=)$!T*L`lZ3=B9PvJ(`aI2Z(b8XLO`5+aL;O_F|eD(%V zr_DdPw(O>nkc28U4n8JHxs28|MG&f^1liJeaZvPhu{ zD&0;MMk#H$nA|iIPQ;5KogM|U{_HZ$f`^9vf1$Nw@eLq1W4rjYT z3`7CP*sqXB6WGh)fKQGaI1Zy&oC?!!+FTOhSAr%j>h^8cjE=Rw}s{{rFZl(-siK<5Ua4nHgOFA-nbRM^%!!_^RF zOr?T1qZq1YOW9^#lp|c!B)oAXOr%LPzHFm0k^~x7`Upg3s6MBL682%@r3Dj}xh0=1 z24UgtMcVw3NI>SgeNrp%Vh_?Z-6Mim88lC1hCV#TV_!uqCpmt^V=FGA+e}2)M8wJy zJdFe(x*g$w{{`|ha^QH$R+!zbMv3r+QB6nExQMo&^`X;1eEbZRK^5~*5Keg3)b675 zL_*C^s5?%iv{rpVM`|R{B6%>hvezLFlVbYEL8Ug)Pox!)C?nR zftyaH2|~m1{)r~k$gjYHsdwZwQB%8zW*3+uyZTVv@wB78C&wI_O-XC^V$RlRI)TepWSe-32v`Q)q=qP6kYG592F2pw5>YI9EWnXtbjRhX#n}iKuQmqDR61_M%hA2v?WKvE*y`r807RaAc83lm zr!y;H;vlGneKm} z#vW(k2>65Ju_VQGp`d)W45j!RL4f)S4_0c>!TcKE`g%UoDy3xRMG@qX_kSD&XQvei z%=Ptn+7ta;`#oRRlwwx|8;1dw3pxk$w88ErS&YdD&c~FD*|)FmV;iF7^HFSwo`N>p z`DtXma&CC}FQA$1T%r0Y{PId~1~4eLi}^uhD0XcoSGkDue?giTu4!f%UI8`|3oQQf zJlbR|W^%G>lu7F@qu*hg`=?iMf#H7URpT-5fN;0JJ22y1-feHa$rWU{$X zUzUc6L%beV6Dc)?ebTrIv;gVW^;fhs@5pEE7xnrojdtqz%K?^sBn9Rz8R` zL=gH;@v~?)%)q5}k#^u)g<@sg#?lI|6A)^&aOdNeH=+78J_-NF@S8c7P%PRr$I^b4 zP<=g^9oF^tqaJhwsSnP<>xlbmy5!FWqBC!K;afm~$`l;#InY1lqp~({OkTmdsP80Zo=!ki`|g z+snE;318?z4Mc&TFCdc;fHjSDp=d=EKb`HH6;+wJT$)$;SoBOur)R*OnqL5=D8$E) z^@SvIlY~vV=OcHBu!NeefJ^U0Kbg@ZYeGI*RLlh|(EXM55$(99kVQohbfimNO8}4d z&9E})VODTB7(~`2uIbNb*C5_NW_trb4{L>Te6EM{*#)3py9FBTqC1SHLPrQoLD#)S zsEaEv$(n>WJ=TEw2PjA1`x*iAF^1ZVdT|^maWOPFp@T`vIPo$C&Kjb6U4e5FoQErL zmXZSJ-h5iyKfvBap8`MIX<2|f^|0_EG$o@#Qs7{dDq`n%lU43a2eA&U)NLFqcK=Ao z4wV;gg(HNEI9X76aXIc3<*J4X6z>m!=n8~A?Xq@ju6*eRu9T2&=BElq^57f5wo>ZakG zyAKV!B!3XCtB!QO(V?>m_8q-+&L5`!IZPSgT7i5K+IM0p*f9N`P6vl+MbwKf(dpnp zT3$h{JPZpZ79CO2`=~O49V(zKXx-NHiPg|#>1)5k`LL$01*&zv_A>JI)LVq=O61_F z>EJikc~~Zr=@ls{0Zso$oGLpAng_$soWk;mw_^oL(Pps+!^QqP@T2_-+fg12Rw_xy zY(CFw_tP#lmCgP)$|XPo?EA1alDM%PzJ3t zdjJPG%_LgPPy?u-Hd@BK0#ZZIqM$gUa;o7K$j|9+~hiIxr1jaRk1MxF3b$!iyvH z%5e5FO4J*&3JI_{`bjvT6f6XbEhqy5G*mv{OAW>NW%=wVK!(!HjBi#0dZJq_!v>P~ z8Z=Q5GLP(l8E`dpRi_(VK}e6;kkGPIr3`pk@wtfaIPeG6@z3}ebC4eT*C-Rn#FWWr z{s&NlqJHRw(?}$mv)DICQYsznbtl5xBqz0EmP}pmO-fg4G1hx zT*4jZ%|ic2bhc1^5|MOuZZ@y19M@2h!wcrDrT&7hkye$i17KE2b2r8SF#RZg@R`pT zLG;{U@)fE#@)FOn4?&tWwdF&l6!y`Zq0;t|A>rjE<3*j*USlmtf<|j|IdlW+ zj~wm+0mEV%LGUknnM0%z?7486+X3M=e+g!7R?SPn?M4>dm95t57)A!xqNi?0>v-;O zA$3nZCVMhF%JL@iy=XTYQAyT1kQ+Hf1`B)$nQ6A7Y9}M3ff=v_o=Qvr^jLs@r&k~J zA}Y~r#PJ*v89xP*wXvbBB>qAdlh{BafG;@dTuPFH@+5Y zVYCV=j8NmJB70AL6alX%*~ydK8IdFoNdSzrPA#;nEo=-%K6>v?^*#&GO%_lIY=|BP zAG|;T?@!pQ?gr0#6Md<(yD=ycojVzDYd2J%y63S`gpODC;4_7a*vI*vGzuBFA>-qE zM&69`ASl@#a8!DOa5zxq4$#^a@cKWxq(fGwLsq31ac9qLi$j`Dg??8Lx#1qJJ|W#6 zir-HCm=^|Y1Kt4G4@f|{;U0aKn5@U*5_J?ZSue!ANIR>Gt1p0HxVWlsZOEO;v};52 zaD*>_7wGgXWDt=yJ(h0DjlyJ@Ds#JqXwEgGKBFFVb(9_87$-W$468Z845uQPl-!%o zpeJ>HT=OTYvoBT1j*=$uvT^*T%h)^Y$Y-xz&^tZAmgp(}3o$ z#C=w0uD^3@CV+!%`r#q= zC8P#EsbaHj{U7m8vuOEb>?S%wf9ym*!sn(YfL3(V?SZJ>kx|!$a?me(AtI`*8jUUM zA}@r!FyK(V3H-h(y7*vic?|m`9=>fsxLtVv--st4gGvtdG#&6>j9+E?1N^y^Kkvs= z*x^dTwJV|9!hODn(I)l_3>@S2ZOD@FNvNNtANd-&we15)K{gbykWa$jqo#V)IG1X# z*Fkh-0mOU10>rx_Ks5iIAO@x6AnEuW=w#vsI*38gsquPCB#5hjea1ohe###3L#z54!poM@8)-Dk7Sr3$=`Ek$$dg)G9=)k}lLL2Svc`+>l#hQF2v2$W z3%r4^;4iS$S%nv4GSVU3=nBF~svK|&Ps`{7IdGR(lmqiC?vexZyg70pRU9eT?grZs zp4dtBl1ufCK`DHYKtQ{M{>v}RL@*7c(Zr+oCHU#mrLuHN`w1^KZ=DyHYpoaLz?~JV z%O+98aVjpE-pEIJSpvQ7<%wb1O_MiTL{}RXV^vqX6%eeMf%UV#wG3&dBQ(3M+KIly z9J1*R8gD}NACVQa0+$hUcR(WJSX}#>-JyBP?5IUsUf#b1;Pdl`Qh-E}M5L21^$Rsg zXjzrJs}g0DqZHcEp!pE(^k9;~VC!+QN-1=_`rYmit@`{#hnjgw#9EETb3eOx2m&4!>1tmuTAG9&?susNbzKZl!%^S9IRmyW+F zGE0yOgx6j0^z6b-t97Cse^&fi(&{9jraPaX5<^|u=!ma#8kia4x~Vp@Ze0Ub6q@#L zMZ1X=Ed-Y#wGUmSjH&T7t*&el=^nzw?kDdvlz0M9EM}6tFrlo|XvHE!$e2*pVT9ZS z{;XX^f(P(rgry->`Q#8{iDHIf@1G_-8j$*|yPfcXwGpWXF}13}hd#iS@%XF2pMt+1 z;V;V%&tlxEShU$3W8p>tuqNTh1aV9;ECa{@dz>$7>@0H^=iml|?g8jT^q2zu+wrQ~9=f|7<=64$lrb^TVRp2K z?}%)g7X^O=qh>%wPlF323HyU`(5s(#@4R`s?J2;;rFkoGRGW-C((|Mf6WrYpp}O)R zub}hTJQz`t)>0|#V!y=%&!;R<4C+bJa>#_jJ`bogELrct%2Z1o9G3YB>Kp-}5v(Km zZgh^0>{|#eC zhuAO^ON2FZQE0vV8aOpB|FMNUzoe^On24-w0@_Svu$0$%c4{PQ9XN@!3B^M0dk&Kn zEof6wD<}_0IdI_A!>JDZS;%_FTr0?rqtmA2Z`iNtA)4R4SYOAIDtA7A3p_|j^of-4 z{#OBo>bGc4Ka8a{I%n$p}s4X-Os<)fWFMN@;Hn{USvY z3T%ttZUpPUMlkYPY=CNTrP77Jqc(B44%sazBf(s|da_3TVez&qxxM+Fw)Wb#_?@Wo z6r5#I``ep;N_F}J=yaoUxpRu#F%uJ2Khm{z$@`|%JMN*034$o?u155a*zK({57);>6# z%;5Eg^U_-eU@WJY77pY7K`?SS*qxzhd;36i`~J&INev|n!>DJs^YAb%Ed*l#{E^o< z03#3Y;Nju4`v+ibpqTv}#sh<3i4g4-SHn!@-t^qV4Si(d`F0j1i?|hLVNx zsAo^+;b9oxA{gzVv;#2m@NP`eIwE-K2M1t0NihdGjE4rn$l+jbgre>31JUh=E-z(s zC|MXrJ^MNy9)|HC!B`ebI{+gO&kv^sdqP60gEpFOGWg#$u6%8uOYQhc7D9dWf55w^u<-O@LI1re?Mi0u1`ononQ67@WBVk8i z0y|HfFaq|!(f*dp%HZw)!)0Z(!Q0c{(SF>H4tOqW|AT|dLi>4HSG1pOO(WaF+dp+s z-YeQqj657qb^>@s`Ld|6T z-H;1vXTnomde!?RNu;%{S%&gMF>#SG!o~{_NH7W~QHp^Wb$?o${QeMmza?$I+E(?x zsnTS!?N{zfO+;D;SrvJ<^ z2m`fH9W&+q$#Q*^x_>YL6M2no%2K_?_A>-y`@B3Lw4if%j8-h4W~lgl`=KT0}B z{d>DQc z;zIDBjz3KWq98z;O#%;9)80JMGzaU0&ZPEfsZ|f8T7tV_X#g3kJv9|FcFB^(_4i=& z4{#-d7r;h!ZfY!Kz+iyiEPSujbnT@9K%RB%4x%&3c>f0}n znoT~}RnpvF1IdOX)=p_YR)BKAfnx)Kk)mA= zj1`B-52WVzYa`%hEdQN(4*AUc?<`HtB}cdjDE2M1E`rqsmU;Pjq{96Cw^URj6guD% zqa*hQf+$7nG*zj-By14{rQf_50{toIy^~qGS;D+8K;{f|TJWHwn z!Ed18ULxR6sf&$+_a`WU;EJJpQ(;2&y-{POar_)Q4xD$XN)vJmJ1nzOTn_9Q*J4o) z-@Cb$WY{}NnS^cCSi9IQ}7LFR~bk6sptbbwyZ8Xb{t z;bnnH=L`i!m60cXRI68=a%DJD#}9;((k7hxb4=?xpk<+Oq<$|HYAzcUnY!`HaHIx~ z^)k$5#gVD$P&F@mARMXXP-t{HY1eh2zjIk2(k%%E>9?%t>E>M)h;$jDAZrA^#$6VO zbT%VMKk35NGF@!qL!bs%H+pn()mqDonA4;Q<NbcoPY=i3yQ*cC6HQ)M)!F3=SuD8V|@yBJjE{LDy zVnS*7DA%-sVlX6CcOvejR$U1NitDgyDpFjhF{ZHP@5JRW?gNUqL-8IHs_E>xI{kDF zZ5Odc`N8AZ#~Is&PjQ*-Wl_>%QVanB6d~TpgIua~8XeQ1jo34_1 z&ffJ)s`|TdJLVdU##^m9CJUz3o7nqLBYq#Qh0bg=9e}o3n_3J@nbXM1&mRSks$I@r z3ErsvWJ;gUe1H5h=xi(zhc=qtc?WU<-57WdZqdExvb^WSHlO8I-0UZvV`+=|^}SFu zof}jffUQtV4>;cw$5KT}1(bqpbFfv0#v%HCc=XhkWO9d$NJ!-7%=`vssa0Y){O>^&V6V^sHH1v^hk`%GKdp zL4J?*9xGiE?lJNWfGdq?$Kq`?n{Quru|J`Aabc2lBWnh$iM*friI=Ih37MsRbO#nE zDd_!z72MmObyv>}rE{zv}ABTAUz_#g+^(WMxC{0>by% zsg}709cxa|j_^9{GP)MQwZOfo12=Ma39k>)Lre$(?avRo9ikOiMO&O*;#+B5D1DcH zsS*)7l!aN-Ym0#EtSreYjb|S|Jos+Pt?+V!=J6(J*Jnv~@pP5fLG4*{bXlqYyLZAw zF1&BV{-}>p+~Li=Ll$OyT{Hx1=@NZVItow~@%tOUjRN3z8TUv@li00*IkHQ-;oa}DE&&K4 zCd2NmWmahhNG_kfv;t&MqRkRsZ|#|T%UFvzI(L&}#!>NhVMnv@`jNUbR$EJ!+b-Gi zw6VgD)~rIi7@zAAUdJu(xU77?)QDe-A4YvLD%2 zM-J3Z^JOTtoI@mHk|qYHpPLM>o_H~;h9iVm(^4Gl0}uli2E={&T~VZ3M{}F& z{XV>r>uv7Hu~>LL)|dC@Jo(}^Ys_+OGOif#J@)2oIY^&%$)ExY+-aX&o>s>l(PNem zb^C4TGa8*V4rf8@7uo5-UtQ7Z`Zy$8J2+0lK$Oy$?Xq0We<7DvXpF#kKKw}L0A?HH~4LM`99ih>-Oy>-`l(AeliWnGm>H4S>9~?aDZqdQgN8K1c>M+=7 zbYZY@+`i98njIsJ?vxBYXP3hkjgRz2i^zQ{IfM4v@AlmtrPe(spB)eA+tj+cOED95;Pd3Bj$HWQLDSNj z0OQdPTtiV~`I%5%g)Z0IR8K8>9QV^_KaRza-W+X(+8AmFwc!K3xVz;;9rNWCc2mZY zv_rfNkNdKR;|@BD^NZC(8eMjpS+UcnWIwKrt)YuT?2l7Jf&&c+&Q}s1R}bYq21xpd zB{T((c9fe-CRlzp$Jy?+`KJ9WZ9g2)_J8&=%vJP#Jm8fuUv9oHt*J;&SEj-Bp=E*e z`LcR)#teV>FTecqa!kUMh<8dHZ$%e%3i=5=9IgflJy6L3LxuLDaK98A9jqJR*iG;h zE*}i4El1D8z#ti|xuLMHp!Yc1q$WL`@~%?ajbB7-2(gt06nr4a-FNi;pvx|M?YJ>G zu&x!Guxe}CVPC?(E^#)k8=~H#OnVv#PJP;Rhy0e{SAD=5BMOrumhdbn>@l#^0`^82HRsQQSg^5AD&84g50)~djdcm&-L z>&|u7dE*FlBJ$5(rW?+!V$>Yf?ZCws>fy9SR_94?d`7L$+W}JX3t0C%+k~g-H_g@M zla8rPhOdj2^&w_{cLqr=N4A4gJ3ANPfTl#MuYKD3++7?y zQLBwdhm8w&76$hPy|2tT@S@yIWBXk!Dfz&jV5Z&yhxEb$c*#HyQ490zvqIDuf${$q zglF`WM=$o@3qo^VBRshc^cJF(Dt8CIDq%UCXa75(y_|J`a~R~|R1c*b)XC!$A`fr3 z;#9p|M?VOWhxb269tq}jus8qnfUar*K`i>j0-? z#OXc&TP}1EsV=Y|J+Hbu>6{}t9gu4KR9)b(NgePTCB+kmEj*`u&!P<1;$#^7VKrh` zZsrpJUv2(Fj55S0ug^FIK8aBx#p@FsR%|bUOB&r=9{uuS|Bvxam?;|InbWP)QXK#D z*yaSzGp`(#{92)?IWJhyYPBgXo?4GNd4O@o|FbjBzuIB{BN%7A9i8$|!#K;~a$vFl zK4P3>O++;uJmE>Q!n=Zn8UpIT?E2rr>tE2}OaQdLq$uK{KLxNa(6_-z;XFPhO#fwA zzk<_4E?Eao8Oi6Z#OEo{%h_invp@Xz$pTm)6Z7PFJ^KD&{@Jd^I{>z=bPx+I8O%bj zF&0$Vq5MZg&HpL~O$LDf_i@l9w3;|5wf_Gw4*J(R?0*IaO+}~tQ*zKmqMCRD@1L84 z>Tpg0oRJ)qzWdYvz1sR z@2xxIpxx5Sst?HaqNYVD?Nr>|;__ZtiDK6u8-AqLIfw<*MP02!5+^MS_G3|%f#UUr zu&-0S*|#jp`7RP(8dwDf-BtxhiuxWqg48kU$@#cbva}PcOivX`m#|n4&|;Z%6OGH2 zo0lmi77y-*ht8eMp_$;e5 z)T89Z`D=NyBNCL*_W3m>JdsU)47a+*(0!w?$SaPSe5KuuE*8V_cT6p0=H{9sO5x%4 zMNk;Yd#&asrLawLpH}g|uua%;6*^vC(POg*@$VUQoXU4Z`RAg7(S?bT0pu3Y7)+HU{ZntARvb!q^YVR&n6B4BbFh1F9fB@@`?*+YEMuaBd_Q|UwL6B2c$P*3$Sv&Hp~-reW6){t{x55 zU*KfAdW=VPU+^f<;&dx{xaKQh>sRt(J<8fRZH%Y)-7!6M^%V$$hEap5GFTxeo0OGE z4s~G0TT9r{-0)7++z6V(&8oZ7F_>ll{iFcLZeg2HeFQ5O@37ud`>toE^C*O3>q;_v zltiQvs(*(Bpm4WccD3DG2L+ydW(eIA_!Pn)YPOr*ZR)3O}XSt8YS#FrK|QlRbK=vuzx4W zBTza=h9JlB*Goj=KrTWrfyCo7PAQA6ehcCkH%ttNE}Z)xtNN zivLoru;W$`w)*`(;kU=-6}wHoX``IITs;k{-mO#hZj-V)MAiF1)wQ7NW3u-cQMGh{ zsJbcWK8+1UQ^hk?t`1JtL{95-Lxi2KdO_7)h$Ipw;{I^F+G`HlzEBGTbsvv6AF&TU&jgQ!2DBD=u2T0gWM zzmpf&CADUi9u_a7Z9sFD(>ACUv^|~E_LMMfkBy*h8_=wi_vO?Lh!GrEiL!Enl<=Puv8G4W{}&O0hXMHC6g=uDobn6ARVf0_`2uovIF16&T2w)S)w? za7A}aiPp%k@JfTpO&;z{WM-j;j-;svwO61+Z*)CLvx4>udBu|^d~45z%2cGSkN*1d z0xhu0`SGZxrc$z#d<6gq51?4vXV;EAQ zQiaFw!PjNQ3e~i2Ob%i^6j`{X&_$@SSo zkx6*sJ1C^w;{O>ox_k@z75BDKOV$i2AL@Ss!3KJhfnMCv1@w|hO}W*-f%eAS&j!nf zl=yS;UOvSCUHmB0^O~8%FJ7E-bGG%-oeQ){p+X;hc}BhVC)u0K9i`%i$TZ)AASxC2 zqV(UZt+ID3wh5k5aD<+$Ov)1%XSudN3d@q-n04lUSMS}xjpEu)tri~tHBx9L<#8no zyYU`$Z$~|M(=Z zQkL;qCRTR6h*{=&%raYK?-rV6N}riGFX(zU=-x^cSMk(9`fNPuV^w&Bm~6p31`JVlj1rc zd$*Z{8rampB;o+f6)@2^sD&+c%%R=X=-O;SdTm@r&rYH(zIMrIMldMVq~Vg5&D0+m z%^7e6oYA9tt8K0)J&NE_=0m#QtgMMvietlq*^Jw0KKgvD&2h&#o8#yBJA%Ja<86++ z@%JtK?ZMx#@i!^i<`|2=19<1!eMiLnRR}XQoE69I!;-c5o{S^++=Jtc35#I90mlHt za7t1Q;1xa|%5bDn-Zu%y;3Ttr2$Ce-X-tm7e|IYZLJJ<1cI2^1oS=@vUOSdv1H0`t zr<8QKBFwYU4t3AK4t3AGnjR(Jf_~4X<&Roy`HGw?jrhB*QF(OQR9^y#1Fa}fOOuL< zeK;uY?Rx1Y&r2klwCtqmETsvu25^mK3x-64>+pdFS1bOG;O{8@j^XcZ{2j;N3H-I; zuN{9UFEzMM&BUBYJ)*cbi?I!JqNn0+sX5Wf9(eSVx}jy1Zmj8%Cc~lHb)E@MkF!bm zaczH7YP=IWbVq=K33PBtd5wHROVkPH9&mj8*apYJ!-hJR=(Egu zsMhVPw%R}1-B}laHE)yfX1n6vo>9ve0==iO6mYhAl)?`c>Ad1S>wztt;(k`BeuXn| zz9is@5QzQY>VHMB?0WWIbw3sXb(hRFxQ*yBV%f9~c-B*u1&;0Bvg&H}Q=fMq)&Z`4 zVA>6eYm3?>?076rE&LFhU5EB?Cf$;9Jf&Z8?NnT}yAB`P#uC7J+-Jdx0Ea@&DB0ue zHyC#gG3zdLttSV(+CjXU!FCW3`)M_t(c^I*m&QVdW}IPPoh6-oDY759V!vEn^U3j(a!cboTymIOQh>XIPn-fb)ju;Sfm`Wvf)zhlLld-PE3Cks6K7}u>QcYFq60&m!F6yAtasr>M0K+| zzk}xcnS606Y{&!osM1NuhcLZU4`$G6^Rp0<9mU?g;@TP}K4@43nG7jBxSK@&j9zrD z3e#Ufa1mfY4k-Xf94@t`GgKypS#_0V&!zDaK{Fj!7|DuEXM=V7+7yE<^+YIxf2BS zVwj-b$juG9wiyIf@dI59$f)%=1CdG;5EPUsSQ6?4b;@=U_%~LW#+>gA(83)nO~^Ze zuq5CNcxS7Py-@Ykngbzv!l>XHl<*Q$qw+#a%sgHWEiqkN{{}JL%$JyxNOhvPE=Z$w z&57db!GQiN%9B;&KrcF92yLSq>qIw$0VkH0(6WGO!0bYCorU7hc2RMG(!3vP9apX` z-3E*4aV18ng%HoSdz3iw7U9k2D0f1ZE1}|gk9;l3C!0-`4YSQr1GCBO=!V&tNoL2G z{J+DDTt1=%67YJn;!aQ{R`;=^+*XdKSmumN^Xb)Rcp(NV|7V^9ZF7wCDs zxz<*PWjQxxI$6`>y`}fvs`JnZnAT510wd2OtgeHW^2pOcvKO<}Ed-~cTpbl;DV~eV zPw%rRrC^!cg{S_2>{yAzCk)@m2cLck)vDeOs{F(8KD)`*0_~pKWzc|H=bJVZQ2Fdv zK?zd#$#`26Dzf$ZvZI{=(Bc=X6MgfdGLASKpoQixhqFcdo&uVZCuDM$(;| z%y(u__YPCtwc6ZDXO=Xy!JK}lv$S^g1w2&O^Q$d$JV8^xd2(B&W)}AB-?-S^FgMC# zQe97mMX()HN%E<5rb{t*LZI$(wo}HpJaTfV8*`}}_x86`o{g{Eo4heUx*;mPAs7AV z$GJtwVv81$=#|j}Tifxbp`;6eL!F3>0PO8Eg;${R za$|n0g=kQ9v2q;F(4|a-Q(x|GqKMr%m83MBjtL0@bJuY}0G<*uYRMIdx!kcB4je_Z z++^*kx6&_p2BY8Tp890^jUs0tG4Uq2oGlb~94%5?_L%Gtr4Hiyc`PLVWCAl3CqOd^ zX;w_YuNA*m=Rqmn)~F4&{aHg^Fs_snqRsiXWJf_!CJIA7Pj9`+0sCoQyv4*}a)?p6 z1CWFuizY}M9AddC8QD+^2U6YtM}i`y1uhB+kQ4xb+QgC0gQ%}Xx;mbK)le1d~Q!scxotOHZAFsyYLpIs;X82CC`| zRMmx0g|<{TKSt=qWgh^nW`9vJ0c`d3)|q%A7JB2wMAI8DDC$iDzUGjDZ?$!g>3%fs zIPm+0DH+Wgh2LEK+8~j{$5YF-SR4F`W6z=LOl~Cv0e|kYCE_(z{#uB+q79$YaNyb$ zRZmYde?}9c_d3LwoycJ7*-LUd2U3i-)%WbRQ0+id&tBdb;H_tGl!27qy@YuVB@#Ch zEfDq(isPM!fb;zT>>%O%ejVqzI?j{H3p#3F&i(2G7=SnuEddRPaaiUG@uo^3TyDy( zkEcfb7g1kUIUe30&A5z}pO#s)sOYEfc>6ZF;M{%d%srfRZh$jJbk2QSsViEnTd5yf zEL*7)TB5g7XSPIbjYboX%Q-aEOyVpWYn$8wog!}f&rn3Pt--cei&pny*cGuaieMn0 ze(HS|7~UV$L0w$Y5C5Dc;z&5g?FD|}kJ~2SpKNN(O(n5wSv?z#6dBE1XNpsGz)Lvb z%{t)CI^fMZ;LQYhY*jP0Q?09CB)pQ8DyOE_3a=!jZnCHT!xUXozo?*4#W`av>e{OQ zW4zgF7G7DJ>VV}hL}r87iIVwP{TpHLJ4YS8)UFrA-}96Fs3ji+%0 zQg7HpG?H=>FzYcXcN7GvgXF=oCNKJ&#^wGb|Z9rbFHG4YAle#LAz%=WexXFH)$deoKj zXVFe)y(l;4J6?)0;k`+-3|PwvfI`R1lT&c~wD)MrNn4xqq<$p>yAXi>69;SN!kG_- z96|1&0}~mih!=x%Eg?P)x6)RyZ~C5C@}&4mgqq95CY(lodb_w0)8*ucV>GJFi%nv<#nl3fLH~2 z=#&<5NugT87gRo}IJIE#heV`KtgfZ0a2YO4Bj#|>iWh?ZAl;En;2(^}3&DRd3NKLr z{2*svO@HEi;Vm4Wyl6@W&`J2s#joA@mNXKH(7|ZHL8Ac&sR3_r?f|dBxnj~(J_}-V zBbTQp?m(%DJ@6{PA5Nses}Xp_aoY*ZsYBG`{$CT5IEfA*CNYJ*@tDCR=;Z&Tj3atm z?&EY-(+HSbLd|IjHK!%ioR%n^(KVn&oQz=L`xYl3YD{88V~9|wF|i;a%sMGw0Y3`h z@Y65BPruQCX^P^|V)<`6Hfd{1bC*Em!$@#oBov2fKI6zgMD_dCx;MGF*T_ecE@UO^ zgmiU?kU;00`j2y{&O!XSI!e z^7&T`0n9i5ctcVeuNVT27y@sDCRz*%(#LM(5CE1h8^7Te>{aefO$xKm$I1Vk~X3DAL*Je~E@72gCon)P!+>V=NdEDSNLN3-3eQu1^QtiwL!25@ru@ zqknWz|9?9c$k)#Q>0^P*ibsKX8ViYR`)Xq>B!KD?!m^@14IIKW@V8{e%SGOlx4%MG ze0xAv#NlFFL(2ZYPs;u41A%YzBx049ajHD30LN9Wy1@)f@O}vu7)#lU;R0O)t|$~s z%AW^Z zbTvOOk5j?YD3*ECm%&DwK}>8aURCmw(Oh3f3qCqIJ{p1s9h48$1lPq?Se&1&vZz?k zstwpY?xO^+jNuMG0G)X2b5#4<*ovbyJ!=lZ^e!ktKVoIaL2V@^NROkvArLkKgp5=E z$En_?8=>^bjFD{Eh$di&N#LX*PK9ZIa$c(V-a1sf`XM^SYn)#F^7~%~LpTwt=R!e5 z)r^A2lM=LUDV!_Nj$dzE-gD6MA|YX}Te^YW6)v9Li&wQPIKqL%N-SVak-FglL8$J* zRzIrh4B`S>6#BzKRkb4$n=bTI?kGzqAIgqDpdj*W(l0q!KU7R|vZ;LNVm~dYasI1u zoz)q$^P4G-RTEhUVwFtRfS>ZA%an9-Pf*NAi;cY>+^|f@z&)22V|+h+Y7<_+>t>65CQ5uG%j>8}S{IY$wXYt*p4JPLsKAjWup0YRdpVy~!c+yW3;I-Z z&)jrNlsIw#aX-TH0>TG5UWjM6hv2~W$K@`gE4F_btf%%LrNa2}-RJJf=cmxkz&6St z4D;iog;tn$24Zl8^r0h}*xIuf`KHxy@MC>;hw%C=%fw1FOmSH^%}R}~h1CTVQ@Jp1 z3c!^^e$^$SG;ub5F^`Ma(Qh=ayP{tUF6*nj!&0dZ^W8N(b<^<5vsINXQ5%PA*AEWe zP}vf#vC3~)Dzx~4n92#2bZAE!!gm%m8v#7gR14Xx5hRX-&)5RZ;lk>a91g=o_z|O< zw%EieM1>;(bVhAH{bOfvz#4s2J`$eG$~MDmY;eQ@BH&tH3N(U{)yJ}r(gq*HemR^A zHly*BO~HZOW%VGPd?KB z<0zs3M}X8I!FX22Qw~Lt_CEG>>%;UH&)fr1Z|HQEJ($jfFr6L64JZqVj7s~|Avzg_ zocmfq{KOH?;R=&WlL;)UOm?5U!teMDw2u?fQ&g0`4IHtV&D{(2%(Lef3pG!JMHDed zE6^MWmb_Uu5!%xmi&*e51@xDQ*A}tQ@D4gF@+EQVV((L2$M}b8GtFiku8&q5H|3_L zR%GK^9=d>}i0$Q>gC$hZ>k$S0=CXo*@)rt1tcs**CGEB1z zd+M>n-up2cRRVCaD*^X9{!U;4>3QPJ$i$6E+!9JG9`&g8{#v9hViO_&91#KF(8~b4 zcjJ3wtJ&B4An4U z&)l)yfa{hJTtYQ@mzd)$?OJyL8zojPS)OO8cB_TBpAqm@4{j*jPAoo2w)Hm4PgdGiVmcf$c+GeLKVfAPL zZOtm}TXlmJ<8%ccy%ygVa)5y*K&VYW}uX;@HH~C6n^VYfaNz{2qBuh z)v^a&Q6Y`l8YSH>cSMUrtKcFF^8T8k@Fy}QOX_>{de(g1mqFT6YcySpC=uxD3u=x{ zuEf-6x^WSPXAO``(0Mhr%c$d!7AlF}Qure2=DtXHH<9}T-4_OquEvme5r`v(bO4(S zawnp}o5_Fh=`NvEccK!$%mLF_GHcf3I9JmBlaSk@%gTTcF7|x5kSJsvTnJ1th>msE zmc(8EB)|bdX+RndZwVl}t6)eiUFH9FG|`k5_jr1NXZxCQtZpLB*~>UND(S59TYNx3 z2)LamO%R8YDYj+fc0>PwqvX-igCneWh%rIf4*F>XnKzD`2ix5{1WhR1jya`d#?1j!=u#Hu?V`l)YCR~ES!LkCZEN|cHvucA5(A68qv3aRLWK;R% z#Y&X_&zQ_OP@b&PfM{cr5!Yy%%qxM9x~NC5!my9;j~wb1J{qkKGTB+8J`gSCt?07t0^Iah!orfGpHt z2NAa`4%9c`oJsCXFennnVv@u8ndBg9gw(>V9N}dqMyJK;1knI3cHbYO#af*ef(*xL z&G4q;07Z`j1}%d#)ax1iWIN1>wUZqfOT-E%R93p$F9D3%j@?f9Y6GeI??O64I^8VP zAPJj@xGxm$)7f7FJqr;!p1$zH~toMInE>6AFG@)xU#~YnL-M2RA>?f*3_jiV= zviWzB-7iu1>+~qp)FV6Z@B7dt)W0))>tg$#vhlG90 zD5(`U8FYw4cYy$dtD<|`)w(6imK!$r5n>*p8%ta75YXKP^!y9YKoC}^cVpoN&jS!S z8l?=nOrW5w@~wFIY9g<6R%I-u(#GivG&!(Vih~=9U-G~hUIJWqT@7LjbHdAtVw1IU&S?7uA~wXE4ZL&MyT#Q zj+SP6+4xD)o!Ke41+V&6w06By?(bN0t8bp+4DV`oJQuw|&hU~9XL!T&*_MZ{ba)pa zhj)Q2Z$PO22n>MkmJG10p+p|`V)9i7agtcOUMbzY@){@#Mi$P-^>cH&FuktHffK$s z-3i}lwv6gM?R-zDR*|mJOpf?qQml>6XJfCZUTuRvv{P7heG|wDV}dY)dy25;?ZVOy zSGP8is~S$)2i(fHOEEfbQ~Ck=JRM?1>|B><6(zF>)oci&hRly!gO@Mgg-- zgIq@Kx|Bgopu5Dk;v807kQg%FVz<~ySmg2=<}dDj^Z9Eqi%Q9`TjiGs4Rk3kq~Y^x z(q*nTb!l(Fo)q&z0oGvfb5)E}Y729**i5IhdMmBMokOrxyydFw9DLsLpLXU+2g<^(qa6HQzx)! zxfDLkMuK*yk|~bn-g!dqUQW${4J|BTEwhlGOl1qZeM!S16Ss34E^`JqrCp3&7BZ!E z2Vg2ob^Giy`FTTM_86Sc!5Kq>&X)x98>{VI#j32e;OvvI=PK?T3s;w*unS>G__4Zl zF$pfOV3TtwbdZv4a&RJ0w9G-?pxe&~-To{cH;Eg~R~Xl0nX zFflEVwjXE47FyPiEzYN`--4@ju4C!b7Qz+=RrzOP1ko`%sOiSY7yDsHP^Yh4f%Y$A z%$6UMxc1as&ssOR#d3D1 zp)d;%>l(Uh&n^!ZKRjI*FzLxz8Mo>;yUvHg=!AkNrz>vNzwGiruI1@y#z#8astvn5 zSlsZi?RuD9*ia7C?m8a|-=gP7IGtA7<$)%Vr?1x2#|s-~PX&C+EIl!iMW8 z?648G)RS`(VOJqcuFFU6RSP^hlLcXeiBjcaWkzAQdU6&xgbke-LAyFe>0#G;ay}d- zY-mH6T$fI%9G;xfi5k#7Iw)+YrSPU8@jl#qhye}Z%n7R_NM=WM$?PgVU6%%BZRByjfs%#s<>bzK+Y-8-?%h7xY$o;s5XvfBM63T zxqgvf%zhv^F&)~k;KXVCnaQ8o{F%$2bNMrmKkwqteEuY_tig$k`Ex0M-p`*8@Mjr+ zKFpsh`BUW2wfwn`KP&mOnmb$TKUt$pChx?F} zNvrvLWCTYYK`0|Zs0QCY*OU2WF{mUsg7B#Zs)EE?)=%~=kHXFgd*n}$IJ#h}RU#JG zKp$C&NRxP1Q9&p@fVd>yz9}|)DGq4fB*n~_7bQ+=aBa+iQ_+0Zh#mftjV=YZtZvM2 zaBZ5=;8IZ)p%y~v5T&$Q6EaTe_{e9efW0KEv~szKSz^^U@uA{WsgIh?&tlIve;KU$ z^RxKW9i}cK8D)C)8mNJ#fMlgMehT=YGPgS4g(&*Uh{5XPhYP~EXhJ#?Z=}WLIR(uB zYr2*TZ5)FY#D0G8&3VYXJhwQXt$vuxoF%Il6|h^L12O{h%cF`};chC*?u2dyk|*6) zSb)Sg|AdG7s{kS|1x|KvK>-jx?bzVI9&6%_?f z;P$emzNO|UY?`tBFl>F|s)Bqh!N z%;L#;kr)!#QR!oqSoM~$i;x?1g@J~}TOYKeq`=|I2b@Fc6NggLLQ0DM=I)4T7KXC) z8B&%WMGuq@VL!!B2?;6W`_{^!?$tHym+#8>k**%;zYnaHP$92UAx|L`XV6Ig)%C4o z*tY;x`N-u;rmk+i7CU1YRq%&A9l57cZG7ZA9N}3bMh6=#|?+D~*bydBwW? z4bdN0+c9<~o_Ar@B?u3uN57%s`ZoBLZrVs%yv~iKU-rz68f%e;57yt+YfGSRg9BoB zpgejJUH96zsElkpf-C8AzI-vTE&XNm% z8B%XSQEoYI20u$qsyQnHs^MjJC|eGGP@)b|-_x)-{01OUVo{e|Z&A&-6IRkD#6p8c zo39+dNm#h@jU~#S%ziL@Fmt&3Zr-KDM2ImK6swt}#R!Py#Zwa00J|9|QoVs+^56z(Ey(DF?T8dJFnDfa<&gD$d2Av4 zGd~WHYihm4EMTD*aUtt-gw*lS;ZihNY_! zRb@m`z2cinx(*jO6cc}!_Fn6yV)YU{#IRWqn|M>!6{=pAb(^@*m;LkLZ7ix3F4d*( z5@`(Bi2`k#RY~`6Al5M7LZ57oFZ2v086cXIX!rWjy~k))Uj-{4X_&}$qG zyyY%^?7BLAN%K8Q#+*5FPUo#Djwm=madq>3?!zhdaGgIQkx!J;r~#b`Zm*=InuE0L zS^OQx$$=wc3+2ILHRoQ=Mfnl9PU4o>FW3Da6E7YQcy(sZ#FgNb60Udz(>!M|%~GIF z;v9x^VI#XZkFuV_uDG7HQ=A^k3RX?rR9?{NmILcHEE=rUI42LX5YVeSRNC7N8N~x<9}^z!%7&1YRUueSY}-M*aY64TnMx zm5)F^$_#h?5-F!{K!1>P@M~Er%8ryu&fdxU0BcY<=8r})!y)*!>$1eEo|rq?gW88Y({F|orkf%Keov-tRcrtVeK&!CBd|6ZIsOpaB%L3=jnLT@;bvS=Pt*Z~W z?kc@e+_iZst+VzymM^*D7J*#4MPOVhuI28UR~}u&Uc%I;;$A1a^Gp3Afgd7{PYa=o z1pbhx557Sc2`pNKo$Kku(cpaq`{S|B`eHF(mq-c<%7gi^&pF|&hX^FjDv!=*ZP*5P z){{)sC#HiGX%O8?X)wrfYj0mcK8u5AAd(r@jo`BnI^%UibxTr154PsS9ug$%xErHH z(+W{PvE<^6k6>c*xip%lfnR~z_%s$Zzldcng&5-#=fMS6tjGCh>3l)CWqvVp0~9dR zcL2;-;=6G1gz~?um!{1wVkYE+%;=GC&nXdaDvvH^qY3&yBZC=oG(@@YAjKdY{a`-F z5#}-9wDq2>8>Lkq=IM+xt7slg*(XEMrE>-A#_1+2A@NM|!w|BxGhZHUL&A`Z{Z z6?Ry0dR_X|lLg~(vS`7vDsAW;9yt^Ht+}~~`s@zMl~$LhOC|}S6&^^JFKM;_^O#F$ z9jdlV)5@cEk|rOwJLDTP1-gyW@NOFs(QSG#qy;Q)64ndgfl%eL?*k1OEZB8PqA&-?u0sv$XP0+m99i7^830*z zt8Y$tUtkYR4zMrK5V-J&_adxTL)!p)ZM6EOWhBkodLs=e znw)T(-7QwEpQTs-DOEq+H!EEI%&(|E=8Ec#eSvqyTdDkRRFAEZ#8BNL5KCdOh@%A@ zp>+f)9v~_dutex#OK5r(@Pdh}M8hU-0-VLbg;DfkEk2{!*&zH|o$s!pQ8-Mxq9eQy zFuA+$@_m43qiCj2#WYAb<}m0uN3CoF;&3_0Wjg`TM3K}JvAy;6>(?0g8UtTr;A;$g zje)N*@HGa$#=zGY_!nY~E_NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd( zNCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd( zNCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd( zNCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd( zNCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd( zNCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd( zNCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCZd( zNCZd(NCZd(NCZd(NCZd(NCZd(NCZd(NCf_e5olJ7YWsbqzo(P39OWYLZdPn+`@PE# z9?=u|BM~4GAQ2!DAQ2!DAQ2!DAQ2!DAQ2!DAQ2!D_`e^4tNlxzmE|~dWaLhvz^f6f zI)4A(Uu&|4BmyJ?BmyJ?BmyJ?BmyJ?BmyJ?BmyJ?BmyJ?7y=aXM zZ>326_&=p_NICx35jbE&>cgN=Nzx|#ulGb!01|=!vk*wRH_HJ@)EBOJxNeHcVpp6X z)Ckezn0y^{*Mf@~&WPo+1bh^>G}ekr;>U1Mm=AOo-0is`tVGSkC=P^8;Ua<*X7m(Y z#Dp15p*UGPxw!jMD6aOd)ibP#hLT;j@@=u`C)RP7sa}qT)CLHZ3NO70YI!-1swJz!0#aSX=?d5U0hm_>dM6 zFquPWQLHFlY!WS)!DrF9j3`tK3MD$0C*U!8s2Y?gMk0;D;qVezA+%@)Gm<4hRLIZg z(3tG#a8@k-4Dxay0pNoPl7y%%E+d%3qQ$ZpA$(eBEH8={#o!BsIj}l%*m%WgP-ZY* zI)xI#=3^N-JSKxfV{=2<9AOltCymMDa#>6PO~8&~@#1jd*jy-t!4$CLS>5O%tWXA2 zpN85IqFJ#tXiZ#vtZhX!J}rbz)C;R8Bbq@#jn|t&)SnfLWk+cuSy+{!-2`#5Tv{kE zjvGRYG7 zegZERO9xq^p+&JG_&mIAP_IEeY&pDO2FD)-DNeo~ZjNx*HqzFnqdWS+-Od-k`$IB+ zQ~=yHfsSEJ2xsZy>}+l6Y4743XzA$UVQmHR=x6C@Z|&?E=x%L}Q;278cNb4<6z^f} zKGWL0GoE-B#ao$snqz!${((K8&7D2Gt=&-yD2qtrZtdn}?cs^h0^zSWn;QZM2Rh>< zii-z@;>C^R@)EdIT$iW<9#zF%?a@e3HngZw(csIid zp!1f_CMd0?i=(4Cf&e&B*?cOOC!oeNIP4H=C@+?3X=mc2EJdnxmMn@QVQk~76tUZWam_Z3-a(H<606pi1u(@GWr05_ap(<2R2wrSd z7khx%dawjgSQtbK*a8NJ+O?mdcp)!g|LKhjQdGnvl+6VWgl6@UP?!$M#fxPpW1>*I zT8GZ^2rgi|x-vrT0-Zd*(-t5Zg?y1durUduqT;y1YIoRM{1#A z25c1iOQ9SuI&rf2)ajDazGu&!zfgAZ(&Z~xuU)@Ue)HDtipo1xcl%~-Idtz}?zWtr z`NuXEY}meH<*M}6Yu0A0TfaGT&(Xb`4v5M99!1rdtf@O?s)@C&leh0I2Ah{OXWsnO zUD>-2AKBV((C?9BCr+a27#UBqvT>a0;};apO-!DfvS{Cq{dxCA<)7)j{A$@6%LnGH z+K0@r$fb`KFMlla#G=kDr2c7eXvC6+v}FO}k^={r4jVCa`~)=>eM6-&Gwfa5ygUj6 z`7sG`3!|R-_m_~CnyxT>$T)RXWjzDM(GGUbuAc7CXU9gz3l?x1aTNX=f6-vy%daQ7 z6E`C9pK-$z{28}iO6!Fr3thq-Y!JeYvUoW~hGIc63xSRYxKaLy8->7)@(0`~1a7?) z_+KRT1c=DqlWb#aXYVk>(aG6`NYGE}x9s3y!$*u7J!Y)3iuz=lCSBjiWV)%D1)kt< z@qZIjk}{q$PM1Q_(KE23SXxthJZp*dmk_58l#!NK7&=5zX^@V%1tG$`7}Q>INd zH>CV6{%^(qHNGc6M24PZWffI5^$8O-CQT+1^b`9nAt^OLT1Iw|ocxfX3d4qvR8#^C zspIeje~bT{VErhADRQGIlu@G;$5Y0Sr}TIp-Vc6q;^N|x@RN~|kQg##DEufRl;B5I zr2H-ZZ^ic(&x&J4#uBy_4@dG~T;K|AF-C)oaF2+N;tS2T=((pQCemR=F{9}^`r3if zJWl6uEF7c3es>Zfbr=gKXCX!+{=(-l78mB09HBVEbQpga=naJ#n9)Z1I>ZACYZGCt zJW(oQoDhvZqH%*5jVP2z9@{96$cw^4Y+$|_3`-MXag^}rPFcfQ!Lh6aQ4}RCmc@!B z9z$46Q9_W*z<{7**a#n>HUw58IT(Bub{YCtrI63#2TX9PNK8@iJ*8pI*n zz~Y8=v3eK{=Y{kORuiyJ5v@;9|LoZ;7!7z~_M?Yvhz3!VuwWfsdZ$SeKKGbS3)7*y z&?@2Ko(UmdDC0kM8p#avYoYG)BiN$B01NjR2oMd)C}8sqbcDvZ^H~tiV2haHX(AE$A6@r+0jGmO@YR$=sR zJ&lluSZN?Uurxh17B8dwN))GcANep^rzT+VVzh3fCQ$|-WM*~MK7x+bw-W>`KPXdt zCkdC4&17+4&x6erRU4OP&51|>IZb~&U$F;;Jmc0AwZyN*|l!gB3{~-)}3YR&_#9Dp(Ah+q;!27Arrbj zO6-X<*P&Yo={j`O7qG+zol+R+fRum6|G!;dQA^Xc^*}69J9px$jc_IU8oje_bf{Zr zyXlEAqU$035w)AB8`AYqzyFgy2VjB@M+Ex(6^+Hq|ZOcC>6_(CMB$>9ACDwif9@;jdeyMFm zhZy{a>HRchhq~t!)nD7XQyS37UZo+3B1O?g#sC+mllCXQ7s^4jzqYlg{k1I(0TrR1 z(>uE{9d%8(XT9{0o{QSKThX2E(^DP1grfF9u7_Ozus^7L?8gkp^au-E;$cg> zE_Onsldw_KDMmLlAws*ml>ia&_UWZ*34Jvb)t+vsjo1*ivF@z>Uo3NXBmC!Pqw9AT zr4M5h-YvU#j%ic|0|&z#znfz(Ca`)Sc&P+dBA75P-J!)a9;bI#d7{R2QU9RR4KQ;* zjhciN>Wk3D1*881UV`4u3S)ACX5v-ps$pHsQP*Jy?{z&Z(WTFI^03nTFSj-7acW2n z{sEI38lL(zyK zMtDgO5F%nkG=qf@bPJ?(APuAuWyh-k6kKu$;Nn0)*bGK^?SO(er?!ESP#hyd9CM;5 zD;rB(K4J=HV<8g4h-hAmDMZ;8Q-so3;p}XzVd{v>XC-WKD}o=IqhOL-3)5N)(^?DD zS_>O~im*~sh)P+QivmPlEYJXj7+Tm6a9P+0;j$5SL~CIH&7QH+(XfXHglO9c%d!yy zhz49djj;FI2q8stR6I&p3maiAY=pJ2ftOER3eDVoaD4LZpN=;asE@7{+&qNr}BT+ItFw8sp9NZM_H z!FiK^Nd*2+Kma@l7y_!gDqkI!Mvcl!j0Oi57QE&|KQ$`6(4N+v=n>9~hQe z%|(7!L_iCClhEEQkE?~%TuXp*;=jM9#iaZX(}KU2@b_1~;D{q~CW1`=l0J&@pYaXl zFp$R({`(hx;0@I2NAWM|*hClmH`#wnCM|DjA0`yFSWD?Pkvme1sNJH`9(Wu4Z!j3FB z+z6k+6!C=)iOA!TDkXzCS0NWEq8_ zlE9@g3iI!bWW{n>99D61HT_*%*}^F z$Yz6l2!)Pp3Gjjq{2RfWjl~3XKxhnxe-RbL?jb9Zw_Ck&762^fL4~qYkp=p zD+E;u!TxWkhzL+M$WNpLmtA-^QI>Mya$t&q;OLbD5+AP% z)@sUKIdoA)WvV-3AqWQtN-QBG6j}{O5%X0gkQHLz70CaW;qLHboxQVdyR?@L_~dqW z9$_u{FxBFQfYOI)QeB0Z2ZMVptEXC7;?pzm3gyAn44{gM15Fpfh1a*c`zh{|8))n9 z;^i9X;bmiE?}JwoObrFD1dL@k1B_8H3wVMvH!7Hl%mChDL>*GtY52z7Efdnu?wtsg zAZ%O|?$%Y{8R5l^iwcHj;e~=B;KW67MO__t9S5&X0q9a_D473F?dZ%DjM=PUu+5M_ zlj_ThqejI+&&Fm)nBXF}^vOVk0St8sq;1GC9pg@vJDKRxU?>Ev?m4N9FnH;YYVh}; zhtLb2iuu(d>w?>P=+nV0CIft}QDqspVZ|-0Du2R6D!86wM!ZWAj^Gl6>?3kGM-Hvv z#EQ9;60WSmiTz|M9~%>JbA-%r7al0+iRl1~0j~yOtik<>*-_CP%v&ECIjQSJ64ILs zV1$VV?dJhbphFBQIF?fr!jX{#@Ptgdf(TyXJSH0s0CedxBIJ9BgFU)}13#!<2n+50pN_}qeig=4CGQQ%Gy&Vyw$M&i4Rk3SjQkSLs7)lOKqT(LVd_j}|cZ2S|9V|PWAdZi0G7nZq6JTVd>1on6=@WZ8Obb20q2N$x zZ%B)Kcnil?b^Jg@Ao6Ecr{bp;LSW6)+s~ehdwzH62AG+^J;z}z#3mF__c+24U08S* zW|j19j2)hR5@|~6znrYd-7A+r^C0kIiVPhSIwGhgSSnn+UWNKE@CyU863v4l4h;!Be1L#e1U8xI zl{bR(zrY_IVS$q-Fpwjq`3vVi^CiIR#NmHf?tk$AACkMX58%y(CXq08AtpHg(j~B7 z`)54<)GxaC-QF6|1D%-)Av!+TNN@?()+W|aUYJtHarv-b!^T@GKA=$15)Ii?Drh?# z;Q^xr^DcPqp$@pbm=bZ&^d1>5?4SUb$EESX_He_rP!L}};n9dS|KHidJQLS_QQ5?3 zDO7D|IBX&m3lt*}rkTQtqR6TW(^?^!h=X0iy&uSriHhnCXHxLvC0#heq!WxB5FqLw z41uwS$aEtkB20>xD3qNT@6fJ}P~n6k;o}m~q#Sl|EG!+-@C0YHSX^W_d1xYt4qPB6 z*i5AB@Q3D0@yHrulYb(Uh_^7{#NeRQE5NPuJcoyeW7lC7o5c&$TcdTFC>FSbb-+)N zbxz=VOT*{D+=)nn$HRc_Vdvsa^>8$wX-&0r@$mHcmv|3Pb5Ac}0uaU;rbQvJE+xi# zOgvkJGIl183P(i1jSfa*2A8T1Yn?#i%v>NIuMUHofYoK|iLhOwr3#CR7TnkYG;9(C z`kTK$K#xzwsMr(6xtCF-i=O`v z@IfbZaIO3A$mA@_EEFB@8J75QIX)H5HlX7CBrbC*H3{aMOl)+8Ba_e?(0gIy0rp5? z_mr0)>{ICex4B$M95NGBbf^;Fm?1LbeF-#?Fq&xahe142IQ|ocj0(PPR5;VAW$%h- zbVO$vQF~x9Ue5MDRN;|5ECD`mz!ISIT^J45E(j49d)>hVfv>gOR`>5D=cN>z)qPNu8*+ zI?OA&TVuRW5z_@65TfGUlM?ChnH}o8-3kHS{c{n79uPA!lova|*qwtQ9CnSu!i8o3 z3pe4sf{?jOQ+1WNI~FWtr7$dQ(EI|kfD_PEgUf?%8!{1_=pv(xFG9MY-kBanW5-6R z6QGkJ|3@rqm$a6`ZEw5)V&%XeBKr!HLJm4A3)6P2#b6T%)ddWAw_ee$Pw3TwF1V?HwI(kvmI=ds0vxNv=HaMFgb2}c zf5N|;iN=uWr470zLYC*h(GEl(#8<4aLil(2tWX<4X`yIvPl&}2NaB65YmGFi-dzq) z@_BG@8q^%xI28Qtso;moWNB(@0`%C6DQa9aic>`+ACnK8BOKVi!T`t4Z=yJ~P-JtV z9q=t3#0CM1bs3CZ&w)$S+d2cHJwzx7wFGR`0CcES0W@?JcJ7wL3dNUAT{b#I`LKG1 z!|E9FpbkY0wnSe8Gabf4n}A5(e?rnJ2c8~H>*17jBwmeJrT}68C$%K{Bfg%)q{UZS z_`2{9*}BQaXD4I35Lg%Ny_in9&{&T~yg%0hPmAdXs_}o2HjWD>GZI&Ue=GmrQ+aWP z?=q<@C=@qln2sS?{xcmzEz!lEpm~U>0)J_`&V0~GVQC=B*L#gb_5dGFsS})8EHuGW zjl(Bvot;)B4`#jpoh_bLsC<97DR}z-93P_JKn4Lz3l)QF?q6+}JM6i@Y@RDrWKF6Q zd^vytN&zbhw6_d3?~Lu#2lQ44shb8|l2l2GHMT?-o+3A8U&h=sENY{`;QPtGI-bbm@G&D6jU%vvE z4??#D)K( zGIxXAuv#H%0CO?XmJ=GbIj|p&&5_ak4U*yg03`;!z~)z&Vt}iJ0GV&9y_O4=7aRfm zwL*s7({+Oc+K`8((}a&;Xu^B~<@3;@cr8GrZGehjF0@oS!O8OF|;x zg$7X2q^Pr>cFO}>SN~ZqguOA<+TGp7-IyxeqJiUd@Y8$f|=0jvmB4*r%4y+gJ! zcl59ZUY_n==mup>hHC(20@|=5UY%n25JM*IZ$Ik4Cg@s4R2&7(1cP}z4jcm~px{&I zU_#ABBF&>xXJX5M3HbaI*)%lSAYN;BZ-2yZz)YgAzy=GAChR!a_m52QdUT3_+D8aK z!craEmxtGTXo4zw2aCAkzkjA@;+9DOdj!2_!TNx(3{=A3a-cF8QLyC{$BTmv5X`rP zs*X!H0UC#@$`?&uP+DOP(Uu_iOyC+qtV+Ng2lhCG(&PQHcivd#0WVcP{3qg%a-uR^ zgi^TtJ3=UJT=#GEs6)>b8FCbl&x!E&TQHVl-+96H51aE6)4=XBi%>vDfp`P^hbF@0 zC3H?Cw$PSLhP`I64KS(^y3yGcuzaA`;6xzmT|(GHVD$rXv56hxPH8)(1m8FY2m7)Q zZ2Mw}qq=s*4z)e9Xa6PxCO0tkHg|WncecgY_lhZME~4a=hx|-!QbG!WltD3 zt-zK+FAHEeSofe&MR~B?coIr5dbf1x&j?FEH!z?2SERx{lO9_%=eg$qD-yPAxdtxf=-jLy6;vvCwL_}4s6gdY;I=!-*3ASj+gEc#%Jj}sT!Wyp|HH4w!C zW7TNzOCa7Q0$4()Fugdmc$1O!%poVK<5|em7f#-vQ3Wg4mS@$Cqh?sGyYD1k@nM10SBHkHeQ8Bj$G6ueSth== z%IG^`vc^iPwSGUHldVTQt^20^YK*B}ZoN=`tkz5Q^VZ{Pn%bYzTdiNO%9-LjeWH!Z zG09~u>47%Gx&4cZir3q0yKXc7`Mzs5{pLP+y|wa}%_66(u?!1c+vn7ziZ=OhTSd0F zW%2MGw)s1UY23YCWjoqoTkFzA5_Wt2FMgcJG_iX*a+G0vK&%}j=jo-yFZ=A0u8sIw zUGUh>abAV*m6pNwJNzv_oQ$-wzoP5;cCYwcd;gr{h3aYf_WWx*bLcN#*sn3ZA(=8; z(P2wS%4JzaH;3~bPvWZ>iygG*Z5(QQ`n1Dz?h_8@_y>pE*M}}!+MqJS{O8DsS0nvq zGrJiA&^&wWbX>8RN8Z1=0a6Qu@4X1kAmaEkS6*IjoN=LzR_uaxvS z!uXW8DsQ^Sz+qfehH+k}7idT$TujJKiQ#kDNBR8*IBZ3~cxG(X#F(&cu zp_e6Irb8x$lt+K`l6|0W^6RGROnK+jn1?CimkT8<(VeN#lEH6 z+GmEU3@QGyQ`>vNyWwj58zJ6Lo42e%ePD!=T@#OamZEdjdx<4$5ek@}Ri;}}zX zE?ZDq*{66uB@-7IJ-fTxM?){?%EN09eDuxj5(oc~^}R5G_U5&}rSHes?|W7C5`B-X zi65k8p67dW5SHHvrAaym!dM)P*LHe-wxWW z{=pC5`YrnDV>wT9{H)zmwKi;9F>}_c0aH&|(pJsd)O5+iVcUgSCe#zn{{6nraysyQ zyk6QQe{K8Q8*_9R{&OFhm)OnU=s(L{{`IK(8~#cB8CB8clmKtnI&r68dI3?58||K& zLV1a8_w!(xPa)z}PndBX+M!2~;mMZh0}hFz{obRAl{=mx1q2 zmRoz@A05={p1pGBUiYAU^`)AJotJ`kOfdEyeEPQ4@tz~A1 zPyD7oSuW&C*=K>Jp;bs?p|<-_>!gsGPfJ66GmnNC3^aK9?acEK%Qcn{;*N}94dr_} z-+kcBdV951F3mQT)!ar`V2vzhF%nb!&W?T0GLc^Mz54F>(1EuLPTXAP9lB;=VB_zI z^w73rCGYEl%R-H|N4(zj<7?;=tNt(Mot_+a&q4X<>Q+YB^3iYo3Su(D-l**VI7aqn z*pLKC@4L(Tgx74iF_;-!H7(fF23J@p{F+A1e}rRP)jz?s)9^4LQo)5sn}BExDjNHd1@$gx0JCkI0fp9r}E)WswKP=Xcaa zoQ>27;mt1Z`#DnIMA{(bqB>{Mz||K6jt6k=Ts7KqdhI&Sm9{Hpuk@~R42!?7Rqort zQRZ(oo;gk@>Wz!V^+UO#QBBX+l??OT78QMas{ZQZccKQCttiVMC(d0HOVb^5a4L6m z*w1=*hZyesg+DgE+_sln&uE`FPV5nP^1Rab8=lGW;wID&eKR^vpI9C9ye7F$Pv>IH^of7AQW0$vXSbm+mDfSS({mmSQTd~rCbNT7cefhWIXH{xHGvF`uj1@bxg~P8D zTpfSn=}x|wd(xrjKGpms`@A!iTBHR-uYG+I6K5_Mku31KT@@$Tk#*kl2dZRfUA0slcEo= z2>qEeIC+&fZNXG2n`GV*qo5Tl=OnW@%5x12^ONV>PF56K{33a_@3(Q*O{3;K+GMQ% zrowejmC5qHP5l977coLQJY?hgW%fVeK4`VBpo_p4$tX(74sHh<` z|8(sluA8yN{E2IoZ@jn`KVMgHc-q)Ghv(;9d$aiS&4&3fpCW(%KSBT&@$hRAwY%N! zu&2Hke-iU_ArQj(y6_q1@vyL)Oe|T9-i*lcA>Si70tzlX7B9kg=I7~(V8}W9Gue|Hw(*x-XTmI zho9{7MBDqUXsVBsBVNWdEmi(>*rV)x&p)9nKiCUE?~%Lh4XgK(M@Z|L95#WvvS!1J zMeuZpr9$2Q!MaCUfTeqq9`PbxxchJSw5W2urtcwO7vZ{A8^fkYerSsBWuX04(S8p4 zus?CMfq3~U>NN1`kwVwh(ZpWhK{!)eB4IK^_Wfx$sm&uVMMsd!4ny#lO$cT8=oAX)>t&i;QIYH7a-N zY&o`Lqj}K%*qE?gcN+Umv%M!aqhqm5RbQhRs%F>X#-?Dshe$3dS6XJUt z&t>c0D{kI(T_RDhjWTHU0jbOpS+Wf!G7CQ*``I3XE*{FzOyZjq7jKS5A>pv_wB zObPzVM|s5zguJ)YRg4CkoGP8Tjl(zb#eyf+@E5 zUms1V+ODAXNGx^OW4^pJ^Lg6TkPXu#qGS&EMI=jC$Tn{OEwx@fk1`;Chr~Rq^@BcC z?Uq~`{;AKHUuEL#0Po;$q1hd{k;^X-*YS)!wSIIx9yII z8?ZjAZ?3r1Hd6!HH;cn0VuyHB`Y&=gw{d84@w2>1`E!gEPYm3;x@w)w+50a}wmhCY zuKtnqy{fxQES}x__`UE+I5+j-*jvNSE}W%y>T5&7FJ6LPjdBNZB{*Gi=S8#?UJ{yqpzDlOXGgZvFtgzn{hFaMEZ^MEroow0mj}o}k z9U|`JJ@%`v4VA7p`!Mx^p+{b6?&TdNb@M9Ju&7kcd5eO#r# zLFMW7;x)G>de?cL3#(PuOb#t9c3@oUs~8@zVG>Wn@T~OlovR04RIKmsm)_DBZRJzU z>53y41smvG^q@@=yUYo(ZcUiCWWV3ctC{95k}GPj*_V{vS<&3mUS8Y!e4tCwVW*V5 zqSdt29TiGhOWowl9ORU1J?=)gCayDYVR+T#X%1~FGOQ`eQp!wA?eCkVxM)N!W$UAM z+OaL=2Dt$N2~A2I&hL6t^LsmF{ci12N!$2bA$t|oreHrKA@}UQhUSkiD?c}@q}E+z z6ubo1eJb^sQJ8M$9$m*uqPL_3{rcSW@?2TRuelkO_f2xjZ?+q(NG*}b*pld3nm>iL z|G11RbeVay$#^QHLkv9(8 zMc?Hq27K4luxV&8s0+=JxICZf+3Y!<_1Wpg=Yqa_%5oLMGSalwa;&?-}-IvNpH-l80 zdHnkM8nwb8v9Y1CONJ z!(AHeXQs5fZlu-BxuW@NI9fR#am@zu z#<>zw$`PI_l9O1bgBz3fXYREtT@$L9u}58F#hIt2<)3z@SH20Z>o~96(o}n

*ia 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�P73rPVmh4@2 zzhQk5g^j<^nI1jd?++!Ps?uS4Y%Ii zb3L1r{#w_;eMtHXhKO%p8_%Crzpip7_xuaLT`(*@VHsQfr1V#oyKNjV8XDIdkvVv9 zEslRs$i2jihSvR_)NLE@NjP>&|E8A=2SREUDK(1m)V-Wk^6n)=%?bS-iuqLJ_|6Wv z((SV0dgS?vYeyBYt3;RXI$F76=zjIsm~GZM>5s)NYmK{NxZSOMi=Wf=v^Q+-*?dCpeob%Xx2eg1u;N)V3R(XrJH!;gW-r|sUv_&H4+ zo%7BO!`(dXtQW4XKzvdC%#fP~tN2ILe4poLe1F>CeRk8ZV$}0;;de>@s_N>e-EJA~ zOdXeOo6~~+aX-KD!!5&?>^U9VY;@-M;^tQAecPa)cy(ZOq@0gq=7xX2ZI}}_th`6a zmpaO;Uj3IFk_|6L`#j9rzGPjcRKVD{gk-~YyHh=DkEu<6o%YSSH`%b*FUwQET#QG; z`Vux4cML7hWf*mIA^rQP(ajUicMN;a_0MzdSfRQ~!??OZ33m)Gy^}NKYF4DKGGkn% zYvLV4vkunbKf6?~tIXTj?&bG8hHh6ZhTd}J{L<-PuWMC)($J_4~Wx&bt-o6%S_~zm!-;S$eT` zS(n|)8UIJ`11=>ljcGJSIZXY|=O_NWeKB$BjtS?z0}Pbcqw>tI7ZYP1?x>hlpyqBq zB5wElhYN}I*EBvC@wNu}-3oUcd?B%7uS&nQnw`8$akd||U3Vd|jMbx3b-Lsrefs-@ z=bTS$Znf7f=K#u&-ux*?x$}t?ClyG(8)?5=c{R}{|BiEsm6p^E&oH$*$2V{F8_#oz zKGQb;uzTyGZnny* zRb?sv+L)GO&Lqyi-P5PsVK?%>8&jmfnM9Wd*^b17)uBJS^e7F8 zZTk;9m6-JH=i4Pw)j0l$AHJ(jCfe%9?;H|Lc?tC%%{YG|vF4FU_fNjJ-mN6JDbV)Y z@x&UNT^%M2DM@(n*Lfw5CvFWZ^mt~QMwGv^^>d$NiG>bzN{F0JdlTI6dh|P*XnC?( zNKk(Ie_lh|)yt10Hf#MRc*jUD+E-+e{^H@px{GbjxOd@rlmUCUSRGD$ajAJkLM_I} zdCTmMl@BH6-`hV|@z<4!@A`9f(80w0MW$q^ZqtPG(05-zH?oAe%_Z@v|7V`BbwIUt#pjDeCxO`v2HuxefJtV(Z1RNV*>Xk zp3S#q;iYY~S1GaJ!L+2r4}p$FXWVK`eDk&$XD22$@3eU9;40MT{9@7+n>~rc23-6$ zvKhytw0y9m=dQ%*dxxhhP?ht|`NNmd&vqobJ3Lu=Je%}ynCFJ}+Y=jHp1I*mNyax} zp3CG5TN9hD__*uS3vcpIUQx$;OX9J51=F2dQIYs3=NcT^l(^NWZI%OWPdT3!OeyQS zF){bOkXoMkI3DNLr{j06Pn9Tts@X4^{jAwfn*FHR51M_i*>{?KtJyc2eXZG7ntiF+7n*&p*=L%4s@W%+ zeXQ9>ntiC*KQ#M5v-dT7PqTM5dq=a$n!T;rTbjM8*&CX@uGwpvy{g$On!T*qOPal? z*$bLIZ?XyJG<#OFXEb|Sv!^tBQnM#Cdt9@}G<#IDM>Km_vxhW$P_qX#yI-^WG`rVi z`GuA`FHOp)>*TPW|J~%@tSqk ztfJW@J1t(b&YD#;n`EoSYt~t_ie{5+w0O-rYgW;0QU)zvv(B1TG@F!Oi`T5PW);mQ zS!?l{b=It+*(571UbD`cRWzHFPK(#9vt|{|CRu9nnswH!qS+)1Enc(En*Cqwy$4)V zN%uEC3MwdI1VrqiT2Y#c8ktBDR176p5Rf8Osx%vFKvYyzENex@j=S!PuHDGRvi5?C zii(0=*M?w01@fM`nTsKtb)Wz5dH(P3_r5Rjb3FHy`OeIlxi>c<_Z&odA^hHjoc$8Y zg_OfJL;kr$)ujPRQhRt9;n6{spENa%hJZ_XFB@Cj`Ga+NmZv7jg@Kz2Fdi^iYpnD< z+z+9^tpm0@<9U0!1tBxIpF)KfM@5aqw|Z`rb`6I6H)LsWevJq2sqt&?*VEyC79Q(s znkvQxBX@asD}(!IxS{k47=vHy2d`dG0ry8Je!@`)AH1;mYuyKDbC3(Q2b%lg*&oX0 zUla`__VO#50l4f}=U{99p&(bkI{qmTchWs{Gt6W-$mL%*MFeAa>+E)}fi@uLZdiPG zA`Z1)eJH5T3gn97d2XTDx*(lt>IL_oXwBwD1z~vTCz}q71K@rb3Dt8fBe1V@j&)?H zJIML9hqgrG2c4`Ea+{Iy<}NAIkHQ&}tr=IgT7X=5NOyiTmOlA%DbpA3=TXr#&o439 zes7o5v36v9nK#!*#o?3ox|8qkgZn*H{IohY9#7{tiJ75I`cL|;NB7B?7t{NrxDM{; z;O7^C4=3YgD`$pwRU`2#-j%a10q4$~H7M+kGsqtIABYn%bFJ*A`4WO(RA#Q7gnOG; ztV=H?{pasZI+KK-hF;q*S|TL=;&Zc;@q~CBXSrp~q_<1g6AmC3pX@(!2EM+b@=s??g1_=)fqE*Q zQecy5^_=Xl{Xe-Cq++Ie0&koJS^qVH@+mX1WvA?oMsrF0a}Q0knuSx1Pw)BWN%oUz zi}tT(;iFYi3&L8E@n!TX*ftyIv^yF+XEfP=*~@MFN^sA`BLgl9dV(xicPmMPZ#KWQ zcxo%MKXk13UX$P{K3B(>4ebST&Hg2Q((u%-y%GnUB=NN~iCdJ0PlVohw;_zk6{%h? z((uS;i4P7hAhP#KJLhzqGlZvqD(?$0oycO6F^m z{W7LQt?wK>`{C+hN4-z*d2JBy-QhVn>dTmSA3l@u9ISlYHUodHY*&5Lhs3Y?#Jz+J ztUsA~ZrhD~e&{pn*3}HW`Bj%8*yTGR@4FS2S{)^ms_|oCAqt|yJ`$zeH;nK1T zzosxF51sMN-3<3nD97chX9^Q)x+wZVWzU2DHWTt4^#^R+lt{`WH7q3lbQnL=9 z-D)-*XP;$Q!e*N zVt!tqvfiWxxj&6IKX*BiNo%spe&HN)KeQ(7#N0HDv6wWaqKdXwa@)l*q7Wt zmYX>Bi)Y+rzg+EWL*$C~6ZXY1`srH33w|>KIZ)f`Yb>L#zr|^FC&sRrX+XC))k)7A}ib!VK!rx~7+=ayVoLi7xB;&jE z&hF{M$o*hZcn3)Y6D6p+A+#gw;kvcxY&bJ>z?{3wUz>rfA)C`WoQVl9wle>P-0!0q zwqwJXx(x@1>(!F`S;KaZHij}YkGO9;nl}_=yBk^0LYS%mKWSF_D3Cq&*!Brw3{L%? z*P%aIFX1nDk|#22AEvr-E(K942i z=Zs@w>Pl?q4kw={gabl#$1mpwGn(wj*eJGs@* z$z(jaTY?!c=D9&?%!@%Jo`u3OB2NaVx|}QsA?q19AoHj@W4Hf`ZAleb4@ua#5;tbc z^sEwx0c3r1bvl0<&cxdqn=Sf6_J3gCTY4_cjX@th}ea9 z%-n}EM~)1w9B54Jl2cRf2$Ueulpq{$$Ze@_HElSbv+kZ``>6sWaXF8rR`^Oe^BTw=RzkrM~-qX z8A@d#mF?wRI7H412UB?vmF?tQGC^rIWN3L<(pK#A?K3oa*nQ1`6`vK$a&!qF3h3&^;A!}aGhM1tflrf)K0l@HMOszddh`A zQT<9eFI++Glna+r`!Z_Jrgq9DOR0Vd)l)89ESDu&)V_$?DHkrJ_61Z=xiFLJ=gWEF zJZh(0IG5TpsC^E#Q!YuT`ZTJiTqu#tlG)Tgi`pp{&ZPQOs;68yLoQ3EQ~NY(r(8Id z+NV%^iku56mn2htlAI&Tg^6-ml0fZ~shx6RJk`fhJ>|k!xh#pH_GoISTo^^|lc=6@ zVIgc}x*2~=^Gt9~79~7Y`d1xR0?EWT? zZfyH_b@ask?z5gfu6=VN_L64kxxHGg`MyqH$mdlwwFUaqzR%#(8?siD&wt2O6TPwb zoc8iq@^9qxKB{Obd1v1&XX54~X%G&$Nz|}Q%IyJPR#_AKlQu$iJo&fiho5445xJ>e zxjHu5)@RayFMWv|qMzFgU+1~;k1t`{7q<;;j$g&pJi4vP`g^qFx4`|}yM~yp)g=C_ z3=3P}$C(KgAHKaI52bbQAkn}*FSv#W<+A;q=_u61zc?Pv>2ir(--OPnCBFADG3~~y zp`?A!u7xe}@(wQEk$YHq3qP9ydI{50V;&vGu*!@%71GUE8JSv*azVMNZ??JD^);R2= z?a93p+4+4l5c2Tkv1-?1XOPd=sH|N!55Eg{& zu*=}RIxoD8iG4uF{5Ck(?n;`Cz>Ua3op`!fdso7+>zN~oJfU--E`Ar#Z1nlA?0T*2 zQmBhh4xa73@L_*qFY3zI!^P{`oT;+WavDMKI-6JMV~M25sym zV)yUP?zwHT#A^DlM}@4vUQc9z7p>X*zHT3TzRc|vXn?1z7;TFeG$D93y$cPn)4ShW z>(;URdvG6KJ8XI__(VF=CH8{8@$GPUkM6#y7 z2M(93+4encC5AZIW10HU>N#Y-fAlLi#A!OehVIOOzpum3LI()j<5b@n>9cyW@zfcZ z+aA|#Z~yGh5q3S32354jF8;S3)h=MyubaT51HLpP=2)^38}Elh@;hKj%M`z>g)H7? z%-5D2cxO>@e zF8O{9m5i$Bj4hLjRyQeS_x}}lk1n|7qi)B~cV@?*?3vpIZ>zI46aL0tzf#1gEAIJg z%gIx|vip11=)kUcBwz30{^RWVw`go(S3K;xN9^FmWIsr*_U7^NOaINyYi^MFOZHgU z@$vaHONMV=!P=QV5qw;+v)`APi|qPd@4JSN?_TAv)p*G6rx%vz_;~l;9lH5*+3{Vs zs^H^nap@$YrYYdzL8AZZVG?TM-nYt_&&HQKv(m57qY)3efmj^u>YbD$xofh z_oWi!{&_|?dZ9^|`%U_Rj7AJ7F~Yrn-qA(6j6J`T?KF&W{%50UCMJ(z{Uuul+8N^y zU8fdJ+e^OhliU~-VT^+v_3mycWcP3J;A~@@+~jHJ$6myaS`8^Q#?}jOl}?#St_Kn) z`wC;+^pddqxBhJVG|V@_AG+nNewfGhmnC#H!L~LA8H_fOC0B+{HNnZEnLX8)ko_;w zcg!=vJqi*A_#}|;%Ow6zB__DDT2`NtL)h~>!5Nw2=D%*ZkRT!ZLsB@*(iGbav3fga zJbQiCbqzGd5vhwbP7h(%D|~piDSr58=`K+fi3egv6q@3>wxPMLPO|5F`N$WhSoU~E zhF}Nz{#r6*l%W|;_Sx<+YMmb3wl~OVwO5fDwmvyx>%kJ!a z^Tv!b$5mb@UoRNWjCFat`1=f)f%-`Am0Hy8uvFtcI(L%r@q)+}CX!2Hpv ziFn%y^7l@3syM)ak!sqX?r@9sPrcdKfH|6{_2o*)C}Ow0C2PxspWLf=yFK~73H^EN zYFoxSzw_j~IaWm8czaV@W^z!6vmUz~iR@Vt*OobguDmrHJdnsu@8GtK?(={}mcOv} zDR;WIWo*OE`aj>!_Gfek!Aq#ADyHu5Fl8 z1#ikCFR|@~&)@Nwkw4qLO&x4a@F7t!j}e~eUaLNojpvvbOL@#sJ8t#w(2m^?dtb!y zn9I%o+@0&quGheqn8%nWKl{3OZy(a0dD)uBsLdKylQ@X=pI6MZW-jPxzG=2|1hHq` z3~0?PdElmfc{m&2>{~J&X2@~j97_Xs|7G9aq{Hkmo!6(<EFF`j{^ua`7q$G^WUpcT`0 zC%?GWcqh_+Rk^Gs(|T8V|0XNh{oC^)(~>zhZ%^fp{9(l2{82zlM#J0Y!j=ysiCq3j zrpc@r)o1UmE$n(8e7s4M5mp}xs6E53*TN@QlQFQ$@rxM!l+0(`(=rX_)blN6@ipxF zm_M7X!OT57;_&LJ?EEU8b=6>QU*CPE!_H0w|KM}jty9Z8_l?jRKxDfYvs*B38_uTq z8#)vD>x-@}n6+cp+}AqBwmRa)uv|5ila8yMK1Po2|wSe>uf&nHTFn ztfH$L<5C?kX`5BCzjZ5RO&GIo2|KkM z*zxYD+|-28lzOi`(t(|S^QwR*OdH)ZUz@tH>%FQEAtY#Fv%qe)ap4krf?~`8PHmPH&l-f>BrZMGYFwp5IU2;+g{ewi|nQ`@Jc_JNIt( zw}QhFKi$4On%zHn70lOy(QCJyIk$#AKQi9Sz7!;7&sP(^VEZ3eiN6#WR{iu-?p1bw znpVxOE|^!oVB)PR7XNh>^SNMJ*){FHYuNbi{vi8QaJEHKtJ~h}`bK=jp9)^KAKK+& z4>msKADNE@)1T%~yqYH><5~Gh_Mu?Lyf4=*=99m-Ai-z+p}=LHi3GP{$5;M&c2&WS znHE#-ykuobHB(ujHDzzciAn7G8GezyFYtUaRo0?QJJLSy3w~el>3C*OUQ6=#0c87i zc11znlb4G$zxF0_{Kwhv3TBlSjP~KP@iP20`)xt-scRS49b)Ih`z(81kUn?4EdDUN zzpFpbepL{2-;Vdqip49cmc1XW99ktC{_< z;L7%P&cAGA-`{e-%E}6E2W}stQ^vku|!P?&jKG|Bx?*EEf*^PoGSH2z_c%nb+UneUnh-xQj`D`k?9;i-sv7mB}<796y z_If0#lbtO%R{d!1!w@zee3|S-!46%QlEQFyenOe-P(eUMk+xYgc0BN$-p&Fooh4%N z0rvU=L-_tOIQ)BX@$A$1?bwi2J5EirpSXWfPZy5^OpBqB!yNnEV&tCRe_zng=G(3z z1{L_w<-_ZG1g#eYNv7DZ>s^8UHGIW$vL{RD&W?T2*0BP|o}bdb)7ETh(%iN;@_j0B z=>Ftwj}jLP9(=mrBPzZEn+x_nDqEH%J-0sD(0P6ZmSyZ4Suih1FsJIw1^bN^xL=T! z;Z)aUg4PSZM2|aAfm;TZj_9*vjo`COLa*hQD)40YM+T)`vISeN-LQWBxB`34_@i69 zK|(>t8+CiazE$8E$3>^#tdEj<`sx-n(R+^vu6G*9`(u^#l2vr!@t*JT+3nH4>mTrx zmRs!lZJon=ys`iLbxhwCQqLvZ&#f8%9&7&c_Q)h*x?qOqOu^xV_c(ds?IT08)1-ec z&a(Tm@I8)dz51F7Z<#dtV%#g=t?%)Zh~YEbe3uA{{nRtckG;n&KK1E0PrO$8^N|Rv z`Ni+CAY==QZL(3&`A&_o$D8+f(V-bl*OV=j-pUHj9NfGTugn;cmV9=xU{&eNWy8Bx z;y2q@uAH?iU0@fS96Q~v5+^h}dvI3%S^?g%&;5#LCEoVoL&4}13kCO6AB8$cRpL7@ zg==k&rwh_1etcM#QHf`2!c4Kbp5ztV6XtMbeAA z1`XIbxeD&59hg4{t&)b7G>iEys|rii*9sQ@v{Cwb(^K1fJFD=ck3qNkKS`E8&C@$& zajFWR>ft}2TDDPYY^&?G<3SZZwy~m(=G}#YPLkc~&R?r=)t50}Oo~=Zd-nNk)Y9Ms zp1Rz!Q)JZy>FPX>J0Gn+;5E|%9^XHkCbd`)6sRHkfUip4sZU?;Dj178zZp8|15Q~O za&6?w96^!b#DOjIKH!Sr?1NiRBnlqfxLwh6>jylh;96Di#kGQNJ^SCh%Y49(9A58P z?Ko4QeZO|?zS0laX6hvAz1M35J9}?P+4toGemvIay5{dIr4C_Nx7;=Oh~KU_9yvE< zsWjbv!x}LE5)Ns9;~&C;W4!AYxEKlr&?d=a-qXPxzD0JhRq< zOleZU>levgKjXF2Gv~R)rb(01w!5ywpYh6DFSdH~D&6Z;S z2kw!Q&$zci)0T(B)(GY|d6lTY`7`djR{iaiwi#0E6P8WhocN4yjxxCBrn^ZHEV|mi z>d|LBYg*f*P5t8qx*hDjyQx>>o~vVm=cO)}>RoYLyTGg(-?naB+}Uk|^w+Z{!#cQB z<8POTZq2xrDSfltY5kpuYJBul@%rjBo1|;Q7T!6#uo@3KkXm(e1#r9RHBU7Xvq6eGOXMVv&b33N` z8g7stZE+#~eeM@*{p`xJm*Xu36;$Qlg&h)cfCGa=1-={YED}Fe1@x9o-8>HiY zx76D>?JGVr@sA6$F0L0awbMpNZTyO@YCr3o|C%kBUUh?sI`tJ7ML)k_yL_qi*Bj&4 zZhG+*r(N>5y}Ws~Anf4c9xZgfVbdoPw~r6jOTV>sKfJ}}8*Xts!*YToSUSk(>EZ;R zZ}@S{(PL$kbEGa4zE!5o{)Pwb_MYWFE?GLF`DV-f?cZ>p9^N`PYBox*pBS0l<Z>XPS}tx9$d0mn!2FH2#XfAIA{7a#{tqDY2^ZKjro0R@szn6CeLu)Af3PM zTdCo=THJhq@9m~<(gkbgoHuwZsl_kK-Yh!NWtnuY^*yy`yK1rZftW~Sk|PM*-=xau zMlC*RSTS|%-Q|LS^)qZ%*VJO)k%sP7`wg1smrG=D3~x<~h9%KU}PJ!T9EK!QJd_TlQ?L!z;Syv@^-sD19Hk#KQGz9nSi- z&HkztInr+9gWh)hT8HxwZkzYv>;}Q=qfrBTnaQx@5^ZMt<`n{=bF6QQhYT;=Tw?L? z##(`XLC&wWGh|q^U-Kf}V;iI;*&EYN?3CdyE4EjOUFQqlPhQ&Vm3EpREzc8{Qwl`?&lyo8wmD3!l#}8I74-_1hXzyYUp!(YRms&B06lNS7UF zuHbhAzt%bQVV{SqCT#$Z{JnyaKOb42A7D1^huFzW!v2rSsa#I&Jh>WGbAD8=z_Xk7 zI~ifL3VRS%b!p&n~NLANB^O%xn}rDtk;DP zon2*;XWkt3$LK$powWXyc>26GYuBE~o!BnQ8I}Fh=S>mEHR$h-Ili1eXUcKbEb&n^m$Xn@dWyuDaYyarrdLK+ z9H-BlB95=4&zEwXd)}1eU+MFs9Os@l<#;f)bDVqLl;iYyQ^axlyeZ=NF#3Ec$D2}_ z<0s|Mk0OqzQ<>uqROWbdDs%h-eQuQF-1DX!A4BaN??PpcKcml!ay*~P9G^~Qjt`?U z$GPWCIZmH9MI7HppC9FTI+Z!jJ#Wf!?s-#=)8|bQ$GPWCIZmH9MI29}&yjL`1eH0? zr!vQ@>GPl*FQPKX^Qg@6bSiV)kIEeHPi2nlQkmng>GPi)zd&V<)8|bQ$LaH?h~xBm zQ^aux+MeUw^QIg}-1DX!SG@iR_U08V#d@Myd%K-~0Phb|4c1TJgl|9Z*zHbFQ@FmJ zG`SPD6Q3~c)HkmJeqStXbHY+<4rMc7Fz^4UsD z81I^kzjX?`h8In0p@lkG3_(-heM{?c9j~p~HFNr&c7XR#`sn3#e6sUmT`fzPzw5Cv zop#>9b29P{#GTd{g2v^XY!y_D&t4upXH)?6C*-Z@-1#P6lB2!lYd-varef3S&P6xz zjR{|~ei3#Xf~wt24d>p%?cXn|?wink2+}A;hJxF;Fva`xJ-!W$XB*CZc^faNbPWHp z2j*+JVBw85C3tM#E-k`7L3{$$x~q@4gPo$X@}>hveQb zHEZwUHe2ThUhxpRJKn4`}kICr*Zds!{7G`AFBUcd>_|#sIc%XfxkCrP7S`E^Z-l8u6*Ns zq)veH`$V_qmEn@A0UM@V=?&vwmve4+8IC@y!_&4mfb}}RJ>9GvXFXgaitcSZ1eFT? zbP~#O0nSHBk04%l{hoU<<@m<@8#xOOv>$@p`fPlq`4B&EW#1$GF8uwo`0x#z(GT&d z8~J&i*1&$**6QfN4G(d|mThy#h4+GZ#)X$Xdx(FYb0qEPxDG>*w4fy4@)4d9<{I0) z2HFeGciA}Q5uUcbU!si{#HUlnmmbU`{QA(1AiIUN0;J_`JGRARY+DgL=EZule}Br8 zxIMcpUKJL(;_f|kWygNj#D|w9VyW|C2J`3xI=6$%@@d?i8 zsdMC3TnjS4tG*MT;9oE37T4)=6W?=&3`L{G&R*ZMekoo<{@*+1BjtbHA-|dYpRz@j zOww-u=wAjT=T-jK&_4}*|JMZlYyT7x($V*SP0_#hk898We{aG6GULClYQ+EU9nd7L z{$G=S@x`qm;pt7j|7+UhU;D?k|Lg4kziR&J3?Mz}!#}P^B7HyRp?`70)J@s{Uz_cB zFCO}SEI(?(ek7BmrO(NjJ8ypGf`yB+7B5+vy=?i4l|QXoy=LvY^*I|hZpz)fW$U)> zJ9g&n`uUgLzy7u-fA7BE_a8WT=EI`O4LzYu9fS z-@J9Z#*@N8^f-1pLb0J!ET%(68Ys_$A|SOQbjjvdjEIY7b>T1oNc;x5ULk!V^bNJS zSpCH5q3l|4V4Me}G-rpIoCrDLVY10Emc%KL8IX*7N+{$wkFbDZcPs`ZPb5|FEK)*a zL#HQ)Mw0<@y5t1d46r<$ET0dbolm_kG=Wqp`0f*w5X3fWpo0Xs0L-&=`TojeuJaL6PX{@n-W9RW4*Am1?TD%uXR1j3mB z!-E{9u@fV{<50N)4%I;*gF+PA1cyeGNy+yq86DY&bcArMpoa-_`ug*aWI?3oA7^9F zJ%#g&)01U;;NVa;=-+ivfj}NL3m7n4(~grN2=z94F0pxR zLz1Bg8S$1+50UeZENW5$%%7xGgyrINr2JqIEIipG-*u2@6-thg1gV^kobU8>=X8Vv zMWFh?0tVMByFly~fFD}R&+}M?<*(QA>13d3y^b7zxTno?7L7*blwYE}kmWy8|j``EXRk@)77X%g3YLEEl6}mV2WNmb;*-EFX=cDfa_D%*z3}vD^{avD^)H zXSo;|0(WvAiqu)|h$`+7*$tJmT#SlJI6OS2&s&A9|iO~n(&LS67!Sd1Q zHRVr$j}{L_rNCVryihT4M^_QLMEH0ZAJy-td^d2Bn-j_f?mE&1tt9ezH zDVfQAN907vvI=kIA$)k_N(kwO0^v#>6b=b)Q`q#(kdZhZiq}C=0ImQ8+_FIZMRu@( z)F&mFjOj<7@PoR41utY8yeY$w;4PGtD}a=~T(6{%1Uvsg&gXlT2B=6Ow+4nraKrw` zAu0I&aNx@EP#BX!Bw&7jiJQuhp+G3*0(ZXfJ`B?%^@e=?`4gk#5+UiWe16Jy1#4hj zOl%}up9qSBl6B`0$i9FZHeY`jhkR{Q!q{354OXtcn}$BH=3d_3!vQ1E*%bvQhmc~5 za1$I0?-pSDOLXdCkU|W(c&nVWf}hIpDcJvJr;+_bOJK;W;m{Dq1jR!fxV`nGL2y1Q z2SDatzduz@0R<+)DH8;FoXMh*k__L0=)MdM3nJOY6=(20RQ33O+g?8S2B?ALzK1LV z8DE2QmY%FcPwL9XLA5<{oC0HvhBZqGW>=pm1L;m6#}nY2=Tsp01|JFFYkhn8(}x)x z_XUE#Vj%ct9Q6cBO$8q)5eE#)kwKw2pze^_8Qj_GM$nY4C}&~cldTZfs~5C~8WJR5 zIJq={J0g402>jsNcebvPJ=p1fW%nxa2?&4$-_cOt7j8ZR0wCu!Ocy?;!Et<20u=iW z2!N_IWJ;`W7^JqA3jqP7gbsHMHB{<-po}pb%dsbhgieeG403S_=}vThPvCkEpCMWIw)x-;qX2Ha$sy+tOYqQEJ!kWu!UO0!-u;VxZ1LNGZ_j>l1)c^N!b9xNqrSy zC@}&)7{SrR2sqh6CdC7QAwejVPKr;AOoV;hTS4ee3T(lPyp6_9>5h8%0tTO)mw)Y= zoP%5yX{h%;Xb{vzAzK~(;EGr|h`gZ-*ggS*6e>i4K`@zVF>%R>Y{eG%C^wOPqX+~$ ze3~O4s^wD!`LA7Cph1HGgDXZGIx#UBFyVU#$es@4WZzx+&^Ni|AfH>3V}PNFQ0Q2$ zA;)YrFeqaiN=&E+{125R;BztG*wL7ee3K#o-5+`(-z|{Ott8_*97DZixPu4{0g)CH zW)0kBocPcikngeLZb?YpA5xkRzW!0T&O$Y&Xt=__^^KdTDu2c6FV_J2YIyzpewnQY zB|bqRli;&vT*3@EP61BdYZQ+|r-B3pG$DpFyFuK@Z4saB5!hp-1_9U{$FS3^*MSQ0 zIR`jq+W_ZwU`QMU4L*? z!GEO^K53svb^C#H@gcsd;-lQ2!|vV${w}NnTU|pwA0BWHoA|22R&LK>yMezO#o=^h zO#-Pd3HTZy#Xd+I?r+qJu~Ec{1|L=NlPdK^`XpFIRIl6@v2(9nz^qnkPsXaHDUSmm zxN>{aM%7rAakxGT!QYSKaXQjIp6VpP75548S2a&%3=Zox_)Asb7g1d~aK*hs{8iyA zV{rJUO-*>6TK;vPTT-16xZ?PUzbbrX3=ZD|{8LrnXH#9S5j8_=&$Nd}Ry{|1kIq0E3eWC+q7$b%DS$fVlIC_^ZNK#HaxuRp(ruQa_|Gf+eMT z#eRs5dv#Yc;gu`3CHwpX)oEzy@OlF&wkK^=?Q=yOKk!jC7Z1SV`sO&n3ZZ)CzBnJk zGXXP8sXb|%OLh6c6|Wt{U)30tF}Oa+bwt%QqY!Y^wHuDR88kAaI$PkX;zV%SwzLDq z>z6VfbwM@ISG*W_-PZ;f7g;JjcgJ9KA{onOT{KzW; zaJ%a?j1gHI0oAzyS6mz7uWD_SF<5Z;FBAMTmGH^chrz7n{s4fY(;x&`_tBR8{28X55%!HS(0{=AC z6)WKre^vO(7#zL;{CT{F>rB?clVQPqbs z4%bHp_?M{Y<29#iqr+3ao{%=G`cTH<`p5%+0pM^l;UrcbR2QP657I_eAIdl!rlGb8 zFITA#vYz{?t`PVWdQ5y(y>}?Kw*w!7O~$Es4bjkTI1l1OusTt_Ddk*yV*jW1#3vB? z3sk};<4>YG32<)w#8=h$mD>|s^2!8%sS4~Osw-8%Ccdh$mD|ga;a(g34fPtvgp9j4 z)!6~(-q(q*Ds1KU9Ci`-Cn;c)wq!jrsV)aNhhIo_q>ZY5qli-hKBN!wV^zhqd7{u4 zv6C0+vzpWE%je0pC-#48Pkan@VE@y$L?$mXMh~hB1kTNa*oeQXYmqVr@g*-I_~)p= z&!@UVC4Azq3SSvRjt+Yh{A*O;^V-Ve!3VB*ei46F_{ta@ek%C;Q7leJ;uBAG5+!`% zuL@rogTq<_{!$hAMO0U=giric;VWZs`1`@XlR?9CfQ;Xg>V&`*&tKxN3SSw6!!H8= zR2BHyRF|uSPyAKkD`Rl@ufe}m1%3smYu9jniN7j*Weg6V*BbUeU~n?w?Ea^^KqY+Q zuL@rogTu20{~Q(g`BYb^giric;VWZs_~XF8Mg>04knVrrit9`KRpBdRaQI2!??+q{;%t6Np(WtiulA| z6}~bChcDEH{jY>i+GkT;4sh(-F^jZ;;RZC(B0lj~g|Cdk;b(z=v7NODIQ$y$&r*S(OLh55_{3io zzA^@f-@QG2{#AjGy3oB3TygxwUlqPG28Ztf{%#bD)3N)X>f)8~iN7j*Weg5W0{**I z;1^O|krF=fSB0;P!QtnFzgE}3t}mbJEP*S=hxn_)SH|G*%fUZd1-^vpvX$_OzbbrX z3=Utt1MGhl_~lerp@dKTRpBdRaQMB!zc>G{@exv;2XMt}Gx1l2uZ+RrdxL+L3jAEE z%U8lD{;KemF*tk)_`gylT2nBrd z-Z~Xz3Dprh=d1YnQ?U)PM}uF!0uC8NA;_12UQj*pQT5(U+GYMtKk6pm=T6${gUsQP zez_NEujotkANrc`oD|xVF?oX=sDMFyREGE~&x4a=@*-mpfb2wd#LgPvKgBgvY(wmp;FqL; zL;B7DIa>jX_^6trVmpH63Vwx3SVbV0Dqs;GRalDc2v!LAX~FaDwX^Bw^y+KUwIL_g18qk+9x$v$C1 zL%VW&r+^>Zp9eRzE8`c1G_)(ukBqNPN<+JH|LId2+LiHJPy4Zb%=91If12@QyCC() zcK*B{+b8^kJ?9_ncmKg2JHKK7%JDPF{IPxU!iM%jrTyWU)zGdS|A=J`?aJ%hXNBBO z);e^#29Mjv$~awDHpEf3_x`^#qrA~xt+w} z4>6~h@%{bEt?zK_bc_|u)U#O@p?h}zOd`Z_NG5Kv@7@TsASJj>R)HikK5NA z{;_?<(S~;AIG&X@v@7rTxWa~Z6?6?Ksbb!eNWJWWApoRfA0GPMcbvzn)Ulhc|4n5G#rm& zJWjpV;1vUrzPR}++KGPMhacO^KR2{1_n-FV`(9tHaIDUc9vUNMj&ewM<%KCY+9I{~Cn?G zhkk6Idf~_RNf&=?zyA;RPnR0DSDYW2mm6Gr6z8YBzC)iiv@6bk`YTP|Dxe>=f8*D( zfnBjZX=mf#(5}3%M}_^^ZXDjw{ulh%AKPdCgT45thVA_nt}A5x5zl^XZ}q&PT{*t% zg{>OIN7-KP(9o_tzy8iYwp)$=vHfRiCv$0hHAbK@0{?R&Fss;i1Q|_;qYnGGlT~m` zD07GoR0h>Sb`Cly_p33Q3Y2FA-#t_t!{3$=YT=B~P9Z`oA;YT?p2*nb*nK(ocg`Y z4uA)kDL}WuwxTyeW7>lba!EI{fqPBpTU!^QyZs=yG~}Ls4z`&;j~^JiHfS zJTF042IK_oIzbZiAi(ixi_ld)giIha@5zqvz61$&4+9s2-#BQq12C=u{wLrGFpv9S zKLmZXhpXo}@Ue#WWf-2xf_Wnt=V`FpL(bQ!a9j)RCQs5t+6ian?btfcQYR zK+Zs8f#QKufffL*1=DxjvrbdV8{9gqW%2xvS|ERY0fEzoYDLZBj`M?h6T z>Mk&LARD0JK*2yMK#PEKfer#)1$qMX5eT`$_<%YBnFI9$asl!KiUmpoS_!lR=n&8u zpkkmhpjSX@!=XQ*zCc1C5s*JnG|&v76+l~o4g;M7x&!nlPz{j&2pA`j7tkc2X+VpB z)&b=K{SI^qs2u16P|J}J6Ci6K7oc%KkwB?Hi-EQSNr7$vJqD@<(sI*5CO|`gJb;3L zQh~C8wgD9YT?hITs1`_Pln&|wWC`Q|BnAoxN(7n#GzVxY&}yJupgf>GK;*B$P2rcX z>ZloNj#?lMq={OhR!9qJBOTNlDh0Mdx=0Ud2DU{8s2wsy?NJBR5p_bHQ5Vz|@gXz4 zF)~4>kj>s4b%V-{JrK!g-y2z=KBzCUL{`We*&tig5A{a_;P>qV(I7M!2@vGYM;Hmw zP`EreA}8dGh9MWon>-wiKqHYG8ihp29eE&69-qZyEwe!V3=e>U2LaJ>Qy?XJy_g&i`L$7S4Af%_fMb%B912wggeD|FB`74XHW5GzaFA+D zp#dTCst1XXi#(}b2#AX(m4{d*90tI{?T~*xG(cX?pkAFE9UTxI855ZlkP;LPCDJ0G z)>w3CePdGKgX=7S&5RBStrMYo8K)%qt*rqQMJ5KsCxnJYPDM~~Dk&f+Bt(87A26iD z4hpFs8-k)Q_*RfjtV12}zD8 zN3n4MkbpisF@QvbDB^>XB3RCXkR;^ar4*?96a*Q+6Nw56uW)cM4>??1Nbp23uxkLN zUxMNZBqR<92nq{h6RHP5o_W%m)g>pzk<Y92Wy2fofe`Z}s;0Xb3|> zeFq`QG4T*{0D@44#Zfep;XNb-sz1oVLt}r4&6$;;q51{aJ|Q8t9-8b~PS1vsZa=CE z3x&E_u=t_TT<;1RI3W@s)_-;7;x6}%hI&>>5e;>)I9xM=4SPQsvarkN$M&WeS-Bz! zN(*ovWlwgSk%(f+lw#6;MUk?|4r+an@$YQtqv7&bk{$S$VmIaFSd2QDhIK0@pn9umxr zloi=9Hqb!zfr+7siR@WM09iM-CJN^!-?aggp&a5g+Di;nMx(*!ykeo$LBsWc5()BM zQ||%_g)@@7^vMSf1s=FFN3kbz_Q<<#2u`jCuw!Clzi&QPCBF_dj2vrd2nyF9sJAEY zIRWZ41_w>#&S4m#;>IJQ!nRA`PARwwl2ee2JF8ECdYl|6__19Ekm?##nFtkeCc;HI zxL%H>ldD&-n?`3f8xzS1 zNq8J76T;qpz!Jo<$8fGi6CJD-++P931Vx3i97^eeI2CSB;P$)m)fj=s2sB2ZF#?Sd zXpBH(1R5jI7=gwJG)AB?0*w)9j6h=q8Y9pcfqx+adEuSlR|N384X6?A3M2%w10s4- zH@Y`aDb&m^2D$`v8i@Ftg1!?F4@e!TCRU4A0rUc>1gHq;G>{Z%8_*h{ET9aaBp^Q^ zAy9W9eIRw97ctNdC?6;XC<`bFC<4e0NC4Cw$Ph>a=rtV+{1gI}!?9hU{CC?VuNoP< zDV521%O4`%Hdn;E?t*yng+P0NE+F0vBgD&Ui+Csbi1%$6;#qZsKV8Gi&;UVAZp2&R zEY}m=zxCpCukPf<3E#OZq+nEhWz@f@HjRBXQSp*Hq_eN4Dqh6S|Hr|r{r~l9*mIMn zYU<6Jx6sgR*-A@Wr!}vQuAY8dgLa1PJ9O;Sxl32Rk+F%XnR&PFJ$m-)ZPBN%rIodf zZNL5l>;?`REEr;sg+akkTs|y3B63nxbWChq{N#khq~w$-Q>RV$_4A()5cv1@8L2a8 z&6cF4&&ilOZ+_;2g^RKlFIk$sZ25|nKdoB5X6?H5IU6=^%H6zW>$dGXcINH+`Ip_l z{mSFT)cGo%GIK4*KZWxymh zLDp5)L}poM&Nt(G)P=~r>JB0Ay3uuG>c-aj$@KVEb^3gpx>}iSoqL^zOjFjcu791c z%wIO3&aO`1vaRL7xjZTzEn8U*sk5)su++4~b;3F=OKr=cbq;kpmaQ!v z>zwL*>c-bKJQe?Il5d?~oqyegIzxVYekXoserL-rmi_qFd^K5fSxebq{!XN3dC}~u z+3#li%&wRO$+n>IB9;jC&eyH|866 zHD-*j+g!8hW!%TOpRuj6(A>d%sJW*3GNTnn*+$EaRvE1}T5Gh%$jsQpxK{RGoAH0L zRjsVGOdwO2ZAZG6ThLb2Ovaa~8EG0t)=jF5s=H~EW3$0#qsGPUJuE7Vr1{iL=^ZME7OwY6&N)YhxzsBKW&sJ2NhS8cP} zR<&(v+tqfc?NrNC+oiTwZJ*ljYWvj=s2x;0q;^>Ch}u!LV`@^h<7x$Jj9Q`E3AIyd zr`7&YJEL}1?VQ?qwPse$ty)-VSZP|dv}$FgWuDi_i zoBk(8@P9Oh$Vb#fq$Y9{`HSX>vP4Hk*fZ2K%Cj7PuGqwDy;ocDP_du*oLE!TN~9rb zDe5J%6Fu~F7P*Q7L=!|yM4LrIPc^TvUXJ4P;>Y5yV_%JH>(k9A(Z|Er(^u?U?c3VV z*w4;yvfq9Gr~dE#EB&kd>--ZY)J5-|Pag{(Z{Ie4rhbF`;`~1N&zK;apdZjS z;8cJ{aR14q4Psmhi(f!68bc>B1|K^dpJKTIBHtd#i-(_dr_^UZKI>&dnWWx z7@Xje;FI8+usdNpieHJJiT@N=irkSH0fEAVRF~x?#VrpEt9R1t&?q%7bVY3 z`7MP>d7E-?%A+Y&QwB{dn3gpC;`A<}t|BjySQIH*E7~U7A=)mIi8S5YySH?2>#pt2 zb8q9`+PzZrN%T!rA*vG9iki5$av$#L;yKLI)ic8LKQaG*4`Z_DV$Xcfc3y3~biH)E z47|2_X^4%)d~v*ZvRKo*wYQdcOK+Zc6Yo~u>fUXEJWK$Id6iXR6N}pP4?>eA0c=e8&2Y^PTUT={whVf$vve z1HWm05B!@?NSTl{;olp(ymjkz*mg&ReMM9qjYi1v>j8|?!>1`Le$h#nms6zv;5Dq0jBA0Lq5pD-)s z%k;$5>eT+T7tTIDyNN_iq9xIl*hpqe7DyIJvLuhw{!FV%t4Y&J@0i{-JvKcdeO7wZ zJYl9==ETg|3yfA-i}FOH+}+(>+{e04aJO~$bsz0+>F(j~=|04Lkh`6`qr11eziBFnN;*e%jW>Mx)43y23EtIa*F4UgX zUeq4c71U+a<1pR!ERtG*d3e-P67vk)4_>gYp^Fc6C44K0*8bB zz#-sJumd<691jivdxP!4KHzi4TgF4i3&u<)g*l!%hgm-D|IpKzsm!rVGLys{#eBmW z%PwK(vX`<;*$dbO>^M8fUdWEI{p>|-K9|SkaJk$7H-{VM_Ti1^P2i2=jpapnQC=P| zz=n z4dbvMw!`VL1=hj2unJDXN;n^m!BN-?kC2R#441rICX;>JIAP9T6IhMxjY*CYqUMp#S^2hCtU z=mKq^3CsXyV*O~7unm`tJ&w+huLS@r`RXh7ud(yYuFpu=h=tYLavyLa1-1@ZjxKfE#MY$ zTk)pzrtr$A{U3TNZwqf8Z!2#ZZv}51Zv(G|pp~GRpsAp>prODlC=?_F#e#f6T<}@Y zP1s%7Q|J=9g-)SecuRO!_)GXn_(xbDY6A6#hCt1rUQko0Bh(%03H63rL(Sl(@HluZ zJRWw!$KaFjL3j_mAKnI^hi||u;0y3Y_yl|uUJCDmcfx1kYw!{H6ub$(4zGi+!k6JI z@L_l*d>S4rSt8jf`7UW9Z7i)LttPE3ttb6YT3^~!T1#3H{>#TvU0N5djpAqynvZJG zVpNBk&@8kBO`s}NjXKe6G#!ng2DA{3p>{M4)uNr{QaLJj${QH>8iZC~wh?Q|`wm1*~CPiwDfuV~L|m+6-3%5*Dqi*#cQC58e+ zp&`S#-}v76(fG*p%QV(9-ZH^*%yQIXwOXv-t-tM{GvLf|R&{N6Epp9wt#i$Dt#B=K zZFDVnt#Lha|902)Z19wL3OuVkyF6u{ZJu?Wm7YbOHJ+`W1)jB@-JUI;RIkR{mWugK zgiePqhR=mJMYcxPMK(u{M9)P{`L6sn@$vC-@lo-~@rv+YK8}g;ZSkjZYC@1GOI?+^ zI`tlD6KM@;59u!H9O(?{7U=+KGwCYn4(T}Q3TZXzEa@O=Kj}K@H0d^J3yDd|r9>%n zDXG*+)S1*d)Y;To)M?Zs)ML~G)P2;tG$zePE2Q0^tpxXiOTp9NF>oum7~B9J0r!Ku zz~$h+3K{Ti@23|sXP*I4sRCk8t**s3%{+P ztDwEWA($&zEch;{A?z!Z2z|m#pOWR9(NC!x}NWVz`pcl}0=tcA_`V!rYu0cPc&(JsMLG&ED5xtH+ zLbsx4(A($-bS-)fy^r2P&!cH_LhhAslAo7fk+)YIQ`E)>;=S+*cvrj*J^*irH^|@7HhPU&MxXJh z@v!lL@sP2S>6`JZv8JiE>9_HxvAXG|sj|6=xsJK6d8%cGWx8dWWt(NY<(%cb<%Gp) zbzA>fe_0*&%8sgz{~R?P)g390YL4N~kaLeS#Z?jh%g52cRoB(fHPm(4^~iPIb-;Dd zb<%aub;EVqb=&pOb<6e9-O2OBQ-!EXJn-D`Jocmzk35x$n#6g}70)|QCE}*%qUW6F zw&#N9j^~Z18bS72yf&}ZJI5#Yxw9{3*YH>NSMiqy<_7dZU2tRYROn>rZTNBce)xI# zQMi2C|Dj)nUxXiqpN5Y|PDl1d4n$@}XGTv&J^AGLtoZEsoH(42B~Bz>B|ao7C6^{| zB=02S1qB7H)D5Y1$aTq`$!|#A$X&@_Nj=HU$koWB$?eIl$c@Mi$>0Ab?KUCzAipDZ zB-bXlB)1@cAiXB_CHEr#CiN!QB-<$qDT^rcDW@nWDTgU1C=4o(3R1aLKD8IkNh_n3 z(C*Nlf(_`E=)>qg!AIbGup0e4*o6KJd{W=~b91 z%>B%Z%oEH5%$ltFY$p5f86LYKrv;}Cr#+`Nr!nUxy91{)rzfW?rw*qkN6uyO)^ay+ zH*+^~S93RUw{f>}Q+N~}ok!-q;{D?N;63L(<-O&7=2hZ<om~$XKL5LPsVd zQxOs}0~v{skugXwq&Lz7nS;zmrb}i>3MBg^ha?lFGo&QxBq>!oTRKHLLHbqN1Z|2o z|9em{9Gi|!#c0?FY$66?J+Tc~b8I$7!Ny=8Q8G3j8;woEdSO$r##jq%0_K-z%eTlo zE4nLsD7q=SDBdd4@O<2dXW>%ZjGJ&a9;=Y?uY7H&z_W2B&cXG#3=iOb+=6G~5_shQt_zgV0JiR?VJbgSnJiQ4j0TMHb z;RKnOK@1@V6C`3FF@hLMG$+Or1Bf2PB%&hxmyZMV`n}7&G4Dd}GH<}Uz+3E9`%FH! z&*O9WEWQ^02L5{fI{v2qTK?w##{Oph`u>Lg=>coN5||g5A20=1hR%mBhR%f6g)2p> zMZWwkH1IwAFJV3GXLeq z`EhZa6&J*J#P26p7A!5iTG+K{VA1HJ^i(U^LFSRCktdO7lR4xWWC__wP9@XH2C|-P zB9qAV$tp5V=27w~Zz*Y174yI%y6#mW970QJPVS%tzm=w+v&J`95ozMa(8=4C(g-$>lp~uiJs3II3f_6Zg zpqtQ6=qhvxIt<-`wnEpTBTy^2H9Q@ji!4F3NF14uEJ92OiX@Tchz41PWFrJpgvgPl zNCx6V3XploN+cHvBQC^-$Pf&%B76x$LXof~Oo@I;lF$wFXS)fy%iyRC;kDyhOfu(;V1Ej_z(O$UR8MnKY_2o&*7`_+xRzp zEB*!lgdf7s8Q)HK{Q(j+%eGN+m)7R-WMepqs?`PL4$9=6uDKDKVQ zmbP}bezshD!k%xR>X_uvIQlt8I7U0hI{?QZ$7Dx;$3(|K#{kC|XQ{K$dD3~>dEVK^ zHPbcK)!*IB-PzsS-O~-YySOWRhIoc~hI&SLLPRN%B+SHoB2MfgRuH*_pNJ9J#9YEe z*a-Xo!1(VamJoDrn(&BsuXnTepm&q^u=j*_op+7*n3v`&_4#}&e7U~3FX+qh#j?ZM zz5H$co&8<8CMOsIiL@FZwPb04)zaq@&>FB5EsqhZ~S@uS^Tc`jo(2MEI>3Q@ldJdhS zZ=kQHm(j=4*V7B>JLoIv>*(q9Z2Ag%0lhA>KdTpOFslm-U=3h(WVK~=V0~kKXF(Nm z{#m{@G;stf& zkVqx41d&7~5y={fQmU5frADbr8kJh5=~9#QxAc#+J=zxij$Oj;Vpp*%SXJ2_>=X7H zdxCw#&SUSf2iOVh6joQ(NLEjF47-jgWk0a7@{#f}@}xX2-zk41@2BXm=%eVb9IgbF z9hC!>sB)&VgR-l#v$D04t7Iv=C>ctnvahn6Ql%WMoTD76?4z8dY^xlrJfW-z|K;Pz zR<=~8DiP&m<^Pul5Gq@0T4}mz08K~DP>oX4Ml)NRp>=78>bmL%>w4-&>U-%2={xDW z>WAou>Idul>s#x)>3itA8oC+ehBU){!wtg&!!^TI!)?P|gUx6+#*H!KM&nH*$@I#^ zH!I94b6slwngywS3zDp%d1)^^x^~b%u>$n`$H5s5a0x$2QAGvQcbh_Cd&hgt`^tOKd&B$Cd)9l~%k=H@?f0$o5!vzVQGUoz_Y3@^{S*8Z;lF$wpr7j} z`=|N``$zhR`Wb#vz!O*#*csRm*cI3p*b&$p*cjLn*c{js*c$K$GlTBn>ENy4iQx6% zx!}p*jo{(nkI>i9&ror=Ut~yRKxBAiU}R{da`aQAX7qOiiAthpqD^v}=624lncFV6 zZf=9z>bVVb^YX*_Ir-82@@fBvj^*d(hw}aLP&_B@h-b#V@nBpV&xr4fABrE0AC4c1 zzlpz(pG;IuR!i1MK1n`LzDYhyzE8eNt}a+raG>;5>A6x*>MHUk@_O#$LNiijhO-#g~ehqSsWI~lCx&BaMnx~%%ZYpu~7Ct&N0qO&Th^w&d&dV`Tqva ze$IN1jIZL)7FYzw1V;spglyqT;c8(kQGL;LQG3w`sI}-DR7q4rlq#Annkzs z>Mp7)swNut_bO#4xUqPwxShC{xUYDOxR1ELxQ)1pxUP7pxS6=QxZ2+`Ze^0Sl7uu{ znkDr~X38*`TqcmwWEPoM#+M;7u56lI zE8i>MBflX3C7-Wcqr9NptlY1RC`*(_l!ugylu6}I<#y!?LxXB~8ihuxnXQp%1e&QDOvBKO)Kay>bW?QWbYpcYJx5R13-tp11pPQY zThG<=^hSgEZ>hewhDyfwhIfYVhChanh7X3@#ydu?Np6yw1SZ5(5&p}^VKJqd6egZY zV!}+Y>9r|jUTaR6ljeXq+iW*S%`vmnY_&KoZcCqxU6wZ1R@M&ICf4@WcGfcMT&u~p z*9O^?Hq^GxzQMl99&=b6QHR?Rc5od^r_7n=)H;_rmpT_Z87`K~>&kFx+-kSkEpaQ| zI=9?iKJEX|7Pr+cbyxLF^LR2$8DlaAWEe7}8S;!78Hx;U#^{V88KMj%LzaPOOwAB@ zd0wISo40XRjjZZf|7HF5{_s}Ls*+VLt5z1#RLJ2sb_J1bY5OUWIa zJ0o{a?v&gSx#MyN_VX|?uRv(}WlzYj$&bjF$*;)Q$(P7y$mhuK z$fwEA$S~ytg`j$<18A#gzyFrvY|UuS_(gBRsK%(tsLQCw_(E^SXwRs@Xu$YPZ^3NF zG_cZH1S`h!vn;GkmV@<+)s@|e-G!aTma*?~9&?^?u5d1Mu5uo54BXq?C)|77N8HEU zr`-G8huk~dx;&Vd!O!}e2!aUc0;T{ITo7Cq)Dlh=s)gHx(?k{FzkD3yM6*OD(ckKD zBB6*QVu=i*UT~I}B?iR{#pb`IGOc2Y7!?l|<6@gwE14&`BDpM?FI_4vkrvCA%JOCV zWUFNtWG7@rvMsV5vK6w8va_;NvQ@H^vc<9kvIVjk^4ao1ib1L-s^7}Ss*lQ^s-TPs`6?7hyJ5{qpYSHpc<|ksOqe0s_L!kukxvSsa`58sopD3D!(Z6GzA)m z#;?iHj3L=>oV&r>l^DlTfQyFX0Rn}CAK_U*tXS{Wy`Q_v+uI+ zw(oGPbrd^xId(hdI*vOwI@UYZIkr3IJN7s>Ikq}hInFzdI956;!hiWV)Xuxkd(Jyf zfs5nHa*^FGci8Q7``u2r$Nj|p-Cf<&#M90*%X2JaPsZVlgBb-Gr5WopiZf1RY|Yr4 zaUmm;u`}ab#_^1CS#7dLWp&Exnl(79MHW44SXR%h55CITAAR3^UwyxPPkpVj-}n~$ z1O8I~0)Nmy&mZ$ItdRNda{nU#Qh(AP^%we=_|pQxKp=1-a4v8@AP*J<^MgNwO~Q@B zO~Z}D3&K!@72!pY2sMe&pI^YQ-@_C#jlbE0{&MRHAY-QSdnss(ilY8LD( zSW~#R@NwaUqKQQxi$52CDBf8*s%&Oi3gth_5ArASH*#f44N6T)Rm#o(f&0H%R39~) z8l?KEZ>j5P{TQPdBNzi2;~0Y(JsC7cDuc<;GlnwyGl0K8@G@2@YXhs8wVJhzwU~vo zYjS^ZYI8qv>TqjtUvpn_pK)Js#XJeGgrCQU1ww&Ha9?m;a7S=U@IY`^FkPq-ZV_(! zTi_QJDMfq{UF4~d@y{+&i{zqo(GpQav_cdTtrQiC7K-vjt3~}_nOG&Zh)c!m#XfOF zyjHwO924h@mx*)5tHrCtE5wE3mEr>NeDMacL1L1aC99OG=drQVCUMnw6S$nxz_swn&?*W9nr396eDX`=90O|LJ;{-f8Gy>}hOo z>|*R@>}c#{EHrL6J~W0*S*Cy~YRWO4Fds5+Hy=0eHeWLDG@mt(vyQfow~nz6vyQT^ zv97kRvaPcnv~9EmtKb$oQZar|&xb-Z-kay)fBa9nrXc06;GI<7h1 zJH9y#PLp$uvwYhBp`SUsxr*Gy?h^N0ccDA!Zk{W5%D>sa&40r`JCGVs1nvfI2Ob9=23`hU1?~qP1a1bN z2kr&%U|DcMuy?3IsBNfIsD7wtsC}qos9k7#sBO4)xP7>1xLdeaxJ|g-|G@mOYgiUh zMz9DTF-3rA-)Q&ffM`}UJDL+EqK9&KKSd zUHGQ3d(o7l$wj6jRZ+E)nk5wx|0*TRN_Ur@E?vr^mNlZZpfsU0pfshpD9b6gC{b#R z`hm)3$Qc%fj3H*28EFiRAz^43Du#jqGmMOVtlg|5tV1j%yDfJx*UWv(t;d@wTrY}> zmWlkLQ=-kH-J;{7qapx4B;F@JA>JY0DZVZ~C_WjlO2?!PPaB!WPLrpx(nh3BPJ`1#X|vL%r430FrcF;{%T4mCiv6l}s(BSM|0!P^ z9#Ab*?NcpLZBXr1ZBuPlEmqA{ZB*^n9MhcDoYx%HT+(dQoYq{^+|(S<9MoXCV*LVr zQeUPo)!*0GG1N5-HV!wAG(IstGR`%Xn#xRzOi#_%%`eSQ%!@5^tf|(i*4frs*6r47 zwubg&wuiPGwtKc`w#T+h_RIEK>E+Y@58W`mMtbY?>#a+osn{Z;) zQev%Q72&^p91UXKVjW{mWBp<+V>|Mf#FxgG$1la}B^oB0CF&*`C+a7-30^{)NG5>f z@Z_lEuw>ulh-8;!gMuCf?Fw2KbS!99@T%Z`!MlR3g*yv>6uv6#Q4}p|TGF|sTSUJE=Gir$;e`qPy0V~m~n}9fpv~`ngwusal3G> z++jS7x0An}zl*<>FBi-f?h+mo?H3&pJrt|AT2#Dkrqjto5qu`mS30GP+V2LQ{7SBRozfMRJ~BW zQMptvRrgfSRF_n*Rc}>KGW|yZNK}jk%I#iDkKkY29P3Zm(C@APq>oGQpFY|7 z!THmvacNy@m&&Dc9d;jZZ+Gu^?{)8S?{Xh=?{+_R*Ys#S%QGt?{u!C+nZ=pW%)HDs znMIjdnM*VMnW%Sf*14<=S?9A3XRXNEk+nVRXx53WQQ1SYCua}O9+SN?yIxN7oR&GQ zb86*u$Z4CClG7k(LSS4#7x*6d75EwW8u$@d8k`ZD6`CHJ8JZj(8=e@R5*`3!^1C)Oioh|P>iVzXi`V(BqOj2lzOI59AGJpV-g$^4`Fhx6CP zx5h8W+a%g0<|ZyArY1KhhZIyQtO)<*msx@bkw@}gBmqe{k=Uo1ZDrblv>j<% z)ApyWPFs^El$+&ivkdws*JpvbVE$ws*8Yv4iRKbU`{NU6f8uXQxkh zeslhCnp{TLDfbz7Ezgm*!t{961*{C2!cVnJeYq9Xj4k7HHhTVhU<`wk&04_<`f+-I#%?n=xEX2B1#Fr1S+{(+O(`s*&xay#%7%q;Y1h*(q_tMJSNBl2Qnyt%Rku)A)7I6p zwDYxQUHP>CLtAyb^vCrN^jQY4;qT(oc*NAwvd$v6%B*AUe^BVwYq0W2a(QV-I6jVozf?^EbvH#Cs*WCq#*xi603;h3tQpuMJsAZgOXGO2LeR zW`!*a>lQsNdQx<`=tfa?iKs+dl2)Q9$t_Kk#!5Gqex)vDY+-C>Y-H?YJYu2k1`y~4u z`y2aP`|7YG-CiN{KTrDXzt10CcS}7#GQVXu^nTB*=B@3m?yco*;%n*?XK&B`nyt=J z%yPW@orV0OqI$_#lz8>1(pE%K`5{fgbo2NDO9)B;Mu(t_TFK;f{$A%%^L z>lRx|HXA)GW12_fYRQD2<8=8UHs}AiL0>?sB;9xV71;?4N&=w3`K+2cw}_NEDtPot#I> zqvnlCj7=O!>`Ta#e=p<|&M7=!*s5qo@qps7#iNQZlw2tpT&5^XE6Xc8$+*n_5AH1K zE$JnBDQzIXu0L)S+Y!6O9!rm>=cV6w5BHAq4)FPNB9U+e$%FF5d00Y~fBTrTWfbh1>ezHTbaG36agz=e{+;`HL2<)K4SM_ziKJkOKsOAP@q= zz~9XkAQy-M^MLul0$?Gq2v`g(0V=|O`8bvW%Yfy;3ScF$3Rn%S0oDTRfc3xzU?Z>z z*bHm|wgTIL?Z6ITC$J0H4eSB-0{ejdzyaVOa0oaI90863$AII&3E(7f3OEg%0nP&F zfb+lw;39AdxC~qYt^(J9>%a}*CU6V54cr0l0{4LXzyshR@CbNZA^x8LPl0E^bKnK= z5_ko?2HpT~fp@@r-~;dx_yl|gnxr&Msg%+zrFlw=l$I&2Qd+09N$H%@C8cXhx0LQF zJyLq6^h)WS(kG>FO23r;DL~4Alz}OOQU<3CNui_+O&OLlJY_`6$dpkjqf^GDj7=Gr zGCpNO%EXjODU(yCq)bhjmNGqMM#{{TSt+wq=A@*ikW!#7qAqY3q>H$Vq>Ho*+6C(( z>!R;s=wj?*>SFF<>0<3->tgTX=<+Xa6H|GqpD3+p9$NL(I;qoAgQ-^-b-pWkI${0P zEK0r9eyOq4{i(-NkESLmKdB1ZHd+T}6?PwX1KuD0J;?_7NqG~+IPHMc(Wy^UZ>By= zy_b3`^?GU@Y8%>YS|?^_W^;Cbwws&5ZNwYJ)AMw^6oE_N5gZfNgvoHz3dz46s+go0 zrx>MJtzG-~n0%|n?`jvXM`}UpL;953g!Jz3`I*}TaQb-?D8fk-b9Y#N9FXmw8Xts-OXJ@i)>~yw??PN2!O?h2;cAk}I z3y}1an{s{6_LxG8P?y4o63!Bhhi_ zXmk+TLNQfARqzxf#Y_dLm{lSE%h&&AD>Q0>cB6KaHl*uia2gF(iqq_|dt4re$LX2l zP0ucfBqGU3Q6w+YDc&XCA>KL8AdMoyq!}a{NlY3`LP=DTkTikBBK0K=B8?-7NMXu0 zN*iiBYDelS>S}6D8bZ_3LbUMT!EYGY3k1O_U`wzK*cEJ1A^B%xKoU3s>;ZNGr-82- zPZ*CF6PQz&vzarPvzSz7HTHP+Vs?@}mz`jT*z?&Dc9^|{J&zsY=5l-Rdhvq1Fwe)! z;brr3d48Uk7vtsg?(%C1>IrfL*@A$;CkP6v3fl_JLZk4!@SO0h@RjhX@U`%R@SgCY z@PY8V@Qv_`@Wb>Tj@7IyxJjj`GntC`33;NPScTNz@OubPhQ}N@7Tyysi_D8Gij+o{MCL|-c#nAh zc;EP-)FjDH$|N~RE>afBNYazCNf{&)X*MZAN+T7LEF?F{Op1_-NqMAFQZC6u$|uQ5 zN>V9hCuKKf2z4NJ5Opeb0Cgv|7OggIG%c5wN6P}8pc{;W9?%EMK`WRJNrjDs+!WB|~rhNS$V>+01*i+b> z*xT7>*r(a+*(cfi*qhlq*$3E{+3VQ5*n8PW*&EqM*f3YZjdAn2lX=s4t9c7~b9tM1 zYj{g}D|uzS1-weBHm`+THaz_b3qe9OF<7|Ct+t{7a=J02-AfQ;cej~ zVPB{l)Djv9)rQKa{U3TTR10bj4T4%h?VvtTC#Wve0O|)dh8jY3pqfw{s0lm}MUAKpO`={j1J$EJG=N&sGBk=7pakkb-KZJ0pm}Ilxl5idzb$X8 zh$&twUMOBGt|>MvE-F?jo+!2`&MNjRwkr-O4l7aYV6J@lA0?@l0_}k*7|oGu1J*SDm4bs^e;px=>B1)3lehC$v|!$Fw)K=d~BL z*R?0L=d=rT^K`3pi*@sLb9F0qCAwSsr}}Y*@rJR6fFWsEWBg!zXMAh?Wc+ISY5HdR zVftPn`_ErY6D{K`hb(5R&HBS?u>Z0TafMy0T?<@WU7K91Tpc`fJ$pSXJcXX5r^vI( zv&6I7v(r=R+3wlsS?ZbRS?1aAS?D?7+3cC`QF~Qh+^h650_Vdg!WY7)!k5FB!dJrU zBO4=YA{!!WBO~Ht;-lju+{7$pmN6GH1Iz@ogjvMQVZEW<%qliI5QL0!@ZkkQ7ov6X8kl z8MrP|8~Fs+L#iMz;BRn!qz>{G{`~jJ?8ZnF!S_Oedv4iD7yWB;QxOU-GP2ZucCX=E$AWi1^N)Z zgKk1kp&QUI=x6jb`T*UJZbMI_PtdpMdh{oH7=4AFL|3Da(HrP@^cZ>^J%Bz(PoO>I z9(jg*v;4CBs{F3JgQBCN2R<0@i?_!|y-~eMy-YnpJ3~8DtI(>o zI;~QBT>DV_RQp1ENBdm+So=VmsXM9LuRE$cq}!(3tlOm9sC%K?qdTJ8tvjGQtlO$P zp?j%+t?y@;W|(eRVpwjl7!Mk2n5vjkOjS*_Oka#YjNgqNYaJg+<^uik6->bw(tsXo+~=9Bp@WT*J6`?bLb;d|lN;k)5?kzJ8J zkxP+7k=>CakrR=lk&Dp_Q7}%5Q{uGv%y??N9l0vGI=L~q6B!`4CVwJ*Bn=`DBljVH zCVe3_C$}MYAa^GZA@?T_AlD;vD0!3^~_b`tz&oZ|$_c80SXR=#znsNGa`f-|a>T{ZNYH`|e z25}VJCEQiqmE0;k1`p)DB9oAZ$OvQ> zG7}k%^h72ggAo=2B5b5DG7TAoa1aVI9AP5kk?F`x$yCW<$pOhh$$rU9sZcsiN|81~ z8>8*9R@e+|AT|gah0Vf9STk$@)&?7b^~U;Q{jpSRGBy}%i#5WUVBN4DSU+qIHWKTK zb-?<_`^)>v2gnD@akjN9}LzXYB{= z4{asg1>H5>Bi&`)PTdpT1Kl&-P2G9j4c$fEE!}n972Q?cQ{8R-9sNiBCw)f)*B~^k zHS9C&FdQ`OHS95LHf%TejmL~_O|4B0OpQ&AOr1>)O-)TLO|49wOx;bL&3(+B%tOrm z%{|Qh%)QMW%{|S7%)QJ5%%Fv9Az649nuThiSYB9OTJBn2TV7e7TW(rzTW(pr)@*C0 zHOCsT`mI^ktJVg#itt}PjucyCTUA?qTMb(+TRmG%TO(VBJ!<#c19qQ1XwS5_bF_6d zbkuXSa5Qr?cC>dia@2R!aqyfXr@#q0`A)7g?#y)_aPD{RbvAR2b&YU+cfEIgbA57E za{qAs=dR@G@9F9pMD!&l6DD#V zx4=8kyTqICO?pG#5^uzt=bhx6?8AKqpV6oFxqKR*)2H$gzI317XZJPoPYW;uw!p%` zf`Bn-4sHr=32qLa3tb5P4u1+)j{FJ#2&Y7ThChcdNA5ve)M{j7Z=8N#vdf_6!tH2rmD$lWD!|FhR8JXEHa<0B~K^M zAx|K4$ur3?xhZ)HSxArDF&3wRo&wRvu$-Kv`$NI@^z0#Hz!3 z$9%?o%dE>vVe!}yhsB|DP>z5zoHK-jbI2SaN5WBXXdE$z$(h9AbEurj94==%C&U@c znZp^unaxpiWSnUn3Wvd&$l-CcTqSoOcQ2RCYsat6Z_97R@4&Ca@4>Ij@5b-Sug|Xt z|K;NV_>K6T`R)1r_+tfw1?vPG1=|Gc1seoIg~NqK!nm+Z=!YVZ7upT2g|$1Cwj6U|8Y~?v!s1vCHW$mr7Gh@1hDEUe z=Eoe^Q28MFF!^wKR34TGFA3V(p_z`v{O zYQCtOYd)&$Xx^$*G#}IrG(XjU)YUYNHUDY8sz0l1YbtB%Y0|YetzGNXw$(M)Ro6At zwb0el)zJOX*4MSu`E;LkUv-~!Df&wKU%Kl0|McH=KXrd}b@a9MA9XeKVgq70Z8&c@ zVkq*axwBE z@-p%)!ich>oG2|ykG_n4jJ}J0h<=SejDCwg{~!4OzleT`K8?PPTJyd6zI=NekIUnl zxGKIUo|Z^SK1wDEipcroJaQ>HhrEDHkOSlpxrB_7i^;iU4>^l0q+FylqBW!~q%HYt za4CHeeHGnApTd|=kI{YfFntro9w=hOsIl{w-PU zSlwBjSv^>vnA2HZS#4OYS%X;PSVLL;SR+`&S$$c3Sff}X_8Lwer;KCe%;%JH%$&s> zJ7*DRB`2S=nlp@(!SQnv9DS;nz(9Gn2Bm=os2I3=9t+*8~W+>6|E+~eHS+&Vmf zH;g}tFXvC-&*G2c58+ezseC$r5Pu|}${)iYz-RL(@<;Gz@Q3q9^9S;W^2hV1@Fxo< z2w1|!!bQRr!eh`j=p=L>It?9!np8;sS^3)VJyc87OjK3$32H3*3jKtBL;IjAq86gI zq6VTrP>QIwXeOM8tV7l!r;$g;je|yNUIZy~Lhl@38u^%h(s}1@;j8j5U@ukbS`JVbx_Pu^KY9 zY$MiC_69qQHIaSA&SJl?pV(8Zwyc({x$HD{6uX7p#vWrIv2$28*+uLb)>PJ2b_5$C zA0;0rA1%+5C*%e4eEBZwHM6uFtxub+^=dP< zIod|L+B!hjNjE?@NY`CAP}f)2P1jjBL{~@GPv1um=zHs%RY?9}D}6_OU;O}m7ky`a zTYXP`2mL_(4}E`w%AhbjFOjArVO{u0? zrrD<3rk5tjEH+EbJTq?AnA6Nkv)U{(V`hOFHtQ`qi`JsHRJPW#R=R4;*=Q*!9DK3(W?E3Ax=$ho7>883#?rH8Z?m6y}?#J%e z?l11I?r-iC&uGsW&p404Gm1Dvd?Pw%>?NKOjWV7P4~d_|XQDyIVd5z9f_OmeAu46u zA|4S}i9f_W;skM;xJ-N^juAC8>Sx?08fH|>*iU?@koEs1;yZDKI7d7u8fP3JUJ|c~ zgTxQw3UQxkopFQsO> z-!|V?-(KHt-)7%V-xl94-+EuA>|?(C>|}N#`&Rb#>>Jss{yF{;ezt$SpXq1$C;O-P zss8DHihrhmwx8q|2HXKxV0&P9U~OPqU{fF?=n7^BuLds!PX&(zF9&Z1&jc?8uLX|= zuLKVT--Nz|zK6;eyNW=63q20K4m}Ee3Oxxu4Sf#12)zrv41Eke3-yf*j`aUO_TB_6 z$*pS`=FIav&z<>n=HWT>)I8asmP8^diW*=7iXelS9uRTB02Kj&BcntbrfH;^rEdv-uHdp_y11+f1UsOzI9!D?X}ikd+oi~UVGh}o5EH1NZ$-UCMrSD4bl)fx|OZtNJIq5ypXQiC-lJes6Rpr78UPVF0?O1`R;+Kk*6&rPn0{#71bZr9_5Sbj2e#G9JM2=Bx-w9 zU(}(fT~XVj&O~)b?TOkN_4LxknB^D(W)WrqW-f+;iNY+z;4sTDNf<2VM@%AyhPjGC zqC2DA(Ho;TMAt{JkG4f`j@}mC67Bd0{QgpNbbGWbx-q&bx;xq)y()Sa){otTeJ$pT z7#c1SHxHMDOUI?+VsXoHDYyjOY22dNg|YKu7sQ6ecEx&P9kK3MBz8*N+PK=d3-NRD z^Y9ggw}h_=ZxG%jJWP0p@G0Rv!c@YSgii<$5?&-sA-qj^m+%nbXyQwR zj|s069wktcq)9uI@{@~`%ad0n7bO=aE0W8SvyvyJBopI^-w+oP6Noh8&%~KT67gH& zG~!a?G9sHehd7t`B{7xw1@T8>67lr%EaJb2MB)@8g*b!AAYzD9iFD$8;`hWb;@89& z;v!-M@pED%@e?A4_ychkc_w)}c^Y{Rc`8{&e&q5M^3{L9`~OSi3*?JrRobq!ZE2-x z?P=OHSz1}zuW9vZ_B2P@jA9yr1hk^(&TA%Y5KI;v?a7iS|Tl;HkF2>CD77oSu_$2Pn$-=(5BPEXjEDp zEu6NPc02Ze25kW?nzkstB)vFYlD;Zkoc=?`w2bdFzRQ@BF)w3o#tiyAdKf*D9zkD9 zpF&?m52r7rPovMGFQ6}>2kAHH*Xh^juVk_^nVG*3Ph~#FxQlTi^Lpmh%uAUUGaqMM z$sEf(k$FDzTBd@rp3%>UV#YD!nUPF1Gnz?crZATE;W%B-@i(ky;fd6pn6 zKdUG6B5P$=j_V~)zLGaLZ${pfylHte^G5kU^U-_;pT#fbm++JL5&S9qe0~c5 zQ~m;eHb0ubj8Erh@NxY61hM?D`QP#X#b@)U^RxJ$^JnrW^Y{D`#{YyrjsFopj!)%( z%U{T!&yVC&_+5N4|9k#y{#X1j_{;e`{tW&H{CNHnei}cV|B&!*;f4H%g_rYp<)6=A zAiS9WsPF;d9m28vM}+qXcNMq`x(mDo`wR9J>@DyV^b`n0D$xPaplCpJJL3QE*$9db ziVleaq9YEYiB}YrnlpHTPS8{LZ z4e=eNsM32%?<>8(^v=?UN+VbOd|Q5hcgCu@tA1Sdxa1MZW0EH%&q|(_JS2Hkk|v=@ z=13!@pGv=zCQHANCP`zZzeqop&XdlPu8^im7fIu#DN>5`D=A(|m3}5&B2AQrOVgzb zrHiHWrD*BrQf+xvxu#rIF0GJNNGjwN-ipf=*D5YnoUh1`Gv!(GbopbIk5oQdxu$Zg z@>1nm#X5yev0hQDv?{TxV^t@rj#jPIT+#xO8>m;ww3Q-&$UT*r`?1)@(z4@UPz zAB)}_eIojJ^x5b`(FddVMUO=9kM57&6Fn4tAexCih`k*vIE+n<$-}M0W#jU3Y+Npm zi7Uj3a0NIXj*Bb7v2Zy!Ozg7Q#j*a_-q_u--q=8FU+kXP9kIUH8FAC&C~-}3AL8G` zPsPXLY4{9$Bz`eI9iNI{iKpY2;MsUAJ_-Llo`lEa(fG*;?kFHo&0OEHu;{E zyHnmssV6oOoww!pC;y%geWRueVEJw!Qi6>%$ZJ<&*X5a*E>ki*CtvX=ZSxr5wEzE1Y0olhH0 zyNmKRcCn+b=9=t8TKk^kNgK{bDWZFlRDU?qs zKTy7;98bHC@+f6GG4k|v<#(Mo9? zT0Sk8Ca29vUz{#aFHe`HPtRD85s@)JBY~blr_nR%>GTwO8Xc8+XXag**_o>{pJm+7 zc$o1F;|a!tjHekJ7`aR?Q^3q)rZHDCDNG*o7v{RG)me>MwOKV;yew;$Cd-)hYu1`9 zU6vuMl2ynmVpXupS!FC4>+kK|?dUCM6|khNRjd!#^VpxVKViSeeurJdwzAi-PqGU* zRh&YOgtLlM!71Ssb5tBLN5HA%@FNu*11FEu!rjbm1!rYSF;@qO#XY%BH1HYQD55BjFFiCxzb$KNEf_oF;rn_^$99;akENg`Wza z5MC%aS}hH^@5WHR}01pt`yvk9sGMXP8W<694}Cdszq9nMl>usE*cV93l)V$ zh0?;(!ivHli&w zN*^tKr1VY6%aTcwHzcn~UXi>gc}w!T}aWVYfi2EYO!mo!v6!CDx zweSZciXw|6M z{T=$nrB;j@Q;+!-qsOeptic#D)tDQY8`0;YuSH*o9*e#UdolV>?4{^Cu=io_!9Ipf ziBaI>I4w?!)8S;ea@?=DDqJ;AiPPYSvAEdy*qGR}+52Mm#|C5P#;uDh!vBJ2;p_1> zybdqAE#H5r@G|^bd@Wv!m*Q9BtMMiHWPAhuql7d9l~6(Wl^`I<2~~trLJ^^mP)yJh zw1nk^dO{_Ek;G17C2^A0B{d|iPqrmnlGi0SC$COkn~WmeOL~qpNW4gVhBQhXAWkCP zAdV0Z5nm#`Lb^_Tmvn}BlK3>~0`Vwu3h92*5#kl%Bc!XuTUJL_XO=Td$*N}k%Bo`NSSl8S{4IMO zyOG_%Zsxc-ZJae6FJ~>s&T(~|SXCKKP%O1@> zoqaOhO>TLvE?1E&&wVy; zQQqRb$h`2pg?SNqZwbB^JSIR1CJP=FJRo>P@S5O3!MlQ&1y}eV2rl#Q7d$LD$A4dN zhX0J<0{=MwEdMJ1Nx?DxF#lP>b^d#TR|Fpm?i5_(zbY8xehqx8?hPv@lUf5Hf{9VTKSRTq48@BZYWjv@k*#D_kKY3B!d8g>gch zkRnVKvW02F7-5odk&q+I6eb8$ghXLiQ{kS%pNbb0mlh8e zA1K~aJXE~5xWD*l@vkLSCDkRWl1bt>#czw>5`QdyM*NcaS@9F%7sT&~-~9)?|9@Ki zr1*L9Q{tD!&xv0Ye^~lf>GP#8mQE^tv-H{0=SnkHQCCq`rK}>a`b6@9WU}Oa$>)-H zBp*uzl6*;_Bv+Cr;Y(IZdZZoFPHDSzkF-g;T{XL4g zdZkCC-O@g(Q+iOkUwTy9E8Tfpp8xBmL8(L9DCL%~DYur_mD|b<6}pO@75B*Rm)|Lm zmKVy!@&b8}e7pSB%2z7ishnK-Ugf09mnz?_TvvI&;&SB^il-INDxOn3qX;Ov726d% z6+VSm;Z*EW_!Vx&ZiPqDpd3*iSDsa#QI0BSsivz^RCE^)Bc6(QF5<DeM|tJTlcthLBmya%w1~8XL?IDL@uVL}u_QDpinM^VkTi=FMP5Qilg;GS zWGi_a86n@DdROYbskIb0MNdH}trRb18zq*~N!divP+XK6%H32WrH-j6GdnPw35B@B89$GL{Ko%?z zEEeDenA`IEgMaV&KSeN0KoCq7BnV~*A_TJqiGrU5SOHD2P>?3b6hsM91o47mL9zfR zSRzOgqzV%Alky4qDq*QmE|dwS!UAEgutHcVWC?{ry-*-rC6ox&LcXv}SS3^nMZ#A_ z?}$DXeI)u=^seYL(Ho-4qBljKh&~j(CK?qTye+@KeyH$F;km-|h5dz37Y!61C_G)b zt#E%~uyCmGM&YT#D}|C`Y4NJ!^Tj8NM~hDvpDj);Nh>jym`lD8|0MoKJViWH{FV3z z@sHxE;!njti#LhCD*d?h%hJzFzb*Z`^k1cnRjgH?zqL=>_S( zWOvHmlHHI_mVGPxQue;=Y1za7fZtzzNOoQNfD9$OB7IiYTHamWR&FofSl(2=xqN;3 zrgBS#ui_#3lk&&q3b|ZfCO<8|DF3qZlgiI4-%`A$cvmr5p;4Svj3@>b1B%m%!-`{y zVZ~8}UAbA=sBBS=DK9H8DK99$P_0x6R6-S3#Zz%qc`BJos#>LDtIAb>FLrPC&Q=wu z-c~=So}_+N{j_?r`W5x_>NnJnt6xyRrY_LrYlNCQO|7O+vrBVX^Q87i?K=@~N4yd7 zR>Y);$r0xwW$0pb2|6FmNB@H6q4Ur==v?$Jj1RLNvjg)H_HFFv*f+5sV&BESgZ%{i zF_wcJ#h$@7<5FWuv2AfJaUJ;e_*VQ;{6YL6egHp&-;X~<7$zJh948DAh6uSyE0da% z_9pE}E+JKra!E##h@>T{NYx|_Nl22B#H8D?{=a9Vob(H+hGZZ~NI4`ENl6lrib+xu zmRw7IAk{;$P|i_&l*5z&fS3DQPsL$our0orNWAzDU8S_UOU zPG3j2(pS+}(`)JVbR&H&{qf8vGM~(RER&x(oiT?omob}RU<@Z%w}fOZOQ+Q z%z9=G^EC5p*0roVSy!^IW}V5phjl6Ide+@6E31YT!^X1FYz%t|JDT0bZf9>{-@|>3 zdxnGJ-r!u}Jjy-Cd5C+Kb0_x!?p@qFxEDFsIQMc-b4EFjb06dmaX;eyz?;VVf;Xq~ z8{Yf8xx6X7*}TcT`Mghg-}AoW&ES2>r1)6_A{$~of0+FCvz!qc)mI}mz3PHZ0 zM4%9;1-Sy9AWu*r5C~WThM-cgN}v@i&u$y)C~# z_k7W_MNbsnQ}j^L8%2*5Jz4Zj(S1da6y0BRZ_&#|PZhmbw5XU`oL)>TrWBVKmlaoHe1G( zVPr8fhHS1ZToxgVm#vVM%I3>RGL~$qEJ_wBTO^~&m@8W%2H%2Wea7?WJq~? zxwE{ZysNyqyspAlv8G~@{5ARW@>k?9$d&SHd6oR{o!#5fTO(J?`{X|PsC;VWjLLbH zb1P?7POp4h@qyw)#rujc6rU?TQGBHMO!29rQlVE=EACWYR-98@P+U@6RE#OED6T24 zE3PW;Qno3tE3YZPjAcb@6S|EQ%_g_r2bkxMg61te9lMeLXAjMqOobVY4&QaXl`iU(!QyEL%T%# ztM;>qk0L&fs6C0!+yCGAVvo4haCpWH>VlQxlpBnN3DsfpA~LP(9IT2d_8Nq#8x zKI+5NN2qsD@1Z_TeUy5Gf}&obyhFW8xj=c4dPn*V+9ldu>DOqC+w%VF??u4|dOLkR zeG9#f-b8PqZ>2w-`BY{MgTPqE2xly2EM-J9OpHy85yn>LM&^yIhgnato@PD3dYttn z>j_pZYYi)o{W5nl_XX}G?rYqSxUX>E;l9UxgZno3Q*I0|oQLKm@-VyvUK}ri7tdSD zTg+RZ(~xr^=VDIg%HG@^x8?m;Pi|aZY+j?lA!rwL2(}6u1nUKx1c;zhuvy?1cm>-8 zU4nW+lVFG7t^5swW=!N;g^3o4=8I;D!bK6HxuW-r-Yt5w=!>FHi@q$HUGz!O4@Ex}eOB~# z(bq-q6n$0nanV~v-xvK@^j*=k;>==2ab>Z*_jbY_&`yGs((j1u}(9D=U%J%OtXOGJ~u})+p1QvcPn^ZCC#p*@sd1|aWOubBvR?k;2RY$6qsN>Wab+lTnDb^g&+@VEjpVhvt z{XqM^cCz+8?R;&N_FoZSMpQ&zh-_SJMc1NDXft{>dJTFnrXRBp^W?H0u|Hvd#&+PS zv48LE-j3dz`WE$N>ig7((;rN~Fa6H+d(w^R zrgTHPKD|2KP4A*N(>v(TX2vs|Oc%40Im_0nzm{`+;-%dF>Eud-~c6!voV7u+AX z-*P|Xe$O4@9^*22nY=6>mB-{!cx+xekIq}p3(J|8^Gi;CPIJz+oa;GRD|hGi5y2_Je!(FDs^GHlu7WY) z1>pk)4;MUCaBsm?;r#_SgbxWQ90O zoFOKODPoRzt2nYWqI6MdcrOSJp1uAv-F|F5g?euRK^WS^k0iL-~91cW%r1Z;&_3o8GsOn+W*Q#Tx312s^%l@ z6zx>)0xep*REyDmy?EU};QjAte=h0Sq-TJ;kt)Gw%0 zsZXUponDikox#o6NVhUpGujv@7#^mVxt-a~Ji~mO^(O0G)_bhCSd(wd`CrFMW5bV^ zurILZa_4a8ac6U9a!+zOJRUEXx01Ip=SB`|<-XiKxew(n&m-o&k$*#QNB(ueOZlk$ zF~QyW59HsI|8V{_!3zbC7d%n$T)|TX&lV(#l0|mW1yOtvsR&oJyeP3KsVJprMNwTz zzPLcl7cVPCmo6=hD#esWmzJ!WE}1H6maLbolQc*kDtoHzifmHZV`Wd5U6(ym_ITNQ zWiOOHQg&X3D!U-Nuk6vXXUm=}yDWR4?4sW%7n_q%DBocm0K&r6$=&16!R5fip7f0mH$$Hru&9)zjmBQXzm#+*`6}ry@;n|V|~I}!d=Wg!!6_qc?G;8UOumc zw;-nlewMpG_xb$y^WVvTE&t8@m-Ao9e>eZ*{MYj*EEfI^0#j&N>Qe5dQ$qdO% ziCyw@+4p5%l}#@DvFwMkPs_e7d%x`KvJcCqlzmnN(Z(s%KT-sUlS$RJ~I5a@B`bZ&tlm zHM#1os@JQU)lKSF^%gavcB!|k+tgj^4t0xqz1pj`t2e6GsJE%>)wODmxL)%Pm2DoQo0 zYEIS9RWqu-t@@&BYSj-_UswIB>hr1}tG=q*r{1C7uimS6t9#S|b+7t>dRVFRBOBW9p## zr22^ZjQX_tka|RYPJLEAq&}hEs_D_3(VW%Xt9@DfjrMEpSK8^?McTg?yEl8&v{Y@H zmZIH>?nW=fu88?4=|u9$VJYsJ5c)#5hECdpO_xomkEv23tnmVCN=wj7ZU%43y%%4Mp=s+6ka zs)VZ8s`#oqHP_YmY3|b8tGP#m(%hkWKyyQVO?|iKSIw*1Sz5X_Q_Il$&>tslNP3?9 z0{J=ei{u3AJL#*_{mebgZ&^exnLEZ+-j=^V^Y?sM$y4zZyo0&H+*$dv^XKHVL~IdP z#1Y*PRTe3VjADaWFHS34QAR1Fm1UI8m8Vz6DVA5IRjsIcNb`v1am{0zCpAxKsx{{| z4`^p=v$Py7Tg%eEx-^+e;r>vtuEZqnkkHGr${1ytW${XSRYn!9DzoZo%~P5&&4agP z{|(yZ)FkQ!E-C+~f*%WhF3=QJ6BbuV{!=64jvLY3FJy zwYgb#>GpyaOk}*7dwJsjZqCxp)}c@{pww6Ybtf>ooqv#p|AGFi=KqB6{hR%FRJVhL zHa!Z}s^6sF4E28nE&rzNzv}aU<^TI0n4zDkpQWFzpQE3vpQjJg&(|-|FVrv6hwCHs zk^05@C9oe+dbED29;08TkJe-VvOh6;oIX|`r;pd;^$Ge!JwczOPu8dCm+OgolAf$j z1^pHJG(AO6)zkFp`i#Hy|KFea|Ey;N@;}k5N7f;Y$a}$R?x> z*^IO!Tac|t2hxdjAr1sVwjoZ$g}4z9(v56KdXQdZ2eK3KA$`a$WH;hR_8@zaeMkW5 zNA@EJkb_7NIfNWW29QDI2yzq|f>FFs(AAiU^JT0yg(!1%&8-tRGepg=4!b4!^NQAl z6W9;FHKEuc{r!;fbwnLiN71F}R_Ic7WF6^NKZcHVi~hYY3bm=a^}mhYrt0c;<|^T)A&qib{)omIE`Kb_xiI{$rbuig+E?d<<(%>Ulr|4id_ z^_l8X7;#GVwCd^A>wq#i#(UDL)2mlhr&VWGGpbqD>}p~)sd^@?5dO3CU*>12ULBHj z=sI;>I)@I?ZPPh*E}i@Tp+Afclf&$&aabIy9ahI0N3EmIvDRU8)H~KW8XS#|^^PV- zvtxt9?%3#PakM%%IoceX9qo=Sj;)RkN2jC9;cy_1Z4Rfy<#0PZj&6t7vE9+*=ymLH z>~#1XeU4p@-44HFk7KW6pCjPtckFi@a2#|59fur;9RrR*#}UU-$B<*#am;btG2%Gk zIO#a$IPDm9oN=6WoO7Iaj5#iZeDi0|>Kyuz^rGXE0&(gE?96eW`t>@{h z^*X&?Z_pd{CcRl-qqpc+>#h1V`dWRRey!f7uh*~BH|QJn>-A0gX8i`eUB6L3&v~^! zN{9Y0;~-oYp^FT)F8MEY{_N|2&n^8=tSk=6j#nQG#poj46vH$F3N;I3TnDAX*lW(iqz)XX-_amIz{)rK{O z2xqOqIx*HD*hfP4w$;qEqEPXMI%qj!95Nn-mgA;zi_RKX%`EF|XuS!WYRBsa7z2gc zH8y9$(l}=`tTjYB>kZ8yTW4r6EO9P&t~WFR*Z2o56l$I^%sAh;z&O_!ZX|*4lAT0n zgb@!TE(dO*aglLOXx&N9ls|YDg*tDvInNl!j2oSG&a=jK6K&@}_X3n*W4-gDaXm=w z&ZbaXgY%ei#CQqXP8zMwQR6A&X=96XgLAF(M9BUc=kZVt^Sd=p^DSz8MK__=ne0NL zrkT%${E^}sg?fe=g}MawMHAL_)pWrW?^+Hz1Spq7TGvb`O|#87;Ndyu9x+WfpD>*_ zjhPZ$v92qov!-a*DN~Ybrg@I}jA@E_mie?P(KXdfbj7%?o8m&f@PPd_o84}A5A2Y~ z?XKwy?Uc91?%q|i!QJZaaBp$%uh~=6;9l?ESF^pQ$-UL>bo**r+>P#?HO=nbH5(yT zcR;UhD1n+zcYn<`kT~2f_uiT|_d1~4-MuwkZchyY^uGhNb)I#+{b2V{Hwrb^8ezo& zf3ka|`zY|^5N18meYks>HQb7^?g!a1D8cR}){hr0*67g=Mhi>>pmb3$X>wD&tc1^T;dx74Cgy-;@5_VjG;@%8lebOP56WgPZG z?VX?@W_yrYR}ZWiBs*){YB$&R_iVO-7i-qjGO3N3TLpv zhC;>o5`61yQNAYIGGC;x(T4WfZEYY=f%XU}8-Y#^o!9j?jIZ9d*tf`s^M(5s`l5aD zKD@6P+98YhV|@#JaiF)wM)0-U<^#3Fm*i`;wb(Y;HidN7hOjM!w>6+pvHqog6silT zIH<=V%8&7PHY^KqNCOV)#r{aY6Es{6js|x_gg?d~?O!sX-O+%aplZ47iZbp+f^osa`I2Ru!1ege*>^}w|SS^;keY-?%?c$-=RTLbpMmQbc> zvNza456Y#3qX*a7*V@k<9JgI>KM(bV5Pdy_uN}O2u+Dz^;2QhcgU$9akX=4#v)9_M z9=vjJJ@h{Zl8Y@P190L8F10{kD5nQb3>+C41L|_i(Sh?V*IJGZ93QySae@>Z5M~kZRdw9ZPqpvYHX+m@P#3;2nB^=v~L<=wzrHxULM&vVuu>mGm_apUT-*M zKZQaK4K$z1YLDwUJ~}cA5!vbQ+;YDCd}hdj5zu-F)BylT8+yk@)% z`DLDYt~m^{#Z5Q}C-Fc{5O6HS`ZC@Ao@m`xTZ|5?iwD2sbQ|ok@Kl=zb~YNW8xMhA zm|>Hl#n1{8xXFcb3ko&gJWzAEW)ND(p?@O&*1&pxhlP;ImKdW#8Ez`{BSAiix5ily z_8jQxfOu&$MExPxb-Ph0Jk01I*xFxvV8S8_RSP!J6IpVasr6Qm1?GjYCUPiKdEG~9 zwnP8l;84%up2J{apa(KQ&p_>=+Fc zO;dx@f-Uxq_UOaonp0Y*woYrE(Rya!?7;NaaR~~w7IxDXijotf9p|^6?}fNsG~x3Y zBR1sAIU&EahrASJMw^$ImzpUqYREG;t^65}*7Si#PQ%L2bf;R+c9SPoN`#s;L7%v_ zD#VrsQQ)$z@D0{GZQEc?K3L1nh8+z%U=1i#U(>E8A5c3(+;oVL852=*eqd(nxdF%+ zZJS3}?eOdwjp_t%8#)YVm}{q@YhoSaR&d5xSj$`!&9%$D8)mn{da}o3bK4UA38B~v zH#iJ&pwVrc4t-Od@j!2NhMDG>wm31j&g!_OW1)Sbz?^qC%?!3e>_Lth8pqep!rdt} zrr&+8yT|6WZMQ`LPcU@rTu?g=+YE`u1hBlq*%9(4++b?X)SRn18;Y2;kZ<~6^^u_M zhLU6?fOdMw(_@o`Y7rO-RYm~5PHT42g>Era<*L%C3MvE~wJQLN`7-XIb~Go1mt z9s>Ltou^;#cnFhg6ca_d#Yz-A|hc0{#`Juq+8E{S;0-A zb&uPe1(9?LvfoX>fc51t=RZPkC{D*Eiw#Kzub~@ev;7Ycq|)UD>WU zGu~`)EjMSm=w^mF#=HXB7_JP!1Sn}{ikaz3HIslQn`!21S1eHJX1y!foCp-#m0&ix zl7J#Y8HaeY?$!xn-J))`{f3XbkGU6FPPk9G2i!;9C*9$e@s^-_5cUh6cJ8^}Fv|k( zwVEUD>oxN&Gc8l0{g8WxWv(UCa@ZYkPq*~D4}k70kk7H~a~}-#i?A%P47nGBY@TJm zdv?g?G|LpIN1%OSh#$8PeY{t?!@T3vweBoyjg@XSTeGbOYr6Gn_jIq`y2xv^qEIX- z@QKDd&C3Mpa<|Dk&&##W_gbtOR-Tn(o#L&w&hpOovaLERBcwa7pJ}}wiqdg<9A<>Z zxk-=Xg}~3~y;3_0nPRNxTUWnt` zsl8`wr`N%q0OX^fHLLeh&$XVh+G%x{d#=__>7CtM4X1Zz?~JW4%rUaxW0Who$rW^;p6z&zB9E!n-N-Td>Md;;KW#b zM{Ow79@{P(&$kmO6Ug`4Rs*K{48DF_rZ3Bv4IDgSZ2{X5XxxOuK<&2esE7N$jpZA( z9kl6veG{#|TUx(qkJmI`x{ow*K6f|lZOHVWY{>Ha8)*Lh4Fe6E){pBPYDn{+YS`Cs zxPjr{9pLyWpr7o|@UQR(8(5*f{SBiH$6($E8UlciLSg$;{po(Xf4QIO-_wu+S_d0W zH;gn8{YRh`g*wqN+%O0fbzdWbQyOJdX|rT!Ec|!KNck`6h)XE5TNk%3X@&l+(+20a zUK)r5de-3F);WW7fSNuyb1fq&p3j^c*$^L6lj}2TMxB~S>D2qVrCM=ww!dtHo ztZSPBw#Q-SFr2y}xRtd{8*Xab*fte-d)xZ94Q&l=o7$!iUmt31yE@d;He-0oa0FP` z+%{{txvlZmjn6T%ZG_YA96?69Mmk5b+dD>h?IFW}wv22YVYgSeb3>ALxY>qpgu0B)Th=+{9Hw(AwBCg1 z&aU&0^APKudph@Zb^_%e+dT%)y)H^uTGyVjZC$2|H#JAQ;4R9Y?p-2=^|A+#A`uw09xY5xwDnmq5Yv&aRtRH?Fs+HwyT1m|Hgw zD4TVo4-NGKD0AxOPqf|Cs1N1D5!-3o7T;RmCf}%SGf29iI72P%zD8dwP%hs#Uz^YF zTjw+RZNBriX5X0YjIGw!;aeZlYw$UIXCYsDd?#$DY%RVfUs&Bq+Xf%vbNjY}MrTM1 zg{qsVVUHk>t@c~|mm73IU1_)kaboa~HPis7_Z$7${&OH%=dbtI`Oh|7Xt>xA)@${j zZ#ZYG_4E8T|60&%fN}~VY7NwX2DATY;9S#%rZY`P0>=V_pfl1m)^sRvx@j2blT9a@ zMgpgrP6B;Aa6FXV;D*?AIxrA80W$bDGK5E=)7bUQFw}v;yV&L#`O|Ark%rv zGRw{jJ1(5*g8QYR$1vVvzIFQJZbj$ShHJ1tX99jZF}N7!HV)Cwacuj;Ih*E*_b%(5 zABxLMFj}CKXy6&CpqFA=4rdx?8SeqJfY{j!-rHy21DFJ(_8N8?b{McupP|}F1AU$G zrsg;%nn)9ONjJ3A!0hTL#>88u!+DIe#9Lx5(G!v0WL6>@q8>bH>~*G^C@_QV&TeO# zsmHm)>2cCbRMQF*+2n;8-Gqja*KFn{m)*4i=C|6sE+koNUhisf)lK-+VqODOqpQW$ z?5Z`_n;XsRTpL~1iPmvTDHaNNX_04+hiX~unc)cwWt?QoOb@{_-xKahgw_bpJdiGc zl5QbdmUtq8O0%R|=6cAM*`8S*l4ZGtW?5lL0^NnsW(O~{TPfZR))a3d>}iHK0dR{o z)!Sy>0&T5Us&_Ng=sJd%04;ET@viXFyqVr~FZ@_-NV449VI_HqUb=UqHOadbv^PQd z4PxpN!2j5~aXucXaG;`~#P!DX;(H_NupnDf7YUNY-o$V83njh)y> zcp3oZ^IfuS_3!i@3GLjJdbqg&b=`K^cEZ>1I|%gj`eVLBzALsF(00@}7}DG2JMKH+ z+Y5A$Z^ReyZ3k*veb9H(x8JwJx7+6hek$ni^Z9*OZN0z^`>sJe?D6#h4H+PW$Ek6c z(%1qSXM^AA-{f}zHLdZc+~M!|Lni9q{ht_RKrt_ChQP3u1&xY9HeM*btD1rOPS_QQ5|kQ!tJ$w5{y zE65FI2KU?P!2vjXD}o0AbAku$lwf+08KebMCvp`;Nib><--;PrIv70|GZ?rO2l)sM zXMYJ4+#q&v8Psu5Vh0mjW1%g+H6fI-;s=)wkIw-;90fIII0A6waP;tEsJq%?0Aq)j z0PY>BY2QBL8`(Ls3^;Q;yy+eBj_exg8!-XhGXn2iCT?9zChkOAPF)_oGJ171CX}~u zfTy1W-_N84N2Rr=%JB3`XNlXSyi^PH(e$gSpAP9!^?@Wn4ST zlWCz_&~Q4&p%Y>mSC<44cN+G7X8r8OQ@&ZSFN5Hn>>vX3u(a=n8O6ew)Gj!8PPmU4 zGn@>tOgCkkm{4yt+rfIPt0i=rH@TLAZ44BKCCkFLFfAMlD>U-W5w}^ptccZVby$;o znckbS<-IAriEt9)LZ>0VE}@Q4hX*>jE-56rsWq?ujBnI87vgtL{p|X%`dL816Ux8C zKew^hzYAh0tkLJ6(>SkjC(v^sBIfqbyA>Bl>?iHK;E;X9UL8DPAGRN}AGII1C%5+a zQ(BW?{|K$P;cadHkv*_l;5y=9#T4*n7Oe1haDl&wy(yttEv#QqKfiu{2!>38k| ze$Or0xE$V0!MwM+I$aJ|hpW@v4%`;k7V}nfmus7=!|Vk9kFXr#A;E+5=q*W}L{E%| z=t=dYc;Y=qOR~pg!FvcEtS8Px_LyNsHBe$bB#+Kw0P4R2tJmON?bUmY-fS<&3%4V$ z#mj=a$7=T0KyC7Jy=?DxtIo><4sK%J+ED#Rdz3mjEl^T>$#rSqFKQhHFn9rEv^r{U zoi`o$72_IER`k+()1kfzi|Zr7o8xfacgc6fx1|0$_!?6`wGXm8w4m!_0b}bg_@ba5 z^PTfe@4E;ZOY5ig#nfN(UG?GWFZ-5F*nrP~&~HlLQU6K*VShy90skrg9{-5{n129b z`Go%n;Qjv7{(yhjzZd9HD3K5=$Nh`?`~8c63W6lO@t}VYYWOT0!jRD?YPbtcL>0P! zAyDB^qWYKgPls%}&mS3Tn*sEK{)h=ZIQftfZ9y~Ox}Y&w8>|l+f;B-s@S~6&Ou;ku zH9>1|HSln&58-htX)tAw+`1g{V|Iy?m=o$<@b>v8&Bt z)i@Jm=*F|KpGzCh_?N(r--PJ?nEsi~*#2exn2DWh3|_FGhaDQTuM0N7zMQqw1}Wh6 z6|L04wAR$tbI=CdFnKt2IBhU6Vr$R$V5np4rQ+gCE+hV*tJ0JG*aQUs&IqzLfgpdP03t{aje}O;{fCMRX$; z<`L6~>yPWl_s?mb-Mp+ZzCRXLz9AHWO~KaSMf;}U#^5D;b8vmIB}i?}7_-Nx1J223}&614e{hYe_$-iF)mwgafR075A77(6$}B0 zinYdmSi9T21J>K(-2-ix?c7kbK!yoL#N6g=L%(4^$m)$Yh_C%l9mscrz9(dl=1KQt zKsIc$G+U^i4HKT(Yi)%{WB0Nl4p`s`V*UI+QvHI7)#E01J0Y~gn}cnz)+?}!nXQaL zR~vn}z8zN7<^Mg}!Tu&Mx&EAg9_-&ZL`~cz;GG1_qT9R=X3l|eR@6^#NUKkUKk*Gu znBY}A1AH^zc>vbf=h|-exq3o#ZnZEy3{Q*2ZrNzb1l#b$u(o**S_9TY*8SE4*5HJX zvg^2YoQX(Y)JLgLucyMUE$qt#Osfy?qt|BuH4bC`^AO4S#<<4##tZ(iWqC12-mqlByxT1O(0ahN-^B{8VlQxh^DgMS$F^=c)5pJV&itEvr4Xp2OBPo({`4i^HOaF}NP1 zr`uxl3|LLT4O*R+8mPOyN30x=%Q9qjTM&!KV)n2-R!=940k{peH~=YOI_YAUIS3@$<52F%kJFuKvLtFf-vYpy%?zu0^4w#1gEU-*19a~QMEm}kbEM#o8} zF?<&j0um$%lA{TbBp@I`5SD--A`(p3`LT5N-uL}H_w%0jpYzwL>#FLi>ae=2tEzh~ z+_N!?nr!v=GymphIU5!Ve1>YFvRJG(JHxVWndh{?N13c`77I14;5Sh+STqZpwG9sM zgDkp*Y1sl#V=Zv-hHIGveTCnDaj)_R`zQMlJaLJ$&Kc(S+3B3ZS-X9Wv&mWEytfb7 zhwZg4oGbR{vsDh2!{B_h=g<1>i=2nEA^X!=7oI+V-W~Q%`xZGeh0|l-=6tqqaC%Wk zfYaU@EgBT*Z}SqztZ(`Ho-3gUk7XuwhBl2_28P{VsQ*}EJCkP zbMXy6Kju{+Jlx8-p_CCtz>5F7M6&=d$lCrDIE7sd0+OLgd^TjZ>hLL z*d=TiPLur)FODuwE|#Tsw5%2*uZhjzmZZ9iN=T;{<>CsImJ53LxAZG!V!K$E>d|5m z(Y7Ytzc{`)xG-MSh!><~X!kp8LftCrHh>23E7AorLSNUg50Hz(-wJO@Y0`}_Q@S2r3NMEB^6l{NXyDq6 zcaJsnS^-{MW5)7Ta7$6X(hq4Nx)>EGZE~K{DiaSgBox2H>2cNq6y8oW=zwseU}-~mZtq$!+k*e zOLweuh~uj*D9H8A?W&1)H2=6(VJadQXWpznv-(GUsp&7Mhu6rQK~?Pi$m_ z?pStMY|bpd#T7)$m5mVS@{w?Jcay&iypwqjdXTdCv3@%?dRD~o6Px9&j0TQ|qaw#^l!Zar!v0 z6$F0;ZS*(>n%E+?uD9aH@h$Jx`BoHl{}Wu$#uL1Bo&Y7ztAa77a# zPbv*A$TCBS7NqSOoZykKK^?#(EkX;>PHB4vKg~`fXerw1$t6u-aMQdrAL_4Z30j;M zrbTHUTITJ1`tRrBJ}G77w;#4k7?G3bZH|S*DrY!P{3kElz7x+$=p=lS+kV_GWAIpk zlfrf-!}XRSpSHQIEJk*mcu(vnXD8<;TuTK5J9iR1xjec5AD{U;6BSEtQLvOOzC~-n zjeu3uj@b7tN=QQBkwt8gvX<>Ki<~7ut=^)rh*%{R|P zXBDjsoFmSneF7YAe4KUrxLw9kan>OJw5vH%&KS6P{-*uA{ebh!zG2@-|5ju>9%tGv z;%FerIrH|f_DTDSeTSpv@Hun*CA$E64oAt6aP~Og>^jbr{kMJA{@&Gwp8p+uu@9l< zH}chltIIX&n)5F6zqr1-miWD{Dc7WHh5x~|z+XrGDt{a;Kf5;h-&|v^?=B{Pn?K?j zhHlXH(Y1jVYy3S+J7l4^!?nn#^A`|{6#f>!(>3jy_x8DZTr_^a>l0ew%?IuOd-z6X z=Or)4yX&QUCxsI4xbQbdTJ#PGzX&(HUxm}cO~_oY$UA|yL&A0MvRCY-dTHJjFW&?i{NcU` zgI-^>h#CCYMLjZi5$eRZ(0VSeF3vBAizadWVt`x~zGz>BE?ULnFdJDXb#Zg?Ud#;d zNLk3u{)@nc_ab=VySTe(6mz7_;tv?@0^=lr_zNPEa?tXfm@lPAcf*3P5E8!bh6NZ+ zA{Bw|N!ej;SQ=JI6_9x0ZWmX&7v4cTwNw;t5DTT3W^yYjqRpeZMpfP zu|wmyv4Zxf%hLE_2E-Ygu1Hs>CpG1y)R-C4He~8Eb(ul!uokDveNcOW67$LivZ1VA zH>30Bg4v?xJZIDybay&h{w9Bk4376(7n__fgOWSG-MT>rO#xMgTUr%z3xV8o1*~SA zSnxi~(y@#vU%`f$G6A>j4vw93f<$)8F+;}b>oRiKZ=THIbNMr_dDjmAr)v)0@C*2z z^kpgOSMB1=MM$od%ECJ7zElyGhm~OtIisEE&2{oxtJEoL$aRLv`4-1tc=IYgpU0PB zl(U6+iMqg>s`7w-IT$XhNE{F2~XYF!wgsyCi#BArtDCXM~S2SaeC|V_~E#4{DiaY z6*9CVgU)b*nc|&`hTlMG$A*1_(U7N=&<_n-!wXGs$k7aj2igz_>oS1=q%?W2867e9@+1x|ela@9kmaAT z%&a4pfrWhr+F^lXmJRd-5>5wDhs8+pf7&zbe$KX?Y4>qLoKv)<+gZrh0S?U`(0aF;LU3;CNaDtHlmWsfiCA9yJ)DSzFy3Y`qP4U|P#z&YMCAsO!n(xb38d@S9^ z?jK1tpaFd`v2TDZO&A!ro z^!#=n9tLmYP`H#kM4ZL&o?&5K!a{hz z#BU@DzLIa?(O`ik;lo9N%wF*g9>r=XqvKZi)uY;LJWskQ+mvj|H^uNr>;n8TdnBL;Nx!^3N*&!DrH}59_>`NY z%u%t$D?A@RZ@nCs>z^>wYJHi$Qh&dd-NKImkW27)Z>9Q&tx}XF`YJtUwpF2j+{$dd zp!VOP12aE0l!G?V8|hW_PI?Xf+|WjM8fxhg17YwR&J6AJOG69232nlNgOI^vuo>Kj zcaWQb6?C7$Yp|oHm40Dx7(URi43*H=(_Mz3;XSx&dL3v0E&em~n0guG4BXC5^`-&F zJ5vv%(lpFyHNBjan*Q{vFg>2MnEFk9j4D$nw9hA>O?{?8Q@5$k)MgrCbTRrFQ;c>- zC&np4xoLti$oOa~F-D4L)RvgSspki~TJ+?<`4Z zZY*Bb6)OxbVo6yDltIh6#cPRKF2N(3S#DO^;le zZwat&EmxL+<&t#)t&4U3_LToL$A8sp;iY`Lz`lp_(5?fO+hz6yM`btLcOY5p8oS+o zWWVMd*a^-PC(VJ6a_%`C)ScK*?FPFI9B%7&uH9-^+hd#@TIlU5&>|e$dGj?i&?@+68xm+hM2ja@Y zm$|HbBO-I(WpkbIw_SFZmd|q?@b^*c1TtMFm)Uj1*YPE2W#;dKT3iPHk;~!QaS2>( z$a=oo<@0h}CcfBZbsh7CF1}0WGV(Qi7yr<8fEIrP!*$3%bxB?FVn5fhi|(@V?R>6l z&!uvm@;|0{w*>oxQ{vj-Cvjb{D>y2y z2!0XwiyMOF!6)R^j^LQMFZg^hj9zVMKO(LSHV5m2jo|ylpMzh;P2dKA_!ao#eQ;1b zDV`9Q2HS(<PHZYArA^}T;_MX3mOoGg~GF?3E96pgc(1!>+rTTCp90*6kr{owRw2T2=kZjWPuqk{KHiWOj zX2=fcone#IAhm|AkoCZ5_&V$gACo6R@wtD48ajD2ixUoWkf-F=azoS^jmfo9W7Ho$ zA$#1S)*HQ-=jBSs8AzV!dDM!ua75PIqVA{*+>JaT*GCV*>7r-RoZJz;lc&+z42>eH zifW?vs41F+W*?eU;NNiYFA}^@S(!Lg-e2QvNgOL{68M)7z~_MYoi%ZH{Q}OStVp~| zJYOFvOA?uDv$9xMohV!zz&&2)udT|5YrXPBS)RyVS7C%QU=aq@#Lbv`T>UBys3SMX znKzd=BWmAG@Mai#KQyl}svd&uy}7svzv)`ijp+`Y?(OOK=_Zsv$W#8cb#wZ=#;9yd zf75iPThk5cz+0bbw5dN)JM%u%2~8XD6)g818A2P@n(kj^E6S65 z^L+&EixAF6va`BN@+ObmoiphIxr-bFHwnyU|1N)m0Ox3J=P!fMFZsi6|lE;37Zmc4L1|&uJoKPxuMwHqm)s*={=YS zeyd^>=>wkl3cR^AAY|8t%g6V-y!-&>{7B}Hk>F@>4AFQOPKVE>x8Y3qf}CM68bVp0I8{!nyRmy$ z+RsOLBVml1Zpc&Yg@fJa2QiL7$S3DE9-Ihzr9NpmdKr!0gmS5kz9Z!(PJ3z%?m9mh zyTV({dd&2bF^+lKm1#)GrkMK#pnpD6gOdT}KrQ9rNJ^=s zDkw^d267R4^j-RTeG9csUr%j-)jj}Q^-a_keLJ;V--(-JH?R)c25K+pduj*dN@F$k z6ZHeNQU8wGMQzvDP;05>#wL9;wTJpq->h#$n>K3F&`a&mw}Ssjt)jly*HJt56~@=+ z{&#eO{+oVp_zo-883#az>1AkrXUG|*=+pEE!z_J_K0+U*&(N!l-{=Lyqv0$4C;iFr z4y|Sw3+OROuLa*=%p01FCB{j5#_)x{O#gwJv|+|HPhX;!8mrJ^g+50gr+EhFilT{hsxU{$l7y9R=Q9gnHEf4NIm~?B9lI4iqP$iEd(;ewk(&i;P+; zld)-Hnifqz$vQm2y24m9&6|FkHZj(+X_@iOL`B^;S^pb4Dr3q-XUsEL44P@$w9WWr ztuZb!<`}c4uOM{vKkIrzgvVTQKEbbbC-}GgYyLgI!Cm1lj&bXH;Ai;Hu1o$qce(qDpL6B- zAKdMz3-fE-1^%Ne;Yzxm`Ds_db%$p^@+$;4t}9m*eB2e|=TYYQWrE^Z53V+MojbyB zai{Ub6tKg6!!LDbTraL_L8ZIQopO~6n%wp7_wFda#9f76)#NPh_*t~Ba#srOU6Rhe~b5mE8;EGeG5K>7oeRNGsHCUqIfg- zD@Ye_1vkVL@lVv#f~&zF!A&tI$PX?Csc5+%_DdANkgv-X=NlVeF|@jOCfbf$|5C^7}|D1dI`5gnj;@0 z)sZALf5TlA_e8~uyd)NnmMU`58b!I{KH8LcjF!b7qS0tRS`n*?J6^QoB&o|rZ*IP+zl;Q?afa$ZXZCz-Oaq_b9y+vpy^G|YJO@)({s3Q z{?dF(_ooNagXxhp?tC{N(=(c(^jNwNQV~98CbWH-FWRxp=S*(~Z&R6p%y4EXGn(mv zG_D=YjAX_${TbW+>HXQg>mK)yd*{6!WmNk*0{lrACvT%y*=RPFUC<$it z#X18GcFx+sZesriKVhA+{zUo9x@7%^vJox+D@<`4$t>UOs7Kl9c<1PFjB{%oJ?>V= zBo{XuM?3W0z$V~(AV%hX;dVJ19JP)f$StJq14(h4L0KcH6%4zZkR`j^1MW_Dy`azi z$qlQz-$6GB?ho|3yWMqykM90AT?6WiF!YZ$$Q!;n--2%y`OGc+0%}Ee{OxlJ*L)}7 zmZ6#Qt@tKUoFZdlzd#7QpQ^))uQ%)W+&# z4Y8Wo2SvN0I@TU*i8U$e70t26Sg}p3qBYil){VfXShJ!I+V`hl6Q7|=fG@(F`tb%{qn=Se-^{8Xz!z>N(@!X; z(!Vud(#19tpyTO9@||;%jKhh{7sTr;oZoxyW6-+qud|74Q5VT^$Tz}lURqe#-!Ehl zeH8i@89k!E;^Ib`gPuxnWqXBra9_D1@xT$RYg&f?>R{QFvams;i%ff_5qC4`D;wl) z`GotZ#f<n3;UM|xTFJ^d~HH9eh!@Sh zN=MBf7;uar!iODS-3zb+tO04zG3EY6+UO^@-!bHv0sn*ho!jRaM{NjPTX&Tsa?#x3=Dw+mJ;RAc#W-r505@V3(8p17=^X4DpFU|EgY*h& zhK_M!GMWq~1;cLAV{cRpHmq(nnN3>k-l53`-LdJ^WHB8T_mJT*9hfwKMGoJ(ZQVtC zmUYi6wlb_Ds{sG>gV6e!4NnH*d_gS}xMP)Axze5tssya2B#*P4AVO{g{jsL3sqf2OSv)9_YY$}`1nswa# z@#a^f)GD(sa}~aiiVe-8j+fWt+sd@DZ>`wJ2@f~}{sFmFVO`;_zU}EY_D=0n`IJ68 ztl|hdgKE-d%m{D33FL71WTHnbv;58`5bU_eU}>IvQowgl z2{`Ui!MH$x^>W>8a@EB#kX^9O17AvbCrk@-!mQBdv-pmECqAPuBQ*OAzEhvxcQ3pV z-XeyM-fV)e?!g1GKe#VG59+Y)L!Zg#gNGc713_=lO-2wWB8Uhhya+e46RDJy%W7n` zGJd2=#*S3WwBp@Jh3xhDld$ZU*w5Hh>_==m)~EPRTDl)zH30k;`%22iwt3|*GD337 zxx`FjmgEb{*HIb}DXZ#6P}~L8O{o=ieX1GKJ5sZynNL$S(}j`YF5#i0QBx!^SveP#k*eG`SBf z?j|gc-<{mwVQ-=P8z^p;zIQT7L=@SJh{;$f>ToZ`tXs%AVZ_Wg+?MXMj?Ee4H*zFI zlE6XQ_yRVpll{WlTT?$WPBJbebSJ}aI%7ECHFk!<`kn0agZ=ZZ?+$m%!TyII@3}eL zp8}^ZFDw-I4*PU0u9podW@3Y|>_Xx}iJN`uXXb44D|OyDXOz-sjWYTIJUVRhFx(8n z6fybnEFbBmF3<~8&=fM^dod$mI%iy(ykt#rT_&r|YO$K(xu?J)*sTuh33wxLhCPcp zI;~dlJFwN6b&mb(ZPxUn*8;a43bZ{L4E| z|60OxHrVUz3#-TK!v3$a_Z+|3K5Ni=X$@H2)-|@@>a{Mg!`4l9$hyovN1GM)B6|H- z*yADs$ynn#1P&oMkz>~(hE@WePuBcvuS55&z>M|lfEM7s`v4UF>OOJn-6HOs;K*%o z&kKz1V^aTj?<6di_BFx_Qo$Bc%I82{NcgUNF<;zwiMj^TKk7kiLAi;xbQ#hKu>FB?1+=Yn_eAB*@VXcJ!tZ-e*2BxHOaLhpFcDo&76QG@-K zsUn^5s&>+|Ok(8M$Wf$?lnx@tkq@#~nI@u)=pyP!mrP4$nf*w|n;+u+OhJXet;HxY zMvNJw#ptmu$Q!^(#kgWUwh8WwVjHxI^g()JGf_!$<)Dm2g^HS>B`67Iq8*-Bt=fWD zvJ%^*Z{praX0Z-X3cRx?^)c0(>P&T!+VwQvvEZXC>9zE7dIJ*n9rSl*IkS-Yu3gM5 zWmYmjw7;}JwHNT*5HLu3Fn*iJ7F!GQ5BYP_8-M7P^mU_(uBNXUaR!)jrU)a-xMC2D zj45lnC%y2>y2ZY>#;q}H#7be)*-X-VSZu-?wKCY-Y#N)&R>M1#4yi)|Z;?5qT)9Kx zP(deyjBJJ7KXu#O*1xubfH-1+XYi*4ZEi!yKfS!`b#!W(h$0lVcC+rC-O#OKtf)E4Zwncmjme>|Ye zVfDiNZk~D+W5gL6%&%SK-TXoQPW|@w9clwsz&jjWL&sl&BibHJ&!$IM;hK>kW3OO( zf+Qd5+F`Sy=dn4Ue0JKJuqLgy))ZM+tbc`l$ALqKCu<#Y(l$ly zvH1upjjDVO?lz6alnuUqs4D?R%1zJjk)RO0V|<$6UuqArxr zZ}zK&t!jYC#UwowSBI)XF8KE!_yixe!djnYJ+hDByJfv^Ud@L6z9~4d9h8-!AByja zuZn48)IT7AU3rOjDn82H1UJD!iMQYsT}@TfVCPq$q_@&c4SZa)p4rH(;S|ni3$Q%S zy3Ly7pRn|%ai6ZEQ%GBvm~R*_rW9%2U3T7@wLV#e?40${TChHlwmWnj!(Iwl>&T(x zt_fBJD+147o>bxgDEfr;m;1~7Zxi@m??N82TU-~ahXwj&eOR3!W{cP(rxAXP8{3WX zu)d#f>k=mFRHDQlxsq))1FM)J?=Tjf|1Dn^M=dq~8M|0MTSadkP?W^HJ@Q}a*${Z$ z>w@#YW>$&$oQoSm-hbF0Ulg^Qu!x>=K;Odp(^&T{qs&}Rj$dLcv+ZHz3R|_U(pDTB z*~34c@RE``mMf1{Se94nS2vv%~AKI8Gco@M_?x!|Bj+&m4zbm&4?6 zINT1a!|2e%lDJ=z)c@B^FWdjpbA(58a$B>qyWQz z^(>AC8;hE;);52&zusTvAH;6Fd)tc|{{W;Wf1|(7-{7zHUx-`%pG7TiwXeNj=|}9< zmADg>5I2H0hXUdcq4%MVP*~g=YJmp7p^N?Ewop*q73zW99%>4ONZXF%HMLmZOSUR< zui%OdVDCNf^+D3Zhh;wSjz~m&j`9`G!1am7$oe7B5!oo{til^{Mkc_y|7wX07n8tq zaNfm!DP*yEg(fDB31j=Q7S)169TUao6w=tDVlO6-{Z^=ATC#1iy*^<`NE4cbiuAH3 z)nP(`It8SoM59WckR=Wh+QdF&apE{pkMlv7I7z4z&8h~KG9gJA6Elk9IDf++c@p%e zMpHZL;nYxytDZ=4;JaT^V=0z;JT;JFtC{NU^a$B*lBCr1Yk#h0M?(kCNYm0B4NJq; z@HEAmdH6jYzDdjAAB@gW!OdwG$XG~`G<<(~Uu^e)SboaBWS_H-;BbG^t?7!TO=s1e z>Jqu@9CB1%lz+;1?&Ga|e~P^Guk0Hrc)y3wBe$5V%oU`^-@*T@%{As)QmVBzkv`sF zld$W+)!Q21eEyy72tMs|=(z#MG1pJ}Z*e5}jGGOQjJXN-1++WhJ%#AM_-8x3ZAkRq zKP>v-AAvU(Au8?$J7o)NC#LgH6VMZ#!h` z*hlPrc8jgq)?rh!rEJwdGE&MBg)IbvD^L^H!L@N++%xVeEEsfzp}TaLxe>>W!@>Te_XH_7Pmp)ty6++1xpxKEZi(Q8D-=kvH-BJE^wIy>-|rvB-t_pp{1e!hKL3!v z*WU?E2e1eO{%-##{}{sYkJRi!5hsm0m&;ZK0&ovp=Y#N2&Khe zL(|ZG0T$s2+E*YV-((B28QCSgZlhvp{oRhEn- zBEMxn!c&m1BO%l*%3_gevi+Y?;git6!kS`Bv7$JOnPQ%pE#`_*6|4A9*sQVhm_6o> zoxuN)#bWD<(-=jusW8VZF=Nab+fevoUa}5ZE8$3dhDVwcU8-@_d7@wSQDsXEsYX@4 zM6b%87*+)m-h?I5r|MRXsm>CEDr@4C%AXie^{8Bl5tS1jj7TCW-qcgSQhVyT6kjb+ zPp4*6-&10>5ZPu5d1Y7qGc}VEseh!tky)nLPm~sFL>j&ZJ_zKexrl?^v{)ld@1)sj zUYe8M)dgS$md86wB7bLx^ghi)%l zQYb6Da`^BgIKluM+ffEX1nlWuXCi8`x`{aIhzxMaXCR7*Xj!Uq&;`Cm6O`CxI z%X4{M?QyZq5q*ZdCpVDUy3f{Q`)vDY)3ZO>dXcAZkuhG}C7yBrg#W8(S~TYW;ve-- zA$m*j@0))U{YE4$$!;Ud@Ozpf7z@NMVwZ_fBKYQI5_rj;Mw+h36?EdfiK3?;)0@ms zG7b;2TA8QZQ|iH;PBi78^ndmL5Pc`}d^(arOs&Z7 zBB2;vu>k*^Pf0Ygv`iz_>|~PncUm*0+5F5HwwP z$x(1TIQ)2yT%bS>tH6_rFzx?_e6$iOmy}A%B#WUXtZz9~z!M)LtFl}q8_7rRBTU6* zY+J!lL=sI`5`CC(Sj_dA&}S22S%SeK=U#KOn~#G7Sru#1Qv z%1=GrSkC-_@yFh*c*-8N*-1~pK0Ax8g4{A^1-J{0{R&l{YEPv{g_RfK7c4siti+zK zht@(BDF47C){aa`(jrHY+31^US~aEms``$6w3Je)NQcrfx&$z{+5C{O#nN zNG+HZRbfOYg?4mCagjCK##wyzozu_3_kQVTK^Leq`bFw*>b!oQ^hdn&(@k`y5nsOP z#j$V~q1)+J@H<9^(Sg!TUqZ`MIvZ_ZA5i04%c5L_9&zK&Hux*Ha z#&)nLY(BP!JxSW#%l={;w|%t**#UM9ylL7tWpk3d;9{Sn^aC$Q`Oi3i%0}lU_NCHU zjUB21HaqK`?@%^4TbyBTlv@S92}qz-gj?sV1s~#G{k4~W#yJ$U;JIk)Ieyz$+}S;= z@S-C@BUw}D(Fyc|X3v43!BZ{S7u0(U0(K5JM z;0hUoOQIG3f@of};9nLQ(R<1N%l})nDq16Ji*u-#)L_ROBoufrJR-CedMDWk)k)|f zT8Ii=Eo%QjDS`MSsIqcmOSUfCkZsCJh?fWjK3_&WlYSSC-NiVH9RCgf{c&iq8ED*>{jOq zY}X>$4pqVeui&Sc1nd4*Nr1vJj+M6@%|wv7_ub=|kU1U5E3%v)vizCb-w! zHfNIi0iMz6>B8)~JrwNL7I4!~EmF*317#a&_jg1UQA^YjHAFR@d>_lkaxuO_ptwz> z5^30IJ+%hQXkiy!S_8U?(|R`}gl(#FH#tfEg0hUrTUG_J)=p;+o>#j6?)Y^Db;k|I zAxh(MJt?p0*Y%5k{kFTRUq!z)>XQDqenG#iU!kt(C*ERf*LY4B7==dMQ0P*lpUyQZ zjr+z3U1JQvUVBD`QH46bF-Z5)#l}lILBD|BO_v)*Mx8NA57Ps5nemz}G5Y9NsNtct z+NcHnPcXpjWezd>ncvO7%paM!6=Ejs%sy~~%wgu5c@FXi=Bl}i*}-gOPD5HT|1{5< zH^GfCm(8D;^X3injCsMl1PyLZ=5_NT$xVWOGk<1wGuxP*%=gSu=2!Ektp_9Hq%fDB z6w7}C)%Jj0oyDH6+m=DOKss;*NVCn`mTUssGn;AKuqD_$+b?Jtz$bQ&{nK{O&aeyY zZQCt7&;DWV^-xfQr`R6Zi?&tU3wy@KhK6O^wcW8(Y`$&Bwq;whW!Y)=oGr=b*lzIT z1+vdSXY_x{e{%LYhn)+~CvFpB_JA?w98ye0Bqfm=dgd zW;_hfH_svBgYAh3zIuLpqJmSw4-eDx#WUoYM!P{zzsD@t^h|iDkZ7JWfmh%XTnJV? zZo#Z)1UjqWlV{Dd?HTq21UsJZ&`bd>f^acEdI->Y&$+-M@Cj^!OTmI?)U)Ur@KDg^ zpTPPz`SU;I1I*9s{~$7;JoXFxG?C8l@~iwD(V1W24+%_urQhM-5m6EAbUzoZ^nQ*1 z+`sSN6*(a>p+E9l{JVZLqzgaCZ$;?`Zu>o$-=1IOXQPeOFZUb$K0g;c54hvs7V-UV zKOZ~;|D=RK6!6>pC+LS?5&U95UBvKjiL`#EUrp+Seh*pVyApa7f%hiAN^HN~&+_+4 zY~}srutUZWE2KglldM;S4nzAPaYzv2LFR`JLe`Kp)Gfic zU&wmkN6BtzC!`GZLx;GPe3FPlTFNH`67#!q_eameULVRD}p?u)0op+TAG%ElTwqBWcD($jF`L+D>AAKUCV%8nPF!Ye+FW(6CRd-se@&=M=Tf=*+#UFA&aJyeiCE4TX=S0RP)&ZZJ1EEsO~)~uk7GEE zL^h$VWT%X`MCQ^((3n7km=%ilKu<#}L}$D^-i3YMR&^xBsm;PAPW&U|vGLG&V2ooF znt97yd;$e@ocV=0!K9LMQTGS5HkD05o-n05YFpKg)TW1Iw8=orcTQ|aHi=DXJGSlH zG|<%S7;JK~^?_~AR=rcPql0v46Wc0x%69&YS&{wU1&`uvK>K$*I=NQ7*$NcMt$a^XfV-Gq=HYm*1-qUb zf!HJRqy=$kaSnR~o)kD9TFO0AkI=K{k$4hh-JhA@1o0>Rm;RVvEW#hXlNnC|Di#oQT__$3hwPzo$u*=&NeVO;8j)O~42FgzuFyp&5%NRA z+X6|89B#U@sGmzn2oAv{=!9BECB8^j38id{P{FO(g9}pQNtRUPuR;5NJ3ZNE7K``XYU(DL!A9*+(Wg z%&@dQJi2`D z0g@vBpp)li`A2-Q@817f*eXy8)Iyj-H{(mO%}mA;<_;gO&MNZ}$|Q3eHAUb!8xa#~ zkIHigpVo;~ga&7h7FYzG;z>s!-iyF6C+I9Q(>#T&VZn%Jw%Q$s?G&8HX0_RD?{+Xl zAbuUQHSD-;PMh6Uw^P64dV4zFfOuR)-UpuA`JSf*hwS5QTcrt?fe~DC+ z$0$ns^Zq-3#(!2QAO=l{z5~&T=+>|G9E%P`Ie*rFB+`rS{rjjf{1uycR_K?c_@uJS z(o3A6p;<}EWiFHteU*HJ{yB6X`XTu)DTH1^PobZZ2QuDHJkw+!HE~4j!=^^!Sf(R1 zh!6u%C({!LvO}4cIFcO``@{ipNX(G!;n(pcM8mOSF1~>BQ1LxJgK|E;uQ*aH#(&0t z#ec_t#Ao9NiXZUi?@6I*F1bgZjk~I!NwMk|>EkoWd6XjP9jW5nU7)sv*Ak&dR1Gdnn?^yHaUn|;*QWuLS)*>_nge62ON zrF+gjunGG-xloHiKaxwXvT%m=GLY#!@JB)6~aL5z& zS^GZMmh0Isj`u&q29<4|W*$2CNuN4!o_g$_@_-F9dGePAN&;m8i|EDw?5_ymi^XL% z=2UZOBP?W&vl7ekrQ~wbiaFe;jTtVUU7!7sqroySx%$E;R{EX!gSlfa&Vgh8hRAup z1FHdBb~<;Oce-}GwsuHuI~_Y8cACK9_j}l*i)V0tBJI=1>qglFJSJz@2~O|)NY))W zd&#n57dJT|V$xH&TM#_M;+LY@fZOvzdcW7>^OU1LfK>&7A&=AJ@LYPzb}u}B$R)dv zg6dt5=iK9hR7#HYRNOT|O~5a5lQCci4T~J0R?&sXCklXbiq1tg(W$68&=9B$ybEA- zQA;2sa*;i%AvXo;0*!(CfLBx%I3u;N(B-^jQG#3nTW(4kE|1Dsf&~^b(zBZAkd$>N<~nfsuQVrDww)Xg&-BuCQa#Gan4OyhbEB9rLCHL z`k9QvQ;l7dO_$u2-94nA(l6=9bore{3qwbv-?!4-sra#pD}=pVse@>PS}H7w;Ms!wg)~0 zIs(X9m#vpniC5v1`QX)pB>q$7Brkb@=iH>K?kev#^u0ShI{}PiL4Vw-JrPeWvPoB< zJJ5;#xF?GUj7OKy5Xl6=i*w@KxL+Ym?!w#CsoPX4RgKxw3pDCa5r z72}QZMtFm~QQk0b2y?_eem900CPekSExXsAw%yj<54&;Cm8WU9Znt4K>UqE0yxX{Y zBT9;{MJYTrCW?bbfjxm@|M$ov3<*=Rjk&ae{{V~;*T?{bEI|ZhQM?jFWno!F7L;8P z7qTP~N8J@-JS4l636Kkf@m)|+JfPr{nL)1-B@a~w{ErQeRCkEKEbtzfNu8-{?rQJO zH1FQr>?@5M;c4}Ejdyi-4fu)hJ!!q^ z0)slo4BH4>1b%nsoP=*U@boV{7pU9mBxmyI>D#^Y6yPt|{oPNyX;0T~)-xISh}qmi zoAYEm51y1K@9EwBynFBIhCVGC3*3sP178Dq_)J0cEpR8A3gkpT0^%W&dT@ydHL~j@Urjn^W`T<9hbf2I=ew{Wl7m1QF>K=RdSUl z9*D}Tva2Ve>Z(9gT;0g-Wp}bWA|p%5GDMcRC!UEH*dh&EB!HMPr2TjhaVU$26cL3Q z7E;8+ka6C`wQ+g;Ag+w-;+N1|C{)GTq*-;MvZzcdc~X)TBjRL0*fm*s>r+3b9^k1i zb?I%%Z7x-Q`;_vk3#qc(e9EmpS3jpb>KD{k+_oY@KYtL5bK4ACyb4*=dj-~sQ`j!(#_A%9X8uCu$oY$MZWqq_0fzd`_?P-1(Ika9)raoLuLn=auJG=k@2v ziRbS?%g&$RH?`pK-yED*oL8Sedj@t(&R;zJyMyqaXVFYxE-)Kd3_N0n^MPN1g~0E? zljudX6u^IraybGI7`hz3AghB6kH4z9Dv>{u z>w1tqp{$1fIDSR$wILo;nBw~QQT!wxRT!~ug4Eko4wVY~d#X|bCl}<~9I} z)ZW4))Im+>UDsX5UHe`4-G#=R@np_3zKlEL&vasEy0RVFD&0_ytsBnOBd>vpI^JEdsV^Dlc`tSb3xb4<9y7Lu&G`^FxrEHTsFKvzwywUH_N*u z{cD9c$6Mn4fNq-iowv*jJ7;+FykEQp9^qW%{p1DTys+5&6&lWmcbnjQqr2m{ad6K!=k| zB7v| z*7&XBOr=RWRp%u0Wo8BFCQ}Xy?|9q0BA;}M&1u`Ctzg4HmSB7M-|W2yTvOTBH;lr}*u~yQ zWyGlzu($r?R|FnueJ8x=LF8V_3@UX0IaaLT({%}$^y@=Pq)0cTI=N% zI%{6lIBMS3n1QbBHLq(L`CE}R2``f zQ5Rl^t&@Oy`>kLU)&thv)}7WpRwO`vACT;|qKeB)%1Wd*g-u|S*eXiIHla;!6WRDS z8CWZb_9dmuoH#q)j}2~gU^~l8DfSg0egH;WSAVbmetpx~T9E#o&No^b&ox@hFEu_cztDKO@nU0j z<0G)^!@-;oP8bML&gT^`Drl~kl}IPm^`i25(~G9FRW>lsXMic5CEygb)O+504y;-8 zt0~nNyowg!SJkKYdVqD{z{tz0&g?yqzpGGD^s=HE$jYymU7vRwtkDJ90%O4fkTMkL zfd0SG{M&mAKLSkl6z(gWS9_rFbIqLE=9>M5^J`nnTR_SC8gI>RU=MR^Kh%8sik<}c zrnpX6$E;J-aq47s+B#{S0br;pVu2Dtoere=b^0P>kqG3KMXDlQod%@Tb==lGV67kV z);`olsycQZuTBo6ztbt(2`l*Z$XaQ=Y%R1hT4!a&7ZZy)#Ycb~JOeBy7juhAK>mf; z#l==|a@0QeA{u`Zrgca75i;PR`7JLERI-3{wC%8=fCc?d;icHpo%TFC&yE1nnigOyrMR!<96P2|VQ1Odc39~SJE2r< zH`rD7#(J4uXV=*IcBVbjjxUV@tC$|J#4fUPLEK7GyU8xJ8|`L)9u3;l+9T{ryV#EW z+V)vhety|PP+~7%SoZns3sBQh|ES(t?>;-P?ETr7_09Fp`nhEf z>z|dk)PJo1*t!$eFDPsIx*K}Wy6ZpGdqB=s|K9IQ&;4QRnEr!a*WU!EfttqWDUddnKWV(tXl=aR2>x`YyuSPnkl6v>Z+r>DSB=*jUjQF`4bouM z2I1@S2mW+Jxy>Jgp3CnxJ_qT?jnC>|G~NQKSKx|z5I-%y`n3-DOJFC_`3md-7$?g~ za@GMk$B6|#ZLgp?Ust@Vcw516IxFx%LU2-?Ob}mbtgjF{c}|g&>I`@CokABGNE<;L zZz`@eIx5&suCt*+;6wu{4)A{_l?$BmT=kU-5QEdEs{!mhVvy#$oRvx!)5USUs#Jr# z#3gq*Dw`_bRSH~ekbhIzSV?!i2DR;#Z!2Xk7f6X*8kZZyt;7R$q=5f}Tut-b?xv4T zT-W=iS50%=l~r$=J~uUi6$w0BuWAh!xIG~Eq3Ki8%ci;RcTLSr^-YeZ`Rk zYbkFz+j61B>))3b)avVY*|mP$T7cwWzRADJF02JlFKZ7Lg0oeTvCdGpqbQ=tR2Nlb zF3Kx16@6)u?_ZOyTd!Kd+0A+dgg3#;ai^rFwO2@; zVyDFEs_;}a0c&d|olEcX01H^?UhH1vuBt*I^2Uv(X<{MRc$*h)M7n#wC!c-vgCt6@OMcC5e1P2 zJN)u5b@B_B)*dfh0<^ij_DJEf+5<(03y&5aDl9BKR#*VE+e(XT_Y_5feQbw+FEiI2 zEZSSNuPCA}sxGf?XVGq;?fpf&{5rp7yqFr^;Vp*{S{In}BzGH2z1I{NU2knT4Wo4dnxl`?IsZcoIS9mKl&JPtT zu+kV@%@tnI`W4^};BN51$-)y~=LnvO6z#3sQ&;Gp$33g6SYBLfRTkg1D!^Q7tYBZY zJp}VO48~3=&9_raX{CqkbYQPYV0*B#6}{U#|phO%Jsf7(q(kDRGM57z`K^Xm%1%r%|ZLUR_eD;qy=S>`BTR%$1MuK z|1Ye*=3QJ3o)>zrdlyyXf$!!6{tucD5Njnh7+bV76Y*n@jTea;m zKmz>!2e3F|X8{bDrAO`Tuf7Y`biX%Z8!%;q<~epbcQ|)DclulXSh>@+%e5P{rvPmz0ggBQ`v1~yYk16$ z3cg_h80B$)+6rb!Xqa2M$N34^%L?~OH^zeW7Uh=|o-Tyd9xo~?I#_q22;2_>tRjjZ zTdmedR$Z~a*i>u)60qvpo|HWGqjcKND?MQ^0%I$&bNm>Q%D}yj{fzyTy%VtWSAvXzwD`F@N(g83Z)+FM+i@0wS2&~?alz@_n^ z+-NX|YTzeozh9_8sA(?vhvPl@)#8i&@t%SuU^RgQt3L^}S5j15bO?;$3`m~>44$ij zFbZh!skJrt%vuIC6j_{CYzDGxz@M(#o`Z3|0DRqc)^0BmfYHA6>lyrQL|M6AR4Od3 zuv_ev_A0v=lrhR^Wvwky%P2snbbp%MupDTO+CV9zHNYGz94j3t$MQ;~1LHtD5Dqvf z`vhkHg$@A>@}0{nmsBnVdOZkoM}SV}0|W|Ohg}OmOmO1?CRo52_xY-GRYbS8x!9uf z;4NAY4oG#)HlSffH4&h61n|FxPURzNv5pcy<~MCOY;?a} zw`Fg^*`m@SoArftXYq6Ej^bU#FRiU5z`|{JZFd0bwSZgcRY{HQ*4Oks5MKt`xn{p% zKWD#WKW~?oDoRzQ7wi}9%F-+L>-MX5HPC>(wAwBKu?#RcS(b4d*bOW&8UbK_0}q7E z24)!p#GD3pS!vK85!EzKji<~E&Ct7vkJnk$2 z@lof>%EKT&1{kcFuH&wSRjsK-RmWV#uCuNau2P`262Pax1LBjeB9J-_nC_;!FIG|9 zEH?va>QWWi9S&lW`$`qfeYuM1)_bBnt?d{*Bukzr+!E=D@DME~55Zyt^2p}A<|we5 znVL&1`sRq{9UyIPHZ&WXPgzjjmq6=i?{muwzklEIF00l8?F(C1%ob7gv6ka4l`R!5 z#_B8oGMi|f$=}jG|2gE96`a@szb>gSxes)D(=G_?*DquIpx>NQsDQyi@{S2zx_0n z)cIpzWA9h-`A^JmVxn^st*<@LBD5#yxKq0)(^hqgW3;mkHC1}lr)yyvl~kdrL|y` z0x+5~XN9xeiLOLdBEg8Lmc0N8ie+E(UeM}_>O0;ug|DrxBL}Oj?Xk`3pYv02?L+&0 z`xF06!7AsEBTB9II)Cbc{jvR#-Q@R|$Oe6bwjr-U2S%j=Yyb>a-v*^a(_r?eTk~Hi zqCr?@YA^z6)E^~6hs2MZ7=&tv%%K9Y!XbA^K`a71zhWNns|6KvD>NYYJDqo40tj4i zUIAe%U2Vm~NvJ#rVvF-K2&>CByN>k;TE~I zpoS3ewJPP;x>EPmDvdv_{we|cm}kG=i@|yU;(SkmhwitEL!QGRzt3~fL;GqaXD!E? z4>uPA-4!(-1>qsU<(4DO$D7M62b<;Y0+0tSfN($H1I?wDa4*?Q^OC%DU|U4Mc);}* ziuaAB!9ws-LGBCP_pYpd0CM-dcm1+jZ;dzn56>sJko;)_2=y(x79)sN)#~btEm!}j z^LtDGUx-T!57)i1f_u;6dJux&Df}VW^=;2=&Jst7&Gxp$4t$~B{@mVRx7lBS^h^6| zzjx%7I_!=1$kJE#H})vMkF>VXN(X_}%gR8j4I&WkY}ntB4-3{qKe%Pox|+d0i=2U zlGZD4I&V8`{9bYcgv82w&g;(mAa&PS>#TF$aXxh3a$a+W1N(j8Bvq~i7XLfx9Zr|s z1+TKX5Ps$&R%@Pt~|V^<@H>j6Il>~KAD-E%d7)C1Qmm(}&wRp(k! zb>H>G^%TfjDH2$`39uRPA@?qKgj?_4-22@5 z?wufA?x_NPzyLl_={fJI_Ao7HJcXX49=7GIr_6KOa}1Ogdk%t{$2}}d3CNuST;!<$ z;R#Pkv&D1HQ|dYCIo({^e6qO$v}0+mY_7CaG?zD@YCh3?rn$PgxcMyb7=c&nWqWzv zMvDk|fzn$BWE`)|tMUrHEUyH}#9oD04*qv zv9!YKB!6ASkGqe#Pq>TRH~n^h3C!?{=dy=uIS;Hs>(zPRTG%a-EgCTAg1VxH0*Bk> zu!6Zbo;siSXW81n-ird|oR+Asquf{g&h7%poM_lz3~ZwE8K`;9!?RrXT=f`$mAnFc z0F)ea6grMNZ2ora&X>*?&gV{QrN>q5zEyS7eZzC9`C@aGjkyeY>i}eHYC5PStJCEsww=^zS*<(E#~*;59W{NPv+0&IXmX= zn73p84n`g}kLlO;@3Vvbr`+$-w)pQOaP*(I0__-9!ce>tDgEm+P3%mU2r z=9m4=B>{SV$RD!Sw%UQ9HE!>()EGE*;f4;EXx`|Dx;=Heb8-P#}F@AUUKRsTr- zKkaYSs=yL}u5^V^yA<%|E8v<(1t)80&NJi zA<%|E8v<(1t)80&NJiA<%|E8v<(1t)80&NJiA<%|E8v<(1t)8 z0&NJiA<%|E8v<D#aWfPsSs5BYxRu;C#;j0he1makX|gCmeAGzN>q6Nup? zGKET`Gngzkhs)y&gd(v-Dw8XeDz!$d(;JMYh{&kunAo`Zgv3>=lh!1sq^@0;mY$KB z_1pUFoZJl?H*Masb=&ql^NyXncJJA{Z~uXV`G*b{964He?0C_Mlf|b>PM;|~TUK6C zS!Jm{cmBe~OW-?a*RJ2VdF%F_yEV13>wM>G za(kM+E$=^k{Pfv3%pDL6c>;oio58#FK74t%-r%3XyY#^Ox84F7^f4gV)bq=`^;%U1 zf%?Nhefi(1JK^hl_TO-F-8BR9|Qa**9`n=&=671`HcKY{;+Eprqxd>N9idK8XQ&I*73v0chk~IVP-kCP-;sbC(0y~j5Fb5cug*j z)OU0E?co6-f&ZoSOYLDHyFz;Y&_3k55Jm_pL>M9p85lA%WJt)*A!9?v{pp&q!=Yia zk&=F}|_BalY}spL`R1kZ+=Ik}u3R+4r+=itiWSRNt?@X@6>Au5X@i zzHfnVp>L6Iv2TfQsc)HYxo?GUr4QzV`w%{)59LGqFg~mg=fnF5KB6!Dj~3=a^Pu_A z0%#$$2wDs+ftEtcpykjCXe9)L;1B{rLMR9gVIVAogYXamB0}L12_i!jhzijlI>dmO z5DQ{M9Ec0?AU-63gpddlLlQ^|$sjqTfRvC5QbQU@3+W&|WPps235tLsp(rRCih*LG zI4B-UfD)lq&}t|NS_36RDNri37Fq|TLFrHilnG`19ZUQJ!hdTb4>ChLpqY)bc4b%uZptq0{dI!0nCddtW{tJ>Bfti6>fxiW= z56lkC3Cs=L5V$dLQ{d*nErDADw*_tw%nRHRxHE89;O@XZfqMh@1^yZ8BY{T)3j>b@ z9uF)EJP~*@usHBkU`gQVz%zlRfoB8D0?Pv{1FHfpfz^TM0?!9t_%GN0xxN2+`QV@) zK|OJ9Kd9 zxX=-ylS5~OwhIjm?H<}IbWmu&&>up>LdS+q4_zKQEObKXsL)?RXNL|6g+fC^r-sf0 zYcPETV+3;qYXo})X9RZyZv=mYV1#glXoPr#WQ25tY=nG-VuW&pY6N{aV>oj-YdCv2 zXE=8_Z#aLrU^w`)VOa05kg%0u{lk6?3k;hQh77}pbqyOC_Cwg%uw`M>!#0O)3ELXB zE-WpqDl9MT&q$eoWC%1A>O1^O*zn;yC+(WFd(xgsdnZktG-=YWlcK^R!y>{^V2>Fa z@>56;u*d8Q85S}$*39O{{DcE#l z`gHVq*e=*({Lz^5bca3w<|LS=4nw#Oa%# z6ZfIHk~($T`gynv*z)vu+3@%-8=jzxun8^(2UgZNX$F7apyNqt@mGfvKR#*vcf z$!{``N)Bi)YAqXf)7zyauRXecogg2*3KL~g?Ruk*2xVLPbytjg= zxTBb@Y8R!AyAhX@NKYqa4%#9hoaTg!Lp3ePpNJe{46TlKn)#kHM);%Xm?%Y69*tWw zZcDc@86P^cG!MCFv z=#IGV#PaYW(i74R!)oqkUJ-AFs8B4DSE$w+N)0oNt4&AZ9>fL3>*5{px8k|0k0y`C z?M;1=221}wCwWyB+)nPnBr2zCp2wbv`@E_w)so$7!<`M6U<2XL);z*3BU~hWpw`pI z(0`*d>DL)Onb(=Wa{fK~{&TN$H*vWIe4RutU!hs0)kN-!YgwJLeqHvKR41|&)t6X^ zDJ1o!@ELJ}!;-c7O9}WSW%8b^lN-g7y&LYW+JX1+uCD5q8IM|x3&Px@K4BKKXYi-; zOGHZ5DZR+Jam~#&qP2l(Z_;%rgy-cojJ%`fc=<7;fCw_`)@plMkdOq$7XJ zTA#7ryq=SND`(V({&7=bV=*Vmmnr*HE3`9o`^fdto!6FU_sGTM5^~$YyTKLc%~(F} zJ$^BPZTGd9J*A`t<|EaGO;1ZE7gfjv#MU74X-Y}gn5VfE=` zdCEc7#rW+x9WjBJ16T~7Ae1NnsMqkWY*nMpq=B)BRo|xfhb@GigY|%4L{G&WBK4w$ z(viRiX7c8VmEvb&y*yB@H6Ai{Fb$0S9Knrz$ss9A&> z%yzQfhVV^$VFzFbVVmIF;WrSAkshN0=|N)9!_m>`dh|hTJmCrX7uqt~1UiB)p$}yd zIm?CR;tJ&(r94 zhFXmOOc|NAlki@3w~7E^C`H zORUaer0q8*E0VI~BKq;=QAoZx>m6zk=0IYv(n8+x`$kawe|2+Jo(m|Aufm{5|z3!^?0nm8`*n(ZWdOLFG@X-g=qd5ZOhyFD7NpfRv}H zH`lS!HCe`NY;LcO`mOVk+t7t*6LlnQkThMIp!%$uANfmMK=S)!L^cf88DT?5VBX_y z5ZNRr%k=szksL!a4 z=x692fBQ*>KP%;5nD2&JgGJ)a_(&p#L?NY-o>N{@nkjl}Jar@W1hqd6MPI?lVb(JD zu%>g`bLVrLxDs&u%i&)V(8OaT0?7pF7U?9-YOPp5+h~pWCbEAdHS$PgpP0ay!!bu< zFtKT|W8zTpE0P#VgHp_?A5$-;Ycdp>v-KY{cdlQV9T4zM?uHGu8>ep}p$?#$(H$^% z2+d5ZOqfbbE8e;sIUThO^9eV{sLP;lxw&O;e8#M}#;0dGiQja0$;m2f8BP0us#T>R+hjf6&!ql81SS{enH7cS^J`@kVyK_U@(?tZ%ap zY&xq&aXZ3t5fx|!*-p=7vp6*V3&lm%51JfPT-5qi@hJ~d^%=n%4ss4~Q$%-Qw_(%Z z(eP;~FZvz&8TJ9Lo^XkHf#@S5NGr+hsbi@%v?28GSQ9v8(qYaSj-9iG#}t8Yt%z~ zEPAE1s(vzxVt1@XWn^#YiL5~jF+Nff>sR5y$bg*txT|RXU&Q}&NE6AAD2?!TjL*zT zk}|_3!@S6qQ8%OC#14&1Pgs(D1 zr!{b7f;A$SBp@JL%9efB_Kti)(WI}=_%`+Ql z`yPge0AY1fCfr-+^DC1tNd7O(~eI#uX~_rHZAzPz{xIXaoKvuJSRhJ6XdrYZ57f*g z!(uxnThdtBlAKV}wd4-D%nTQ9FFGKgU;3|@ID9B|FKeZ*<3Q3Mn@$IRQi_CdCkwUjqNV2SUSTbBJfDM4mrdr5s^w_)JeO{zab?7;s7|p5Q`u{utfj5nr~eLhkGYFAkDbdL zpB!&2GaXERovn@R61Q~qJ=hZDd^8=sgVdhfm;8`2lDU{!!0yGL%)cOBDCsA;#UsmL zib%yJPP8%KbU*T6sN{dp)v~C)(Z<+8algjxPLw8JO?9u;r|Z)5Gcz*d*B{!n5|x0R zDx0FBF|YL}*Z#(NEDG5&N-?1UPY~GKIt@4?#bpyXa(AJZm1lT#uMVj38xc2BwCW>Yulwu(sQx~=k(lo4Ut1w$G8>y zb7F_J!_q6^YQ$oc3N52AWzl%!q=jpTrq{r!zogkBffMoJ$^oc&>x+gJ>MOkxLghX$Bgl(M_@aS1(L2+;G7}*0dOrrmBPh z@L9E2hD_s>_$T3WbmL*~U>itQ+8O2yu9IgMi&p89rYFNPT$$H5^b?Mhk5Rph!zUb0 zZ3kO~yo5}_x=DShVboY^Z`#i^5$zc59is=!%pJm$%23K_nrS+9%&)QfSncYw$#uzz zYh7zMX6n|r&wakxg2J`=*OLN~!>!Kbv1Sr0S=)58hv`Nvov z1oPqJWVO7Kw2_I&A~9LB1#+1X-%J=s8W%Z6*$MM3`H&4m24j9E;0XtbbaEywhePHKmzuPXrM)CibNFM1&&`g6Dr%kO8P*EQUZJ;EC%=9&!rhG<`jDJX^t=&p*w7%&*bbN@UVa z5}EwG0!^#c=nP9u7!%5LH$o8!p;!rmL|bCF!Mo_mV>0b7NCXPy#wVG1E%^Zp&GCw(x z&k%Z%vBt@QWn|Ch`Zx<|X~y?*Jx)eGN9S@<#o?)Q(|hG2G3U5lGnWu|q$eU*!d@dc zBz8+7$c?P!SxmvP4M9;l4IWJwJYM%Kn<7qy%^(NUUZu51-$-2(V_4;*KIf=l95DC4 z0>u$$lN)nBz>-!I^I+9EXfr0Wc{LWO>}ZKtWSH$9VYu$IVkEteEEjmTR$O>n3VdHrqwY^Om-oIni_-D z&^00?Gc#3c)aGQo-WUv*M{j1rO}o~=+HAxT3AR4nS>-zbLjjP6>k?4__c;aem z1nnq&Dbv6_z)a`d7F`w})g01h=xYs^B6ZQbVh$t~Czqr~r&DttoTn`}sZOufdkXl@#6;znh?%iNssX4Ux3F zk?%>pl{!5a&hecI2AJsc@lDw(1jX+p$qjNK4N zPT8LNB2~S1aQ1@iL+}G^uIT$XMuITWp5Bg(7VOP6Cg2mh!)2&_w1w2JyflL$_PaH! z*0?48XjtY+@imx0nYrm()O3s*S4h~&kTM4NJ>1W{= zP@}`!(eiU1!u!R&&J4t3Spv~mOBmMriYbiilF*RQes#|^W0IGp z?oPj%`6<`6S-b@f%Y&^&;84r(dxj{oBT}V@W}l!dt(DqQd7^S zMrBUQ9)=m0+YfyQK}PQ-9A!`D@swQMBIApUN>rYBl_-F)f{G!I<9&#Jf~?kpubH#$ zdd#Mht(Wk{#2>jEc~?cRF!uyl>gL$>y#1R#^H7^9{N1o;@blvu3FBStz_)+nNS$gY@3OgHXhZF5>~X4B@^M2gZPU5UKFKO5N)$;>&mRnHzSY#*OM zq>&zo2C3d@k4E;3*^n>^If{30YonIQ^P#@kFoHat85L2G3da`FJ4eQ>Z-=JAijaee z)09(Uu4aVNp6U|N23k<$!NjoSwd-&>F5aO;^lu#*9T>%86qx&8f!-ufO`Cv4!p9)b zp)R3!ks_(v>2Zv^td6|Qy>@jUViJr9?*?0w zJUcBoHy;r}%_bI;PEzl)-m}Wtb=+lwT0v(?k@PpkD9vGGa&$n<(u4~Mv1^8>bXvzr zkIe40A&QZ~oCKc##EaFE%h4aB%Or`>r&fEDIJ_hAGjf}=2T2%_GZTav3YZ3spahBP zWmgi%uiCR_G^#s>Lx%D8^1oHbtDkDFB|S;HobfbUpPfQmt-54{C2VJLG;2_EC7Y!k z)kKX*pBb?#yUw_FTM=B!uyDw$R>2Oz?jwf7E+ZRB8#uB2(~_a8dD?v4VB^aOS=`O! zi1ce2n(Y3$n@~3*$0BmkIlN1f>xwY7J$6jmj%@tqZCmN;xr7ap36a!X8*B!*DBZa^{I_Pj;uAoUP1lySZvnKhzG?d3isy*hmmc%C0rw~NOi28lyeLOFOzmQ# zVwSJInl3?RZA~zw#7xS%n>-$oicusBMOCTa#onNA=e^sq0hS93-YiNkPvj>C2%@Ap zdTi`JYpz{r!LUBCF|diSDX`mfI2?kL;1oC>z8J2BC&AO;xo{I)0GGov;4=6s zcs9I0@;3Z2{3^T_{s4Xhejk1vZi7FE4@8VY^hS(9gd)B{42FB)!x5tq;}Djw1e9nEdzJy@0rgC`42s?jjx`o+I8M zo*^0$EeJQFBeET`J+d#d53)CMAaXcz8uAz94CHj=Y~&my3b_J_K{AnEqW~#HN|7-hWZr+M=d}tN3B3nQ5cjErA7%*DpWKo615if z8!8i}Kqa9vPZ_yplQ#D=D z!RYSjKInnyAJ7xf6VYMlspvWAMd*d-ez2wJmFT-jDq4V+qWcp~XdOBZosHg(-i_Xc zK7=kn7ojWBJtOXAKSqD#HYys?cJv$cdvrU@Ow1h2ILvs=49riMDVWiiAs84Y4Wq%V z!_Y7aj1D8mWMWL17>pK^fJw)!!kojHF()y*Fb6SJnDdyuf05_E2QU?wotRS0X-qBV zIpzhXJGM9W6Q&XK2J;^C6!R-~4wi*of&B?f#xBI-uz2iLY#5e;-GGh39>yeNw_#1# zC~PivEA|jJ0vnIrhh2@`i@lGvU>{?vuyt4)_BOURt{K}G_Zj;MI|$c;h2apm$BN0g zDY!|vskndu5sr!gnIv#XrM$CJZ19At(vM2~5Irf}Bt$LJ?*X z41`2NF<~3w0O1tj5ut=|l5mJ%A>1O|Ak+}<5o!s~33UV;;W5EMcu!~{d?0)zd?K_b zb|MB72N8GkLy6;v-;YlID<*BrGYML?UrW z0+O7hB56o^QWD2ViXnmhpR}8Fl2l1LN4h||O}b99kzSCVk{*$slj=!tNgk4m^bPqt zatCr(axd~QatL`8c`Er=@?7#FGK`ESBgk;Ff+QwO$xN7*Y#^tSGswS@HxUnzOUOm! z)8rFm3%Qhhj(m^&iu{TEp8STKN_kE0OzA`EMYDxknj$)>4p&XOkrM zY7gol>J;iP)CJV})Hzfb6;H)bX;dbaOUL^5wSsz{dYyWW`p?qn zf3MxU)MwO()ce#2)Th)ZR6F$*wSnrSx~OldO;j)SGc}Obkw&4BX`N|3Xnkp;Y2#^A zX>(~yXe($i+5{SshNIzWL>hx8p{Zy(T0AX|7EMd0CDAfyt7%(l8)&(-?Xi-Yw0iP@$`-K1o|d=Ha&-)N#8?Hp+BLYq+98?=*Q@9 zX=muw^yBne`btJ0# zxXif7xWH&;oM%)rsu`ykml%fVD~uP6XABSHJ)?=?V|-$KWPD}>Fgq|iGP^RnFncox zG5>pd`e)Vto;jR3hWQf{VoqX)G3PR2Oe&MbBr)ksJ~M(D$6UjVVrDY4nAyzR%y{N+ z%o^qmW(o5e)5ol4-e#X?)-f+LFET5b=a`$A7nogGjZ7!=M^<}Q2bP2BW+GU#SSwkB z*>F}iYaJ_wb%3R1?O>&`*08p*j>-?f>{0CQY#v+2*0N#jF`V`6EcPz;K6VoOH2XgLCfmY3$1Y*lvMbn5_Dgoh zI4k=J`ylff+rb{k@vxiN@7V9z0h~|l{+z*_Z#W}3KXAr!CUbt~{KA>SnaWwNS;E0_ zu$+|~0*A_>aFiT9Cyo=(Nlw|s*~U4*Il-yqRCCHXRh-M5o16!ndmJn03CGD%@;Y$? zxgR(x-p|}A+{xU*TsU_DcPV!+m&&DZ*<2o%&!ushTsb$Mo5WqmUBgY_=5n`i%elqe z3*1ufY3@HuqyN2jtGFk*ce(euR_<)>3+^lKTdtei%8s%eeE z@Hg?}`G?vazq?>9KZ@T@aFO3ZP|FVyj1)ZKcM)9S-{!yM-{DUY^b`aM zYWUCip@J5^mG9t>5{wZH6#O6=q;=lbQ1OymJ5Fn_7W}-b`dItQ-pfqVj)vV6mo@2gj0nf z!gS$U;dWty&@9{m{`T>&KsmyGt4f5G!V2L@VWIG#@R9I_@Ud{e@V@Z1@PqIhQQuYX zg*`=mMH4p-6-^cWBC6B=Dr(GKESfJ`Dnf{eB8-S6qKOzHy~rSn7R87XMDe1vqFm8> z(N@t;(SFeZ(P7b1(GgLh=!EFBs9JPMbW8MD)F7%CxkL_d|6jVbgSeNtw|J0vg!l(B zRg4ug#X@nMc&&J&I99w#93|$9RpLx>y0}X06yFk`5!Z+<;)mix;v?cx@hR~Gu|s@M z{8~IzvNCCkWUOSSWU6F<=`<-!IzsA`4v|ik#!2@}bEOxgC#1KeXQYRvRnnu<+tNGIH0dsBg>;*AuB?Y_ zg}g!Pm424amc5fslsTl6WS6C_+MgxsC2N+hk{M-sS*$EZCXZ zRU|363Z`O(0;dow(i9&Q35xZKy^4d18bz_9RB=;rL2+AgRbf>$C|)YuijRsGg-_8{ z8LS+n9Hktu9H)eola$kyGnBKHbCipe%asJBS{bE`Q^qP+D>IeZO0#m0vRHXkS*fg6 zRw=J4Zz`WEt;#3L7G<-tJEEVelWMT4uWE>DvTA~Av?^3JO9fNGRkd63Dxr$6lB@J8 zjmo4ls?MtlRaaFdsxsAcRio;W%B=oIEmMc8y{bv-X=8~V ztEP{pm*#uTNXEw^ct;Zm1ea@tx49b(Zp$f z(`?ji(d^Rf&{Sv&HIDT&vV- zwR&xYHbxt-P12@l*J-o0S=tTSjoJe3G3`lhvG$aDb{T03FY z2W>EQ>OSha=zHo%8iwh|7#8Z+>DBsG`Uw3-eX4$k z{{;>XrzFL1te_LOwKdrauFX|ige+~V=)Zf>C(l_b9GxRj{Fbpt^GmJING0+Wo z1I-X_z#7m7qaoUmY}jJhV_3dzzu}Of&`@kRWw>CtV|Zz3Fg!6lGjuR^HTE|SFb*>g zHO3ew8mAj)8GkX(H{y*;jSM5xC@^l>CN~<4k;Wurj&Z#)*O+bGXFP8#Fa`t^87;;t z<5^>T`Z?o8;}zpI;~nEI<2~bj<3r;U<5S}c;~V2!V|!C~Qzz56rZ7`~(*V==rk_ot zOjAqtu<{nZ8W8rGEHeFifM!C zlBwKu*>ufx%v5c9XnJMp5z#y1h3UD8{=e9J3+O14u3>oA-IsM^-JW$ZrG*?@2$DzApV%`jPZ!X*+3iX$NVtw23rD+F6<- z&69SL_LBCO4v`X4v$RTDEgdVJDjg%8B%LFjEuAHuE?p#DCS56ACtWQ)DBUfsk=!#Hb9mv z>nXFzG_tNTlT0S_$rj6|%f`v($u`KA$)?JFE*&eIA*+!sl!at7Wd~(PWvuL&tWH)d zqh$A$K3w`%Y2(tTOFu7tz4W2dM@ru;O)SkX{jv1x((g-~mwsC+k$h45Luv2Q?9xu9 z-AXe{yOfS7?OWQXR9ZT!lqlUNla)?4m6fVXHKp*6olC5b8!LmS^w`^S5 zjI!Bfi^`^#%`aP6R;*iBw!Un0*}k&9WmFkocCzeJ*^ROq_xfyhRuZ6`>`h#5|&e7($FDG{hw0GVzS^G_jrdjkrg7ka$G7invBRpd^V};xXl$ z$~TnDi0_p5SJV-O$`6%4DZ5lCmBW<%l-0@sN`dk2Z}RkA z(~7$*+g5a}D6gohP*+$gv=x&o3M=dtzKT;7stSL_u!_c`Z-tFEf9sUBDFRz0PDPTffT zrn<5EbM-gs@73?Ae^e)^o2k>(nd)xp9_oH-xw=#xR1Zmq z26dHsrh0{XmU@kPt$MHep!$&dsQQNbZp}^gW%UVlt@>Wgqnd{`&uE%!Uemmz`B3wb zrl}@D^P}b)&3Br1npZWsnr@nZZ=L?Pr1Ld-nnF!q%|Ojy%`i==hS0zpmozqwTQf#8 zSu;U1O*2C?TeDcROtV6>Qgc{SqdBSxYc6Z9YwpoLr+rfUsP<*;tJ-(8-)Ng^yK2+4 ziP~0LskTttU)w`lp;c&=+DY0mT8nnPc7oQc9j9HZ-KJfwJ*+*gy`&9mB@$M9QTwcp z)Y95(+GE-y+DCN{=w8xM+UImn>YmrVq5D!d)%C9KBi%2$_jOHm?R3eyBwcG=CtX)v z7hOMHj;_CMpl+~ErYqO!bw-_4XVW=#9-UYBgTAT$SA8peJAINqMc+~1L*HLNTt8B; z&};M+dad4|H|p(rsot%BwMVsnihh}XwtkL&x_-WXqkfg1)ie6T`rq^seVzVZ!+nN_ z4G$QeFg#{>(vTE-#;{HQtl>FBZ$qJ>*id4S8$5>9hUJFEh8>2(hW&=Eh9ib8hEs;q zhT{gtaMSRh@gd_MhF6WR8J{%1Zfs`!+W49AD`Okue``knJ-aQ9t&Q!BDaKaDOk5vguLNyQVKqKbpQbwJL1u+nW|o`F z&04d@Y%)(W&oIw2&ok3z*4(Pc5%b-ar!6m9zOZ~|X=CYR>1^p~>1F9-DX|Q)=qwtG z!ZOw})iT2}#WK$_*Rt5M(z433$+E?=)3V=k+(KE7SZ-RbSgu-Lv;JXu*7~uvk@YES zH*1Eqg|)Rc&)UlBu>NXoYfZ8Gtxl`W>a%vS?yxShF0h`oK4FVk6KtQ@{=IqnZ%Mys zd(-xk?Je66wy$kJ+Oll9HmPlZt&?r0ZJMpxX16V}?YAAUov?AXgSIucqqd#4jW*Wy zlKolxGxmGz57?iye`Ej1{+{=4y^;;QE?8pk%rR>wZaUdMh% zje~M<4%*S!`M&cL=cmqQ&UVgZXItkmXO^>@GuxTt%y$lQ_IDbbZYR7R&N;<7(K*XG z+d0!Y*E!$0(7DLD-MPiN$+^whUQ^?I%(c&X!+Edke%FJpXIziFo^n0mdd~Ht>uuME zuFqWGyMA{4;!1EOx>~uKxmvrjT)D11SH7#jwL7h!tJpQdRpFAl#Qp|RO>oE@~Z2K>k0Rx?(f`hyBoW|b^q*6bSJyp zy8F2Yx{LlMPhS+f2fIt$Q`|G$v)uFDYu#(y>)j{ar{Pr|4|$&UJnMPE)7bN>=QYpU zo;N%ndp_~}?D@sh%+uP_!js}@>q+&bdD?k8dR!j2XS}D{Gu^Y)bKG;pbJTOtv&(bV zbIxRw}rQvw~4p87w$iKJ9^uDyLvOcIo=-LUfw)! zA8$WzUvIT{rgy1#rFVySmv@hMulJbuxR>@aUfz4&d)j->d)a%@d(B(tz2EnO?s zzBheu`QGup=X>Axf$u}#C%#X8U-%My&3(zf_P!)vs;{$eu+Qcrd={V6=kkSoqkWTn zbA2m)n|+IX>wP!#Z~GhjKl8Wrf8kH`|KjiB&-M5A5A_fChy7>#7yJ(e9t@m@*Pz@V_%QHp zU`F7r!0Um8K%>CZfu@091HS|k1FZu8trh+6+071g3*-e-11W*bz@UI8pbAV43=E76 zcmq{|$${B{wSiTEC4q&3#ewyK9f8$>LxDYk>j6G+HgG=hTi~VO%fZ)zLxLlMvYlRNy;p|WFUMz4%%85=V;WIPdprwJm# z&a*o|l9`^_H8VT2XJ%FA;>=E6S9bk$$ic2>y1te*A!~8gm8|!&)3cw7G|Mi`UYNZo zduMjzoUd|v=PbxMmXn=Zk*m!;mb)+ajqbI%Pj&yc`)A$V-Jj_(p~sb;xp{%S?RiPP zB>9c7hs@3exIz3(bW zDA-Z(Or)UCvk`Y68eXx~uWw@ClD?&V>Aq~={r!IJpVhyz|G@r-``=rrDjZnoESy%j zqwsoRZQ;$r?+0WJcyGW@16B-B51cpf%E0@I9w>UhsG?|U(G$h@7H1VF7Pl;J6j@dL zd-1G6|6bnxx1^WD%VM633@ceyvZ-W$2~)DWV?RQk(VO&5idu4BX*4pk9;L^dSr0a ztC3c+EZG9tXxV;QT4~F&F=eks?jm{+WyA*JD$zm-SB@h8o_A>@dC^c_-4_e9ZiAq><%4%VEm_ z%Q4GY%Q*{c;Vk!CpR_(~{lVJA`ja)unrTh7esAqA zJ=S+@jcs+-_am>_{;Dhx3IUeTOBnwK8OUIGn`+#esnc= zwRa`EQe7Qg8SY;04SEzDvGGzE6HYen@^qeoX#@{Dl0J{EYmZ{DSEF=ez1IZ$?n1qLG$-(3h zaws{B98SW6n&c=_O3KJmvWzSz<)nfnNF`Z8R+1`GO=?IjsU!8Ifi#jP(o9-ND`_L` zq=R&lF49eUNH6Il{bYa)k|A<5Iffidjw7qc@#F+@A~}hiOim%ElGDg)aymJKoJr0i zXOnZtx#T=@KDmHgNG>85lS^Rie}}S^Tt+S@SCA{oRpe@N4Y`(FN3JI~kQ>QOF$4Qc;NSb6wmgGpD43j6w zljJG#G*NhG0x_r~Z<4=}zmtEE66!AMZt5QD zUg|#Te(C}0LFysuVd@d;QR*@3aq0=`N$M%;Y3dp3S*j8B9Q8c)0`(&G67@3m3iT@W z8udE$2Gy8)lX{DKn|gGT*>`NrWsS(sjY7`}e zrchIL_)LI!=)k zMbQ*Pu@pz~RG2zJoup1tr>Qg4S?U~hp1MF?q-v>4)Me@lb(OkCU8inP5vq>5N&QCs zPW?ei=)35<>3isV>HFyW=?CZs>4)ft=||{C>Bs2D=_lwX>8I$Y>1XI?=|=Q(^z-x! z^o#UM^vm=s^sDr1^y~B+bYuEW`Yrlx`W^aR`aSx6`UCny`Xl;d`XBTs^r!S^^yl;! z^q2JCWB$LQzox&TzooyUzo&nof24n+f2Mz-f2EtyP3dNIb2@=;K_}8J=~i@Wx((fy zZb!GLljvkRg-)f@=ybXR-I4A@XV9JLOu7r*mCmBG>27omolAG8d(b`UJh~U1Pxqz^ z=st8`x*y%2E~E$01L-2Vm>vW%D4_?_L+GLOFnTyWf*whaqNTKqE~U%pa#~I+Xo6PK z6?7%7qSds9*3$5z7TQ1?X%lUxEwq)k(RSKFJ82i~raiQm_R)SiKnLj%J(?avkEO@a zRrGjz0zHwQL{Fxt&{OGYbTvJloNt&W*nxR>mqj@?^pP*0Dr|8r48Tu@Jjz0f4ng0v)MY@*0L|>+_&{yee z^mY0M9ii*!oAht=@AMzEgt?2ko4JR%m${F*pLu|Jka>uCn0bVGlzEJKoOyzIl6i`G znt6tKmTAO1$2`xxz`V%3#JtSB!o147#=OqF!8B&xWZq)lX5L}mW!_`nXFgy)WIkd( zX8yr^!bl{aGM_P@GhZ-YGG8%YGv6@ZGT$-ZGe0mtGCwgtGrusuGEJDKOf#lAlfblK z5}B4vE2cHmhH1;RW7;!GOfr+gq%vttI@5va$aG>dn9fWl(}n5EWHH%HHztS4Wx6vx zn4U}?(~HSxdNTz~AEqzUkLk}8G6R@_Oc7Je3}Q-{!ORe5C^L*1&WvD2GNTwNBV$UL zGNzo7GYW=aluQLv$*34LqhYj+j?ps)#>ki$Gh<<_jE%7~4#vs27&qf#yo`_WGXW;Z zgqYFH7-lRpj;UhCGZUDJ%p_(qGliK7WB)spX-qXUoteSRWM(n5nK{f{W*#%2S->o0 z7BP#NCCpN08MB;O!K`FfF{_z1%vxq0v!2<&Y-Bbuo0%=lR%RQso!P_ybp1HtW zWNMj9%w^^ZbCtQqTxV`D5vGp0$^6Fr&iuhh*t^)f*?ZV~+56c0*$3DM*@xJN*+T9?Dy;s?2qhE?9c2k?5}JS zwkg|;ZO$gJE!af1CEJQ^&9-6NvhCRRY!aKyrm(4O8k^2`U^}v%*bKHao5^-zyRunq zHrtKOVRPB;Y!9|4o5%KI^V#0)-(mJ8k^;65+n4Rf_Gb&(0qj7wh%IIZu_f$ab_hF^ z9mWo4N3bK=QLL1ev88MoTh7W^1xv6>wt}r>RjiuTuv%8f>RAJ8WKFD@wXjy!#@bm2 z>ttQ5oAt0>*2ntU02^dO>}YljJC+^CR?C$FJB6LfPGhUt>Ff-4COeCr z&CX%xvh&#a>;iTnyNF%PE@79l%h=`Y3U(#Cie1gFVb`+j*!AoNb|brq-OO%bx3b&V z?d%SAC%cQ?&F*3MvisQm>;d*5dx$;E9${mi9_5yp6tz|EDgZqU0l>3bPocn_NlKYDLn)`q;*z-(E|p8;(zy;? zN3Ii>!FA>`xh`B+E{n_Nx^X#NF4vvw0Ws*w<#D~Ze6BZF!1dw!a{ajeTp>4r8^{%L z#oQpSgd5Ba;f8XoQrdF9?r}8I6oKQf?S9j&5hy4a^tuvZag=Eo5)S#CUaA`soXTK znw!qe;AV2OxY^tsZZ0>Eo6jxa7IKTY#oQ8ZDYuMU&aL29a;v!2+!}5zw~kxSZQwR? zo4C!~7H%uIjoZ%c;C6DmxZT_yZZEfw+s_@~4swUM!`uXM?fE1= znNQ(U`7}PA@4$EDJMkHOXFikf!guAf_-wu#pTp`@g@9Veh5F5AI1;oNAM&0QM{Cw@uhqjU(U;U1yArwzJjmhRlJ(l z@LFES>v;ojZu-Unm9$MWO&DtZXkv+(EPFT!7jzY2dH{wDlw_`C4;;UB_3hJOnG9R4NzYq&|cX}DRqc{m~5 zBAgg*8EzGB9c~kD8*UeFA5IDQEu8vG7YCzl~gJE*TU;KghHYjElRM+@ch5d2zj4E&0498pD#CngXR;g^Gx z;g^L|iD^VNF`bw}NF+0fS;TB&4lx&gUpOD|__BgnNvtAP6KjaI#5!U>_r=Ws$O2IY?Qe z9IPAyzn&Zpzn2`T9Ho>hWy(@zxl#_lq$J?;i51F9rAnz*YLr@~PN`QKlt!gVX;xam zx1rd-Y;h*D5G4FgRq(vGya2UV-p0p(lpX6(maw7X%R_` zw2ZWhw1!^`{Oe`1e2RRMeCq$T@!ZL?EztYc|B?sW!0u7`c5M9^{Kj1HU{PFe_ImLY zxD4WQa+TbzIxI?d2WTVwGJOU7Qavm`0hldLQ!VF3Nx=sE0<{4irQWF~|3Xp$zkZMD zRLCn4Ov!1H7UTU@yA*y`FYp)3m;76L^=%&c4|F|o5vp(P?}XL-2P6AC`TzfX`TuVO zny8wpnyH$r5>zcziK>>WR;t#jHmbJpyh3|;Vj)?TqDobz!Sf0sN zH04;-Rx7JeJ3~1RwbPa3m5UKH57jf36XA`-LNphkdbV-`YUjiACjxbrauRA6Dwm;l zj&d?;7omDNss*`NnR^>0#`(LoW8jITf9BIT`PkcJ#=}!g4fR6uAg1|H8<6{NlWC~) z*Z9qULm%EX`EN-7b-({QR||b={)hX$jO<;4x>nvq-c;U9-U;B&@=SRbd9i$uyab*o z8zLVn9|rG29w8qopD3Ru?9J?2g&~j&O;%^XvG-CSj9L+m14YNf?}d#l47!A z3OrLbO;N3wu9%^ishFjht(c>jtC**luUMd1s92;}49}Y_RV-61SFBL1RIF00R;*F1 zRjgC2S8PyhRBTdgR%}shRcupiSL{&igfD{aR_syiRqRvjR~%3rR2)(qhOcwgD2~Fj zX~z|$f>O}%Qi(Joo#;SxBsvip@OJV{q6^WL$Re_d zZbS}|OLT|dCH5rph+afK(VHkB`Vf7IenfwwkQhJ=B#MY)Vh}tBHyECT8w%eO8%~TM zMiQgo={OltN|Y0FLO~FO5}u%|gs0}z@T{Dc&=GpV08i1G2r~hnSs-kLop8XDb+J*j zkav}*!Bd0+u2t#k&7!^@7Ss6O-d3n8RVtNQrTJeux?Xqix=%e?F2;J+qef?~yQ&|e z_EqI!ZvQ(-NhJ9qb$|%nKJPiILd5NXWqQZS7R14~YyRt$Qk6+%R2lw>wLz+qKb07$ zDpD0A?vOu~`PcoCNCw|#g+P>3YOhrynTMYa^E+8nvXL<@hNlHf9Nk>-yo@^uJvnI9 zj&YAQuk;MjErh3NqJ@L!sU(u6AQdeufl~l~WsY?VcqP~s$~gCRT@H`sHEXQ3Nk$<=1u)@6*tgHr$ zDm)V={VME1b9-NWH=tkSBt)Tq+`WO-?oG(jG5sm6*D=#R9Qkz1u0(Pk>~ikhJH|9# z4(@>2*Ww-*!;F#;k9Ow5NIqnn%eWlRqoA<^dDzst5laiS&1%Zp#WdT{9JIDtB$8#C z0g(;B&vvbGuXCR=4nSWu?!!<^B>PZZZ8-?-5%(dX2HpM8wugMMIgh%J zA&GeV%}u8&fR|Mk#(Ek0zb4x2h`hNj z;t>&w+U$V$o=RkQ6pmDi@rwOM1Ib%H+=A8^dWf@q)7{Kd=U#1)NCIePV^W>5$IU$g zWgGHGB5C4jituWPx*z6Z45s&YCIDRqek{S3TOc_>w-rE%a1?@kth9uu=3=l!B8{}g zSQ}{9i~C9^U3*UwP^!iJYZs>#)vty4rNZ-f$-vnQV^0$$f-s(R5sUSfAdWmrIUw%h z9g%DYPll%xf;xLLJ+(03bM#>}?jgSRHS^qA!iW=gU0noxLCe9_YIZ$Y#a$A_KYu zt=OpjY~YngZUPm&vE+DiJyYyg^fW9+Oo1oY*#{*0dir_7Fy77Jkx=9)BgTUt1AyD#v&2~l?Fh#}Pm!nC zQ;Pc;;wkYA_6+h+hM}GlPC70!!#oO{Q-ZY#=HZ?ZC_6@g6~A?vs~lSpxY4o(IMFiF zGw#$HG_Fw|nHXKQDFX8^^U$D4L`so#xu-pjl-x5OG&bA3nt`aFkX->1a@5NJGXd}v z$3gRGke;YjBHc<p$V$wkCHBpbQ!3DKyVOVz{_cY|i0o?-Wup0} z!LHYN3XCR*ZG2&^1|%^am>;b$s z$76Xo@0<|&oDPwk;F+YI1+r@BDP)@H;T%&zYLa=9XFJU8WY1(g4nh7_X|JCKQq{=b zbk7XWA)LWC^fgXRgm+#+b9CM@)1!^d5__Ek&^*sv5ufi_qUi^HM+^%PZ8(bOXwyXK zd7(###vbkS5S|G*=Yr&7IF^W3mU@~ycpZcH_+_?b9^t9{Fr33yc$Ry{n2zgLd6pvm z)mZ1SeYWL{Wdh3fGqx0nk`efY;K^E$I1zU()d59zo!HlUPg~6;^=Yj>GQm=$vp{S& zdFG+{+K6Q)A*-7KI}i5$ycp2vwt(DDuoA(02b@XuTgBeCd$s{wYVM48QkiClAP-7UG0q~JJ zIn3Bp2L;b;Q()y7(3<1(=>^Dq-b(7tcz58D{t=X&v7YO(cVEOZ&wfbeq^9z_#3+-hLTO;QT-NC1mp0MW<(9U6ceBYM1e7_3(X5Q;a z>ZZpAoF?8I2+Q^gI$=YKxGt|@TM6FFYTlmaZrVJHb=?F@6Vc z7ZHZ5lQ=jg@mFmwJozt?bcZ7gY36%Vz!yiP0I;TpZr;FcSC=tsJ>cB|Q(-pGXe+cm z;T-}odbD-w`*?eM2U+^)rod{<18!~HO7DqxhWa{DtPtKp0I_Od@0Mgy9H%e90}$RH zQ~MbQ#_?}yHG~F%)G#bL#5=fwPAVGpnmc+~46-HO38pl}9oj%MzMq;neFexxOfslP z!6AjC6pn@^D^4TE>kRWT9Arn_L0%&9it8yRFUN9cfur=6dx-{m)9_h!59ITFv`{Szo$7HXG?G;-WLt zI|pdpkngu-=OVdV_$_E2aGD!(v8?9S%Ls zM6>ADZ$npfa3$tleFuB1F?S8-t;Own)Q00?K22Pmp;L0rMdaZrQ*SX>Sk(7cq_@Oz z1kMrlORZ)jwk^;zEn5I1kamGhX8GvSP7ozXS++d^{>%$crykTZHykADJ zT7~@IfO!XimWM`m2}W>Q^z9JP55l1a>BI20gd<4z7}R^bB!UH7$Gt~I7_N?uMKIbD z3*}vGKCM=Y``sb1&%k?aST6@}wh{D%5*8r=+u=Cj4MhY9MyWX|^18Z`VO}?QdYhKP zR|ZewH7ZEWM(`PsU=ry~e&HZafJnUTs84SZ!!u%0ro24U$uU*DQ|T!dDepgK{GS z+vy`_Al#XWlY}ui$454zz9)%uEQ~}VX^G?p!WtbQUcoLQIk_Ib7{-?dloUiw@}-D- zXL~GnFs^SpZXfOB%ZRfy8IL{P*H*ln)(^$KW1LjX^ZM<0JaaK>XRI*{_nZlMhkt5C z&|VZb>oIG$w=!}4M0s6&sc~bxUH)I8boJ%leq%^L3BI zV!bFK+j9}U2daDCK_(^}ZF~9h|3c;hWKn^y_Z=kq+<_)oJkubL`-9wJw3ES(2CK3! z)+=nFKLGGzL>mZoQ3Gz&*J9%!L~mgz@lA+$jq_oZ4fYN3jW8xc7VO0H*HX7ZKh!r2 zop*+T`~q>G9_||h_y{;gB0Hm?mLVu=zZAjcP@e;xL`~SZ64t^{%XIA=n1_~enN|ra zx`}CqR&70Dov-e!y97C~60Or>-AVIeV@sDj&aPm66zm$CkcCt&p_yV@53x}Adc~dZ z3QQAW=c0{-@1l06ZK6{N7AlaH;W)!ofKAX|(N$vGlR+NN*f7#mv(DE9`rn|@0#EJJ z`!v2b_AS9QSdj+b6p&jEJsFXn8S0?b1oar;`jFRf#q@(?=0J; zUT7%>irqKMHVtOB8V(1tavG>YnU3dsD)iw5jth=scqZIPQjl7U_DuMDs$O<@d|uyS zV_S2rt;Bp4-r%=E=ffH%ogbi^pta359U?Wz7=X8?g?x2D2?8f0ZbudDgC8(seQoQ} zXogw5adCyS189u%?FF4QJX-kc3iUJr)lmz7UQfhQwc1Gtn*66)Q^40~nFjIbVxeJf zrurs`JIhY+ayZJ&YTpdsQGlu=(|psx-mH2yX97069wlbCemke0%o5u)9OtMMqnQhD zm=oXyP+xIe7I&)Y5fzT$d|wI7$-H`YqS{tG!;2B`1j^l&2wnwmXG+s9^{w-*^{w%( zz`Dy(yBcF~H472AD)tz)`OoXwpjE$Y@~sD(8{x3RtZwklyiH=6*k^rBxU-MOu-P{U zbmrmpy9G&a{S%!XK;Mpd+pvV%wh%-6aNDpKiDZ|^*(pM|q;>;s&u#SmzPXWk5f;XD z0N(p|OFAApi0H?(hfq5oMsdV<7{N87#!-OIn46)MrG%P*9BXBmZ)j~Wqii^aBp0C3 zZ`2?6RXKauNuagC@t6Wxm}uRJGpEEj63y8P@jOTQE}@JS{9?skLugMI-de~3?Ihme zW4;qOcLaPethtSV@3J&SeT+u3yf5rKEA9rJ(F!?*te^Cq@CCq!i(+3RfO}fRB$Bf} z9Z=51QG|ZZ0Y1Tg-nZ0op#ewW#>y=1GDniV)^`bH+8SnSFZ<@}d%`<6FKe#?WeoV% z&M*V{breNlrs$(vgd~zv)@zQ=Xa%*0D2~Eeel4!w;kK1HzMJ6eeY!z>R;i7qBtw3^ zT}trqy6=XsNQ`{Mcg59Cydt{kt3&ql(QGvFM@Q7$p8!xZIC31bOo{#${-&4%XDoj! z1h>YNcK$X1we`1$TB$i>O@h{|zpUv9Jtq5az<3V9NK*Xm#XeL0%N-s3A$UV4?6Ag5 zwvM17)s3}YS9kJPIg-%`2ja1vg?0g6n`fO1^qXPa86Yo|&d_#)gF*Z6!pJy~t=45? zZX4*e7qZd?Q+gviT>+a8Ig+uj2co9?(@+clz4PbdYo$cTBCxU9 z(8*C{?d!-x{Mn{nus`?0viZaq|B}&I2K(FK z)hFns!&+&JGb(E5infKQ9i_m3iTp#1na(cA|Da~1e+gLAAiHo^PxMNVz9OEJrus)< zPBOAL9AQJD_QFg`>uJUMiM51Zo*!&KE5sJhF!+edw@AkX=vp{pArBd9-dcZsxaSykAfj9sy;1BtifjyxtF)ojc z_n))+MA>lwU4w{@@sCBcpno*xar)M1JB}(=a4R2<4oq+P@D)I*P~Yd{~E*L3SnbZw5dPh|yKp6qKD-^#! zUA)?fQr23Q_*X|pTIPe)9RFOXS>po#VrZjfo<9NNx)9;Bp^m`&ildyR{$>6>Fp@Pm zF0(|P3%V*i!nxX2kwqe1B3b2MiLrID7Hh9Z_*#s?)uDfbe}#VyqHctG6M~le{owy< z|6WU~VWz)>ct+U|+%U?%t^RHP?MQYX)O!&WaL$AH?*=$epN?i?2cpk+?egzc?*VwT zf2aR|zo&i+qQ}NA#d~oZaZf&s_{XqR5Tbg`bsS+eP#=P0edM73DCWoP2<>#_-E5e@ zUXW*`{|LxXSk8xch#7cQp2YO|Vs3^J<%EBtf%mh1#(&CB!+U)NyEnv@EMR|D&LP>e z*lt6q39vFQ0`I(^^ZUV<3jkmCU-Dn^*ZQwE(7EQn?mq!ziTH2$yFq45GqakAW<#V7 zJk8M0q-B)hck2wip6o9V_ltEQ%g}F z)_{3Qn1p@m1Z2S$!>xA~uLJGzD8lEFowi7)HPr18)JC+?UWDLk6lu&8SECH!6xs)q zKrS^f$J7OOiR3`1z+Ak$z-|-hS#Rf+xzYmZfsBCG)*+B)s6k`w6_^b&7x0*3@!lwA zH*KFP`f(lg3em?qwFAc9B@ohRF%D-iB%5x{hBqVU1o8tt0Ph|!K@VL6b(+k8MR(EC z5y^B8q#F)_2lGt1fnwyPRo7e0qL?2-tI{?x7X%7Hs}CFji28s)Q=Epy+ztY(a)%!4I&mRv*Tca);BO7X|KZlbQD)`OhafdAd9>0MFClZ z2nyUuh}Onf3?7ugyP*Y|P>w?!mx#WMx`QUH7ROd&IcSt3EjR8xh;k183JWYiv&`F4 z#2FrnB&DLYtHx1?G9M&|zWv5}}wjoLzxt#q^bS zUA=Re4(KM#>y78*JkF9McgzyFuYl!m^#FTGJ*%*@i)&7hvV%rB-dhCRQO|-Cu&uxy zeOrGD>=CSndK!Wam{p?}s2-7%it=GgWKNtfDK;PG`=K>KuIAaB!7g?l`WhJL5!_pY zSs51yiq`tL#v^zP)MG^|jKi`Ok8LziyJ1chw4peu$$=?>MB6k(X>Ob-a=N1Ys|I{R zU>4Lf;h2HBvr#)Ya2|4e4yM6%ya+`{edl@}mYN?h$H^~(H@4rBcf;G;rz3p0cr~&l zur#nduq?15a1+jG9ns839My3%u@%k1D$&l`z_v&+#IY2wq&0!nffD<=z#NQk2&~7l z3$-0lKl|h6qX5sS9eUUZa?{N%fm`a>B-+2_@8-Z3Or7tL`qmf&#$LcaX5NS3nP{KbFVe3=?i>W{fJiwMI2^cv)_KI%(W=+MS5%PBDARQ0 z7u-D%Wuv}9{%eklwC#{%oeakiKH0DkGGbTcC}4{KTJD^LSLiJBDxDXw2K?^Jv^z2$M&A?ZF##$-i@olQ=+I8y0^ag{A`moY7c23&_Hu$V{-f1UwW< zv3M2{uyv467Xw$2+$K$J;4*>)&LsrtuonCp)VfA}HER|Ocve)ng(wmy_-MWv_np^3enk*2^xv>FLo#|(b7=dz+-RH$h!&Mh zL~zSE3fvU}Y@@EXrn8|nKy88+lfrT=k{{Xc$+l#{w`JC$`MMzf^>5U-gHhZB&x4NR zk+!0(i-u*^cEKbpmkpztY;7Nm#GPT__l&{h;6dPwbvm7+oC(HMq_q6p~e!A`-B zK)Z&t$|3G)fOQc2$Uu-sTrob^2K6z+V#wzs$i_u96J3y0Aw;TkaIz&cc)@hU*)^CI zRJ$lVGu@FyCX8&by<1Rks|k=0(*e+5zL*=iAhXo8TEu||l{s`&|^`Kw@)Oygk z>RfBA6;~$wy@z0vGZ$=gk*(H^wt~O>JL3Wx;cRnj@jNMvZaC_xi@{$n3q}U*S~=nf zGD497b`i&@uXYORyN`AoYDWbt^nLXP8xIi~0di~ct_Aldf~A0O(Y4hxk;U4+c-M#j zpdj1V3>KJ$PG}C`DhkoyN*+fp+HZVq0*P4~C6$kcgfEuBwG!lS ze7Om{nLy8rY;d}Qb$|r{3!^;AfsuxSV*no?^g!KO+`mk=$w5C*Ccq(-(YTFboy}7a zK1Ifp&jA&US=t3a*EC0~|Xr zcl0U2&emX-VZBvp*$mWmh_ey%VRgH-kPSlF7CeBdXOK?D8&aa+0Td=WMS}BkVUv1^fF+L9Yz=(Tn_Qw=DZp_87DnjKSooE zBDxExXGPyun9c!yC3wwfMcnrF=KeJB&POf;FC$BH#nmo&9AEnBYLP^g)&%4>*)C$r zC6RMZ>{XCE8@wRm!Z(0o%lPO__ccUCZU+_FigJzt?(_O7+q-F zf>cX53?emA)N6sDW+D#PKf#1h^Ef=-k^r{`UJLR3EKu5oZlL(If-e>ccrA?X5+31r z*u~oag*8DwHI#IlgbltSCh&w(Bl;c1(=aDplo040gzNZ_N*{tfcn_Yhv3ER+l#1&) zBh)FB8OlP^dv#02b(e)LcZD_^!CS#nCzzXV2wSGj#S-v84}iL3tOv9`L#4(!<`Aq| zGur)0M^7VHX=oJUlw!W@Pvq)r37EW|q#WWf1Nu^g z2t;p==UG`#3eJO}iUyR1mMhRXsI#L_T!yT%Ux{3@=9=W#YD1m1FxF{!rr>-EJuF8V z;|3d7BNuF{P_|(ZL{$^lw*_FWh+mJafL%_Zvx*d<4>dY>CFsnEY7FT@Yn0P1bxs3$n;oT1Pd<4Th| z6bz|>J`auF5%OZ2wPp*9n?v&)v*-d|6R_!lc5LWIWHhusEZ@}G+fIOu1auZOfdAt# z2mWIbI$&`E)>rI5X0c%#!TU#)Ug(-G+JOJsiST8Z#VLU4QM~5bszeU_p8!X$pQf8( zVjLa*(`=ds_|(t@s3#+i8s>3Qr~r*|8nRVux>WBfrJ;Yf@VTMcV55J%E4>+^SwPD~ zqs%d+!urpG9u$t7;;7`Pm*(0o<~hiNTlQkmLZH`0R^cm#WRRaHO3nmmeyB;EAX@_* zn{8#>HAl=seA^Vsc0~C)82PmnSzCc^u0sC6JwM#S^-5@EXc^}2cCA5BGqBRfv<|_W zQEjnp#4>Q5gP;r)_e}sVhhr@qTS5`_DrmRD0r!y233a6~s&NppX@=%?i$WVhnYI?l zzj%-5Li{z_9fsAWC86#(3Nd~^$p6L28r;JO8B7ZSKMwezkX<(bBC$7gG*qol)wBYu z3t+VSLsKlN~}8qnyo={54H%`6Cxx?PDZQeV5p`Z6|P#K*EPtq z&eoR5|J@BFl5jNlA^P@^70uEvEOnrPbdh_hF$jH84d{Xo(@<`n4J|?|U!cHQ1NvsL zY_+R9jO_x#&Y&yjbD|Ymgiavn6vhX*I0UsvUWEZ}gGO;4pp&6>Xw>i*Az-78H<6^! zs}^#I51kI35h(%{&JUJ@x9vMoj!<7l(h*c&hq@K&vl)3M&dSx$F~B^!OuUwsp}p1> zH)mydP~9EX@P8yyYiNmd7sSOF{&sa`fkZBO38I|? zP#ZYf*J(~jP{{*KC z&|t=t_*$dJxHB%#1?^Pqd7`@#`>w@ShSak@xE>~G-d@t`hLf4rQSiOKC~qWg;T{K> zV>_VkA)c2S>Rv)CNrvTHVh`e_$}z7LS}BI(`3>P=4P=_(eMV7_-T{vut^nic=^|Ap zdZHv}LM9NR)EsON{#HeMv*b@pTHM-Sdk5K0bs5m#4HN+_*uRG7A!@J^zG)~xdgMt* z(K9$}0bOpdfG;1e2dg{Kde8%Hhj{HM=rt_Y>sdFEQN9Y=L~+kIU@GLX%Z%ZwQxdTZ zxNQ^`EM>(ltUKh7s3Nh890!6jVI*myjKk&<`5u7wKs21tx=90!+a~fPsEqV_MT*Lj zVf2fbk8Ex}fSxIhO2U7(FfRnH5x)EgyGPwe)U z1$(hFgXAC%23W;wA@AnGFdq9^DuQjZUtJbWP>LQ$QZUzgvO#AS`VY>TDKTeFQIH%B+6vr9GU=;<#y=xVG^>U@i7t~IptY2?i0J06sTC%Nm4JlANxD{~` zt}nNNtdGaAP4H#SD7@Rbk=zXMYP41bT6W!bz=g7nbXwaX+vD_GNkoEb3qUFG1=tua zv^z*6TFV0LG$?LctvlhHodWMx*+brfMJs)X@MJf1y7?P7fseqBO zWWd!6WTw}fBZ2$R%4Nt%7$w;o_0XrT0JU(PfZG$~Ue`Wd#NG#I+(|NK@iai^L@Y+V zb9)NQoh47``)kevW;UN84}-V;>T1cc;;wuFzS0`Az`<8r1$Z%9FP9N4;L&o0j6uP; zG4}_ruZomx zO`(RpTH6fT<_H$>1b`CZORz04Wssvad=*yU#FqguhPLpf*mm_e?cs~DNr>Ws*rfuL zg0M9(odG9!)w(6ro5`jt)qAQlzIX&DFz@h2{EMXTv#Znw8gd zMEt0>PmuXi9T4*x>JE(^J9A(W$oI7wo%9RD*tsP~pLN+G@y&dfM-KZ(9 z{`wry$)@(&bD`}H$H2NnU;+LbGUWr-lR9nd0qw2Q0sr}?2Z7u%22sL&C^3Xf?*hr~r-@RxPriULV%Z__bjim4vQQV&~$SDzhynKx>i zj9WK1;jAu{jSwLx)^vy#T<{IwC?9_RiofOyXGly7LL0*HXlTd4QEeY+8%tU3>0oah z;6-&+RBOoRL~T#QcqBUk)f1s^h3057!Y8463VaQ?q^=lN%^HNuPNWc zRIr{_LtM5}gTR+fh_gA4e@ik7?GSm};fu@-xlw!kQ!R5xHB?o)NP* z#IzP=^*+R(hvscRf)7A_1by=v_BT;Gs#g<-AB}@!R*xatacZ8EjN_hjQh*ggB(*Si zC-GHE7b{II#PD{!|HkaVeXKbBC1_{4#S!Qy(6u28l$G8pKCbS%{$D2t0Bs%*E zQq6DEX@)7A%x5*4kxff&bi^p5A+Rm*joE{BQDq z|1$+ub-b!hovNA+p*SmHjiiWHy2?dc)H|6k7+-I68Q%@KjW6RrGQeio9k>KSFB`-}OF? zVz%R~mfm%<1>zq~GO`zX))HdIF%__uo|Ovgb5dF%S{s+s7V5gFZ|$OF+rwAJBN}H? zjwS8Lsgp4+X1wsrMMNuVPWC2sN4@BTw8F?Ullkd*~y9y9>=rANV%d@ zql|o&eXw_W80l&xLzK-xV;xnbp?WlM?!X8SKulcD)ZAzp^N<#N*(u=Xaqw;TvG9fW z=uuXSirotO#G+a*b!N)2g2_?xQ(U-_cRHNvQu331MF{{;hi}J2KZ{m^cV_~W2zgqW zIwu+GB*>AJ0$-4azkex6gYstRP)0g@OMWzrU(CrYnvSBhPWDWwvw+_rJKNQYXfB0u zcb+{loADxUH}X>s$Si`K4>=KJ^5DDk5qWri3iaVA-@B6bRZIv2icAAy~Rtjh>}Sy3aQV z1|Ap>+J!~y5p{#BRbe^0-i&zL-MQSEv!iG`qHJ+>T6s^!;KYPz2aEQ(ynA+b#ZY!f zVFz4zYtf0>dy2LpY=0C#V&f>_dtv;CT>4>DA1OM1pIk+I$BJ}s{3nX;6kN|cizH7y zAb+yxDERM8(K(lM8tO}s&&Nn!DB9`b7mF^(aIVB)JHfA4V0alQUJ>0q8kXlUQ}8X zMo_sIZo2TTqC#lpHed>($ezqmcmHVPt|86k%!4(cy08v4mzSE=8`gy3Y3@cnt?)KH zK}Q@LN(b^C$kQQS%8CY~7LsAD*MnTu4}Hk*lXe$L!&$*!3}f$rM%o;_5lK@ss)N+A z^uB2`(vwp7ylQ|&Qtzy8`9{pTj8JE$Uw|mC?Y~rT26%P+-C(5kT#cg{q$gh&(duPv zOzo3Z(_bI3WVD0T@(+O?Hu5*~r?|d|SZ(N9fZyEwDInJm*-0x{pV%C6QeZ4iJQ;Xm zf#CT$jr|P(s*_vx8AWgH!Y!g`LsOZow*GW9H@*C6(2s8Z4pIDw zoi2Vm{X$}Ue|LXxfB&?T;LVfS9YH3wtS6N1{GGr%o&6gU_o5i9Xc?YeAUo$$O5IhG z2CW<}$UxDS?oWrd`hdh;7)K9(Uw?mqt?WTarynZed3N4Dv>)w5mM@~K=Rn|<#YDyc zS31&i2HNvVa|XM#QT`$R(NTQ3&yB$%I&)F~_NI>n&M^NN|4<~+!@E+{M6C}%_z3?L z#GL@;WXKc!3I6d=cl94b^RW+XO+pf5Q3>&wH4NsczGp21#$7YBRn|1bpW&a0>Z$(e zu6(3Nku=Wl14^<#3DM`EKGctjpK_^0;HLUh{25SZA;}KuX{e6yv;8^#j(6b72b4Mf z_Br`b=lKi#v!I^sNzL`o^Wbu;mF2(oz@Lz|2yBeEFKMhu< z7f^oI&j2(W)(QvpT@>ZzvV2rK5`sm)fa)yhbD_VP8)wzBy2370o;Lc|A&K>_?k1== z`!~2)UH7c9+^x6zx4E3{Q2V0RYXj*2PX7*YRojFCR$Vy9!Ma2j;+b+BKY1Ngj)OL-Rn%E-Ft;*pjv zMZqwG1y=#T;=k-Cp|xxNT415bmGJx9%qsSzOZ-89z`qn`+=8oYr&%kb<{qA@Ah}~O z5B1=BSn3Y}e$e&t@zg{#x*M*>s?_c<&YS-0ATtPjHaIN^yKum}=D}Zg#@I%^PE%MbbJqI%^eo z^m>tm`oBJ9cV@3yc)sC3j`rnp`G=LmQ|$ZNx)X&vQE(Z+wO~}8ytd%^y*JA0#j)0_ zdH7vqVdsm#pfvNSGav?1^Xs6KQBy>1QQX|+_Q-GT$whkE24StC z#kL4)4`pWrbtrCE+&Q-+z?~2dcO0-2^epb;VqM+38`KNE9``8jUfj#&!0D^F4}!ac zr-Go}xA+vS>(yxV4ZZ6pTocnrdtQfgQ*r;|rXW24=?*L&gzCXi4k_M{vTFWNfc%-m ziuZw?;Q*7a=SLJ@%sY>wzDCvSz_P(*5`dm`Qi-bsz()J>+*X)7X=Qk-5q2t3dO zT0RM$uI=r76I0K_3QPmN5YVI3Vs}4@rbXbar0n8Q!3E^C9?o3_1_V9wMX=aLOZ#|IUrGBHX@2rtM4j*PM%;IH zT3o!Qc&*D_?Ts~JmGyLPBl>C=Uj_Bj;w4ZnDqdJT6?*4nE%#(2n#(+Fr3+ znzRC_!=v`jteEJDSb))ar-pL;!Lksntb=^U^*Np-qSo@FG;yHtkT(@@Na(xW0-ghh6%K;&j(9_iSAR z-mJ2b9(|PuRmjY8<2xm4tz_pF6)!}+r%-<{fR!`F*;&Vm&lO(=xPdzttAKkN@GHf$ z+!b75^*m5dLB5wxc>7vo7g~e%)QH4sw3d4#8zrE1D@OC4jk6xT0D3#yjWjdE5A;xR z4vOPqfUhID$uP1T2pUyzt+)+n1QAwRyvEx*ZX!ycI1F`HxJUVCsV-<$jk;ngNcWzG zjc~bmn>Q|adU2mjx%5F8>7snA*aWUxtU=kz+qn$DZhKlM+}Vlf>BV=w=qb0e=)RS^ z4SCQhu37@~<*k>y#V0fNq*n(TtR?rX0y`aeuLjU&=am)DEj#J8SZ*1fYMXl*scY5 zEf`_FlG^D#Gn=HU;D0MWJ7a-6@AvxAx};@{?x3hyib%C^xp@%%txDQ>vTZ#mBGsX! zT@1cBr@f0G$ZZtEiAYzZ9Ej$QCEZGL(Oh(O<*K=L_maMd-l?R^eHJ<+yy?Pf@T)VN zQSRgRxDPLHEg$;7{#vhx@+$h%`=4<8l$?U=zz8=6`jt$CzZ@w~c|a=!>q<)h`}7C6 zczRSM4!lpshWRVJFE%SIm)F;lhLsGD(HaC;$EcMOD-UPxe19ck4(m<^aq<-wUE>;0NTjQlkFS1&`FOCQk3UCIi#CSxRK6fl6V zLbTN`hk%+cpj0_;@zV{hDk(;H31Ew( zb}O-DeTe|Hjjq(@l1(x46+PHmvZZ94%h~x5iESQjJA!sVxyz%a!W!QL*lx&8ysIv( z`?Td~uZgs>w`8cxX$yVd2a>~JrcY(;M^;9r9Voftt>=#Ds&WuCH75{u6v~XK zec@Qi;gXBsheIVNJ!#l+(b@AN?1Se$>S-6^vQ7bX)}tSBp>t4Q@TieiZ=$$51GI}J zml5Y!>T#&Ic>Rn>!6^x7=hF0oD0Bo8c6= z*prE9g%P(xzq~FjIh_$IS%T(vWJa8mNqXnY2gtAqj zHG=P1dl)n{MjM_ffKJ;$yC_W=d8STg`zTthr4BBq<9!mFVWduWCyzQB@KMnJu0UA= zSIRC>FD+||{LwjJWHm${=?2v9kk7d5G7b1W054As(6!-`8(sOJq2>33={(8^!ftS&%?@XZA{ym)dy(jGCHByET{HHQmJsY91bHN6c~g0myWK`X;2QF zH83zBP#fADn9_Y#yX5m;Yw!*Y)QA32?F<2UXkajur@>Aaw4O53Yr9v}5kTJzW9f$W zj#j`O?dq0-^rp<=fQ<=UPaPQ;6~;sQtSn=Z&GDc! z7U>Oe_opqHN0Y|^WjylXUeqJ#nR`;45SSU@KypT4RoT=)N?;mDPJw(Udor>D&v&7& zT9AqSkpS={L|;=jJ&+5Y*n+$TYcVn>`QwtV!mhLw^)|`XhbtpM#Xw7QDL$xE1L;t% zNlgxnf_>)%vYrtbJZE?7~|;TEpZL7)?^%)wI#x^Qpmkmy!F!W6}Gs^3n9$-u{vAUiG56Fhgi2D`+LIg<`k%KVb2C zAdF~%7*5E=f`L+i3Sca^pgsjH-uC3qzz%mKaMQ)>x>pPV##T3`4>FR_JiUs(DFHPw z*4xpS=a>&jR7mOpBVaw0TQ^uC1J@*1qAcJ%R5l`M1E&mmziO~%uv+jg;MH9lH9TAO zU8t5vff&uKgRpwR+ELVdt(QX$f!7??N`okwMjqT4LCu0qp>BfU7QyCF>+T(HD}Y-D zTO&@yUK8jEMEKZXS0p(G zu(agS!3l^u9+l&Q&2lCpsN6z%Imx3;Mo=p3yfss&1QUWjj}tBbzXkWroC@u&O`qnr zI^C@o&R*a>rJ51U^v?{|$gZE+#XU*FsS3%R$UC0B09`ZcqNuM2`^~KU(GTn#lhC|h zL3`H8s4GB{+giowQV^aTyo~lOJts9-04+9$*hmWwb7vp}$!yJE5X=f@BX|#L`*KzR z>>PmaW)IKF4bBQqfj-X6-H$Z4W)=kTtR-1_!Ig>C z+}Qnb8l8Y+i6KaBn8gM>36JJj)SuE++-?$AVQ8dax|mx}YDr?!E#FsB$h7q=RH|TG4S>0q~RxXk3s*@)4W|sErrR5z52U z71U-U*f9jqIOAOnM8G81S|O^dy1lz+Cv@L40k{`%&lBxjuilfbfHopqBHA5Vq^<*O zz1vEz7bhdoh$=K-SAubD@@5#;q}P*8uI@eASZFii7rG~iE&oJ%UDPR~8nV9)q__SP zjo6kV*s+}L!B!cU)5qs#p*VwC0)M7LjO+kAJ0D_eV&*QO?shqQf*CN<)^6NKEba^L z1>QLDYED`gZ*C%-@^sL%IRmr~0Ja};5Jm4zh^%cWJ|nWEx02gN**^r*m!j~a!Nab_ zBW?|Umlr&SU>oF4cvRTygQq;~aPG0RE9s{JKNDP1&@b!oeOR#s}5dW zUv@D#E4hE>#@8(m%SPtk@nm7H%Qi>N2FL`jcr8JH5qvF*0^@Y$ccA)G zPIri)?PVoMrYKk(BOCF?)dwgM>R|NT#(y6#j8@TE@aF!qonU`AYU5^bm)mBGoDkBu z9t=Z$3&DGUcRRSxm5A650)20p9?V5MT>weJJ`A%`3h?EO15vUO`A8b?uBHflsO)f* zL?2kMMaW~lU{=R4Rpk8EhxKfN37mU2cxVvK=E^r7lAC$ zG9RiLD_4OT!Q)`DasFv2PeMKl`55GT>6DAjMe%n8Fgth&?Exc@k0O%2^0M8P1iNBN zuRC{w=gKA`uUtghmt7kT9#|VrFwKko@;1{mtA?th8NO6@0rZ@Vvt`vnHGp!a>=^j6 zCu;j@dUe>l?gmZNN@ui>)k0bkD>Xy4J-FN|oc~;}bVmLU!d#3*^HIS+1tVw>y6X0{ zdv+byLfr=}m1{JFNUIOLE3O8tU7*}c^&-5eHG7X!4$Z!A_iO_4o6=^ZIo<1d^Pbi< z)J}U(t5K+NXdB2ie4u|#AE3Z)g=j@!quqVnwxNceADV@lhgy03HX%Q1b2EzI_Mw)D z)57E5>svHb?D->_+S%3W@_=?%MClaj=yI-Rtjg&SBh@noE4SJ`idN#b*dx>ps3v%@ zR}>e{stD^F3Lv@Q1N}RZ+$UtaXYq3DBSQU<&Oj*pLmq&zd*c}tg%9!Ip#Tl@u#utR zp;4hRfR9Er>47;dfi}m68o8@@97t`?8y~9g&Txmw2_-pHb~1Saa3(^Y6q<}IRrF&D zV5gHuCQnM^VSn<45n#_?NK7~|Jy0mJAvfJw3`Q*-`$JzLj{P}H)dWVJ?roKdr9IxfM$VI znrAPZrgA*DZ@i+LTdphAd{ie0xCoUv?p_&d&Zcb zS%PA%UBUIFHW}x@HV1q*l#|Yf7=WNh?tWbuT8n-KISKb31(_n^Mffn*g4^EiQ6Ktq zEtB{5cme#{#f`t~1u4+ab)ebPlXqOn^+4Sa8j!gW>KkY@QfPB%D_~n7Z-NY0MO1D_ ze5hkH^y#+*1=5O4&Cx} zYPd7E1$w_LuP}QNthFg=Ghu8KT(2oeRt|M52qYiPJ@3ZLyv&0T8{<7+Mq1O6q~_T! z??M0kHC~KGC__+-Mo2|+L-Udg%=j1Cb&+_k= zS9ABHzn!j&W~&*B!3vrBV5I@%HM83Nlic^lA5|TJb4JW0Jv4S8KSgArCoN;jnvkFw?VXWy$8#-;dU;+ zJ*qppSO=&(hr790r*M~WR|I#5a%;>;AGGF-bRIbT{uCVNUj-@GV5UnG|VjAkym(bj<2`yrX9{4GAWsZWhH^p-56)8IvKap+0Dl^i*_JZZm7R|28BivMXS%ec za7sAYg`<1+pMmFj(UFS!kak~BI=JzX?$R^dI?LU6V|$qi+$_itKCYZE?Jn|4)w}S^ zYB^TP$Gp5@9=xpM%jl{Ys$8|wLpIuDf#PznFiz^!9jTl7$BtjuDNS>nkpMbNVF za;R58UKw5$UL9WJ^4ErOfLbmjT>PFTv#5m^=T(#GG%8Gnm%95;g%lHJ!!&4eNZaRf zdBEm+x)riNSJy=Mq}9P!Lbw`~KbNEjdKi)1m{gEL4DW(+ALM%8sjdiFE+5VQ z@SgDQ@LpGEa@0zV@DGO%g%2VgbKe!9T)Vd0ld~Xm67s3=vG5tFPlSCaQU`zsPlu0( zkA{yRE9F|}qu@&jz8Jm`MTrn@k_ABiG z9_$a4n^AWh0|7r5g%2uSfKGCQONS!eVV;HPF%2nAOFNK1HQ$&E=bwdhy`61!QnVEO zZc{oWWn}57($S?2?&iUKjd86Vzj_XIu4Roa9bY;QXcN3vCL(B(hezy9_OK}cC6xN0 zoCGaYW9`9buGfNYrs5QL(;sUIL0V3 zinD?1=sqq3&p$~hH@jhvD`#%DmRmx%Pr)Vax1yD z+(vFIx0Bn;9psL3C%LoSMeZthle^13F@6JYAk4&y*A8Bsp15kyGU~IbF_> zGvzEfTh5VlSX8?q@|vMoFE9l1=tD_2#jDbDfQd_B` z)K%&!^_2!nL#2_@SZSg(RhlWyl@>}%rIpfJX`{4N+9~ao4oXL*lhRq~qI6ZdDczMG zN>8Pi(p%}H^i}#P{gnaAKxL3JSQ(-WRfZ|Ul@ZEFWt1{n8KaC<#wp{K3Ccuek}_GD zq9iCjWvVhwnXb%GW-5tFl9H^XD5*-ClCESZnM#(Dt>h@VN}iIh6ezQl*~%Pct};)V zuPjg&DvOlG$`WO%vP@a7tWZ`etCZEs8fC45D}+KSltL?v!YZ7?D}o{_l2WLwQ`RdR zl#R+JWwWwH*{W<)wktc7oysm{x3WjstL#(uD+iQ=$|2>jazr_*98-=fCzO-QDdn_s zMmejTQ_d?Fl#9wG<+5@`xvE@KiWI+6tduALC8&gyuu`gAS8gabm0QYfMOG9=RWwCc z48>F|#a0~Uj#8%FRjR7h)aq&twWeB2t*zEk>#FtC`f3BUq1s4otTs`bs?F5qY74cc z+DdJ$wo%)v?bP;a2eqTxN$sq5QM;<$)b45zwWr!k?XC7v`>Ora{^|gApgKq$tPW9! zs>9Ub>IikDI!Ya_j#0;|_3I#r#fPFH8BGu1>jNljK$)KoQ1 zO;PB^wx>?<#ZdJFb+tnTFPIZ^MTiv7X zRrjg;)dT85^^kg4J)#~}kEzGi6Y5FzlzLh{qn=gIspr)T>P7XEdRe`qURAHDMXFyd zR!h`?8dO7SSS?krt2fk}>MixQDyxdBs+y{+hH9#oYO9WVM=ewDs#UdWT6L|4R#U5` z)z<20b+vk0eXW7kP-~<$)|zNdwPsp#t%cT7Yo)c;+GuUHc3OL_gVs^&q;=N1XkE2# zT6e97)>G@H_15}meYJjCe{Fy^P#dHT)`n<9wPD(DZG<*b8>Nlb#%N=;aoTuof;Lf` zq)pbQXbGB6o2pIIrfV~_nOdTjq$O)9TB??&rEBnMA1zDE)^fC5ElM3WH9-?KNh{RW zY3sEO+D2`YwprVvZPm7E+qE6qPHmUATic`U)%I!owFBBg?T~g@JE9%cj%mlW6WU4b zly+J>qn*{xY3H>I+C}Y>c3HckUDd8>MVenL)=IR17SuvoSS!`8Yd5r;+AZz2CTohO zYMQ2NhGuG(W^0aiM=R6rYE|`WdUd^qUQ@57*VgOkb@h6BeZ7I+P;aC+)|==}^=5i= zy@lRVZ>6`^+vsiec6xiggWgf^q<7Z4=w0=0dUw5t-c#?T_tyL9ef55Ne|>;HP#>fZ z)`#dr^p6O^o~P&Q1^O&~wmwIntIyNt>kIUS`XYU?zC>TDFVmOnEA*B6 zDt)!SMqjJrI-!#~rPDg2vpT2qx}b}?q!;Sz^!54%eWSif->h%Zx9Z#U?fMRVr@l+y zt?$wI>ihKl`T_l*en>y8AJLEM$Moa+3H_vgNm_O+Ml++i(ZXnHv@%*7ZH%@?JEOhP!RTmoGCCVw zjIKsEqr1_==xOvadK-O=zD7TzzcIiVXbdt28$*nt#xP^JF~S&Wj5096~;NLrjS?eZ1dWgpHcE}_#tq}9am%=E z$cAF5hGyu7VVH(x*oI@=G0Kd)Mpd(#S>3E*)--FGwaq$aU9+B9-)vwuG#i(V0JV+nVropW>>SD+1>16_B4B$z0E#mU$dXt-yC2L zGzXc3%^~JcbC@~Y9AS<$N13C|G3HovoH^c{U`{kAnUl>aW`gN6r<&8u>E;Y`rkQ9a znaO5~nQEq)>1KwRX=a((W{#O_=9&3sfjP^ZZO$?0n)A&0<^pq}xyW2>E-{yy%gp8G z3Uj5o%3N)(G1r>7NtmQbnY786tjU?YDVU-unT6&$bG^C2+-PnxH=A3`t>!j!ySc;M zY3?$2n|sW?=00=3dB8kq9x@M`N6e$^SpV%yl7rBFPm4) ztL8Pc$n=}VW{DXvgJ#GKo2BM;^M-lTyk*`tWm7R#Q!{nbFiq1kZPPLDm}TZ&v#M3i zs&3V=YFf3d+EyK_u2s*fZ#A$QT8*s6RuikK)y!&cwXj-Rt*q8o8>_9=&T4OUusT|u ztj<;!tE<(`>TdP0dRo1#-c}#0uhq}$Zw;^pT7#^?)(~r`HOv}rjj%>qqpZ=^7;CIG z&Khq`uqIlQtjX3CE5Y(vQ>|&%bZdq+(@M0GtYj<2O109gbSuNkw6d&hE62*U@~nKT zz?x;vw&qxKt$EgbYk{@UT4XJ@mRL)zW!7?Qg|*UJWv#Z>SZgiZA}rFPEZSl$*5WMQ z5-ib@tU_y@wcgrbZL~I7o2@O@R%@HJ-P&R8w02p$tv%LWYoE2>I$#~N4q1n-Bi2#t zn04GbVV$&2S*NWt)>-SEb>6yQU9>J)m#r(-RqL8nWcjUPtHcUeK`Ug1ty1f{b;G)8 z-Lh_5vZYw6rCGXVSf*uJw&hrNtTOAaRn@L$SGQ}}HSJnN7y6nQTAwij6K#KXOFih*c0tZ_GEjConZUysrEE`x;?|5 zX(!rAcCwvfr`l_B?yOy}({*FR~ZgOYEig zGJCnb!d_{wvRB({?6o#-6Eq_UT<%(H`<%*&Gr_1tG&(M zZtt*n+Pm!C_8xn$z0clnAFvPFhwQ`l5&Nip%sy_Puus~j?9=uc`>cJ=K5t*JFWQ&v z%k~xfs(sBavi)|kU1A69pdGTqcBy^czG2_AZ`rqP*;Z`T)@(q1VI}MzMP9vwW)5K}&G;^9eEu5B4E2p*7#%b%cbJ{x{ zoQ_T>r?b<=>FRWIx;s6bo=z{Px6{Yz>-2N_I|H17&LC&7GsGF{40DD%Bb<@WC}*@Y z#u@93bH+OpoQcjPXR-N|q=oh&EY$#HU> zJSX2NaArBPojJ~2XPz_PS>P;m7CDQZCC*Z3nX}wk;jDC4IjfyD&RPd|2#0hihjti; zbvTE21V?lvr_fpFtammz8=XzgW@n4D)!F83cXl{Con6juXOFYj+2`zc4mby$L(XC6 zh;!6A<{WoUI47M`&S~e2bJjWMoOdob7oAJaW#@`>)w$*rIew?uDRBZ$&x18IK>?n@vXpZg}j_FvA?KsXIr_8zQJb2H0^?|>Ldr+p5^6z>e9P^9TziaK` z`k8m;-kEoYxpVeT=uYXKwq>2mMwLw}n_M=f%vUy}EU7HJY<}6ovPEU9%a}5*j4zYQ zPL!Q5D=jn2tTLyp9{N3?UP7BYxe1vGISF|Qt?%?p=%0|EFd?Bv!o-A{37r#~_?r5f z`I`G$_*(i}`C9wh_}cnvC)7!pnvjq%Eun5gK|)twH(z&O4_{ATFJEt8A75WzKVN^} z0N+60Am3o$5Z_SWFyCm(75HZPX8Y#&h9q=P7@E*EA>x(A z*b;0hwhUX2t-w}dtFYDB8f-0wV+2NG6h>nV#$p`CV*(~(5>|+@s%c;nVUTq-G^#C+tsXn$YS_2J!|xY5Wn3KMHy1Pgwkc@38ncu(bqKVk8I{|bvg_cts)(#gO6fW=RN{Ezprc;Ra-zUiZJ@iV^x9@Jfb5f_g^&iOqS zzxFjO{x^TY;t$ux;$M0RiysRz=C85%mp{ScXT62RPX^ujRk8Su?_lx6>w>+{vH0Kp z6^s8CXyc*1NLyVZg`2uTT{!Tm_}t-7#eX{FDa2p(VthRP66D`PemNe|D&!;e*uHOh zv^c=ypor8}B24Tj>K>48cQRC=J& z1C<`A^gyKtDm_r?fl3cldZ5w+l^&?{K&1yNJy7X^N)J?epwa`C9;oy{r3WfKQ0ak6 z4^(=f(gT$qsPsUk2P!>K>48cQRC=J&1C<`A^gyKtDm_r?fl3d=dVn7NRQ%XcPsLXq z`BeNbN5H=|hit>Y1J@znfE(BEiOq?|N`zZ;&sne#3Vb*t~^iSdJG&sW5_X+PvlJwIY9UNgx;smtMbd z^VaR7imK^`dB%3`l->Q|$1C^q<#N8|@_)kq-SJneUZZBM+I8yItKXnuqsC2|Hf!FZ zWvkY0+O}(7KK`HQ|BuGMXz`Mz%a+6VSFc%%6C_11VwdpCmP>^Zd=p7+-L`$l&Rx6r z?A^Ejz`;X@j~qRA{KUyqr_Y={cmBe~OP8lEI%^i|H}P8RsX5ePo0PS^wUp6hmDx>Q-aSUxcI<`_q)_pHR9>;!({R(>mdlGvJ zdm4KNdlp`9@f`L%_5${6>^Inp*h|=Nv6rz|uvf9)VZX;-!(PYUz~02(!rsRIfc+7B z2YVNL5Bn4LKK23jXY4Q7huBBhU$MVoA7h_jf5$$>KEpo8{(*ggeTjXAeT{vCeT#jE zRmG}d)v+2_O{^AH8>@rW#p+@8u?AQ}tP$22Yl1b!nqkec7FbKH71kPSgSExlVePRF zSVycA)*0Tq(G}~4b;o*OJ+WR`Z>$g27wd=h#|B^nu|e2iYzQ_K8-@+XMqnecQP^l~ z3^o=UhmFT3U=y)P*yPx)^#2H31TPUeTcujuGVGhU_HmInv~-Q@9M>~$TpWQ-iklEe z!^=i4RH+`vW8cPgh}%=85bGA#C9YT8__#||CdW;TYZ(`LLrayoo!A#~kHzi5o{HOt z{Wk6Z_DWpj4K2^WepVx{PF&;-EluMhZ)j;7H#qJ*HZ(5shL-MeSFl!b*RUe&k+@>) z%ecqmg4ok>VeI9&>)5MtH?dpTvvJSG)r_kfr(rtQEY8F%tX%OE=hyfDWdHk@K3@b9%iwbit0IyFd=ncg9&%v>kECte;q5l?YMXuVTAM?M zBa{;-vD0VZ3p&`vOYjPtYeg7*0xO7xvFq5)TM@pdW2Ob)Ji+e%0AG9ZFJ^YbH;&*t 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⁡ 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%0DX`?L?5GtG)_zDC|W_s z&=jqsjdUCxPbbicbP}CRr_t$j2AxTp>0COG&Zn((Fd9(zCd53FVUm)WqORhLSLn? z(bwq-dXm0L-=hCYPh)<>{FwO(b1!orQ-)$Fj3%N4Dn#Sa9y9^XMAOk~v=Pli8_)u@ z3U#3as0Y1(K7l=o-9jJ2p21$gKE^)7J~%V;%AuiKV^Q#Jk0!@`33V!=2y&P%;U@x%&(aznWvbinP-^aFwZj2 zF~4PAU|wWiW?o@lWq!xJ#=OqF!Mw@5#k|eD!~B7Hm-!R(9`io)0rMgA5%V$g3G-*> zbLKD1bY?EIkXghmW|lI`nU%~cW(~8JS;wqrHZU8RY11|_o0%=lR%RQso!PygfOAZNhXYWKKzaFSHnLF zpAkMi{1)^h!H)$$5ez}Iu@?j{3SJVtE%?3QHNl&Lj|86z{v>!$@VQ{NV1ZzfV3}Z} zV4GmS;4}tf80Ns-*jAi7qdcQOlYA!SOxl_7@CAG1;aoTy&WEeR)50y`dEtfO<>58q zwc!=vrQxmNec@jU4129->drKu={e&)<3H1X=E9lFXRe0_pVFO5IyLV!b2^*P;Ezj1 zQiW75O_lDGej%MFSs+;`UoKxNUnbuTo`3tHr*P&JbD9CHF#|CIM#zX5m_Znn!5Ewo zGm(shkup(?jEQFC%vt6fqhMl~^9;d|48_n4!>|m;@QjlAicv9YCYI4KT1Lm{83SWv z;+S|Qfk|YNm}Dk}NoCTQbS8tzWK2vJlg*f!95DX5jD^W#@);{rz!Wk?Ofgf!lrm*Z zIa9$@GF419Q^V9Ubxb{DV;UGc)5tV2%}fi^$~YJ&)5f@%o$?*>qw)jtBl1)7)AD2T z6Y@~GL=MZN-9Alv<@0X^yl+ z+9GY0wn;msb<%pNOIju!l3tTumv%|Vr8lJA(g&k%N*{}QHtPAPx1!#OdMWDnQJ+Lj zkNP<3{ir`jy&JV4YDUz|s1;EwqZURTjS7kik2(@{A_|U@MJb}9qu3}uDnufXh$XOu zlqe+3o))|lZ^PR`{>cwLwKE+|C*x*3jF<5-T}(IA!}ytArjO}o2ADx+h#6)sFeA)G z<`Of?TxQ0YE6i2q8grc)XC{~%%p`M@xyAgIna2Kz{V{tF`xEwF_CEH0_5t=m_96DC z?9bST*`KqIu)kn`$^MFclzohSoPC1*HTxv{6#FzgZQ3*JZ`fzq=h)}j-?A^TFS0MO zFSD<(ud=^mUt?cq-(cTl-(ufp-(i2x{(*g${UiG)_C5A}_5=1q_9OOV_7nC~wg(@? zNAS_HgREa5ZrC2FZ-r|3% zd{}8dZ#kcLzV5vJyfxT!KI&}J*^0BDpF4Q2>YVJ{=ZZs$GpvAxS%gJdjD6{3Bpby> zvvT$RAJ8WaHUHHi=DPQ`s~&oy}k~SrePZ=CHY} zh0SA2*iyEPEoZCPYS8~5disq0Gy6IF7j`;3gPqCFVrR2+*tzUHc0Rj+UC1tC7qd&) zrR*|xIlF>g$*y8ovuoJ3>^gQmyMf)vZelmHTiC7aHg-F^gWbvQVt2E9*uCsNc0YT7 zJ;)wn53^seU$RHoqig_sj6KetU<278Hkb`zL)nv{|6%MY_B0#83Rw}0vtm}l%Gh)4 zd6r;FmSQl@TG;}&kS$^>*h;p6wX)3kM#x}A|Y%|-+ zI#?&$&UUbF*2jhuFd-+-5(*-jh$mu+G$MmYrBmoEdOdHVb7%`)NEgthbP-)m*U%00 z9A*|Xk6FOXXO=K4m_G7h>K$qgwVHC%UfNHO(1Y|1dYB%kA7CC~9%Y_qUSjh2eE!qZ z0v_ctK9WDnx18g6CGXjm`FrKZ$`6%)R(`IWt^A=! zf7-Mzwwvu?{cJDW$M&-W>>xYD4zm~75%wZ`i5+Dxvt#TP_9}agz0Qua6YLFklD)~^ zV*koc<9@{bn7fDj33o4dA9p|Z0QVsG5cgB=XWYZw&$&mqUvR(Ve#Je?J;puGJ;D8& zdy;#KdzyQO`wjOj_Z;^;_gn4-ZrZdLxtF+?xmUPXx!-ZGaj$c4aBp&Nac^_)aKGpN zz`e`;k^2+(9``=?0rw&I5%)3o3HK@Y8TV)IbM7zPbZ!PW6CC4zrvLaIn8nTJ=5TYl zdE9(%0k@D_#4YBQa7(#m+;VOOw~|}Mt>)HnYq@pYdTs-^k=w*==C*KKxozBbZU?uM z+r{nX_HcW-ecXQT0C$i(#2x0o;J)OJa7VcS?ihERJHZ8VL0m8w!i91txiBuAJH?&m z&TtVN1jbIl2{{o5a|nlW7>9FWE|QaQQZ9;OvPaVk#zKjZ%&AAGQ9ET`eLoQ~6T2F}REaq(ONm&he?$y^GT%B6AXTn3lPnYb)2 zn=^AcTrOwf^0<7?$`x>hToG5ym2jn88CT9#aFtvYSIyOMwOk!n&)K*J&dxP*OSpl|Ns2X_wYaA@8$2~@8=)jALJk6 zf6D)if0+L{{|NsJ{+Il(_(%E2_{aGt_+Rr+@=x(k^Uv_V;h*K7<6q`~$G^k>fq#$x zl>dyM&M)DY^DFsP{AzwJzk%PvZ{xS~JNTXa9{x-I2!D(}!3Xj|d@vuvhw>-+Fg~0= z#Ycd#gLok?;$a@)abC{0c zg0JGM`5NBF+xbSmnQ!4+c_-h-ck*7oi|^+Bd>=o^5AnnN1^yy`i67-J^JDxK{wjZs zzs^taH~GKv)096_{#bdB@+ZoB!M}g*Q{Jz9K>48ZA?44Mk0^hs{FU-C<>SgHlus(3 zRz9Qrjq+LLbIRwHFDPG9zN~yj`Kt1F%GZ>yE8kGQseD`cj`9!6cmEIgH`IS>0Dj<| z|ETU?x^jkcrgD~Yj&iPYo^rl&fpVd8k#ezeiE^oOnR2Ca zm2$OmjdHDWopQZ$gL0#ClXA0ii*l=Sn{vByhjOQKmvXmqk8-bapK`zQfbyX7kn*td z3+0!}Bg&)70Oc{|apehRpfX4qtPBBT7pgp|3{!?HPbp6;A*DbmRYoag%4nrrc~*H& zsZho!&npQfsbrO$l2@vfYGtfaqtq(j8V?h99FkMrGS?ccT0|K0oV zww^Z4_;0rVefw$C^6u=Be|OKsyG#Gr`roZd{ZH)s?~eUnw>=j0A|A}iU`_{fCYViN z&H{5bnE&6Ha{omaHW$CiP`)^N$x*}b%u0&U=E7O(h zDs+{)DqXd%Mpvt=)79&2x(3kRu4~ja>6&#dx>lXz@Am)pvHo`~>-GQYs4Bf$AFJ2s zwR)Z2pf~E{^zr%xeWE@|pR7;Or|Q%6>G}+PrrxB_(r4?<`W$_(-lEUb=j*Nd0)3&r zL2uVL>YMb<`WC%I@6@;HUHW!?hrUzq)_e3`y-(kz@7DL|{rX;gpT1u|pdZu^>4)_f z^dtI<`b*&2TBojWv+?#-&N9TQW*ZW~wVEJU-#~kdQ^Q` zJ*K{*zN)^azOEiuPpEIGC)Izu0+m{=j#X>aTD4BCR~ytub==);e{1uvUT>%-RTHY4 zQ$1f`SZG*eSo}}#&%Zj(f0u1l-x=d_@UHC6nk9GpT{E@Dq3TpEHPlZnF9X}^z*32- zR8^^}P}!%}HctKdbkShW7htY_5bR8tG;u+|ElE=xy=T8=2W+-UFvpq zhq_bkR(sT5weNesN2TgAb-B7iU8$~8SF3B(wdy)`z1pU3P}|jw>Lzuwx<%cpcBoU; zY3g)!hB{MiQfH~N)n;{$I#+E`=c)76R&{~8P+g=hR+oJ5Iey4{@gF_6#;7&wjC!NN zXf(zd(>@e&!>@w^&>@n;$>@xtyz;MuT$Z**3h2cxX5yMeKfZ>?oxZ#8$&=6z@{uiI; z5JRZpq#?`@Za8H)ZHO>H27y6n5E)WdS6NhfQ&;-+@f3!b zsVkmtoMD`4oMoJCoMW78oM)VW_cQc;=l#cZDveqbtI=q*8l6V3F=&jMI8D4JL6fLS z(j;qAG^v_2O}ZvSlc_OjvNYKmvnEHAtFdVEH2E5ZwYr*2ZczTCG;6)oTq} zqc%<(uT9V+8S-GwoY5GwP_o)c5S1!N!zS#(Y9(GTBo*6>(aJsJG7lzx7MTe zYJJ)+ZMU{Z>(};b`?USq0qvl6NIR^(pdHa()Lzn#YAOu98dRTqo?|yb~{Lb0Gxw8M8mKGQn z8W;W3el9jHF)p3jy6m5}`Tuh_mVeJtR!ps1XJO&e^S4QU*g)8{~jR(rYLQBXA(x>$ZAHPhad5pS|q8y)jN&FBIs&a@E9 zE39u=1ZgW19gCr>+4&9aUAC4b&{D{owG2wiSPnT0S3nlWN~o_^lNncctz{K-wZNI5 z>{t!0f!0FRCF`K#{Pj?(Bcr&-z5z;VX{*yWU&+yBwG?cG%w_h{^72hklX){#oo=^p zfwn?cM``|OS(-hizPElGs8!to?S%TPc0s$L0>>U`FQ{4F59(JBLZe0YqC-%B#bHp# z`XzJ(ItnUVk3q*lm1`iBP#y#YLm?30bfGX%>snoS3hHYdZ$1qbRoybF9Bqx)tPxOI zlQy@|(NmX{4}l6;gF^_FHyCXq2!;?S&oSb>TAO1kTc=E*UYV9;>AF<(<# zScpSnC=zNdzvPraV@@d)1<9ajsJf!xA&1UF=b$!wT2)oWkYm76=D30q0;IK zsH|G!tc0qdYEVmD3-x8zLG@64rVVO<>`)`r1T{msb+wtQ*0I*c#ulijrWLBoaX@Nk zyVKKn({VBDTI(&xghS=*Dse(>kg0LZ(cyGKHyrIyPiY6#3E2wVkO#Wh;7ajAKB&Q> zb9O;mXE)RX`JrAY!I|XjgW{d$s(xqy8ib5aQ_B!E3|)Xa(+$oM=w`u1sHW-?6z3d; z^v>JDPKxsibQMZ9U4yPe`ALAAG9VqX9$v= zGX(>67jkBS=XK`@<_hKsTFU2xCwCWuXLlD1mI#)DCwP|&x>8pNRti=LoEgKW4CiXW z8o^q@I)Tc%Ua$c?-`nY|E5B8c?c5~TEZ8F03ZD0Et-hJHU6ASAA;@yZrg|IA&Ygl% z+b)60xm&PDkm}qkNOKws)1CXklfjoQoi=0k0YO*(K|!ALkl?W33&EFy9On^1ddg8j zfZ&**$a!3FLJ%kj5(EoE1fhbHf-pfiNE$yah!B)GO{tK;>J$is0&}KFa5*0qAOciS zQ8Sujvtxo{Cl1oc`|=_M@#zwQ6l9W@ItTM*f-+~W(_IoR$afYx3!HMnS;0AhLJ%W3 z4-(5skXcR(7(r4qE68l&1YPAkNGSgbB$Zb<)q+@%Q|`1>Ikf_vKrgU34T5TCe3=oX zn8yne1c`!5XObWpq@AY9?%)0-K-#B%)_#Hwu~rlLgI! z7C|e>N57up6toFkf_6cNpi|%$ctDD}59F+O3wi{8L9d`s&@UJe3<`z>!-A_B7X)?A z5kb9Eondoc6kHOxGe!lM1!ICMf~$hUlxu?Pf^orw;D%sQa8uCW%&fd6m@b?loC#9Z zXA9>D=Yo9o`N9Rlg~CO`#lj`Rr66&AImlwaRKHTVO1N6MMz~hEPH18PlG(R`H1-|Box)wh-5`y<#hFyOSGZ5OALNNQJDZ%X&VxX2JPdNhUDaO-jd@3e zM}+~xW5VM?ec1_NpfE@n4ARC!g(pF>csNKHZ*)4Gr-czhNa%D5ghHVRq>m#)RM=C2 z32~uV7%7wprNStoOc*VcgM|2VLWM9!*j{j6NPuK=N=SpWcvi@PjB+K&FINfG!dRh3 zs1@pjdXQRf1c~PH!USQWFiDs!OcACE(}d%uSVvV;x-hP(#nzqP+MFS*sP~yOh1FJ* z&{v!#%odu3c2kZpS6Ezo!FkbX5#|Z=h3T1AVWz17WS|!bi-jdZO@67cOgLCkF02s7 zS5ykCgw-kW=J7(Gvs!2=NHf<69p-A=_0;Y%cYb$fMQg3_dV}B6Syd;j7v@>~&R&O2 z*dS~xu?ri8P1$)BO~PiOH_h49B5VZ->rP=xahuR3^cJhz+!gJ@3|ohAGT&I*2~yTQ z!Zx#47~AF(8k;n2UBYf*kI*md72a?rnEHhM!ojTZ)JbPg`qlga;Zi^Ep2MzmJcl4UDzb*vL5 zTi1h>_*|F6u~D>1RAWoZ-7MN7+A7K)v=v?{9BpdO&dAs%x{|(Kv_q6%xl^=Dv|D5= z-6Ps7+9z_B-YD2Fx|n)EAJ(kg2*YOF^@W9FkG zm!sX$Ybvx1)C7o*iH?g-hyq1HqHFcRq7Fw&d59=fWHZO+ofL(MI%~p3Rb{6{r$rGW zNF)$>970j2LnMMlZU-`zXMZaN7xm_gMX^<5mPn9iF9nJAso647wCF;%Ty$1+PNWdU zh|Yr?ds0M+Xpzssh^q5gQMaSZ!HIa0QuGx_x}Pjni(*9@kyfM==|u)nkHaX66ZswS zq6AT*C`ptoN)e@sbcJc6l!~Dgow?C+sV>jeSeOnH@-syyQL<^GC85-rm+!K=vP9V+ zIsbZrI={9cN0ckFfK>f_kf~n)Qud2P#i9aNSyhRsR8%I4ODh*uh$=-zja8zq;%ZTR zLk-B`uM^daid;5Pb3ud14)XYmT}`4?YqO|D)GBg_oT4_7rNkv_7j=j_MQ!D7kks!L z`9Ma0H%RLDi+V+UqJB|{Yd|z88WIhQE{H}%7e$vuea_a(QPE}5m?*=1v96-&is-87 zn&`S{GR2-TE^^u?L^nVh{Y_E7^OmT(bI>^*o&nEG!monsC>7j9^p z2NLVk^G2)-;N1F!@FLjeSPUI0M1G~2=}C>xh>5GYeG@8Bem!d+~jDgI}Cf;zJLqrzJ!m!8IGi4 zRby=3Q8>erQPEHo01xMzY{y`4+i~~=90&)&-Q~e>2&_*Jg-1=3H4_CVLFWFof^gW} z;B6>(oPtlo5ikS`U?D7mJJVnofqM#2_)-oA<8XyT3@0{4!V=h9U+Iv-RgU8NDENAM zdAi&L1vJhfVHGcW#R<&)Hm&5^Jio8fwzrSylGN47lE5vX|!MSLfGc!ddQ%nHg>q zoCRmYR~pT5Q~I^+95~0F3)knwS*~PS;Dp*6#g}u&3W{n+>$BaZ^?7hXk=cE*C?B@M z1@O)MLfBncQ+v%`n^ov8f=k@Ra0z@Vt1_j<)Ra{UC*<6$X|kqPkCm0dhL%!yIqa)T zPp^P0;mNwpj4HUi?qW_g?5(ST^BQX5I=H}H58L3ej0U(W-46S+bKQ+_6Wk29z@;Uv zu*IF{&UfdQTHQtN)TUy$1I{UT)H&fc*aaMf4%kuB30Jw@aJ}0Dx3_p%Is(N-x2q@MU-m z)-~7WT!Cxy^BN1Xufp9e*Whw@zFBX*4v)i=h1KpF_XKQn-+(9KoA51oI^uHoxMv`( z?iP1tYnQv*J=mkS+ubt}qjeVIYMPBySex8)kh#b_q^5p8vH2)`_%Nm;94!6_Y?p}@ zT)GI+d0+%VP(Dz_fg-zIn(kQ+^QRd%Hu_RNEedtiSuYG3q9RPnx_ZxBfUr;sPC<)D)tN@ znVvzUx^4(5uCDczd5S#4NVVqzlH;*@3OpmoMWoboyAHVAQ{lOc)Of~_T+bEcDsm0E zj*KHs)yq{UIywWjdFm`P(OGDNXEs`tUFw*F&PC^e+TaD~LUa+R z1Rk(0L6@QhYWe)yd&gRmz>72(;S+fvRO8daW$MG1%ny zR91;VRV{*|XpaX&aa0T{ms%f;!$pv=JuN~C=+Dn?yX0!!uMIERUZ3Fec?dXuF1MNhIJ#J75JXT&(?L{wm9JwaPsC~p! zTI)mGOkHRr6L7tj&(B0B1+F<(MQ(FwDq z_OjosP}GW@59j+1MOxE;bLF zk1fEic@|=eu)^BK*b;0hrmb3rEyq@1E3vkwR+rPY3Uj!6&F!uZmm_mEwgzi+t;N=1 z>#+^kM$F|>rMq35u+7-@+$~sE%T~E)udT7bFa5H zTK8i6u>Bz8;2_p-J%k;`yq5HuPFG{fV4Wk&+*(xj1qOt|f+Lu@<|x+d^15=$x?BNR zpX(TQt@Jo{0t>_jTtQec*6%8?hG3!CNzCu+afM;wAT!}K7J->F5(?BsK3BI30tpI2 zOoY|ihFvg*U?`}q#j%cpQI{Bt#3Yy$i^61BH0CqOv9s7YOo3f?*7=vAKvDhUShw+#a8+Uz$sX$6YEHD+dm=4op225p+O)+9| zSUi@1C1OcfGIpsb1xv-s(??usSUPsym4VsI#$1`03A^ID=DO<2!m_bjE;BaTn3I-+ z<$}D2o31=8AG2ZwSRqz~6=Nlsro9xq;VQ$*u?mm|G2yDhs<9eu(&Z@~&#eX75V7s` zm<`jmH(%cm(ev=#XU|vk$?gP0J z-5^;)*Y3xR?V8kHkSHPi{3J-jNNf+s zPvNKW2pqx%xDXfNRh8xv7)Njv$8a3aD^F?{!aSb1;iLV*Wx{jwg1{-p7#&Lbs1bze0s-47d;wAQOtIgsy-NH*d zr;BHZXNqTu%Q`Kt*niKzvX<-qTw#(Q~u*kT|t9KfAB!u(+Y( z3-OoY8$CzFN5ui+W8x}PwdJ_@g!pEI${#4cP#h!<7KeyK#Tx%fahNza$8> zrmT9k-%>^1@#?$sip@HIvn{!f1#-R7pW^4mI=fOFmzU`O>aJm*?AMAL3Ut7+udy4Z zBzwIj{-0R(ss1eSReSc7XJ6f#E52205qH+=isJnVersNmKi!`Pg!?qV^^S3G@)wJ< z{Uvvl`;n50Dd)bTc{yC9zBeM$r(FE5tTK!{{#s1~M1~2iiyrY9(wXOX(KKNcBgy$9S zzhi_So>Ia~ii`Y5{)H4?=syLl@QAxoc)35d9*!IvL?Y41DnEAD3orFcff(LtF;>dH zrG{r(Vt^aoSpSV2Ug2jWEB#z#ou7}i`IV7hMXDkj{OZWqNKIt5zd2JIS>xA5>Lcs@ zhDc+it0XS6%pVV&@x;ia$mGace@bL(WLji;M(sf4VB}C_vwt}9y7NNhNMwuuV&tXBQQ+2&MP31R z?X}2O|8*ePPDI`SitWwFTanWxGwurBb0za6jjbL2`I1h5tJT)DK+@9c&lst0^A|hn zTGh6NlKSFBlEo6YKi^VhcKP)UOMv#R&Z#e2CW&_}pEAD(t1k4clC=9*ORi+Cxubvk zD>g_rO0JY_0tR?m&#jUzlF91yo`mMDk_(NFshkfshL&#Bz@_ZD{HMcZ1yTsPf_lE$pOhhNqc>Q`OqClytV0w z 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

76oqQj2A!fIIXy$Xs5LIbx-Y|c{S%lel5Sn z5$>f+>C5RW=%XA*<35dmdy7)We8wr}MAo~=0MR<2>f9;3WxeiU&)lNc+i{ zG9OtNrBFT9v)p@k;M2h8VISh_B-Br&r@S}ZEHD-EOWbF_pkHP65hrMT^e*C8nhaJcRy#@v+L~M_k8g)2kbK=pYxO8d8(5zFrr}DaR_xG1USxrHaFIOs_sGnE^uomGHah=Umd?B26}tm>d5T@;Z*j+F+%#x7>FKT!yBRx} z&DrBv99|#(qo6E4OQ?`0OG9L#a;lN2D zX-d+u)cTpqOikA38SRU6=Wa?op8KFQjon3&q}t_IQs}D7W7>N~dUO4PBbhNS>0LAH zYv0j_GP^O=%xKmSwvxSs*Nk6BaMb;iWUc&z{Iw!bDS`fX)c5d=30x7_H>hQ}UwA}J zBUj?PiCUjb+W_tm8yUx=B0u8hn$3z66bp8JtLDe#&GP z(&>$ucR119Pj07#D$z@i46?5G|{~j7gly+)>BbGJneq%QECi=!Z&wqenCTV6{#v*xikv%j!sb8d5*b7P_ZO}QC77JmUhM#vR;h;l`DJ??wF_Xw9HNoGqnO4>@< zvT5=n#RbI@<#2Uv%~;JFjgQtrSEM_lmwNZ~(fjoCo$EUwBrViCe01cE=sGcNVBFs4hpUv&de+fay%wZAQLtKeqt8leQFP*OVRXI`@;?m zQ}xkq@miL0s?ZR6u5_BRZo%@>ouO<^19~xYHzz>+K$fpks-?Pn0f&RSh7?65#?DGj z%DS8#o@ZOKLcLs*<@Fc+EPWUwjxmh=f%A%Un|ImmvEYdCkkBM#il&QeOL|GpOFPNx zDf_9#qCeEz)eqEjwF<8&uV&ukgC<9mM|_BG7t}Q4 zE7?a2|1S3P%A${8b8vIu zI|v+v4(<*jhaQf79j7@=$Lnv!_1P6(Id~oM-ReCmaC`9Ckn-?h5sl-2j(?OeGr266 z=^a$CmEMd{aI;AFOj@mb1R79JYI`N&d4$ts497z4$(1rPlJxt8eM*IH~I4$pB zUax|?iMvJpr5|O(>E}4Yz9Ry<1!w~fgwzW22(J~Pj(8DqBeHqalIWo^h4JT- zvXUpKc%;8h?~*wplbacoDbK!^{ac7D6(dJ)T?eVji~a8%$Z z8Y0;z`=XL--L&I;HUtKRC?hu|2WD-`voGlH_J;qZcxW$zc&cckFZ6mEz>N)y4@|t5 zalM$AwkCJDcnISr<4;CCp1u23(L>Q5DP7)AxmrC{^GsK&5BGWL^K;1NkS<}8hdO6*O9U^!lXe4eQGEz)WXqdS#S6S#&

!x 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%0AlurG0{ZqJ4^en%&p#Zx6Od*dy)H_E>wIJ<-m$ zC)-o(0=v*IvZMaX>`HrvJ=3nTtL+B6$)0V`wddJw_5!=p?zWfMXV|~8&$7?4&$EAR zUuj=uUu|D!pKsr4-)`Sw-)Y}v-(%lv-)G-%|IU8Ye%gN4e%^k;{-gb8`xW~W`y=~f z`&0Wf`*S;)Pvz73)$*(7*UGP*Unjp|exv-x`P}?2`Caq7=l96(ncpk_ll(#X1M`RG z56>T!KPLZ+{3-c<`GNT%`Mmt_{Fwas{KWjEe13jPermoZKPz8SAT2=sPcP6E7z%O< zatq7_o`RABZ^4X$IR*0zzAji;u(Duv!McKt1)B?Y7VIwAQ?Re#P{HAXBLznbP8Xah zI9G7K;6lO0f=dNI7ql$o6t*dBSNMKm`@&9z-3xmb_AUIluwP;S!U2T?3x^a=ESy|8 zwQyRYZy~QRsZdxbFH{t!7iJWy3e|;Kg_=TRp|!BEu&B^e=q;R8IJ{!dC;lCGll00&lg@OyjFO-@NVJLLdt>q&vLLG)g8?o%^fWrtsQL~Z5t z!{sP)lsLSOnT~~y#g1i;<&IU3)sAl*YaQzx8yuS)n;lyn+Z{U`yBvEQdmZ~7-#HFA z4ml1xjyX;`PB~6H&NxbJx6cF4x!hB?EX zk3iqH#qNiY6CLEea}HP_(dU zanX{ZSigp(5E;>+jsOU)1@uCw&CyTx>I$LzH=u*+; zqANw$if$I&EBdwQLD7?= zH+466w{W*|w|9T!?(FXA?&a?7?(6R7?(ZJx9_9Yr{e^pqd#ZbyJHQ?6=DEY&k?tsW zj62R9?@n+hx|7@jcbZ%5mbj(v40onmH}V~UfClZ#V}(~8B#^5UP1?-f5Pep39Nhw{|*H1;&{wD7d_a6DZ--8?-!Jw3fV z{XGLb!#x8%pLvFQMta70CV3`%LOkJ~Fi)f>))VK6_au8n9dLD!Ec}v*eeOTP1f&?v~suc~FA-|G4Bu3FT#Zt9$EseY|zO^}G$djl7M$O})*$ z&AnW28*h8>hu)98UA^7CJ-ofVeZBp>{k;Rc1HFU1L%c)1!@R@2BfKNMle|;BQ@zu? zzFvQCkT=*H&uj5oy*6*Yx6teGmUw4)XL`T#&i107 z5Jct<(x=-_(&yujgwLu0gwMqbq>p|e;WPar=|lWL`YipC^s%=je7@!oJ`Fn)J_kk+ zK8+g_J`yPNumR!Iv?t-?Y(w~@!@i!ugwKZdgiq=y!sp|@giniZgwLmtC;No(L2cDU zQo6K;wAfnH#{kxwUlVU1e1+>X>MGbZudYm(qOrKl8k0VG5|ga2%JQkVEIwuVB=z_B!)|}b_>+2>%@jpq2Lv1> z$YWL*hp878LLRdTJ7}F*%JyN3R?rGAssMqj!1b5q{PnbAtEf`k>9YFE0{cIfqI05R zV`#m6!CPLgq7&!UrQZMWg6<$b_+J1_e6ov-lk6Envb1+;vD%+jUeDBt1} z_#A?bZ#$}JKa%o6M-3M(tNUHkx3v4#?6>u!Jl_W$0is^L@|?fqy;}IK<9@Z+zh3*7 zclmb<6hV}pYH&c_X(>G^;D7k}R~Dao5Iy`~S)cz!W4H)xXHLJ;9ncN9)WsJD(>l(9 zlM{-*y+T~5!sa)1oOt+Za}p9 zvksQl_@)Go`JXMNk*<*Z*&fXH3e8a!b_VyA@%-z`URHtz4nt=ug4}<-+uOFnsah82 zmo-BOkPkJN?**avDeq;4fBYO5LFfC+!f3aOyOvi1`K2oa>NoN$w2!VDeC3pm34Am- zW+$|%ynQrw_}+lNI-nwWuhOc~+Pk!mx`GR$yB0Irvi4CGr3>z2S%1pg$I&h;gVKuQ z$Ac{GP3dr7CS}=7>qzwER_xy(|p?9jq0suqnHyD*kAkJ*A1ZN>}Q8-*V=g|yT~*^t2`Wm?`oI`E|n zvk~q3vPy7Xu9Rh#rWNuT7wwMPgyr@2ai5s#@dzr6pUJJLf4}{g*WX*)N25WVDIfpK z&zYB9`0MR65kVD{4*&J`E5!dVjlVqPP0W83Vw11<=!`?dz{+evop?Dg?3WdRm6z>9(96aT zo6C+wg(HnB{nO>O55Tf(1AV8!OL=|xrilf8>i}RW|LiF1FY5bS7N##{k*b)M)`JR^ zWxsUFGTxNJ$;>RJokd?*-Yx1c)>XhJsnzh0c?7Dx-1r9vp8|i#{reekPF1a1^<~R%IQ;l*eD&7-$L3&r z*~tl2ylH#ICSKW&O2enfTerVb`0XpLTA|OEw=XbI<}W;Gsr>VaY4w$h53n3)MirGV|GIp| zt;`M;+sA%sk+QSu)#F`uXy2YzY@vdWtH#fN$~yXgG_4rJ3giEm?%R$53Q>9d{}A(+ zyS?1;m{pG5y<5o&PP*ncw~tnh87_%G=BQ(=AM($_{ba-x*~s zGwbD_Z?A4Ie|7M-^5|s-;?4D!<-TkEueArCqqsl#V-D(ixz2pSK((Un=)c>h)n;4^^v490s<<)6oR9rdp4 zPZPY`o9kt2e3MqV9^UA_z7Kl$1PcfX8IBvg9YQ&1VOoc`QwX$<VTmm0u zTDSt-oVCWySxHR@na!+fc?UC&OP{sZjU7 z!F_Y%|AvbHb5%h6-cb1)VIKjKA)HmfOk>!{RMxl;4e(2 zF$DkRE&rc>i+Pv*OP_JSdIZsV0I!1HWf0}PE&smqZu^y$dfD{LahK(km3S>J+guj! zzn#9U=q=9ME(cV+!efrN?ETNP-`0NVP3i5M|G}1uz5WN){4d_M;s{^$D|Q-f!Cz=8 zs%pjjSNxaX-k7hG%mss=q~U1K*ioMY-`^>L6 z<~J5B%Pijkdu7>wGbLF6l}mZV|K_+~?)Kj?{POWu@c!^wT4CEeyRTml|4-MU*Dnvu zUvu7hyssC0OEV}8xaj}HcYxRX^gp?dCsZ(#{@ykZ4u9~WIK8P~f9HI8TU~Fe|397g z-*El^Cu7j+KUsNY-G3H=my?hGtl)oW`~U0q|3ky7to9uvPe?s*$Q8YUj0Ly`7;>LJ_GkZ{73PtQK;C}H~Oy@|BtTy z@jKx^ZSL=$VQ-AY8!{{Q5B2`_mxSei4=_8U?G>vj-~LwbO@G7SJX8;E|9|v+sW{@- ze1d58dT0MIf8*^B$C&`UR%M0N3IVE+`|owjA_{-3F%`d(!q(DGyiCzCzzcrY&A5^u zTjRfNBtMm=mrB#irRmS5>6Oy-YH50nNlR-aB-cyxZ66m*X=(b5NniHwx6=IQrRndb>5I~oX!FVi zEg{=5aiLzzXO-sD<@sfQ9G0c1O$ocST$R$aYH3=nG_78m)+kNiD@|*b*UKvH{C|6j z<58=P&wu+kD*MlzkpJy*z~^J_HZSihWe*cyPjR_A%yr3(yj&$drPpiSH*ZHJ|J&pA zzqS7;wvu|K@vr~p_)8j;Zg2RO?Tt#eH-7VW)W(0qB56{79;5zBnwE~M*=zaDOY>Wl zrY+0H%}myV@9_W&LlX!#rV4?mim65*s$*&pi1#ox2}CVSZ30mT12aK@x)}IX9#9|C zfIu|FG$IgN0l zKn%hRCJ;ji9@u9@7}!uE9Bdd70XCe71RFs_fsG`h!A21=V55mxurWj&*ylt%*cU_s z*jOSFY#fmUHlE;veMuyPO(0UhCK9P&lL!IWWI_lwg-8RNN{GOw5n?c3LIUPTNWuIG z8CU=&kU#`sf(b+jCX_(@Z|=XGKqxRu0+Ei%AP|`t6@gG=vIv9*qa_eJjGjOkFh&Al z!ekSO984~OFk|uvgau}AZB4^6NovOxddV!WTAm^Z;=S^dNB?^bm0e>@aZ`u81SV zJ-8x{62F2TBkqG9Cmw*FARdCA#GE1?6Q_vN#1ptK&Ja&QzbBr7o+W+*Jx4r;>*74| zJJp8E>yh=z;RK@%$cErE+K6lnKBG;@rr14#@?d(N<(@@EL7GwgsQjcI5lyD1y=UWCyZ6fV3m|0Xdpr^h5F^@EPqyb_So( zE@W5m8SO@*JMCzqJLL2rdy+i>q`k=Aa#2E5(Fh;*1$CBd-M#quk z!DsYKasv2_P9!Ih69J@?$tmPSg3+nuH1HYqCH=r>)SnC>ClQPWl0o1z8cc?O&uA#g z1E0|_GMt=DFd9Kdg3o9a8BIn3NMp!Yatgs{92pNjqX}dp_>3lzeDE1fCR4y?G?f&9 z&!~`0Bc~CJibyf(M=;8q)lyPM`V)-GNd@?fD#>*48J$FAK+iKtgo>O*sYo@M1;(g` z)RGzisg9gX=}0|k0AtihPNj^biJV56$ZRqPjL}>YVJ6Rk<&l0=9%&&1C<|#NZD5Sr z$xzBp=9A%6KKYO=04pS8sY230#!wE@NxHxoEg}(aOfku)ib)TdN_ofiK(83RN&W&pqqoT05KTt!kayrdbC>*;ybF};eewa+ z$tZIcG4Xs%K7qRgqfg0a&^JbZBcDUx82z1mL7pNQh1)#^_kXMu#R8vEnqpJK2}Y|> zRl#Sp8daSdO)y%6dJlX?Yf`nS@dTr_sXE{@>O<9~CK8O+qw0gtXalMtHHBcb5!D!c zMw?JgsYwK*&8X(oWP;HaR7R6V(}fM!Qg5!DqA^)g63Bdr&BhGRxhh>@646k;@H42Ad{^96+%iy22D#$&#u z5EC#HDFkz`WA15FC`84(nJ54VwgLmokHYe z3MfP&#z7&R7#D>o!ni3!F~&n7N-$muFALd?W`MImNkW>bhcn7I^U9%ep;Sb+JO zLM+5Aq7aKQODM!r%rXkG9J7K#ti-IM5UVk3D8x6IwG?6BbcKU;uz*Qg*bsZ zNg+;QPE&|8nC~gXSKaUOGlLR`fBKp}p_{6rxxVJ=gMpD|Y`#8u2S3UM8CgF@WI z{6ZmaVQy21JD9r^;vVK#3UMFvfI>XPJfaYfF;6JOQ_M38@f+qjh4>xwfurXCwh^m-sEJSro4Hn`(OidP|7N#}}Q3vD0Le$07VBd5I$Mj$!dSZI95WO*dSctxuk6DO*nEoupCzt^ZlaEW{wpU>0Hs z<}(&zC}tQ7;bIL38-W?gLX5(UW+BF4K4&4mz>H-f#$m>@5MN>@un-e5lURt!m?ScpJO5DO8E31J~ZF+3I`3=_^mL|`IWh$u`n3lW2fWg+4)@hn6F zCXt0m!thy$WK0SRk%|$p5JF5E3n9XYSqKS6%0kF6auz~?QL+%}m<$#o6Qg1w)R-(5 zLW9w=5IWXEmX)Q)7+8x~1uP?LG0VX+v6jHm$;RZc_OraKT#T9Z9cwl#k9B}GpJf4D zu=g@B8*4e3owWiipS2RKfVB#&khL1j!CC|6WPJnXVyy)$Vyy#nv(|$Zvo?TvSR27g zSewAStj%E4SzEwnu(pED#C*lt#`=mii?tnWHfsmi9M(>-xvX7a^H{sV=Ck&IEnw}1 zR=#HKgEGt*|2Vp(tfjE^f2RLmvA%_#|GoY*@vj*9gDixNbqLJKIt+FMbCh)y(qq68 zh{|!W>8ulACo!j3h|`!etnXQ80HkMG=fD^}&$_@m4m5A6Y-Kegu$SVqFGf z^k>!;*3SUatE_8aj9zEmU|k20-emm(#^^29ZPqOSX%XuV*bLTPu&-G6z<$NtXCWS7 z962=0w_gK1Y^;Y==wBGPX=StQ^2aw zQ^Bgz(?F}yzF^g9Kd>6KKiGS809Z{rkZwlTqJ!urbZt7AZcEppL%@9KZeVrk?qK!k z9$@w9o?s2=USJLB-e8UBK46XMzFh{lS{kpMbTX2Y|Jt2ZC|vPrXMi?+g8ezg@(})~87mQIeokyDiq!!u=#;A?9 z(>4HUK3xFDXd&&O3jw4~+6BgF5$&dn0HnpV2aM4Y+Dn%JNT<^?z!;rLe?`v(kj|oK zgE2aXo=eXGkj|s$gE6{*{+eC@AYDi=0%LSBy@Xy2AYDo?17mbKy@Fm2AYDnX0%LSF zy@p;5ApM433&!X=dOf`kK)Qk62*&6pdNaKVK)MC9mHrm)0E}*X~Zsi zHyERPXvAL3K6*dB4?y}I<^YX2h&eBHcUxE7-qgUx`^i=@q zb^69jy-EK9cOFJ>(YN6a#^@dTF8GYzqkjdT(fjlRxSKKhkVZVhJf@$(-Hg$vG~yZN zHyZIA^E-`rfg#uk5(AHX0Q{Ao4Yz%OS*oxRRWa4ri0YUcY{Yw*nruWZOl>xz4#tO# zsEet`M%2eNU?Uo08nF?LF-_QrrkG}IL~~3FHlihl!$xp1t=Ndxm^N%gTTDAP;(bhe zHlhQjBOCDn=0i5(BTOeYqBEuo8_^Zhjg9Ee=7IHKhk^BEhlBNEM}YNaM}qZXM}hTa zM}vLLjsfe(js@$_jsyFI9S=5uod7nFoe1_RI|*zMn-4aaoeVaFodWh5I~8mwTL3nU zEd(3RP6Hdk7J-dqi@`>*C19i3Qm`>>8QAA+IoKC$1=v`&5^Nkh9c(;11MEw7CfEeF z3Tz@<4K|6L1vZ(j0h_|sf=y-Xz@}k**$6+3KN}H%31lOJFu`m@2qu(``2RzE^lXFy zV`L*tm~1v82b0T2m@#>5gau<|BWxHu8P?#0ktvHsTcKG#haS^F14J7ITh`IFGr& zMqI@Fz()Lt`H79Vgt^Q{{EWH6MqI^QVxdCo@sj(NdGz-v?vJpac^!DE%r2u5kR#ePOGT7^>; zd`7Ers&nA|FV-5I_c+4{Mr(3vfzN1dP95+W_2JY7pV4}p`rtF#fYXoz?|-p2;xq=I z(I%Xx;4|8c(;R$8TX0%}&nSn(<%}R0ZN+KLf%m^y+i==)MiGp*6YqbmqYOU#wj?UBPFx8>c(xbAr(xoSxt_+Kba0d`A0l`f|P?82y;j z4}3=Zb3Or|(E*%+;4}IuXAoyB!RTPl5bzoOj58E`Mu%~RbH)*jj^K<0pV3jA(cm*W zhVwc2jDEox%Ypa5SjTb3gU{%foC)AFI*~I8d`2g8rf|L_7@f+Q20o*{96t`c|HbOh z2>_qbKu!?&j0ST;z-Kg+!{fmFU#wxAaPS$8;6#GYXcQ+Jd`4q9vEVZr$BE}mCKyfN zB!bUq5{C~yqsg2U@EJ|z2srTm7psty20o)Aju?DKB^)XEjLJB2@EKKbl$@yqqv@Os z@EOhIs5sLIM%A1w@EO%`wBR$U)W9)<&!~x$&G97|&Ee#N�M`$MGW=wQ#H) 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

s!{H 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 L!4>%bYz6)YzP+Tv From c85571017896477e52e3d10e8af16164948f506c Mon Sep 17 00:00:00 2001 From: mordred Date: Thu, 15 Nov 2018 12:40:02 +0100 Subject: [PATCH 060/385] More housing functionality move to mgr and small cleanups --- .../Scripts/common/CmnDefHousingSignboard.cpp | 10 ++- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 52 +++++++++++++- src/servers/sapphire_zone/Zone/HousingMgr.h | 1 + .../sapphire_zone/Zone/HousingZone.cpp | 71 +++---------------- src/servers/sapphire_zone/Zone/HousingZone.h | 4 +- src/servers/sapphire_zone/Zone/Land.cpp | 6 +- src/servers/sapphire_zone/Zone/Land.h | 4 +- 7 files changed, 76 insertions(+), 72 deletions(-) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index b107ec66..fd4fb907 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -2,8 +2,10 @@ #include #include #include +#include #include #include +#include "Framework.h" using namespace Core; @@ -22,6 +24,9 @@ public: { auto callback = [ this ]( Entity::Player& player, const Event::SceneResult& result ) { + auto pFw = getFramework(); + if( !pFw ) + return LandPurchaseResult::ERR_INTERNAL; // Purchase Land if( result.param2 == 2 ) { @@ -30,8 +35,9 @@ public: auto pTerritory = player.getCurrentZone(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); + auto pHouMgr = pFw->get< Core::HousingMgr >(); - LandPurchaseResult res = pHousing->purchseLand( player, activeLand.plot, + LandPurchaseResult res = pHouMgr->purchseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); switch( res ) @@ -87,4 +93,4 @@ public: { Scene00000( player ); } -}; \ No newline at end of file +}; diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index fe6b2c22..8c1af62a 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -1,5 +1,4 @@ #include "HousingMgr.h" -#include "HousingMgr.h" #include #include #include @@ -145,3 +144,54 @@ void Core::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t ward, u plotPricePacket->data().timeLeft = land->getDevaluationTime(); player.queuePacket( plotPricePacket ); } + +Core::LandPurchaseResult Core::HousingMgr::purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ) +{ + auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + + auto plotPrice = pHousing->getLand( plot )->getCurrentPrice(); + auto gilAvailable = player.getCurrency( CurrencyType::Gil ); + auto pLand = pHousing->getLand( plot ); + + if( !pLand ) + return LandPurchaseResult::ERR_INTERNAL; + + if( pLand->getState() != HouseState::forSale ) + return LandPurchaseResult::ERR_NOT_AVAILABLE; + + if( gilAvailable < plotPrice ) + return LandPurchaseResult::ERR_NOT_ENOUGH_GIL; + + + switch( static_cast< LandPurchaseMode >( state ) ) + { + case LandPurchaseMode::FC: + player.sendDebug( "Free company house purchase aren't supported at this time." ); + return LandPurchaseResult::ERR_INTERNAL; + + case LandPurchaseMode::PRIVATE: + { + + auto pOldLand = getLandByOwnerId( player.getId() ); + + if( pOldLand ) + return LandPurchaseResult::ERR_NO_MORE_LANDS_FOR_CHAR; + player.removeCurrency( CurrencyType::Gil, plotPrice ); + pLand->setPlayerOwner( player.getId() ); + pLand->setState( HouseState::sold ); + pLand->setLandType( Common::LandType::Private ); + player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, + pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + player.sendLandPermissions(); + //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); + pLand->updateLandDb(); + pHousing->sendLandUpdate( plot ); + return LandPurchaseResult::SUCCESS; + } + + default: + return LandPurchaseResult::ERR_INTERNAL; + } + +} + diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index 6089cf27..03b12bac 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -30,6 +30,7 @@ namespace Core void sendLandSignOwned( Entity::Player& player, uint8_t ward, uint8_t plot ); void sendLandSignFree( Entity::Player& player, uint8_t ward, uint8_t plot ); + LandPurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); private: using HousingZonePtrMap = std::unordered_map< uint16_t, Core::Data::HousingZonePtr >; diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index d02ce81f..bff2aa7f 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -129,13 +129,14 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); ++i, ++count ) { - landsetInitializePacket->data().land[ count ].plotSize = getLand( i )->getSize(); - landsetInitializePacket->data().land[ count ].houseState = getLand( i )->getState(); - landsetInitializePacket->data().land[ count ].type = static_cast< uint8_t >( getLand( i )->getLandType() ); - landsetInitializePacket->data().land[ count ].iconAddIcon = getLand( i )->getSharing(); - landsetInitializePacket->data().land[ count ].fcId = getLand( i )->getFcId(); - landsetInitializePacket->data().land[ count ].fcIcon = getLand( i )->getFcIcon(); - landsetInitializePacket->data().land[ count ].fcIconColor = getLand( i )->getFcColor(); + auto pLand = getLand( i ); + landsetInitializePacket->data().land[ count ].plotSize = pLand->getSize(); + landsetInitializePacket->data().land[ count ].houseState = pLand->getState(); + landsetInitializePacket->data().land[ count ].type = static_cast< uint8_t >( pLand->getLandType() ); + landsetInitializePacket->data().land[ count ].iconAddIcon = pLand->getSharing(); + landsetInitializePacket->data().land[ count ].fcId = pLand->getFcId(); + landsetInitializePacket->data().land[ count ].fcIcon = pLand->getFcIcon(); + landsetInitializePacket->data().land[ count ].fcIconColor = pLand->getFcColor(); } player.queuePacket( landsetInitializePacket ); @@ -167,63 +168,11 @@ bool Core::HousingZone::isPlayerSubInstance( Entity::Player& player ) return player.getPos().x < -15000.0f; //ToDo: get correct pos } -Core::LandPurchaseResult Core::HousingZone::purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ) -{ - - auto plotPrice = getLand( plot )->getCurrentPrice(); - auto gilAvailable = player.getCurrency( CurrencyType::Gil ); - auto pLand = getLand( plot ); - - if( !pLand ) - return LandPurchaseResult::ERR_INTERNAL; - - if( pLand->getState() != HouseState::forSale ) - return LandPurchaseResult::ERR_NOT_AVAILABLE; - - if( gilAvailable < plotPrice ) - return LandPurchaseResult::ERR_NOT_ENOUGH_GIL; - - auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); - - switch( static_cast< LandPurchaseMode >( state ) ) - { - case LandPurchaseMode::FC: - player.sendDebug( "Free company house purchase aren't supported at this time." ); - return LandPurchaseResult::ERR_INTERNAL; - - case LandPurchaseMode::PRIVATE: - { - - auto pHousingMgr = g_fw.get< HousingMgr >(); - auto pOldLand = pHousingMgr->getLandByOwnerId( player.getId() ); - - if( pOldLand ) - return LandPurchaseResult::ERR_NO_MORE_LANDS_FOR_CHAR; - - player.removeCurrency( CurrencyType::Gil, plotPrice ); - pLand->setPlayerOwner( player.getId() ); - pLand->setState( HouseState::sold ); - pLand->setLandType( Common::LandType::Private ); - player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, - pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandPermissions(); - //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); - pLand->UpdateLandDb(); - sendLandUpdate( plot ); - return LandPurchaseResult::SUCCESS; - } - - default: - return LandPurchaseResult::ERR_INTERNAL; - } - -} - void Core::HousingZone::onUpdate( uint32_t currTime ) { - for( uint8_t i = 0; i < 60; i++ ) + for( auto pLandItr : m_landPtrMap ) { - getLand( i )->Update( currTime ); + pLandItr.second->update( currTime ); } } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index ef321b98..919d69df 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -42,8 +42,6 @@ namespace Core void sendLandUpdate( uint8_t landId ); bool isPlayerSubInstance( Entity::Player& player ); - LandPurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); - /* returns current ward number for this zone */ uint8_t getWardNum() const; @@ -60,4 +58,4 @@ namespace Core }; } -#endif //SAPPHIRE_HOUSINGZONE_H \ No newline at end of file +#endif //SAPPHIRE_HOUSINGZONE_H diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 99f19548..1b263e8f 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -224,7 +224,7 @@ void Core::Land::init() } } -void Core::Land::UpdateLandDb() +void Core::Land::updateLandDb() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_state ) @@ -237,7 +237,7 @@ void Core::Land::UpdateLandDb() + " AND LandId = " + std::to_string( m_landId ) + ";" ); } -void Core::Land::Update( uint32_t currTime ) +void Core::Land::update( uint32_t currTime ) { if( getState() == HouseState::forSale ) { @@ -245,7 +245,7 @@ void Core::Land::Update( uint32_t currTime ) { m_nextDrop = currTime + 21600; m_currentPrice = ( m_currentPrice / 100 ) * 99.58; - UpdateLandDb(); + updateLandDb(); } } } diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 41557cca..5522255b 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -47,8 +47,8 @@ namespace Core uint32_t getPlayerOwner(); //Housing Functions void setPreset( uint32_t itemId ); - void UpdateLandDb(); - void Update( uint32_t currTime ); + void updateLandDb(); + void update( uint32_t currTime ); uint32_t getMaxItems(); uint32_t getCurrentPrice() const; From db6a2e099b025cac182e5c118bf68494844d23c6 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 15 Nov 2018 22:30:59 +0100 Subject: [PATCH 061/385] Use the right packet to update permission + cleanup + new clienttrigger --- src/common/Network/CommonActorControl.h | 1 + src/servers/sapphire_zone/Actor/Player.cpp | 13 ++++++++++ src/servers/sapphire_zone/Actor/Player.h | 1 + .../Network/Handlers/ClientTriggerHandler.cpp | 14 +++++++--- .../Network/Handlers/PacketHandlers.cpp | 8 +++--- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 8 +++++- .../sapphire_zone/Zone/HousingZone.cpp | 2 +- src/servers/sapphire_zone/Zone/Zone.cpp | 26 +++++++++++++++++-- src/servers/sapphire_zone/Zone/Zone.h | 7 +++-- 9 files changed, 66 insertions(+), 14 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index da2f6a20..d417ea96 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -292,6 +292,7 @@ enum ActorControlType : uint16_t RequestHousingBuildPreset = 0x44C, RequestLandSignFree = 0x451, RequestLandSignOwned = 0x452, + RequestLandRelinquish = 0x454, RequestEstateRename = 0x45A, RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 6029cd17..fe59ab76 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1792,3 +1792,16 @@ void Core::Entity::Player::sendLandPermissions() queuePacket( landPermissions ); } + +void Core::Entity::Player::sendLandPermissionSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ) +{ + auto landPermissions = makeZonePacket< FFXIVIpcLandPermissionSlot >( getId() ); + landPermissions->data().type = slotId; + + landPermissions->data().permissionSet.landId = landId; + landPermissions->data().permissionSet.wardNum = wardId; + landPermissions->data().permissionSet.zoneId = zoneId; + landPermissions->data().permissionSet.worldId = 67; + landPermissions->data().permissionSet.permissionMask = 0; + queuePacket( landPermissions ); +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index e2707642..0c673668 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -766,6 +766,7 @@ namespace Core::Entity void setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ); void sendLandPermissions(); + void sendLandPermissionSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ); // Player Battle Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 8fb9c7c4..96bacd66 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -312,17 +312,14 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestHousingBuildPreset: { - auto pShowBuildPresetUIPacket = makeActorControl142( player.getId(), ShowBuildPresetUI, param11 ); - auto zone = player.getCurrentZone(); - auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); - if (!hZone) return; player.setActiveLand( param11, hZone->getWardNum() ); + auto pShowBuildPresetUIPacket = makeActorControl142( player.getId(), ShowBuildPresetUI, param11 ); player.queuePacket( pShowBuildPresetUIPacket ); break; @@ -343,6 +340,15 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR pHousingMgr->sendLandSignOwned( player, ward, plot ); break; } + case ClientTriggerType::RequestLandRelinquish: + { + auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); + auto plot = static_cast< uint8_t >( param12 & 0xFF ); + auto pHousingMgr = g_fw.get< HousingMgr >(); + pLog->debug( "Request to relinquish plot " + std::to_string( plot ) ); + // TODO: do stuff! + break; + } case ClientTriggerType::RequestEstateRename: { // removed temporarly, there is no such thing as a LandName diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index f2ea6053..e8427db8 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -549,7 +549,7 @@ void Core::Network::GameConnection::chatHandler( const Core::Network::Packets::F if( player.isActingAsGm() ) chatPacket->data().chatType = ChatType::GMSay; - player.getCurrentZone()->queueOutPacketForRange( player, 50, chatPacket ); + player.getCurrentZone()->queuePacketForRange( player, 50, chatPacket ); break; } case ChatType::Yell: @@ -557,7 +557,7 @@ void Core::Network::GameConnection::chatHandler( const Core::Network::Packets::F if( player.isActingAsGm() ) chatPacket->data().chatType = ChatType::GMYell; - player.getCurrentZone()->queueOutPacketForRange( player, 6000, chatPacket ); + player.getCurrentZone()->queuePacketForRange( player, 6000, chatPacket ); break; } case ChatType::Shout: @@ -565,12 +565,12 @@ void Core::Network::GameConnection::chatHandler( const Core::Network::Packets::F if( player.isActingAsGm() ) chatPacket->data().chatType = ChatType::GMShout; - player.getCurrentZone()->queueOutPacketForRange( player, 6000, chatPacket ); + player.getCurrentZone()->queuePacketForRange( player, 6000, chatPacket ); break; } default: { - player.getCurrentZone()->queueOutPacketForRange( player, 50, chatPacket ); + player.getCurrentZone()->queuePacketForRange( player, 50, chatPacket ); break; } } diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 8c1af62a..fd2222da 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -176,15 +176,21 @@ Core::LandPurchaseResult Core::HousingMgr::purchseLand( Entity::Player& player, if( pOldLand ) return LandPurchaseResult::ERR_NO_MORE_LANDS_FOR_CHAR; + player.removeCurrency( CurrencyType::Gil, plotPrice ); pLand->setPlayerOwner( player.getId() ); pLand->setState( HouseState::sold ); pLand->setLandType( Common::LandType::Private ); + player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandPermissions(); + + player.sendLandPermissionSlot( static_cast< uint8_t >( LandType::Private ), plot, pHousing->getWardNum(), + pHousing->getTerritoryTypeId() ); + //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); pLand->updateLandDb(); + pHousing->sendLandUpdate( plot ); return LandPurchaseResult::SUCCESS; } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index bff2aa7f..5d7f5ec4 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -144,10 +144,10 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) void Core::HousingZone::sendLandUpdate( uint8_t landId ) { + auto pLand = getLand( landId ); for( const auto& playerIt : m_playerMap ) { auto pPlayer = playerIt.second; - auto pLand = getLand( landId ); auto landUpdatePacket = makeZonePacket< FFXIVIpcLandUpdate >( pPlayer->getId() ); landUpdatePacket->data().landId = landId; diff --git a/src/servers/sapphire_zone/Zone/Zone.cpp b/src/servers/sapphire_zone/Zone/Zone.cpp index 5a343c3e..66e23cda 100644 --- a/src/servers/sapphire_zone/Zone/Zone.cpp +++ b/src/servers/sapphire_zone/Zone/Zone.cpp @@ -277,8 +277,8 @@ void Core::Zone::removeActor( Entity::ActorPtr pActor ) } -void Core::Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t range, - Network::Packets::FFXIVPacketBasePtr pPacketEntry ) +void Core::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, + Network::Packets::FFXIVPacketBasePtr pPacketEntry ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) @@ -306,6 +306,28 @@ void Core::Zone::queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t } } +void Core::Zone::queuePacketForZone( Entity::Player& sourcePlayer, + Network::Packets::FFXIVPacketBasePtr pPacketEntry, + bool forSelf ) +{ + auto pTeriMgr = g_fw.get< TerritoryMgr >(); + if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) + return; + + auto pServerZone = g_fw.get< ServerZone >(); + for( auto entry : m_playerMap ) + { + auto player = entry.second; + if( ( sourcePlayer.getId() != player->getId() ) || + ( ( sourcePlayer.getId() == player->getId() ) && forSelf ) ) + { + auto pSession = pServerZone->getSession( player->getId() ); + if( pSession ) + pSession->getZoneConnection()->queueOutPacket( pPacketEntry ); + } + } +} + uint32_t Core::Zone::getTerritoryTypeId() const { return m_territoryTypeId; diff --git a/src/servers/sapphire_zone/Zone/Zone.h b/src/servers/sapphire_zone/Zone/Zone.h index 52530044..9e973702 100644 --- a/src/servers/sapphire_zone/Zone/Zone.h +++ b/src/servers/sapphire_zone/Zone/Zone.h @@ -114,8 +114,11 @@ public: void updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ); - void queueOutPacketForRange( Entity::Player& sourcePlayer, uint32_t range, - Network::Packets::FFXIVPacketBasePtr pPacketEntry ); + void queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, + Network::Packets::FFXIVPacketBasePtr pPacketEntry ); + + void queuePacketForZone( Entity::Player& sourcePlayer, Network::Packets::FFXIVPacketBasePtr pPacketEntry, + bool forSelf = false ); uint32_t getGuId() const; From 3443dad24760e21947c2d11cb6e3d021eed38122 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 16 Nov 2018 12:16:08 +0100 Subject: [PATCH 062/385] sql tables --- sql/house.sql | 15 +++++++++++++++ sql/housepartsitem.sql | 9 +++++++++ sql/housepartsstorage.sql | 18 ++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 sql/house.sql create mode 100644 sql/housepartsitem.sql create mode 100644 sql/housepartsstorage.sql diff --git a/sql/house.sql b/sql/house.sql new file mode 100644 index 00000000..fd215003 --- /dev/null +++ b/sql/house.sql @@ -0,0 +1,15 @@ +CREATE TABLE `house` ( + `LandSetId` INT UNSIGNED NULL, + `HouseId` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `BuildTime` BIGINT NULL, + `Aetheryte` SMALLINT NULL, + `Welcome` SMALLINT NULL, + `Comment` binary(193) DEFAULT "", + `Endorsements` BIGINT NULL, + UPDATE_DATE DATETIME NULL, + PRIMARY KEY(`HouseId`) +) +COLLATE='latin1_swedish_ci' +ENGINE=InnoDB; + +ALTER TABLE house AUTO_INCREMENT=1; \ No newline at end of file diff --git a/sql/housepartsitem.sql b/sql/housepartsitem.sql new file mode 100644 index 00000000..1c9be8f1 --- /dev/null +++ b/sql/housepartsitem.sql @@ -0,0 +1,9 @@ +CREATE TABLE `housepartsitem` ( + `HouseId` INT UNSIGNED NULL, + `ItemId` INT UNSIGNED NULL, + `CharacterId` INT UNSIGNED NULL, + `Color` INT UNSIGNED DEFAULT '0', + `UPDATE_DATE` DATETIME NULL +) +COLLATE='latin1_swedish_ci' +ENGINE=InnoDB; \ No newline at end of file diff --git a/sql/housepartsstorage.sql b/sql/housepartsstorage.sql new file mode 100644 index 00000000..6b4e1348 --- /dev/null +++ b/sql/housepartsstorage.sql @@ -0,0 +1,18 @@ +CREATE TABLE `housepartsstorage` ( + `LandSetId` INT UNSIGNED NULL, + `HouseId` INT UNSIGNED NULL, + `StorageId` BIGINT, + `Type` INT NULL, + `Index` INT NULL, + `Container_0` INT UNSIGNED DEFAULT '0', + `Container_1` INT UNSIGNED DEFAULT '0', + `Container_2` INT UNSIGNED DEFAULT '0', + `Container_3` INT UNSIGNED DEFAULT '0', + `Container_4` INT UNSIGNED DEFAULT '0', + `Container_5` INT UNSIGNED DEFAULT '0', + `Container_6` INT UNSIGNED DEFAULT '0', + `Container_7` INT UNSIGNED DEFAULT '0', + `UPDATE_DATE` DATETIME NULL +) +COLLATE='latin1_swedish_ci' +ENGINE=InnoDB; \ No newline at end of file From c21d9fd9e7f8e05bffe0fd1fa0d70c06313eb795 Mon Sep 17 00:00:00 2001 From: XeAri Date: Fri, 16 Nov 2018 12:17:32 +0100 Subject: [PATCH 063/385] Update house.sql --- sql/house.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/house.sql b/sql/house.sql index fd215003..a779a3ad 100644 --- a/sql/house.sql +++ b/sql/house.sql @@ -7,9 +7,9 @@ CREATE TABLE `house` ( `Comment` binary(193) DEFAULT "", `Endorsements` BIGINT NULL, UPDATE_DATE DATETIME NULL, - PRIMARY KEY(`HouseId`) + PRIMARY KEY(`HouseId`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB; -ALTER TABLE house AUTO_INCREMENT=1; \ No newline at end of file +ALTER TABLE house AUTO_INCREMENT=1; From 664ccf2434c2fcae5a4ef4cfd456026e4b524edc Mon Sep 17 00:00:00 2001 From: XeAri Date: Fri, 16 Nov 2018 12:17:42 +0100 Subject: [PATCH 064/385] Update house.sql --- sql/house.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/house.sql b/sql/house.sql index a779a3ad..716e1c20 100644 --- a/sql/house.sql +++ b/sql/house.sql @@ -7,7 +7,7 @@ CREATE TABLE `house` ( `Comment` binary(193) DEFAULT "", `Endorsements` BIGINT NULL, UPDATE_DATE DATETIME NULL, - PRIMARY KEY(`HouseId`) + PRIMARY KEY(`HouseId`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB; From 4915b62d7b1be92af76ade9a176d936ab099f3c7 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 16 Nov 2018 17:07:22 +0100 Subject: [PATCH 065/385] Do not use the current zone for landdetail lookup but the provided territoryId --- .../Scripts/common/CmnDefHousingSignboard.cpp | 2 +- .../Network/Handlers/ClientTriggerHandler.cpp | 9 +++++-- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 26 +++++++++++-------- src/servers/sapphire_zone/Zone/HousingMgr.h | 5 ++-- 4 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index fd4fb907..5e5e13d9 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -35,7 +35,7 @@ public: auto pTerritory = player.getCurrentZone(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); - auto pHouMgr = pFw->get< Core::HousingMgr >(); + auto pHouMgr = pFw->get< Core::HousingMgr >(); LandPurchaseResult res = pHouMgr->purchseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 96bacd66..74a1cbc6 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -328,16 +328,20 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR { auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); auto plot = static_cast< uint8_t >( param12 & 0xFF ); + auto territoryId = static_cast< uint16_t >( param11 & 0xFFFF ); + auto pHousingMgr = g_fw.get< HousingMgr >(); - pHousingMgr->sendLandSignFree( player, ward, plot ); + pHousingMgr->sendLandSignFree( player, ward, plot, territoryId ); break; } case ClientTriggerType::RequestLandSignOwned: { auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); auto plot = static_cast< uint8_t >( param12 & 0xFF ); + auto territoryId = static_cast< uint16_t >( param11 & 0xFFFF ); + auto pHousingMgr = g_fw.get< HousingMgr >(); - pHousingMgr->sendLandSignOwned( player, ward, plot ); + pHousingMgr->sendLandSignOwned( player, ward, plot, territoryId ); break; } case ClientTriggerType::RequestLandRelinquish: @@ -345,6 +349,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); auto plot = static_cast< uint8_t >( param12 & 0xFF ); auto pHousingMgr = g_fw.get< HousingMgr >(); + pLog->debug( "Request to relinquish plot " + std::to_string( plot ) ); // TODO: do stuff! break; diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index fd2222da..f698c8b3 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -48,6 +48,11 @@ uint16_t Core::HousingMgr::getNexLandId() return ++m_lastLandId; } +uint32_t Core::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const +{ + return ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardId; +} + void Core::HousingMgr::insertHousingZone( Core::Data::HousingZonePtr hZone ) { uint16_t id = getNexLandId(); @@ -95,18 +100,17 @@ Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) return nullptr; } -void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t ward, uint8_t plot ) +void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) { - player.setActiveLand( plot, ward ); + player.setActiveLand( plotId, wardId ); - auto zone = player.getCurrentZone(); - - auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto hZone = getHousingZoneByLandSetId( landSetId ); if( !hZone ) return; - auto land = hZone->getLand( plot ); + auto land = hZone->getLand( plotId ); if( !land ) { land = getLandByOwnerId( player.getId() ); @@ -128,17 +132,17 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t ward, player.queuePacket( landInfoSignPacket ); } -void Core::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t ward, uint8_t plot ) +void Core::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) { - player.setActiveLand( plot, ward ); + player.setActiveLand( plotId, wardId ); - auto zone = player.getCurrentZone(); - auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto hZone = getHousingZoneByLandSetId( landSetId ); if( !hZone ) return; - auto land = hZone->getLand( plot ); + auto land = hZone->getLand( plotId ); auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); plotPricePacket->data().price = land->getCurrentPrice(); plotPricePacket->data().timeLeft = land->getDevaluationTime(); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index 03b12bac..39537767 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -22,14 +22,15 @@ namespace Core bool init(); + uint32_t toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const; uint16_t getNexLandId(); void insertHousingZone( Core::Data::HousingZonePtr hZone ); Core::Data::HousingZonePtr getHousingZone( uint16_t id ); Core::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); Core::LandPtr getLandByOwnerId( uint32_t id ); - void sendLandSignOwned( Entity::Player& player, uint8_t ward, uint8_t plot ); - void sendLandSignFree( Entity::Player& player, uint8_t ward, uint8_t plot ); + void sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); + void sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); LandPurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); private: From 7164ca3ddd3ef8a2e2d5dc92ec7cd7ca437ab1d2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 17 Nov 2018 01:16:44 +0100 Subject: [PATCH 066/385] Basic land relinquishing added --- .../Scripts/common/CmnDefHousingSignboard.cpp | 3 +-- .../Network/Handlers/ClientTriggerHandler.cpp | 4 +-- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 27 +++++++++++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.h | 2 ++ src/servers/sapphire_zone/Zone/Land.cpp | 11 ++++++++ src/servers/sapphire_zone/Zone/Land.h | 3 +++ 6 files changed, 45 insertions(+), 5 deletions(-) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 5e5e13d9..4fa2d53f 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -38,7 +38,7 @@ public: auto pHouMgr = pFw->get< Core::HousingMgr >(); LandPurchaseResult res = pHouMgr->purchseLand( player, activeLand.plot, - static_cast< uint8_t >( result.param2 ) ); + static_cast< uint8_t >( result.param2 ) ); switch( res ) { @@ -73,7 +73,6 @@ public: break; } - case LandPurchaseResult::ERR_INTERNAL: { auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 1995 ); diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 74a1cbc6..aed5e18b 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -346,12 +346,10 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestLandRelinquish: { - auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); auto plot = static_cast< uint8_t >( param12 & 0xFF ); auto pHousingMgr = g_fw.get< HousingMgr >(); + pHousingMgr->relinquishLand( player, plot ); - pLog->debug( "Request to relinquish plot " + std::to_string( plot ) ); - // TODO: do stuff! break; } case ClientTriggerType::RequestEstateRename: diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index f698c8b3..d4521106 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -205,3 +205,30 @@ Core::LandPurchaseResult Core::HousingMgr::purchseLand( Entity::Player& player, } +bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) +{ + // TODO: Fix "permissions" being sent incorrectly + // TODO: Add checks for land state before relinquishing + auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + + auto pLand = pHousing->getLand( plot ); + auto plotMaxPrice = pLand->getCurrentPrice(); + + pLand->setCurrentPrice( pLand->getMaxPrice() ); + pLand->setPlayerOwner( 0 ); + pLand->setState( HouseState::forSale ); + pLand->setLandType( Common::LandType::none ); + pLand->updateLandDb(); + + player.setLandPermissions( LandPermissionSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); + + player.sendLandPermissionSlot( static_cast< uint8_t >( LandType::Private ), 0xFF, 0xFF, 0xFF ); + + auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 3351, 0x1AA, + pLand->getWardNum() + 1, plot + 1 ); + player.queuePacket( screenMsgPkt2 ); + pHousing->sendLandUpdate( plot ); + + return true; +} + diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index 39537767..156fd18c 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -33,6 +33,8 @@ namespace Core void sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); LandPurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + bool relinquishLand( Entity::Player& player, uint8_t plot ); + private: using HousingZonePtrMap = std::unordered_map< uint16_t, Core::Data::HousingZonePtr >; uint16_t m_lastLandId; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 1b263e8f..62e8242f 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -74,6 +74,7 @@ void Core::Land::load() m_currentPrice = res->getUInt( "LandPrice" ); m_ownerPlayerId = res->getUInt( "OwnerId" ); m_minPrice = m_landInfo->minPrices[ m_landId ]; + m_maxPrice = m_landInfo->prices[ m_landId ]; } init(); } @@ -90,6 +91,11 @@ uint32_t Core::Land::getCurrentPrice() const return m_currentPrice; } +uint32_t Core::Land::getMaxPrice() const +{ + return m_maxPrice; +} + //Primary State void Core::Land::setSize( uint8_t size ) { @@ -195,6 +201,11 @@ uint32_t Core::Land::getDevaluationTime() return m_nextDrop - static_cast< uint32_t >( Util::getTimeSeconds() ); } +void Core::Land::setCurrentPrice( uint32_t currentPrice ) +{ + m_currentPrice = currentPrice; +} + void Core::Land::setLandTag( uint8_t slot, uint8_t tag ) { m_tag[ slot ] = tag; diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 5522255b..95f4b6ce 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -46,12 +46,14 @@ namespace Core void setPlayerOwner( uint32_t id ); uint32_t getPlayerOwner(); //Housing Functions + void setCurrentPrice( uint32_t currentPrice ); void setPreset( uint32_t itemId ); void updateLandDb(); void update( uint32_t currTime ); uint32_t getMaxItems(); uint32_t getCurrentPrice() const; + uint32_t getMaxPrice() const; uint32_t getDevaluationTime(); //House tags @@ -86,6 +88,7 @@ namespace Core uint32_t m_nextDrop; uint32_t m_currentPrice; uint32_t m_minPrice; + uint32_t m_maxPrice; //information char fcTag[7]; From 762b5f4047073b60caa86478271185997b414a6a Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 19 Nov 2018 09:40:44 +0100 Subject: [PATCH 067/385] house class + fixes --- .../Scripts/common/CmnDefHousingSignboard.cpp | 2 +- src/servers/sapphire_zone/ForwardsZone.h | 1 + src/servers/sapphire_zone/Zone/House.cpp | 67 +++++++++++++++++++ src/servers/sapphire_zone/Zone/House.h | 47 +++++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.cpp | 6 +- src/servers/sapphire_zone/Zone/HousingMgr.h | 4 +- .../sapphire_zone/Zone/HousingZone.cpp | 3 +- src/servers/sapphire_zone/Zone/Land.cpp | 7 ++ src/servers/sapphire_zone/Zone/Land.h | 3 + 9 files changed, 132 insertions(+), 8 deletions(-) create mode 100644 src/servers/sapphire_zone/Zone/House.cpp create mode 100644 src/servers/sapphire_zone/Zone/House.h diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 4fa2d53f..5ca17950 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -37,7 +37,7 @@ public: auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); auto pHouMgr = pFw->get< Core::HousingMgr >(); - LandPurchaseResult res = pHouMgr->purchseLand( player, activeLand.plot, + LandPurchaseResult res = pHouMgr->purchaseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); switch( res ) diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index 566b8856..61abb4e7 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -21,6 +21,7 @@ TYPE_FORWARD( Cell ); TYPE_FORWARD( Zone ); TYPE_FORWARD( HousingZone ); TYPE_FORWARD( HousingMgr ); +TYPE_FORWARD( House ); TYPE_FORWARD( InstanceContent ); TYPE_FORWARD( Item ); TYPE_FORWARD( ItemContainer ); diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp new file mode 100644 index 00000000..a4799177 --- /dev/null +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -0,0 +1,67 @@ +#include + +#include +#include + +#include "House.h" + +#include +#include "Framework.h" + +extern Core::Framework g_fw; + +Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t zoneId ) : + m_houseId( houseId ), + m_landSetId( landSetId ), + m_landId( landId ), + m_wardNum( wardNum ), + m_zoneId( zoneId ) +{ + memset( &m_houseParts, 0x00, 8 ); + memset( &m_HouseMsg, 0x00, 193 ); +} + +Core::House::~House() +{ + +} + +uint32_t Core::House::getLandSetId() +{ + return m_landSetId; +} + +uint8_t Core::House::getLandId() +{ + return m_landId; +} + +uint8_t Core::House::getWardNum() +{ + return m_wardNum; +} + +uint32_t Core::House::getHouseId() +{ + return m_houseId; +} + +uint8_t Core::House::getHousePartColor( Common::HousePartSlot slot ) +{ + return m_housePartsColor[ slot ]; +} + +void Core::House::setHousePart( Common::HousePartSlot slot, uint32_t id ) +{ + m_houseParts[ slot ] = id; +} + +void Core::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id ) +{ + m_housePartsColor[ slot ] = id; +} + +uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) +{ + return m_houseParts[ slot ]; +} diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h new file mode 100644 index 00000000..2aad0f8f --- /dev/null +++ b/src/servers/sapphire_zone/Zone/House.h @@ -0,0 +1,47 @@ +#ifndef SAPPHIRE_HOUSE_H +#define SAPPHIRE_HOUSE_H + +#include "Forwards.h" +#include +#include +#include + +namespace Core +{ + + class House + { + + public: + House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t zoneId ); + virtual ~House(); + + //gerneral + uint32_t getLandSetId(); + uint8_t getLandId(); + uint8_t getWardNum(); + uint16_t getZoneId(); + uint32_t getHouseId(); + + //functions + void setHousePart( Common::HousePartSlot slot, uint32_t id ); + void setHousePartColor( Common::HousePartSlot slot, uint32_t id ); + uint32_t getHousePart( Common::HousePartSlot slot ); + uint8_t getHousePartColor( Common::HousePartSlot slot ); + + private: + uint32_t m_landSetId; + uint8_t m_landId; + uint8_t m_wardNum; + uint16_t m_zoneId; + uint32_t m_houseId; + + uint32_t m_houseParts[8]; + uint8_t m_housePartsColor[8]; + + char m_HouseMsg[193]; + }; + +} + +#endif // SAPPHIRE_HOUSE_H diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index d4521106..3be59f92 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -43,7 +43,7 @@ bool Core::HousingMgr::init() return true; } -uint16_t Core::HousingMgr::getNexLandId() +uint16_t Core::HousingMgr::getNextLandId() { return ++m_lastLandId; } @@ -55,7 +55,7 @@ uint32_t Core::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId void Core::HousingMgr::insertHousingZone( Core::Data::HousingZonePtr hZone ) { - uint16_t id = getNexLandId(); + uint16_t id = getNextLandId(); m_housingZonePtrMap[id] = hZone; } @@ -149,7 +149,7 @@ void Core::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, player.queuePacket( plotPricePacket ); } -Core::LandPurchaseResult Core::HousingMgr::purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ) +Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ) { auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index 156fd18c..869c8aaf 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -23,7 +23,7 @@ namespace Core bool init(); uint32_t toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const; - uint16_t getNexLandId(); + uint16_t getNextLandId(); void insertHousingZone( Core::Data::HousingZonePtr hZone ); Core::Data::HousingZonePtr getHousingZone( uint16_t id ); Core::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); @@ -31,7 +31,7 @@ namespace Core void sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); void sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); - LandPurchaseResult purchseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + LandPurchaseResult purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ); bool relinquishLand( Entity::Player& player, uint8_t plot ); diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 5d7f5ec4..3eae8feb 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -108,10 +108,9 @@ void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); i++, count++ ) { landSetMap->data().landInfo[ count ].status = 1; - //memcpy( , &getLand( i )->getLand(), sizeof( Common::LandStruct ) ); } - //player.queuePacket( landSetMap ); + player.queuePacket( landSetMap ); } diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 62e8242f..57b9d598 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -152,6 +152,13 @@ uint16_t Core::Land::getZoneId() const return m_zoneId; } +Core::HousePtr Core::Land::getHouse() const +{ + if( !m_house ) + return nullptr; + return m_house; +} + Core::Common::LandType Core::Land::getLandType() const { return m_type; diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 95f4b6ce..daa483e9 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -35,6 +35,7 @@ namespace Core uint8_t getLandId() const; uint16_t getZoneId() const; Common::LandType getLandType() const; + Core::HousePtr getHouse() const; //Free Comapny void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ); @@ -79,6 +80,8 @@ namespace Core uint32_t m_ownerPlayerId; Core::Data::HousingLandSetPtr m_landInfo; + Core::HousePtr m_house; + //item storage Core::ItemContainerPtr ItemsOutdoorContainer; uint32_t m_maxItems; From bc3c683c92e13b023c14e3631ef01c975b429e72 Mon Sep 17 00:00:00 2001 From: Mordred <30826167+SapphireMordred@users.noreply.github.com> Date: Mon, 19 Nov 2018 10:04:54 +0100 Subject: [PATCH 068/385] Update House.cpp --- src/servers/sapphire_zone/Zone/House.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index a4799177..c578b80d 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -1,4 +1,5 @@ #include +#include #include #include From b188455c3ea31de350247e01376ef0e0bd352456 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 19 Nov 2018 10:32:58 +0100 Subject: [PATCH 069/385] D: --- sql/update_land.sql | 3 ++- src/servers/sapphire_zone/Zone/House.cpp | 25 ++++++++++++++---------- src/servers/sapphire_zone/Zone/House.h | 20 +++++++++---------- 3 files changed, 27 insertions(+), 21 deletions(-) diff --git a/sql/update_land.sql b/sql/update_land.sql index 9827b1c5..6baa174e 100644 --- a/sql/update_land.sql +++ b/sql/update_land.sql @@ -1 +1,2 @@ -ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`; \ No newline at end of file +ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`; +ALTER TABLE `house` ADD `HouseName` binary(23) DEFAULT "" AFTER `Comment`; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index a4799177..f3eeb45e 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -10,15 +10,15 @@ extern Core::Framework g_fw; -Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t zoneId ) : +Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t territoryTypeId ) : m_houseId( houseId ), m_landSetId( landSetId ), m_landId( landId ), m_wardNum( wardNum ), - m_zoneId( zoneId ) + m_territoryTypeId( territoryTypeId ) { - memset( &m_houseParts, 0x00, 8 ); - memset( &m_HouseMsg, 0x00, 193 ); + std::memset( &m_houseParts, 0x00, sizeof( m_houseParts ) ); + std::memset( &m_commentMsg, 0x00, 193 ); } Core::House::~House() @@ -26,27 +26,32 @@ Core::House::~House() } -uint32_t Core::House::getLandSetId() +uint32_t Core::House::getLandSetId() const { return m_landSetId; } -uint8_t Core::House::getLandId() +uint8_t Core::House::getLandId() const { return m_landId; } -uint8_t Core::House::getWardNum() +uint8_t Core::House::getWardNum() const { return m_wardNum; } -uint32_t Core::House::getHouseId() +uint16_t Core::House::getTerritoryTypeId() const +{ + return m_territoryTypeId; +} + +uint32_t Core::House::getHouseId() const { return m_houseId; } -uint8_t Core::House::getHousePartColor( Common::HousePartSlot slot ) +uint8_t Core::House::getHousePartColor( Common::HousePartSlot slot ) const { return m_housePartsColor[ slot ]; } @@ -61,7 +66,7 @@ void Core::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id ) m_housePartsColor[ slot ] = id; } -uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) +uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) const { return m_houseParts[ slot ]; } diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h index 2aad0f8f..5f22a50d 100644 --- a/src/servers/sapphire_zone/Zone/House.h +++ b/src/servers/sapphire_zone/Zone/House.h @@ -13,33 +13,33 @@ namespace Core { public: - House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t zoneId ); + House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t territoryTypeId ); virtual ~House(); //gerneral - uint32_t getLandSetId(); - uint8_t getLandId(); - uint8_t getWardNum(); - uint16_t getZoneId(); - uint32_t getHouseId(); + uint32_t getLandSetId() const; + uint8_t getLandId() const; + uint8_t getWardNum() const; + uint16_t getTerritoryTypeId() const; + uint32_t getHouseId() const; //functions void setHousePart( Common::HousePartSlot slot, uint32_t id ); void setHousePartColor( Common::HousePartSlot slot, uint32_t id ); - uint32_t getHousePart( Common::HousePartSlot slot ); - uint8_t getHousePartColor( Common::HousePartSlot slot ); + uint32_t getHousePart( Common::HousePartSlot slot ) const; + uint8_t getHousePartColor( Common::HousePartSlot slot ) const; private: uint32_t m_landSetId; uint8_t m_landId; uint8_t m_wardNum; - uint16_t m_zoneId; + uint16_t m_territoryTypeId; uint32_t m_houseId; uint32_t m_houseParts[8]; uint8_t m_housePartsColor[8]; - char m_HouseMsg[193]; + char m_commentMsg[193]; }; } From d5faa15d0ad6fc49514402c641898689ee67f1fc Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 19 Nov 2018 10:35:48 +0100 Subject: [PATCH 070/385] upps --- src/servers/sapphire_zone/Zone/House.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index 8a6a88d4..533bc639 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -18,8 +18,8 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ m_wardNum( wardNum ), m_territoryTypeId( territoryTypeId ) { - std::memset( &m_houseParts, 0x00, sizeof( m_houseParts ) ); - std::memset( &m_commentMsg, 0x00, 193 ); + memset( &m_houseParts, 0x00, sizeof( m_houseParts ) ); + memset( &m_commentMsg, 0x00, 193 ); } Core::House::~House() From edf4177b9f799808abe5a8accac050feea4c3131 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 19 Nov 2018 11:55:29 +0100 Subject: [PATCH 071/385] Cleanup HousingMgr + Style --- .../Scripts/common/CmnDefHousingSignboard.cpp | 2 +- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 61 +++++-------------- src/servers/sapphire_zone/Zone/HousingMgr.h | 7 +-- .../sapphire_zone/Zone/HousingZone.cpp | 3 - src/servers/sapphire_zone/Zone/Land.cpp | 4 +- src/servers/sapphire_zone/Zone/Land.h | 2 +- 6 files changed, 20 insertions(+), 59 deletions(-) diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index 5ca17950..ae9c8c5e 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -38,7 +38,7 @@ public: auto pHouMgr = pFw->get< Core::HousingMgr >(); LandPurchaseResult res = pHouMgr->purchaseLand( player, activeLand.plot, - static_cast< uint8_t >( result.param2 ) ); + static_cast< uint8_t >( result.param2 ) ); switch( res ) { diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 3be59f92..a651cea4 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -12,6 +12,7 @@ #include "Actor/Player.h" +#include "TerritoryMgr.h" #include "Zone.h" #include "HousingZone.h" #include "HousingMgr.h" @@ -26,8 +27,7 @@ using namespace Core::Network::Packets::Server; extern Core::Framework g_fw; -Core::HousingMgr::HousingMgr() : - m_lastLandId( 0 ) +Core::HousingMgr::HousingMgr() { } @@ -43,61 +43,32 @@ bool Core::HousingMgr::init() return true; } -uint16_t Core::HousingMgr::getNextLandId() -{ - return ++m_lastLandId; -} uint32_t Core::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const { return ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardId; } -void Core::HousingMgr::insertHousingZone( Core::Data::HousingZonePtr hZone ) -{ - uint16_t id = getNextLandId(); - m_housingZonePtrMap[id] = hZone; -} - -Core::Data::HousingZonePtr Core::HousingMgr::getHousingZone( uint16_t id ) -{ - auto it = m_housingZonePtrMap.find( id ); - if( it == m_housingZonePtrMap.end() ) - return nullptr; - - return it->second; -} - Core::Data::HousingZonePtr Core::HousingMgr::getHousingZoneByLandSetId( uint32_t id ) { - for( const auto& hZoneIt : m_housingZonePtrMap ) - { - auto pHousingZone = hZoneIt.second; - for( uint8_t landId = 0; landId < 60; landId++ ) - { - if( pHousingZone->getLandSetId() == id ) - { - return pHousingZone; - } - } - } - return nullptr; + auto pTeriMgr = g_fw.get< TerritoryMgr >(); + return std::dynamic_pointer_cast< HousingZone >( pTeriMgr->getZoneByLandSetId( id ) ); } Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) { - for( const auto& hZoneIt : m_housingZonePtrMap ) - { - auto pHousingZone = hZoneIt.second; - for( uint8_t landId = 0; landId < 60; landId++ ) - { - if( pHousingZone->getLand( landId )->getPlayerOwner() == id ) - { - return pHousingZone->getLand( landId ); - } - } - } - return nullptr; + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDb->query( "SELECT LandSetId, LandId FROM land WHERE OwnerId = " + std::to_string( id ) ); + + if( !res->next() ) + return nullptr; + + auto hZone = getHousingZoneByLandSetId( res->getUInt( 1 ) ); + + if( !hZone ) + return nullptr; + + return hZone->getLand( res->getUInt( 2 ) ); } void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index 869c8aaf..b97c8acf 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -23,9 +23,6 @@ namespace Core bool init(); uint32_t toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const; - uint16_t getNextLandId(); - void insertHousingZone( Core::Data::HousingZonePtr hZone ); - Core::Data::HousingZonePtr getHousingZone( uint16_t id ); Core::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); Core::LandPtr getLandByOwnerId( uint32_t id ); @@ -36,9 +33,7 @@ namespace Core bool relinquishLand( Entity::Player& player, uint8_t plot ); private: - using HousingZonePtrMap = std::unordered_map< uint16_t, Core::Data::HousingZonePtr >; - uint16_t m_lastLandId; - HousingZonePtrMap m_housingZonePtrMap; + }; } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 3eae8feb..9d52a1f4 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -65,9 +65,6 @@ bool Core::HousingZone::init() m_landPtrMap[ landId ] = pObject; } - auto pHousingMgr = g_fw.get< HousingMgr >(); - pHousingMgr->insertHousingZone( (HousingZonePtr)this ); - return true; } diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 57b9d598..e0e4bbba 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -154,9 +154,7 @@ uint16_t Core::Land::getZoneId() const Core::HousePtr Core::Land::getHouse() const { - if( !m_house ) - return nullptr; - return m_house; + return m_pHouse; } Core::Common::LandType Core::Land::getLandType() const diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index daa483e9..173a00a7 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -80,7 +80,7 @@ namespace Core uint32_t m_ownerPlayerId; Core::Data::HousingLandSetPtr m_landInfo; - Core::HousePtr m_house; + Core::HousePtr m_pHouse; //item storage Core::ItemContainerPtr ItemsOutdoorContainer; From 06b107c7477c62e09e3d4e446df5533041093cac Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Mon, 19 Nov 2018 11:56:53 +0100 Subject: [PATCH 072/385] next fix --- src/servers/sapphire_zone/Zone/House.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index 533bc639..7b9a74b3 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -19,7 +19,7 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ m_territoryTypeId( territoryTypeId ) { memset( &m_houseParts, 0x00, sizeof( m_houseParts ) ); - memset( &m_commentMsg, 0x00, 193 ); + memset( &m_commentMsg, 0x00, sizeof( m_commentMsg ) ); } Core::House::~House() From d27ae703ec7f3652355d723f6a018d94862f6a73 Mon Sep 17 00:00:00 2001 From: Mordred <30826167+SapphireMordred@users.noreply.github.com> Date: Mon, 19 Nov 2018 12:03:24 +0100 Subject: [PATCH 073/385] Update House.h --- src/servers/sapphire_zone/Zone/House.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h index 5f22a50d..080aea2e 100644 --- a/src/servers/sapphire_zone/Zone/House.h +++ b/src/servers/sapphire_zone/Zone/House.h @@ -36,10 +36,10 @@ namespace Core uint16_t m_territoryTypeId; uint32_t m_houseId; - uint32_t m_houseParts[8]; - uint8_t m_housePartsColor[8]; + uint32_t m_houseParts[ 8 ]; + uint8_t m_housePartsColor[ 8 ]; - char m_commentMsg[193]; + char m_commentMsg[ 193 ]; }; } From 919443243931ffe134db4f94214cc1298359790b Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 19 Nov 2018 23:52:35 +0100 Subject: [PATCH 074/385] Slight event changes for multiple nested events --- src/servers/Scripts/common/WarpTaxi.cpp | 50 +++++++++++++++++++ src/servers/sapphire_zone/Actor/Player.h | 2 +- .../sapphire_zone/Actor/PlayerEvent.cpp | 31 +++++++++--- .../sapphire_zone/Event/EventHandler.cpp | 10 ++++ .../sapphire_zone/Event/EventHandler.h | 6 +++ 5 files changed, 91 insertions(+), 8 deletions(-) create mode 100644 src/servers/Scripts/common/WarpTaxi.cpp diff --git a/src/servers/Scripts/common/WarpTaxi.cpp b/src/servers/Scripts/common/WarpTaxi.cpp new file mode 100644 index 00000000..5332338d --- /dev/null +++ b/src/servers/Scripts/common/WarpTaxi.cpp @@ -0,0 +1,50 @@ +#include +#include + +#include +#include + +using namespace Core; + +class WarpTaxi : public Sapphire::ScriptAPI::EventScript +{ +public: + WarpTaxi() : + Sapphire::ScriptAPI::EventScript( 0x0002005a ) + { + } + + void inner( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param1 != 256 ) + { + std::function< void( Entity::Player&, const Event::SceneResult& ) > fn = std::bind( &WarpTaxi::inner, this, std::placeholders::_1, std::placeholders::_2 ); + + player.playScene( 1310721, 0, HIDE_HOTBAR, 0, 1, 341, fn ); + } + } + + void inner2( Entity::Player& player, uint64_t actorId ) + { + player.eventStart( actorId, 1310721, Event::EventHandler::Nest, 0, 0 ); + std::function< void( Entity::Player&, const Event::SceneResult& ) > fn = std::bind( &WarpTaxi::inner, this, std::placeholders::_1, std::placeholders::_2 ); + player.playScene( 1310721, 0, HIDE_HOTBAR, 0, 1, 341, fn ); + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto exddata = getFramework()->get< Core::Data::ExdDataGenerated >(); + if( !exddata ) + return; + + auto warp = exddata->get< Core::Data::Warp >( eventId ); + if( !warp ) + return; + + player.eventStart( actorId, warp->defaultTalk1, Event::EventHandler::Nest, 0, 0, std::bind( &WarpTaxi::inner2, this, std::placeholders::_1, std::placeholders::_2 ) ); + player.playScene( warp->defaultTalk1, 0, HIDE_HOTBAR, [warp, this]( Entity::Player& player, const Event::SceneResult& result ) + { + + } ); + } +}; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 0c673668..6462e6ea 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -61,7 +61,7 @@ namespace Core::Entity /*! start/register a normal event */ void eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventParam, uint8_t eventParam1, - uint32_t eventParam2 ); + uint32_t eventParam2, Event::EventHandler::EventFinishCallback callback = nullptr ); /*! play a subevent */ void playScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3 ); diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 6ce9dd2d..13daf07c 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -92,11 +92,13 @@ void Core::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t scene, void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventType, uint8_t eventParam1, - uint32_t eventParam2 ) + uint32_t eventParam2, Event::EventHandler::EventFinishCallback callback ) { auto newEvent = Event::make_EventHandler( this, actorId, eventId, eventType, eventParam2 ); + newEvent->setEventFinishCallback( callback ); + addEvent( newEvent ); setStateFlag( PlayerStateFlag::InNpcEvent ); @@ -163,8 +165,8 @@ Core::Event::EventHandlerPtr Core::Entity::Player::bootstrapSceneEvent( uint32_t if( !pEvent && getEventCount() ) { // We're trying to play a nested event, need to start it first. - eventStart( getId(), eventId, Event::EventHandler::Nest, 0, 0 ); - pEvent = getEvent( eventId ); + //eventStart( getId(), eventId, Event::EventHandler::Nest, 0, 0 ); + //pEvent = getEvent( eventId ); } else if( !pEvent ) { @@ -185,6 +187,16 @@ void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, if( !pEvent ) return; + if( pEvent->getEventType() == Event::EventHandler::Nest ) + { + auto events = eventList(); + + for( auto it : events ) + { + it.second->setPlayedScene( true ); + } + } + pEvent->setPlayedScene( true ); pEvent->setEventReturnCallback( eventCallback ); pEvent->setSceneChainCallback( nullptr ); @@ -246,12 +258,17 @@ void Core::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlayer ) case Event::EventHandler::Nest: { queuePacket( std::make_shared< EventFinishPacket >( getId(), pEvent->getId(), - pEvent->getEventType(), pEvent->getEventParam() ) ); + pEvent->getEventType(), pEvent->getEventParam() ) ); removeEvent( pEvent->getId() ); + auto callback = pEvent->getEventFinishCallback(); + + if( callback ) + callback( *this, pEvent->getActorId() ); + auto events = eventList(); - for( auto it : events ) + /*for( auto it : events ) { if( it.second->hasPlayedScene() == false ) @@ -262,14 +279,14 @@ void Core::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlayer ) it.second->getEventParam() ) ); removeEvent( it.second->getId() ); } - } + }*/ break; } default: { queuePacket( std::make_shared< EventFinishPacket >( getId(), pEvent->getId(), - pEvent->getEventType(), pEvent->getEventParam() ) ); + pEvent->getEventType(), pEvent->getEventParam() ) ); break; } } diff --git a/src/servers/sapphire_zone/Event/EventHandler.cpp b/src/servers/sapphire_zone/Event/EventHandler.cpp index 66b44235..cd62b2b8 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.cpp +++ b/src/servers/sapphire_zone/Event/EventHandler.cpp @@ -64,6 +64,16 @@ void Core::Event::EventHandler::setSceneChainCallback( Core::Event::EventHandler m_chainCallback = callback; } +Core::Event::EventHandler::EventFinishCallback Core::Event::EventHandler::getEventFinishCallback() const +{ + return m_finishCallback; +} + +void Core::Event::EventHandler::setEventFinishCallback( EventFinishCallback callback ) +{ + m_finishCallback = callback; +} + bool Core::Event::EventHandler::hasPlayedScene() const { return m_playedScene; diff --git a/src/servers/sapphire_zone/Event/EventHandler.h b/src/servers/sapphire_zone/Event/EventHandler.h index 513986f8..7b880279 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.h +++ b/src/servers/sapphire_zone/Event/EventHandler.h @@ -75,6 +75,7 @@ namespace Core::Event using SceneReturnCallback = std::function< void( Entity::Player&, const SceneResult& ) >; using SceneChainCallback = std::function< void( Entity::Player& ) >; + using EventFinishCallback = std::function< void( Entity::Player&, uint64_t ) >; EventHandler( Entity::Player* pOwner, uint64_t actorId, uint32_t eventId, EventType eventType, uint32_t eventParam ); @@ -107,6 +108,10 @@ namespace Core::Event void setSceneChainCallback( SceneChainCallback callback ); + EventFinishCallback getEventFinishCallback() const; + + void setEventFinishCallback( EventFinishCallback callback ); + bool hasNestedEvent() const; void removeNestedEvent(); @@ -125,6 +130,7 @@ namespace Core::Event bool m_playedScene; SceneReturnCallback m_returnCallback; SceneChainCallback m_chainCallback; + EventFinishCallback m_finishCallback; }; } From 6106e7bc4565062a9c8d3073b5ea3b07397bba0f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 20 Nov 2018 22:52:57 +1100 Subject: [PATCH 075/385] Add ward selection, ward info & some script cleanup --- src/common/Common.h | 24 +++++++ src/common/Network/CommonActorControl.h | 2 + src/common/Network/PacketDef/Ipcs.h | 5 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 18 +++++ src/servers/Scripts/common/Aethernet.cpp | 52 -------------- src/servers/Scripts/common/Aetheryte.cpp | 72 +++++++++++++++---- src/servers/Scripts/common/GilShop.cpp | 2 +- src/servers/Scripts/common/WarpTaxi.cpp | 69 ++++++++++++++---- .../sapphire_zone/Event/EventHelper.cpp | 4 +- .../Network/Handlers/ClientTriggerHandler.cpp | 12 +++- .../Network/Handlers/GMCommandHandlers.cpp | 11 ++- .../sapphire_zone/Script/ScriptMgr.cpp | 29 +++----- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 59 +++++++++++++-- src/servers/sapphire_zone/Zone/HousingMgr.h | 2 + src/tools/exd_common_gen/main.cpp | 1 + 15 files changed, 254 insertions(+), 108 deletions(-) delete mode 100644 src/servers/Scripts/common/Aethernet.cpp diff --git a/src/common/Common.h b/src/common/Common.h index f1d58363..543cf72d 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -814,6 +814,30 @@ namespace Core::Common heart = 0x06 }; + enum HousingAppeal : uint8_t + { + NoAppeal = 0, + Emporium = 1, + Botique = 2, + DesignerHome = 3, + MessageBook = 4, + Tavern = 5, + Eatery = 6, + ImmersiveExperience = 7, + Aquarium = 9, + Sanctum = 10, + Venue = 11, + }; + + enum WardEstateFlags : uint8_t + { + IsEstateOwned = 1, + IsPublicEstate = 2, + HasEstateMessage = 4, + EstateFlagUnknown = 8, + IsFreeCompanyEstate = 16, + }; + using PlayerStateFlagList = std::vector< PlayerStateFlag >; } diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index d417ea96..e4d6158b 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -292,8 +292,10 @@ enum ActorControlType : uint16_t RequestHousingBuildPreset = 0x44C, RequestLandSignFree = 0x451, RequestLandSignOwned = 0x452, + RequestWardLandInfo = 0x453, RequestLandRelinquish = 0x454, RequestEstateRename = 0x45A, + RequestEstateGreeting = 0x45C, RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 8b43346b..37f7e9d9 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -82,7 +82,7 @@ namespace Core::Network::Packets ServerNotice = 0x0104, // updated 4.4 SetOnlineStatus = 0x0105, // updated 4.4 - + CountdownInitiate = 0x010C, // updated 4.4 CountdownCancel = 0x010D, // updated 4.4 @@ -192,11 +192,12 @@ namespace Core::Network::Packets LandRename = 0x0226, // updated 4.4 LandPermissionSlot = 0x0228, // updated 4.4 - LandPermission = 0x0229, // updated 4.4 LandSetYardInitialize = 0x022C, // updated 4.4 + HousingWardInfo = 0x022F, // updated 4.4 + YardObjectMove = 0x0230, // updated 4.4 SharedEstateSettingsResponse = 0x023C, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index d0a31c16..4423d29b 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1720,6 +1720,24 @@ struct FFXIVIpcLandSetYardInitialize : FFXIVIpcBasePacket< LandSetYardInitialize uint32_t unknown4; //unused }; +struct FFXIVIpcHousingWardInfo : FFXIVIpcBasePacket< HousingWardInfo > +{ + uint16_t unknown1; + + uint16_t wardId; + uint16_t territoryTypeId; + + uint16_t unknown2; + + struct HouseInfoEntry + { + uint32_t housePrice; + uint8_t infoFlags; + Common::HousingAppeal houseAppeal[3]; + char estateOwnerName[30]; + } houseInfoEntry[60]; +}; + /** * Structural representation of the packet sent by the server * to show the current shared estate settings diff --git a/src/servers/Scripts/common/Aethernet.cpp b/src/servers/Scripts/common/Aethernet.cpp deleted file mode 100644 index c813f2b5..00000000 --- a/src/servers/Scripts/common/Aethernet.cpp +++ /dev/null @@ -1,52 +0,0 @@ -#include -#include - -#define ACTION_ATTUNE 0x13 - -#define AetheryteBaseId 0x50000 -#define AETHERYTE_MENU_AETHERNET 1 -#define AETHERYTE_MENU_HOUSING 2 -#define AETHERYTE_MENU_HOME_POINT 3 -#define AETHERYTE_MENU_FAVORITE_POINT 4 -#define AETHERYTE_MENU_FAVORITE_POINT_SECURITY_TOKEN 5 - -using namespace Core; - -class Aethernet : - public Sapphire::ScriptAPI::EventScript -{ -public: - Aethernet() : - Sapphire::ScriptAPI::EventScript( EVENTSCRIPT_AETHERNET_ID ) - { - } - - void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override - { - if( player.isAetheryteRegistered( eventId & 0xFFFF ) ) - { - player.playScene( eventId, 2, 0, []( Entity::Player& player, const Event::SceneResult& result ) - { - if( result.param1 == 256 ) - { - player.teleport( result.param2, 2 ); - } - } ); - } - else - { - player.eventActionStart( eventId, ACTION_ATTUNE, - []( Entity::Player& player, uint32_t eventId, uint64_t additional ) - { - player.registerAetheryte( eventId & 0xFFFF ); - player.playScene( eventId, 3, 0, 0, 0 ); - }, - []( Entity::Player& ply, uint32_t evntId, uint64_t additional ) - { - - }, 0 ); - - } - - } -}; diff --git a/src/servers/Scripts/common/Aetheryte.cpp b/src/servers/Scripts/common/Aetheryte.cpp index c8f602eb..44e7fccf 100644 --- a/src/servers/Scripts/common/Aetheryte.cpp +++ b/src/servers/Scripts/common/Aetheryte.cpp @@ -1,33 +1,65 @@ #include #include +#include +#include -#define ACTION_ATTUNE 0x13 -#define ACTION_TELEPORT 0x4 -#define AetheryteBaseId 0x50000 -#define AETHERYTE_MENU_AETHERNET 1 -#define AETHERYTE_MENU_HOUSING 2 -#define AETHERYTE_MENU_HOME_POINT 3 -#define AETHERYTE_MENU_FAVORITE_POINT 4 -#define AETHERYTE_MENU_FAVORITE_POINT_SECURITY_TOKEN 5 using namespace Core; class Aetheryte : public Sapphire::ScriptAPI::EventScript { +private: + constexpr static auto ACTION_ATTUNE = 0x13; + constexpr static auto ACTION_TELEPORT = 0x4; + + constexpr static auto AETHERYTE_MENU_AETHERNET = 1; + constexpr static auto AETHERYTE_MENU_HOUSING = 2; + constexpr static auto AETHERYTE_MENU_HOME_POINT = 3; + constexpr static auto AETHERYTE_MENU_FAVORITE_POINT = 4; + constexpr static auto AETHERYTE_MENU_FAVORITE_POINT_SECURITY_TOKEN = 5; + public: Aetheryte() : - Sapphire::ScriptAPI::EventScript( EVENTSCRIPT_AETHERYTE_ID ) + Sapphire::ScriptAPI::EventScript( 0x00050000 ) { } - void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + void aethernet( uint32_t eventId, Entity::Player& player, uint64_t actorId ) { if( player.isAetheryteRegistered( eventId & 0xFFFF ) ) { - player.playScene( eventId, 0, 1, []( Entity::Player& player, const Event::SceneResult& result ) + player.playScene( eventId, 2, 0, [this]( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param1 == 256 ) + { + player.teleport( result.param2, 2 ); + } + } ); + } + else + { + player.eventActionStart( eventId, ACTION_ATTUNE, + []( Entity::Player& player, uint32_t eventId, uint64_t additional ) + { + player.registerAetheryte( eventId & 0xFFFF ); + player.playScene( eventId, 3, 0, 0, 0 ); + }, + []( Entity::Player& ply, uint32_t evntId, uint64_t additional ) + { + + }, 0 ); + + } + } + + void aetheryte( uint32_t eventId, Entity::Player& player, uint64_t actorId ) + { + if( player.isAetheryteRegistered( eventId & 0xFFFF ) ) + { + player.playScene( eventId, 0, 1, [this]( Entity::Player& player, const Event::SceneResult& result ) { if( result.param1 == 256 ) // set homepoint { @@ -55,7 +87,7 @@ public: else { player.eventActionStart( eventId, ACTION_ATTUNE, - []( Entity::Player& player, uint32_t eventId, uint64_t additional ) + [this]( Entity::Player& player, uint32_t eventId, uint64_t additional ) { player.registerAetheryte( eventId & 0xFFFF ); @@ -73,4 +105,20 @@ public: {}, 0 ); } } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto pExdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + if( !pExdData ) + return; + + auto aetherInfo = pExdData->get< Core::Data::Aetheryte >( eventId & 0xFFFF ); + if( !aetherInfo ) + return; + + if( aetherInfo->isAetheryte ) + aetheryte( eventId, player, actorId ); + else + aethernet( eventId, player, actorId ); + } }; \ No newline at end of file diff --git a/src/servers/Scripts/common/GilShop.cpp b/src/servers/Scripts/common/GilShop.cpp index 8b9cac58..e6c988ea 100644 --- a/src/servers/Scripts/common/GilShop.cpp +++ b/src/servers/Scripts/common/GilShop.cpp @@ -8,7 +8,7 @@ class GilShop : { public: GilShop() : - Sapphire::ScriptAPI::EventScript( 0x00040001 ) + Sapphire::ScriptAPI::EventScript( 0x00040000 ) { } diff --git a/src/servers/Scripts/common/WarpTaxi.cpp b/src/servers/Scripts/common/WarpTaxi.cpp index 5332338d..7c259be6 100644 --- a/src/servers/Scripts/common/WarpTaxi.cpp +++ b/src/servers/Scripts/common/WarpTaxi.cpp @@ -2,6 +2,9 @@ #include #include +#include +#include +#include #include using namespace Core; @@ -16,35 +19,75 @@ public: void inner( Entity::Player& player, const Event::SceneResult& result ) { - if( result.param1 != 256 ) + if( result.param1 == 256 ) // exit { - std::function< void( Entity::Player&, const Event::SceneResult& ) > fn = std::bind( &WarpTaxi::inner, this, std::placeholders::_1, std::placeholders::_2 ); + player.eventFinish( 1310721, 0 ); + player.eventFinish( getId(), 1 ); + } + else if( result.param1 == 768 ) // teleport to ward + { + player.eventFinish( 1310721, 0 ); + player.eventFinish( getId(), 1 ); - player.playScene( 1310721, 0, HIDE_HOTBAR, 0, 1, 341, fn ); + // todo: this is shit, move to housingmgr? handle moving players in and out of it there? + auto exdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + + auto warp = exdData->get< Core::Data::Warp >( getId() ); + if( !warp ) + return; + + auto level = exdData->get< Core::Data::Level >( warp->level ); + if( !level ) + { + + // fetch from cache + auto teriMgr = getFramework()->get< Core::TerritoryMgr >(); + + auto pos = teriMgr->getTerritoryPosition( warp->level ); + if( !pos ) + return; + + // lookup instance + auto housingMgr = getFramework()->get< Core::HousingMgr >(); + auto landSetId = housingMgr->toLandSetId( 341, result.param3 ); + auto hZone = housingMgr->getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + return; + + player.setPos( pos->getTargetPosition() ); + player.setRot( pos->getTargetRotation() ); + player.setInstance( hZone ); + + } + } + else + { + player.playScene( 1310721, 0, HIDE_HOTBAR, 0, 1, 341, std::bind( &WarpTaxi::inner, this, std::placeholders::_1, std::placeholders::_2 ) ); } } void inner2( Entity::Player& player, uint64_t actorId ) { - player.eventStart( actorId, 1310721, Event::EventHandler::Nest, 0, 0 ); - std::function< void( Entity::Player&, const Event::SceneResult& ) > fn = std::bind( &WarpTaxi::inner, this, std::placeholders::_1, std::placeholders::_2 ); - player.playScene( 1310721, 0, HIDE_HOTBAR, 0, 1, 341, fn ); + player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0, 32529, [this, actorId]( Entity::Player& player, const Event::SceneResult& result ) + { + player.eventStart( actorId, 1310721, Event::EventHandler::Nest, 1, 0 ); + + player.playScene( 1310721, 0, HIDE_HOTBAR, 0, 1, 341, std::bind( &WarpTaxi::inner, this, std::placeholders::_1, std::placeholders::_2 ) ); + } ); } void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto exddata = getFramework()->get< Core::Data::ExdDataGenerated >(); - if( !exddata ) + auto exdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + if( !exdData ) return; - auto warp = exddata->get< Core::Data::Warp >( eventId ); + auto warp = exdData->get< Core::Data::Warp >( eventId ); if( !warp ) return; player.eventStart( actorId, warp->defaultTalk1, Event::EventHandler::Nest, 0, 0, std::bind( &WarpTaxi::inner2, this, std::placeholders::_1, std::placeholders::_2 ) ); - player.playScene( warp->defaultTalk1, 0, HIDE_HOTBAR, [warp, this]( Entity::Player& player, const Event::SceneResult& result ) - { - - } ); + player.playScene( warp->defaultTalk1, 0, HIDE_HOTBAR, 0, 0, 7, nullptr ); } }; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Event/EventHelper.cpp b/src/servers/sapphire_zone/Event/EventHelper.cpp index c87889bc..8243599c 100644 --- a/src/servers/sapphire_zone/Event/EventHelper.cpp +++ b/src/servers/sapphire_zone/Event/EventHelper.cpp @@ -77,10 +77,10 @@ std::string Core::Event::getEventName( uint32_t eventId ) case Event::EventHandler::EventHandlerType::Shop: { auto shopInfo = pExdData->get< Core::Data::GilShop >( eventId ); - std::string name = shopInfo->name; if( shopInfo ) - return name; + return shopInfo->name; + return unknown + "GilShop"; } default: diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index aed5e18b..d58057cf 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -344,6 +344,16 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR pHousingMgr->sendLandSignOwned( player, ward, plot, territoryId ); break; } + case ClientTriggerType::RequestWardLandInfo: + { + auto pHousingMgr = g_fw.get< HousingMgr >(); + if( !pHousingMgr ) + break; + + pHousingMgr->sendWardLandInfo( player, param12, param11 ); + + break; + } case ClientTriggerType::RequestLandRelinquish: { auto plot = static_cast< uint8_t >( param12 & 0xFF ); @@ -354,7 +364,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestEstateRename: { - // removed temporarly, there is no such thing as a LandName + // removed temporarly, there is no such thing as a LandName /* auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); uint8_t ward = ( param12 & 0xFF00 ) >> 8; diff --git a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp index d45a3a6f..c2870905 100644 --- a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp @@ -456,7 +456,7 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R player.sendUrgent( "No zone instance found for " + std::to_string( param1 ) ); break; } - + if( !pTeriMgr->isDefaultTerritory( param1 ) ) { player.sendUrgent( pZone->getName() + " is an instanced area - instance ID required to zone in." ); @@ -503,6 +503,15 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R } break; } + case GmCommand::Kick: + { + // todo: this doesn't kill their session straight away, should do this properly but its good for when you get stuck for now + targetPlayer->setMarkedForRemoval(); + + player.sendNotice( "Kicked " + targetPlayer->getName() ); + + break; + } case GmCommand::TeriInfo: { auto pCurrentZone = player.getCurrentZone(); diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index 8cb15069..38d6bc90 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -168,29 +168,22 @@ void Core::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& player bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ) { - - auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint16_t eventType = eventId >> 16; - uint32_t scriptId = eventId; - - // todo: replace this shit with something more flexible allowing for handlers for an entire type without a bunch of if statements - // aethernet/aetherytes need to be handled separately - if( eventType == Event::EventHandler::EventHandlerType::Aetheryte ) + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId & 0xFFFF0000 ); + if( script ) { - auto aetherInfo = pExdData->get< Core::Data::Aetheryte >( eventId & 0xFFFF ); - scriptId = EVENTSCRIPT_AETHERYTE_ID; - if( !aetherInfo->isAetheryte ) - scriptId = EVENTSCRIPT_AETHERNET_ID; + script->onTalk( eventId, player, actorId ); + return true; } - else if( eventType == Event::EventHandler::EventHandlerType::Shop ) + else { - scriptId = 0x00040001; + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); + if( !script ) + return false; + + script->onTalk( eventId, player, actorId ); + return true; } - auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( scriptId ); - if( !script ) - return false; - script->onTalk( eventId, player, actorId ); return true; } diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index a651cea4..4fcf33cf 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -133,17 +133,17 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, if( pLand->getState() != HouseState::forSale ) return LandPurchaseResult::ERR_NOT_AVAILABLE; - + if( gilAvailable < plotPrice ) return LandPurchaseResult::ERR_NOT_ENOUGH_GIL; - - + + switch( static_cast< LandPurchaseMode >( state ) ) { case LandPurchaseMode::FC: player.sendDebug( "Free company house purchase aren't supported at this time." ); return LandPurchaseResult::ERR_INTERNAL; - + case LandPurchaseMode::PRIVATE: { @@ -169,11 +169,11 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, pHousing->sendLandUpdate( plot ); return LandPurchaseResult::SUCCESS; } - + default: return LandPurchaseResult::ERR_INTERNAL; } - + } bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) @@ -203,3 +203,50 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) return true; } +void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ) +{ + auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto hZone = getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + return; + + auto wardInfoPacket = makeZonePacket< Server::FFXIVIpcHousingWardInfo >( player.getId() ); + wardInfoPacket->data().wardId = wardId; + wardInfoPacket->data().territoryTypeId = territoryTypeId; + + for( int i = 0; i < 60; i++ ) + { + auto land = hZone->getLand( i ); + assert( land ); + + auto& entry = wardInfoPacket->data().houseInfoEntry[ i ]; + + entry.housePrice = land->getCurrentPrice(); + + switch( land->getLandType() ) + { + case LandType::FreeCompany: + entry.infoFlags = Common::WardEstateFlags::IsEstateOwned | Common::WardEstateFlags::IsFreeCompanyEstate; + + // todo: send FC name + + break; + + case LandType::Private: + entry.infoFlags = Common::WardEstateFlags::IsEstateOwned; + + auto owner = land->getPlayerOwner(); + std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( owner ); + memcpy( &entry.estateOwnerName, playerName.c_str(), playerName.size() ); + + break; + } + + // todo: check we have an estate message and set the flag + // todo: check if estate allows public entry + } + + player.queuePacket( wardInfoPacket ); +} + diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index b97c8acf..bc5d94d8 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -30,6 +30,8 @@ namespace Core void sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); LandPurchaseResult purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + void sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ); + bool relinquishLand( Entity::Player& player, uint8_t plot ); private: diff --git a/src/tools/exd_common_gen/main.cpp b/src/tools/exd_common_gen/main.cpp index 469bd4ae..4780a3a4 100644 --- a/src/tools/exd_common_gen/main.cpp +++ b/src/tools/exd_common_gen/main.cpp @@ -127,6 +127,7 @@ int main() result += generateEnum( "Tribe", 0, "uint8_t" ); result += generateEnum( "Town", 0, "uint8_t" ); result += generateEnum( "Weather", 1, "uint8_t" ); + result += generateEnum( "HosuingAppeal", 0, "uint8_t" ); result += "}\n"; result += "}\n#endif\n"; g_log.info( result ); From 5eac985253dba1b53e6a2ecbdd88b4d5dac19933 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 20 Nov 2018 22:55:17 +1100 Subject: [PATCH 076/385] remove unused defines --- src/servers/sapphire_zone/Script/NativeScriptApi.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.h b/src/servers/sapphire_zone/Script/NativeScriptApi.h index 566422dc..d96f3022 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.h +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.h @@ -10,11 +10,6 @@ #define EXPORT __attribute__((visibility("default"))) #endif -// todo: this is shit -// constant script ids for certain events -#define EVENTSCRIPT_AETHERYTE_ID 0x50000 -#define EVENTSCRIPT_AETHERNET_ID 0x50001 - namespace Core { class Framework; @@ -56,14 +51,14 @@ namespace Sapphire::ScriptAPI /*! * @brief Sets the ptr to the framework for use inside scripts - * + * * @param fw The ptr to g_fw (Core::Framework) */ virtual void setFramework( Core::Framework* fw ); /*! * @brief Returns the current ptr to framework set for the current script - * + * * @return A pointer to Core::Framework */ virtual Core::Framework* getFramework() const; From 08b7e63e3e13e252f0c992c6c4cd0310f3953f5f Mon Sep 17 00:00:00 2001 From: XeAri Date: Tue, 20 Nov 2018 16:08:29 +0100 Subject: [PATCH 077/385] Fixed housing preset handler --- src/servers/sapphire_zone/Network/GameConnection.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index 5d412727..b4cc9b90 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -83,7 +83,7 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, setZoneHandler( ClientZoneIpcType::InventoryModifyHandler, "InventoryModifyHandler", &GameConnection::inventoryModifyHandler ); - setZoneHandler( ClientZoneIpcType::BuildPresetHandler, "BuildPresetHandler", &GameConnection::eventHandlerTalk ); + setZoneHandler( ClientZoneIpcType::BuildPresetHandler, "BuildPresetHandler", &GameConnection:buildPresetHandler ); setZoneHandler( ClientZoneIpcType::LandRenameHandler, "LandRenameHandler", &GameConnection::landRenameHandler ); setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk ); setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote ); From e44c729177cd6f99171e551020ab238467c632c6 Mon Sep 17 00:00:00 2001 From: XeAri Date: Tue, 20 Nov 2018 16:09:03 +0100 Subject: [PATCH 078/385] Update GameConnection.cpp --- src/servers/sapphire_zone/Network/GameConnection.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index b4cc9b90..b84013b0 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -83,7 +83,7 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, setZoneHandler( ClientZoneIpcType::InventoryModifyHandler, "InventoryModifyHandler", &GameConnection::inventoryModifyHandler ); - setZoneHandler( ClientZoneIpcType::BuildPresetHandler, "BuildPresetHandler", &GameConnection:buildPresetHandler ); + setZoneHandler( ClientZoneIpcType::BuildPresetHandler, "BuildPresetHandler", &GameConnection::buildPresetHandler ); setZoneHandler( ClientZoneIpcType::LandRenameHandler, "LandRenameHandler", &GameConnection::landRenameHandler ); setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk ); setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote ); From 035edebfb4be58fd04b08a43391b9be81e306caa Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 20 Nov 2018 17:15:23 +0100 Subject: [PATCH 079/385] Typo fix --- src/tools/exd_common_gen/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/exd_common_gen/main.cpp b/src/tools/exd_common_gen/main.cpp index 4780a3a4..aa2ba071 100644 --- a/src/tools/exd_common_gen/main.cpp +++ b/src/tools/exd_common_gen/main.cpp @@ -127,7 +127,7 @@ int main() result += generateEnum( "Tribe", 0, "uint8_t" ); result += generateEnum( "Town", 0, "uint8_t" ); result += generateEnum( "Weather", 1, "uint8_t" ); - result += generateEnum( "HosuingAppeal", 0, "uint8_t" ); + result += generateEnum( "HousingAppeal", 0, "uint8_t" ); result += "}\n"; result += "}\n#endif\n"; g_log.info( result ); From b723e092f9f12c7145a8eaf30342e4e823e0cf11 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 20 Nov 2018 21:21:22 +0100 Subject: [PATCH 080/385] Added checks to relinquishing land --- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 4fcf33cf..a07406c9 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -184,6 +184,25 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) auto pLand = pHousing->getLand( plot ); auto plotMaxPrice = pLand->getCurrentPrice(); + auto landOwnerId = pLand->getPlayerOwner(); + + // can't relinquish when you are not the owner + // TODO: actually use permissions here for FC houses + if( landOwnerId != player.getId() ) + { + auto msgPkt = makeActorControl143( player.getId(), ActorControl::LogMsg, 3304, 0 ); + player.queuePacket( msgPkt ); + return false; + } + + // unable to relinquish if there is a house built + // TODO: additionally check for yard items + if( pLand->getHouse() ) + { + auto msgPkt = makeActorControl143( player.getId(), ActorControl::LogMsg, 3315, 0 ); + player.queuePacket( msgPkt ); + return false; + } pLand->setCurrentPrice( pLand->getMaxPrice() ); pLand->setPlayerOwner( 0 ); From 54f393654277486f83fb7e74209c7db26189dbf1 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 20 Nov 2018 21:32:13 +0100 Subject: [PATCH 081/385] ServerZone -> ServerMgr --- src/servers/sapphire_zone/Actor/Actor.cpp | 4 +- src/servers/sapphire_zone/Actor/BNpc.cpp | 2 +- src/servers/sapphire_zone/Actor/Chara.cpp | 2 +- src/servers/sapphire_zone/Actor/Npc.cpp | 2 +- src/servers/sapphire_zone/Actor/Player.cpp | 8 ++-- .../sapphire_zone/Actor/PlayerEvent.cpp | 2 +- src/servers/sapphire_zone/Actor/PlayerSql.cpp | 2 +- .../DebugCommand/DebugCommandHandler.cpp | 12 +++--- .../sapphire_zone/Network/GameConnection.cpp | 4 +- .../Network/Handlers/ClientTriggerHandler.cpp | 4 +- .../Network/Handlers/GMCommandHandlers.cpp | 4 +- .../Network/Handlers/InventoryHandler.cpp | 2 +- .../Network/Handlers/PacketHandlers.cpp | 8 ++-- .../sapphire_zone/Script/ScriptLoader.cpp | 2 +- .../sapphire_zone/Script/ScriptMgr.cpp | 4 +- .../{ServerZone.cpp => ServerMgr.cpp} | 40 +++++++++---------- .../{ServerZone.h => ServerMgr.h} | 6 +-- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 7 ++-- src/servers/sapphire_zone/Zone/Zone.cpp | 8 ++-- src/servers/sapphire_zone/mainGameServer.cpp | 8 ++-- 20 files changed, 65 insertions(+), 66 deletions(-) rename src/servers/sapphire_zone/{ServerZone.cpp => ServerMgr.cpp} (90%) rename src/servers/sapphire_zone/{ServerZone.h => ServerMgr.h} (94%) diff --git a/src/servers/sapphire_zone/Actor/Actor.cpp b/src/servers/sapphire_zone/Actor/Actor.cpp index 5cac36f5..fdb174b7 100644 --- a/src/servers/sapphire_zone/Actor/Actor.cpp +++ b/src/servers/sapphire_zone/Actor/Actor.cpp @@ -18,7 +18,7 @@ #include "Player.h" #include "BNpc.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Session.h" #include "Zone/TerritoryMgr.h" @@ -301,7 +301,7 @@ Send a packet to all players in range, potentially to self if set and is player */ void Core::Entity::Actor::sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr pPacket, bool bToSelf ) { - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); if( bToSelf && isPlayer() ) { auto pPlayer = getAsPlayer(); diff --git a/src/servers/sapphire_zone/Actor/BNpc.cpp b/src/servers/sapphire_zone/Actor/BNpc.cpp index c3218505..baad273a 100644 --- a/src/servers/sapphire_zone/Actor/BNpc.cpp +++ b/src/servers/sapphire_zone/Actor/BNpc.cpp @@ -20,7 +20,7 @@ #include "StatusEffect/StatusEffect.h" #include "Action/ActionCollision.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Session.h" #include "Math/CalcBattle.h" #include "Chara.h" diff --git a/src/servers/sapphire_zone/Actor/Chara.cpp b/src/servers/sapphire_zone/Actor/Chara.cpp index 5b90a3cd..302a590f 100644 --- a/src/servers/sapphire_zone/Actor/Chara.cpp +++ b/src/servers/sapphire_zone/Actor/Chara.cpp @@ -20,7 +20,7 @@ #include "StatusEffect/StatusEffect.h" #include "Action/ActionCollision.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Session.h" #include "Math/CalcBattle.h" #include "Chara.h" diff --git a/src/servers/sapphire_zone/Actor/Npc.cpp b/src/servers/sapphire_zone/Actor/Npc.cpp index b3a475f4..ef4cf4e6 100644 --- a/src/servers/sapphire_zone/Actor/Npc.cpp +++ b/src/servers/sapphire_zone/Actor/Npc.cpp @@ -20,7 +20,7 @@ #include "StatusEffect/StatusEffect.h" #include "Action/ActionCollision.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Session.h" #include "Math/CalcBattle.h" #include "Chara.h" diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index fe59ab76..7aba3e56 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -40,7 +40,7 @@ #include "Math/CalcStats.h" #include "Math/CalcBattle.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Framework.h" extern Core::Framework g_fw; @@ -108,7 +108,7 @@ Core::Entity::Player::~Player() void Core::Entity::Player::injectPacket( const std::string& path ) { - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); auto session = pServerZone->getSession( getId() ); if( session ) session->getZoneConnection()->injectPacket( path, *this ); @@ -1191,7 +1191,7 @@ const uint8_t* Core::Entity::Player::getGcRankArray() const void Core::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPacket ) { - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( m_id ); if( !pSession ) @@ -1206,7 +1206,7 @@ void Core::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPa void Core::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pPacket ) { - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( m_id ); if( !pSession ) diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 13daf07c..2a3631e5 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -16,7 +16,7 @@ #include "Action/EventItemAction.h" #include "Zone/Zone.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Framework.h" extern Core::Framework g_fw; diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index 1ca935f7..03eb605a 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -18,7 +18,7 @@ #include "Inventory/ItemContainer.h" #include "Inventory/ItemUtil.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Framework.h" extern Core::Framework g_fw; diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 9328e074..f1962bf4 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -32,7 +32,7 @@ #include "Zone/TerritoryMgr.h" #include "Event/EventDefs.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Session.h" #include "Framework.h" @@ -422,7 +422,7 @@ void Core::DebugCommandHandler::add( char* data, Entity::Player& player, std::sh } else if( subCommand == "bnpc" ) { - auto serverZone = g_fw.get< ServerZone >(); + auto serverZone = g_fw.get< ServerMgr >(); auto bNpcTemplate = serverZone->getBNpcTemplate( params ); @@ -557,7 +557,7 @@ void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::sh void Core::DebugCommandHandler::injectPacket( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( player.getId() ); if( pSession ) pSession->getZoneConnection()->injectPacket( data + 7, player ); @@ -566,7 +566,7 @@ Core::DebugCommandHandler::injectPacket( char* data, Entity::Player& player, std void Core::DebugCommandHandler::injectChatPacket( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( player.getId() ); if( pSession ) pSession->getChatConnection()->injectPacket( data + 8, player ); @@ -575,7 +575,7 @@ void Core::DebugCommandHandler::injectChatPacket( char* data, Entity::Player& pl void Core::DebugCommandHandler::replay( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pLog = g_fw.get< Logger >(); - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); std::string subCommand; std::string params = ""; @@ -673,7 +673,7 @@ void Core::DebugCommandHandler::nudge( char* data, Entity::Player& player, std:: void Core::DebugCommandHandler::serverInfo( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); player.sendDebug( "SapphireZone " + Version::VERSION + "\nRev: " + Version::GIT_HASH ); player.sendDebug( "Compiled: " __DATE__ " " __TIME__ ); player.sendDebug( "Sessions: " + std::to_string( pServerZone->getSessionCount() ) ); diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index b84013b0..a358bc93 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -15,7 +15,7 @@ #include "DebugCommand/DebugCommandHandler.h" #include "GameConnection.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Session.h" #include "Framework.h" #include "Forwards.h" @@ -385,7 +385,7 @@ void Core::Network::GameConnection::handlePackets( const Core::Network::Packets: const std::vector< Core::Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) { auto pLog = g_fw.get< Logger >(); - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); // if a session is set, update the last time it recieved a game packet if( m_pSession ) m_pSession->updateLastDataTime(); diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index d58057cf..137e8424 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -33,7 +33,7 @@ #include "Session.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Forwards.h" #include "Framework.h" #include @@ -49,7 +49,7 @@ void examineHandler( Core::Entity::Player& player, uint32_t targetId ) { using namespace Core; - auto pSession = g_fw.get< Core::ServerZone >()->getSession( targetId ); + auto pSession = g_fw.get< Core::ServerMgr >()->getSession( targetId ); if( pSession ) { auto pTarget = pSession->getPlayer(); diff --git a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp index c2870905..54507a44 100644 --- a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp @@ -29,7 +29,7 @@ #include "Network/PacketWrappers/EventFinishPacket.h" #include "Network/PacketWrappers/PlayerStateFlagsPacket.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Framework.h" extern Core::Framework g_fw; @@ -551,7 +551,7 @@ void Core::Network::GameConnection::gm2Handler( const Packets::FFXIVARR_PACKET_R return; auto pLog = g_fw.get< Logger >(); - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); const auto packet = ZoneChannelPacket< Client::FFXIVIpcGmCommand2 >( inPacket ); diff --git a/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp index 08790fd2..d518432b 100644 --- a/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp @@ -15,7 +15,7 @@ #include "Actor/Player.h" #include "Session.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Framework.h" diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index e8427db8..c7604ba8 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -41,7 +41,7 @@ #include "Action/ActionTeleport.h" #include "Session.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Forwards.h" #include "Framework.h" @@ -111,7 +111,7 @@ void Core::Network::GameConnection::reqExamineSearchCommentHandler( const Core:: { auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x10 ] ); - auto pSession = g_fw.get< Core::ServerZone >()->getSession( targetId ); + auto pSession = g_fw.get< Core::ServerMgr >()->getSession( targetId ); g_fw.get< Core::Logger >()->debug( std::to_string( targetId ) ); @@ -138,7 +138,7 @@ void Core::Network::GameConnection::reqExamineFcInfo( const Core::Network::Packe { auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x18 ] ); - auto pSession = g_fw.get< Core::ServerZone >()->getSession( targetId ); + auto pSession = g_fw.get< Core::ServerMgr >()->getSession( targetId ); g_fw.get< Core::Logger >()->debug( std::to_string( targetId ) ); @@ -598,7 +598,7 @@ void Core::Network::GameConnection::tellHandler( const Core::Network::Packets::F { const auto packet = ZoneChannelPacket< Client::FFXIVIpcTellHandler >( inPacket ); - auto pZoneServer = g_fw.get< ServerZone >(); + auto pZoneServer = g_fw.get< ServerMgr >(); auto pSession = pZoneServer->getSession( packet.data().targetPCName ); diff --git a/src/servers/sapphire_zone/Script/ScriptLoader.cpp b/src/servers/sapphire_zone/Script/ScriptLoader.cpp index 657ffff9..ec0f7966 100644 --- a/src/servers/sapphire_zone/Script/ScriptLoader.cpp +++ b/src/servers/sapphire_zone/Script/ScriptLoader.cpp @@ -3,7 +3,7 @@ #include #include #include -#include "ServerZone.h" +#include "ServerMgr.h" #include diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index 38d6bc90..b0af2c18 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -7,7 +7,7 @@ #include "Zone/Zone.h" #include "Zone/InstanceContent.h" #include "Actor/Player.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Event/EventHandler.h" #include "Event/EventHelper.h" @@ -18,7 +18,7 @@ #include "Script/ScriptMgr.h" #include "NativeScriptMgr.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Framework.h" // enable the ambiguity fix for every platform to avoid #define nonsense diff --git a/src/servers/sapphire_zone/ServerZone.cpp b/src/servers/sapphire_zone/ServerMgr.cpp similarity index 90% rename from src/servers/sapphire_zone/ServerZone.cpp rename to src/servers/sapphire_zone/ServerMgr.cpp index 0844538e..9e6232bc 100644 --- a/src/servers/sapphire_zone/ServerZone.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -5,7 +5,7 @@ #include #include "Network/GameConnection.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "Framework.h" #include @@ -28,7 +28,7 @@ extern Core::Framework g_fw; -Core::ServerZone::ServerZone( const std::string& configName ) : +Core::ServerMgr::ServerMgr( const std::string& configName ) : m_configName( configName ), m_bRunning( true ), m_lastDBPingTime( 0 ), @@ -36,16 +36,16 @@ Core::ServerZone::ServerZone( const std::string& configName ) : { } -Core::ServerZone::~ServerZone() +Core::ServerMgr::~ServerMgr() { } -size_t Core::ServerZone::getSessionCount() const +size_t Core::ServerMgr::getSessionCount() const { return m_sessionMapById.size(); } -bool Core::ServerZone::loadSettings( int32_t argc, char* argv[] ) +bool Core::ServerMgr::loadSettings( int32_t argc, char* argv[] ) { auto pLog = g_fw.get< Core::Logger >(); auto pConfig = g_fw.get< Core::ConfigMgr >(); @@ -143,7 +143,7 @@ bool Core::ServerZone::loadSettings( int32_t argc, char* argv[] ) return true; } -void Core::ServerZone::run( int32_t argc, char* argv[] ) +void Core::ServerMgr::run( int32_t argc, char* argv[] ) { auto pLog = g_fw.get< Core::Logger >(); auto pScript = g_fw.get< Scripting::ScriptMgr >(); @@ -189,17 +189,17 @@ void Core::ServerZone::run( int32_t argc, char* argv[] ) } -uint16_t Core::ServerZone::getWorldId() const +uint16_t Core::ServerMgr::getWorldId() const { return m_worldId; } -void Core::ServerZone::setWorldId( uint16_t worldId ) +void Core::ServerMgr::setWorldId( uint16_t worldId ) { m_worldId = worldId; } -void Core::ServerZone::printBanner() const +void Core::ServerMgr::printBanner() const { auto pLog = g_fw.get< Core::Logger >(); @@ -211,7 +211,7 @@ void Core::ServerZone::printBanner() const pLog->info( "===========================================================" ); } -void Core::ServerZone::mainLoop() +void Core::ServerMgr::mainLoop() { auto pLog = g_fw.get< Logger >(); auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -292,7 +292,7 @@ void Core::ServerZone::mainLoop() } } -bool Core::ServerZone::createSession( uint32_t sessionId ) +bool Core::ServerMgr::createSession( uint32_t sessionId ) { auto pLog = g_fw.get< Core::Logger >(); @@ -325,12 +325,12 @@ bool Core::ServerZone::createSession( uint32_t sessionId ) } -void Core::ServerZone::removeSession( uint32_t sessionId ) +void Core::ServerMgr::removeSession( uint32_t sessionId ) { m_sessionMapById.erase( sessionId ); } -Core::SessionPtr Core::ServerZone::getSession( uint32_t id ) +Core::SessionPtr Core::ServerMgr::getSession( uint32_t id ) { //std::lock_guard lock( m_sessionMutex ); @@ -342,7 +342,7 @@ Core::SessionPtr Core::ServerZone::getSession( uint32_t id ) return nullptr; } -Core::SessionPtr Core::ServerZone::getSession( const std::string& playerName ) +Core::SessionPtr Core::ServerMgr::getSession( const std::string& playerName ) { //std::lock_guard lock( m_sessionMutex ); @@ -354,18 +354,18 @@ Core::SessionPtr Core::ServerZone::getSession( const std::string& playerName ) return nullptr; } -void Core::ServerZone::removeSession( const std::string& playerName ) +void Core::ServerMgr::removeSession( const std::string& playerName ) { m_sessionMapByName.erase( playerName ); } -bool Core::ServerZone::isRunning() const +bool Core::ServerMgr::isRunning() const { return m_bRunning; } -std::string Core::ServerZone::getPlayerNameFromDb( uint32_t playerId ) +std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT name FROM charainfo WHERE characterid = " + std::to_string( playerId ) ); @@ -376,7 +376,7 @@ std::string Core::ServerZone::getPlayerNameFromDb( uint32_t playerId ) return res->getString( 1 ); } -void Core::ServerZone::loadBNpcTemplates() +void Core::ServerMgr::loadBNpcTemplates() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -419,7 +419,7 @@ void Core::ServerZone::loadBNpcTemplates() } -Core::Entity::BNpcTemplatePtr Core::ServerZone::getBNpcTemplate( const std::string& key ) +Core::Entity::BNpcTemplatePtr Core::ServerMgr::getBNpcTemplate( const std::string& key ) { auto it = m_bNpcTemplateMap.find( key ); @@ -429,7 +429,7 @@ Core::Entity::BNpcTemplatePtr Core::ServerZone::getBNpcTemplate( const std::stri return it->second; } -Core::Entity::BNpcTemplatePtr Core::ServerZone::getBNpcTemplate( uint32_t id ) +Core::Entity::BNpcTemplatePtr Core::ServerMgr::getBNpcTemplate( uint32_t id ) { for( auto entry : m_bNpcTemplateMap ) { diff --git a/src/servers/sapphire_zone/ServerZone.h b/src/servers/sapphire_zone/ServerMgr.h similarity index 94% rename from src/servers/sapphire_zone/ServerZone.h rename to src/servers/sapphire_zone/ServerMgr.h index 52101668..13fbac75 100644 --- a/src/servers/sapphire_zone/ServerZone.h +++ b/src/servers/sapphire_zone/ServerMgr.h @@ -10,12 +10,12 @@ namespace Core { -class ServerZone +class ServerMgr { public: - ServerZone( const std::string& configName ); + ServerMgr( const std::string& configName ); - ~ServerZone(); + ~ServerMgr(); void run( int32_t argc, char* argv[] ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index a07406c9..e882eca1 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -18,7 +18,7 @@ #include "HousingMgr.h" #include "Land.h" #include "Framework.h" -#include "ServerZone.h" +#include "ServerMgr.h" using namespace Core::Common; using namespace Core::Network; @@ -43,7 +43,6 @@ bool Core::HousingMgr::init() return true; } - uint32_t Core::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const { return ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardId; @@ -89,7 +88,7 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId auto landInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); uint32_t playerId = land->getPlayerOwner(); - std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( playerId ); + std::string playerName = g_fw.get< Core::ServerMgr >()->getPlayerNameFromDb( playerId ); //memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 ); //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); landInfoSignPacket->data().houseSize = land->getSize(); @@ -256,7 +255,7 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, entry.infoFlags = Common::WardEstateFlags::IsEstateOwned; auto owner = land->getPlayerOwner(); - std::string playerName = g_fw.get< Core::ServerZone >()->getPlayerNameFromDb( owner ); + std::string playerName = g_fw.get< Core::ServerMgr >()->getPlayerNameFromDb( owner ); memcpy( &entry.estateOwnerName, playerName.c_str(), playerName.size() ); break; diff --git a/src/servers/sapphire_zone/Zone/Zone.cpp b/src/servers/sapphire_zone/Zone/Zone.cpp index 66e23cda..bf615b31 100644 --- a/src/servers/sapphire_zone/Zone/Zone.cpp +++ b/src/servers/sapphire_zone/Zone/Zone.cpp @@ -31,7 +31,7 @@ #include "Session.h" #include "ForwardsZone.h" -#include "ServerZone.h" +#include "ServerMgr.h" #include "CellHandler.h" #include "Zone.h" #include "TerritoryMgr.h" @@ -222,7 +222,7 @@ void Core::Zone::pushActor( Entity::ActorPtr pActor ) { auto pPlayer = pActor->getAsPlayer(); - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( pPlayer->getId() ); if( pSession ) m_sessionSet.insert( pSession ); @@ -284,7 +284,7 @@ void Core::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t ran if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) return; - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); for( auto entry : m_playerMap ) { auto player = entry.second; @@ -314,7 +314,7 @@ void Core::Zone::queuePacketForZone( Entity::Player& sourcePlayer, if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) return; - auto pServerZone = g_fw.get< ServerZone >(); + auto pServerZone = g_fw.get< ServerMgr >(); for( auto entry : m_playerMap ) { auto player = entry.second; diff --git a/src/servers/sapphire_zone/mainGameServer.cpp b/src/servers/sapphire_zone/mainGameServer.cpp index a878b8b4..465822e2 100644 --- a/src/servers/sapphire_zone/mainGameServer.cpp +++ b/src/servers/sapphire_zone/mainGameServer.cpp @@ -1,6 +1,6 @@ #include -#include "ServerZone.h" +#include "ServerMgr.h" #include #include #include @@ -20,7 +20,7 @@ using namespace Core; bool setupFramework() { - auto pServer = std::make_shared< ServerZone >( "config.ini" ); + auto pServer = std::make_shared< ServerMgr >( "config.ini" ); auto pLogger = std::make_shared< Logger >(); auto pExdData = std::make_shared< Data::ExdDataGenerated >(); auto pScript = std::make_shared< Scripting::ScriptMgr >(); @@ -34,7 +34,7 @@ bool setupFramework() pLogger->setLogPath( "log/SapphireZone" ); pLogger->init(); - g_fw.set< ServerZone >( pServer ); + g_fw.set< ServerMgr >( pServer ); g_fw.set< Logger >( pLogger ); g_fw.set< Data::ExdDataGenerated >( pExdData ); g_fw.set< Scripting::ScriptMgr >( pScript ); @@ -54,6 +54,6 @@ int main( int32_t argc, char* argv[] ) if( !setupFramework() ) return 0; // too fucking bad... - g_fw.get< ServerZone >()->run( argc, argv ); + g_fw.get< ServerMgr >()->run( argc, argv ); return 0; } From b6590fbe1426b4d4fd874396a9251780c6445c0c Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 20 Nov 2018 23:24:37 +0100 Subject: [PATCH 082/385] Brief event cleanup --- .../sapphire_zone/Actor/PlayerEvent.cpp | 30 ++++--------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 2a3631e5..9d33124c 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -158,23 +158,18 @@ void Core::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, Core::Event::EventHandlerPtr Core::Entity::Player::bootstrapSceneEvent( uint32_t eventId, uint32_t flags ) { - if( flags & 0x02 ) - setStateFlag( PlayerStateFlag::WatchingCutscene ); - + auto pEvent = getEvent( eventId ); - if( !pEvent && getEventCount() ) - { - // We're trying to play a nested event, need to start it first. - //eventStart( getId(), eventId, Event::EventHandler::Nest, 0, 0 ); - //pEvent = getEvent( eventId ); - } - else if( !pEvent ) + if( !pEvent ) { auto pLog = g_fw.get< Logger >(); pLog->error( "Could not find event " + std::to_string( eventId ) + ", event has not been started!" ); return nullptr; } + if( flags & 0x02 ) + setStateFlag( PlayerStateFlag::WatchingCutscene ); + return pEvent; } @@ -266,21 +261,6 @@ void Core::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlayer ) if( callback ) callback( *this, pEvent->getActorId() ); - auto events = eventList(); - - /*for( auto it : events ) - { - - if( it.second->hasPlayedScene() == false ) - { - // TODO: not happy with this, this is also prone to break wit more than one remaining event in there - queuePacket( std::make_shared< EventFinishPacket >( getId(), it.second->getId(), - it.second->getEventType(), - it.second->getEventParam() ) ); - removeEvent( it.second->getId() ); - } - }*/ - break; } default: From bafb3c1f0df466c5792f11c42187411684ec47ee Mon Sep 17 00:00:00 2001 From: Mordred <30826167+SapphireMordred@users.noreply.github.com> Date: Wed, 21 Nov 2018 09:09:27 +0100 Subject: [PATCH 083/385] Found a typo in opcodes --- src/common/Network/PacketDef/Ipcs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 37f7e9d9..829658ba 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -94,7 +94,7 @@ namespace Core::Network::Packets MailDeleteRequest = 0x0118, // updated 4.4 ReqMoogleMailList = 0x0119, // updated 4.4 - ReqMoogleMailLetter = 0x01A, // updated 4.4 + ReqMoogleMailLetter = 0x011A, // updated 4.4 MailLetterNotification = 0x011B, // updated 4.4 ExamineFreeCompanyInfo = 0x013A, // updated 4.1 From e4d38347d879523d314c4a46826d612db10aeef2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 21 Nov 2018 10:27:52 +1100 Subject: [PATCH 084/385] HousingAethernet event type --- src/servers/sapphire_zone/Event/EventHandler.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/servers/sapphire_zone/Event/EventHandler.h b/src/servers/sapphire_zone/Event/EventHandler.h index 7b880279..c9008964 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.h +++ b/src/servers/sapphire_zone/Event/EventHandler.h @@ -69,6 +69,7 @@ namespace Core::Event Story = 0x001A, SpecialShop = 0x001B, BahamutGuide = 0x001C, + HousingAethernet = 0x001E, FcTalk = 0x001F, ICDirector = 0x8003, }; From fe2c757faa6cb337794f9348760530e011a602bf Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 21 Nov 2018 17:17:47 +1100 Subject: [PATCH 085/385] HousingAethernet script --- .../common/{ => aethernet}/Aetheryte.cpp | 0 .../common/aethernet/HousingAethernet.cpp | 42 +++++++++++++++++++ 2 files changed, 42 insertions(+) rename src/servers/Scripts/common/{ => aethernet}/Aetheryte.cpp (100%) create mode 100644 src/servers/Scripts/common/aethernet/HousingAethernet.cpp diff --git a/src/servers/Scripts/common/Aetheryte.cpp b/src/servers/Scripts/common/aethernet/Aetheryte.cpp similarity index 100% rename from src/servers/Scripts/common/Aetheryte.cpp rename to src/servers/Scripts/common/aethernet/Aetheryte.cpp diff --git a/src/servers/Scripts/common/aethernet/HousingAethernet.cpp b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp new file mode 100644 index 00000000..e6854980 --- /dev/null +++ b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp @@ -0,0 +1,42 @@ +#include +#include + +#include +#include +#include + +using namespace Core; + +class HousingAethernet : + public Sapphire::ScriptAPI::EventScript +{ +public: + HousingAethernet() : + Sapphire::ScriptAPI::EventScript( 0x001E0000 ) + { + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + player.playScene( eventId, 0, HIDE_HOTBAR | NO_DEFAULT_CAMERA, [this, eventId]( Entity::Player& player, const Event::SceneResult& result ) + { + auto pExdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + if( !pExdData ) + return; + + auto housingAethernetIds = pExdData->getHousingAethernetIdList(); + auto terrritoryTypeId = player.getCurrentZone()->getTerritoryTypeId(); + + // param2 is the index starting from 0 inside housingaethernet.exd, but the ID column starts at 0x001E0000........ wtf + auto pHousingAethernet = pExdData->get< Core::Data::HousingAethernet >( getId() + result.param2 ); + if( !pHousingAethernet ) + return; + + // check we're teleporting to the same territorytype + if( player.getCurrentZone()->getTerritoryTypeId() != pHousingAethernet->territoryType ) + return; + + player.sendDebug( "got level entry: " + std::to_string( pHousingAethernet->level ) ); + } ); + } +}; \ No newline at end of file From eb4daa7ce33ab2b76da2002882e7526c608c8f2c Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 01:17:19 +1100 Subject: [PATCH 086/385] Move warping to land points to a generic handler --- src/servers/Scripts/common/WarpTaxi.cpp | 32 +-------- src/servers/sapphire_zone/CMakeLists.txt | 1 + .../sapphire_zone/Manager/PlayerMgr.cpp | 66 +++++++++++++++++++ src/servers/sapphire_zone/Manager/PlayerMgr.h | 10 +++ src/servers/sapphire_zone/mainGameServer.cpp | 3 + 5 files changed, 83 insertions(+), 29 deletions(-) create mode 100644 src/servers/sapphire_zone/Manager/PlayerMgr.cpp create mode 100644 src/servers/sapphire_zone/Manager/PlayerMgr.h diff --git a/src/servers/Scripts/common/WarpTaxi.cpp b/src/servers/Scripts/common/WarpTaxi.cpp index 7c259be6..69194be2 100644 --- a/src/servers/Scripts/common/WarpTaxi.cpp +++ b/src/servers/Scripts/common/WarpTaxi.cpp @@ -2,10 +2,8 @@ #include #include -#include -#include -#include #include +#include using namespace Core; @@ -29,37 +27,13 @@ public: player.eventFinish( 1310721, 0 ); player.eventFinish( getId(), 1 ); - // todo: this is shit, move to housingmgr? handle moving players in and out of it there? auto exdData = getFramework()->get< Core::Data::ExdDataGenerated >(); - auto warp = exdData->get< Core::Data::Warp >( getId() ); if( !warp ) return; - auto level = exdData->get< Core::Data::Level >( warp->level ); - if( !level ) - { - - // fetch from cache - auto teriMgr = getFramework()->get< Core::TerritoryMgr >(); - - auto pos = teriMgr->getTerritoryPosition( warp->level ); - if( !pos ) - return; - - // lookup instance - auto housingMgr = getFramework()->get< Core::HousingMgr >(); - auto landSetId = housingMgr->toLandSetId( 341, result.param3 ); - auto hZone = housingMgr->getHousingZoneByLandSetId( landSetId ); - - if( !hZone ) - return; - - player.setPos( pos->getTargetPosition() ); - player.setRot( pos->getTargetRotation() ); - player.setInstance( hZone ); - - } + auto playerMgr = getFramework()->get< Sapphire::World::Manager::PlayerMgr >(); + playerMgr->movePlayerToLandDestination( player, warp->level, result.param3 ); } else { diff --git a/src/servers/sapphire_zone/CMakeLists.txt b/src/servers/sapphire_zone/CMakeLists.txt index d0f36a8f..c22229c8 100644 --- a/src/servers/sapphire_zone/CMakeLists.txt +++ b/src/servers/sapphire_zone/CMakeLists.txt @@ -12,6 +12,7 @@ file(GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} Event/*.c* Inventory/*.c* Linkshell/*.c* + Manager/*.c* Math/*.c* Network/*.c* Network/Handlers/*.c* diff --git a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp new file mode 100644 index 00000000..e124a477 --- /dev/null +++ b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp @@ -0,0 +1,66 @@ +#include "PlayerMgr.h" + +#include +#include + +#include +#include + +#include + +#include + +extern Core::Framework g_fw; + +void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Core::Entity::Player& player, uint32_t landId, uint16_t param ) +{ + // check if we have one in the db first + auto terriMgr = g_fw.get< Core::TerritoryMgr >(); + if( !terriMgr ) + return; + + Core::ZonePtr destinationZone; + + auto terriPos = terriMgr->getTerritoryPosition( landId ); + if( terriPos ) + { + // check if its a housing zone, zoning is different here + if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) && param != 0 ) + { + auto housingMgr = g_fw.get< Core::HousingMgr >(); + auto landSetId = housingMgr->toLandSetId( terriPos->getTargetZoneId(), param ); + + auto housingZone = housingMgr->getHousingZoneByLandSetId( landSetId ); + + if( !housingZone ) + return; + + destinationZone = housingZone; + } + else if( terriMgr->isInstanceContentTerritory( terriPos->getTargetZoneId() ) ) + { + // todo: instance dungeon handling + // will need to use setInstance so old pos gets set + return; + } + else + { + // normal zones + destinationZone = terriMgr->getZoneByTerritoryTypeId( terriPos->getTargetZoneId() ); + } + } + else + { + // todo: lookup land.exd and see if it's in there if its not in our db + return; + } + + if( !destinationZone ) + return; + + player.setPos( terriPos->getTargetPosition() ); + player.setRot( terriPos->getTargetRotation() ); + + if( terriMgr->movePlayer( destinationZone, player.getAsPlayer() ) ) + player.sendZonePackets(); +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Manager/PlayerMgr.h b/src/servers/sapphire_zone/Manager/PlayerMgr.h new file mode 100644 index 00000000..f25ba192 --- /dev/null +++ b/src/servers/sapphire_zone/Manager/PlayerMgr.h @@ -0,0 +1,10 @@ +#include "ForwardsZone.h" + +namespace Sapphire::World::Manager +{ + class PlayerMgr + { + public: + void movePlayerToLandDestination( Core::Entity::Player& player, uint32_t landId, uint16_t param = 0 ); + }; +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/mainGameServer.cpp b/src/servers/sapphire_zone/mainGameServer.cpp index 465822e2..489857b0 100644 --- a/src/servers/sapphire_zone/mainGameServer.cpp +++ b/src/servers/sapphire_zone/mainGameServer.cpp @@ -11,6 +11,7 @@ #include "Zone/TerritoryMgr.h" #include "Zone/HousingMgr.h" #include "DebugCommand/DebugCommandHandler.h" +#include "Manager/PlayerMgr.h" #include @@ -30,6 +31,7 @@ bool setupFramework() auto pTeriMgr = std::make_shared< TerritoryMgr >(); auto pDebugCom = std::make_shared< DebugCommandHandler >(); auto pConfig = std::make_shared< ConfigMgr >(); + auto pPlayerMgr = std::make_shared< Sapphire::World::Manager::PlayerMgr >(); pLogger->setLogPath( "log/SapphireZone" ); pLogger->init(); @@ -44,6 +46,7 @@ bool setupFramework() g_fw.set< TerritoryMgr >( pTeriMgr ); g_fw.set< DebugCommandHandler >( pDebugCom ); g_fw.set< ConfigMgr >( pConfig ); + g_fw.set< Sapphire::World::Manager::PlayerMgr >( pPlayerMgr ); // actuall catch errors here... return true; From 7f5ea70523631336e83b46dbe7786d21262328b6 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 01:19:18 +1100 Subject: [PATCH 087/385] add ul'dah -> goblet warptaxi zoneposition --- sql/zonepositions.sql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sql/zonepositions.sql b/sql/zonepositions.sql index 7fd2f54f..9d842235 100644 --- a/sql/zonepositions.sql +++ b/sql/zonepositions.sql @@ -218,7 +218,8 @@ INSERT INTO `zonepositions` (`id`, `target_zone_id`, `pos_x`, `pos_y`, `pos_z`, (1359650, 153, -226.643, 21.23, 351.76, -0.74, 2), (3965709, 147, 22.9166, 48.309, -26.801, -2.406, 2), (3965584, 146, -320.39, 8.262, 406.08, -1.455, 2), - (5668783, 144, -0.3458, 1.0425, -5.786, 0.0603, 2); + (5668783, 144, -0.3458, 1.0425, -5.786, 0.0603, 2), + (4656744, 341, 29.4298, -11.0766, -211.529, -0.5092, 2); /*!40000 ALTER TABLE `zonepositions` ENABLE KEYS */; /*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; From 381d8ae940ab4f623bd544d38b479061d826d262 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 22 Nov 2018 00:04:26 +0100 Subject: [PATCH 088/385] Prelim housing eventhandler --- src/common/Network/PacketDef/Ipcs.h | 6 +++-- .../Network/PacketDef/Zone/ClientZoneDef.h | 7 +++++ .../sapphire_zone/Actor/PlayerEvent.cpp | 2 +- .../sapphire_zone/Network/GameConnection.cpp | 4 +++ .../sapphire_zone/Network/GameConnection.h | 2 ++ .../Network/Handlers/EventHandlers.cpp | 27 +++++++++++++++++++ 6 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 829658ba..28fe961e 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -291,11 +291,13 @@ namespace Core::Network::Packets OutOfRangeEventHandler = 0x014E, // updated 4.4 EnterTeriEventHandler = 0x014F, // updated 4.4 + ShopEventHandler = 0x0151, // updated 4.4 + ReturnEventHandler = 0x0154, // updated 4.4 TradeReturnEventHandler = 0x0155, // updated 4.4 - LinkshellEventHandler = 0x0150, // updated 4.1 ?? - LinkshellEventHandler1 = 0x0151, // updated 4.1 ?? + LinkshellEventHandler = 0x1150, // updated 4.1 ?? + LinkshellEventHandler1 = 0x1151, // updated 4.1 ?? LandRenameHandler = 0x0171, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 7dae9236..88e6134e 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -163,6 +163,13 @@ struct FFXIVIpcChatHandler : /* 001A */ char message[1012]; }; +struct FFXIVIpcShopEventHandler : + FFXIVIpcBasePacket< ShopEventHandler > +{ + /* 0000 */ uint32_t eventId; + /* 0004 */ uint32_t param; +}; + struct FFXIVIpcLinkshellEventHandler : FFXIVIpcBasePacket< LinkshellEventHandler > { diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 9d33124c..80d8210d 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -158,7 +158,7 @@ void Core::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, Core::Event::EventHandlerPtr Core::Entity::Player::bootstrapSceneEvent( uint32_t eventId, uint32_t flags ) { - + auto pEvent = getEvent( eventId ); if( !pEvent ) { diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index a358bc93..cb960315 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -98,8 +98,12 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, setZoneHandler( ClientZoneIpcType::TradeReturnEventHandler, "EventHandlerReturn", &GameConnection::eventHandlerReturn ); + setZoneHandler( ClientZoneIpcType::ShopEventHandler, "ShopEventHandler", + &GameConnection::eventHandlerShop ); + setZoneHandler( ClientZoneIpcType::LinkshellEventHandler, "LinkshellEventHandler", &GameConnection::eventHandlerLinkshell ); + setZoneHandler( ClientZoneIpcType::LinkshellEventHandler1, "LinkshellEventHandler1", &GameConnection::eventHandlerLinkshell ); diff --git a/src/servers/sapphire_zone/Network/GameConnection.h b/src/servers/sapphire_zone/Network/GameConnection.h index 8ba31549..529bba6b 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.h +++ b/src/servers/sapphire_zone/Network/GameConnection.h @@ -139,6 +139,8 @@ namespace Core::Network DECLARE_HANDLER( eventHandlerReturn ); + DECLARE_HANDLER( eventHandlerShop ); + DECLARE_HANDLER( eventHandlerLinkshell ); DECLARE_HANDLER( logoutHandler ); diff --git a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp index 1fd26f15..985d8ea1 100644 --- a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include @@ -251,4 +252,30 @@ void Core::Network::GameConnection::eventHandlerLinkshell( const Packets::FFXIVA } +void Core::Network::GameConnection::eventHandlerShop( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) +{ + const auto packet = ZoneChannelPacket< Client::FFXIVIpcShopEventHandler >( inPacket ); + + auto pLog = g_fw.get< Logger >(); + auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); + auto pExdData = g_fw.get< Data::ExdDataGenerated >(); + + const auto eventId = packet.data().eventId; + + auto eventType = static_cast< uint16_t >( eventId >> 16 ); + + std::string eventName = "onShop"; + std::string objName = Event::getEventName( eventId ); + + player.sendDebug( "EventId: " + + std::to_string( eventId ) + + " (0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + ")" ); + + + player.sendDebug( "Calling: " + objName + "." + eventName ); + player.eventStart( 0, eventId, Event::EventHandler::UI, 0, 0 ); +} + + From fbba5fb13c7eed149ffa8ddf9624f5c525c7117c Mon Sep 17 00:00:00 2001 From: Dantestyle Date: Thu, 22 Nov 2018 00:41:54 +0100 Subject: [PATCH 089/385] Avoid client crash on setZone --- src/servers/Scripts/quest/ManFst004.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/servers/Scripts/quest/ManFst004.cpp b/src/servers/Scripts/quest/ManFst004.cpp index d6c2b44b..71d55c50 100644 --- a/src/servers/Scripts/quest/ManFst004.cpp +++ b/src/servers/Scripts/quest/ManFst004.cpp @@ -223,10 +223,10 @@ private: [ & ]( Entity::Player& player, const Event::SceneResult& result ) { // accepting quest "close to home" - player.updateQuest( getId(), 1 ); + player.updateQuest( getId(), Seq1 ); player.setQuestUI8CH( getId(), 1 ); // receive key item // event is done, need to teleport to real zone. - player.setZone( 132 ); + player.forceZoneing( Territorytype0 ); //player.setZone(183); back to starting griania for debug purpose } ); } From 8f16c32a4b5094986c7a8e087aed41f284e4dd6c Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 12:27:35 +1100 Subject: [PATCH 090/385] Fix stupid mistake stopping ward 1 from working when zoning --- src/servers/sapphire_zone/Manager/PlayerMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp index e124a477..95ae01a3 100644 --- a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp +++ b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp @@ -25,7 +25,7 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Core::Ent if( terriPos ) { // check if its a housing zone, zoning is different here - if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) && param != 0 ) + if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) ) { auto housingMgr = g_fw.get< Core::HousingMgr >(); auto landSetId = housingMgr->toLandSetId( terriPos->getTargetZoneId(), param ); From 33101fe341c0326c74392d4f874514d11df1830f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 13:12:21 +1100 Subject: [PATCH 091/385] change script selection behaviour so a specific script will be chosen before a generic one --- src/servers/sapphire_zone/Script/ScriptMgr.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index b0af2c18..67d7fe40 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -168,7 +168,7 @@ void Core::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& player bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ) { - auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId & 0xFFFF0000 ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( script ) { script->onTalk( eventId, player, actorId ); @@ -176,7 +176,7 @@ bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorI } else { - auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId & 0xFFFF0000 ); if( !script ) return false; @@ -184,7 +184,7 @@ bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorI return true; } - return true; + return false; } bool Core::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint32_t eventId, From f1bd557b701b969a4ccd0074280b0b1bfeb3490b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 15:34:17 +1100 Subject: [PATCH 092/385] FFXIVIpcHousingEstateGreeting added --- src/common/Network/CommonActorControl.h | 2 +- src/common/Network/PacketDef/Ipcs.h | 2 ++ src/common/Network/PacketDef/Zone/ServerZoneDef.h | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index e4d6158b..e028e136 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -295,7 +295,7 @@ enum ActorControlType : uint16_t RequestWardLandInfo = 0x453, RequestLandRelinquish = 0x454, RequestEstateRename = 0x45A, - RequestEstateGreeting = 0x45C, + RequestEstateGreeting = 0x45C, // sends FFXIVIpcHousingEstateGreeting in return RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 28fe961e..a7c3533f 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -191,6 +191,8 @@ namespace Core::Network::Packets LandInfoSign = 0x0225, // updated 4.4 LandRename = 0x0226, // updated 4.4 + HousingEstateGreeting = 0x0227, // updated 4.4 + LandPermissionSlot = 0x0228, // updated 4.4 LandPermission = 0x0229, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 4423d29b..22c07e60 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1738,6 +1738,15 @@ struct FFXIVIpcHousingWardInfo : FFXIVIpcBasePacket< HousingWardInfo > } houseInfoEntry[60]; }; +struct FFXIVIpcHousingEstateGreeting : FFXIVIpcBasePacket< HousingEstateGreeting > +{ + uint8_t plotId; + uint8_t pad[3]; // unsure + uint16_t territoryTypeId; + uint16_t unk; + char message[200]; +}; + /** * Structural representation of the packet sent by the server * to show the current shared estate settings From 9e22af7b482fb3c0dc5d9c77fbce7967e514bb29 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 22 Nov 2018 23:59:42 +0100 Subject: [PATCH 093/385] Minor changes --- .../sapphire_zone/Event/EventHelper.cpp | Bin 2765 -> 3067 bytes .../sapphire_zone/Network/GameConnection.h | 3 +-- .../Network/Handlers/EventHandlers.cpp | 5 ++--- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/servers/sapphire_zone/Event/EventHelper.cpp b/src/servers/sapphire_zone/Event/EventHelper.cpp index 8243599c034b73f4f4ef7feb023633da55cc198d..11b17e0810bf73ed62fc3def6b4e91c8b22e0c66 100644 GIT binary patch literal 3067 zcmb_e&2HN`5Zl5K zpC>|#=O{538sjaOH#$j&{AI>#!NId!EO4pvv%x&5k3T&}sb654VcuvFGESYT+v#?2 zr7@QPHERM+`3{O#;r{5{I z2W2AlgZonr$Qe#z*z0yKyBz>gY6Y1S0uIgG1B!hNtV|egO9Z3d9!(4e@!(;Fczlr| zMOWyf5ga@;`MDWNc_!6Tl1nY&O9{~rv_E2vZbt1UcOc&vy^gdic+I+{+-}XgsdzcKkbk1y zj!@4rztGsoSr}_OWsg!P{VVLRp3%$f8cxsd=QSp6!eSk{t3=?96+yr6ok^muOh3VW zGJcZe7-^L^l8=mRbTVVP}|s~|Mk1wTajmt+Aqn_E!06ow(K*&1Vi${-XX!5v;T`@6%tB I>5D@_uAXUbh)NUP*YmZ4$ zs95m;VYWO8NT?fjROJEK@&H{{-Eb%VsS#dSll$}KoZ~sG9!*`i?s%3PbqRj7Li>H{ z)$OIxMQs|L*IzKlofj`?p;5c~@w}(4z9Sx6C$3L|x~=`!FukrDcMu}`j07HDp#d?B zwZQC?0S$KX_EvAuL9~Wno zw)m|z5&tad{F`(S=qJ)#ynO(m27g*qQmmjC{N_qzn4+E{;S;KH{?0KDbL~r6A%_b+}dNp zY{;DmS0aPh#aB6VaU{RywaOj-va-s*RCNBMqF?!!AwEj7j6??ND>Lwo@yw8KC{GrW zagpc%TCwb;h;gb!Y<0|iM{9zcM$U=)+@=}t;Y90__?Y4mzz}*#4sCQ5;)Eo$mg9<@ z)Y5poOL}JHvQ*chGBufs2G{5S@jqxiy*N8+YZ( eventId >> 16 ); - std::string eventName = "onShop"; + std::string eventName = "onOpen"; std::string objName = Event::getEventName( eventId ); player.sendDebug( "EventId: " + std::to_string( eventId ) + " (0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + ")" ); - player.sendDebug( "Calling: " + objName + "." + eventName ); - player.eventStart( 0, eventId, Event::EventHandler::UI, 0, 0 ); + player.eventStart( 0, eventId, Event::EventHandler::UI, 0, packet.data().param ); } From 59e7dd39dc673470b9d79cf5d63772fb4d76cd9c Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 23 Nov 2018 16:48:32 +1100 Subject: [PATCH 094/385] Store instance guid in db when zoning into an instance --- src/servers/sapphire_zone/Zone/TerritoryMgr.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index 2cbd4789..d8cb748e 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -410,14 +410,18 @@ bool Core::TerritoryMgr::movePlayer( ZonePtr pZone, Core::Entity::PlayerPtr pPla if( isHousingTerritory( pZone->getTerritoryTypeId() ) ) { auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); - if( pHousing ) + if( pHousing ) pPlayer->setTerritoryId( pHousing->getLandSetId() ); - } + } + else if( isInstanceContentTerritory( pZone->getTerritoryTypeId() ) ) + { + pPlayer->setTerritoryId( pZone->getGuId() ); + } else { pPlayer->setTerritoryId( 0 ); } - + // mark character as zoning in progress pPlayer->setLoadingComplete( false ); From 8360c74acdf3ae94290b110f0dfc95db050004d0 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 23 Nov 2018 16:51:07 +1100 Subject: [PATCH 095/385] somehow eventhelper.cpp got really fucked up --- .../sapphire_zone/Event/EventHelper.cpp | Bin 3067 -> 2957 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/servers/sapphire_zone/Event/EventHelper.cpp b/src/servers/sapphire_zone/Event/EventHelper.cpp index 11b17e0810bf73ed62fc3def6b4e91c8b22e0c66..37f7bcfec5f592362e8b20b06ea061d1b9bf7b50 100644 GIT binary patch delta 856 zcmZXSO>fgc5QY`!dm{A$C@C%KVgfh?l14?MBq%B>{X8Hd0vtf9OtNX*I(D$vq$sU8 zapVx@$}a&4^}-EQu1H+@0X-rv%*J+_iiT4NhgT|V zj^5>c+u36~+wFc806f>Qc9=zJx2HFGQ0LD?x+_|hiYpu{8lDst7+^WGgfAl3B7pBA zH)a4BbNhy9b~MK2P>nY|&I*(r;Bn+mf&v*%DQnqL$e7XA*yUFqcg3dFwpjs>qcf?x z{8y`h9~2EgD~m)wQSyHGA%V*HFq#Qrdi2rkB&_MV!tOS7b8k$%PJlnrQh?fy-JV2! zi={%;uh>>@0%iBOMNR|Ea$Lou)HEK%)06FA;t;m~h&S+RB9B{%Sr%X%E<9SddY_99 z?VU?katFSPPl>UM?}_JFNZ!P!$yNNA)bMLkyLgr%FC}OOxr59z-RV_EH3QsCJy;0J zhVB?&ho134fmtn^{QCLZumkS{iT9TQg4O$T5TX*R5E1xvF_5pX0J%-IQODnwOcE4s#Sgs}j&mLslhZ?S_-PSh)~J%wi1z zs(Ht%A_p@_L7^zMq_ikcLCG<-BqOz`vLsc>ns>4un-szrKQeh5#G8 zAebdQS&Q8W$ckat0Fo{28gRp*M&~8wrdq>-1Q-Rt@a7FqEGj?*Hxq}8ILt+$;4TNs z!u%D@Aq_OvkX3SWKZgV`qCqiK3yR5g9A*e-z2a~O#x^h4 Date: Fri, 23 Nov 2018 17:37:46 +1100 Subject: [PATCH 096/385] Remove old tables from update.sql --- sql/update.sql | 6 ------ 1 file changed, 6 deletions(-) diff --git a/sql/update.sql b/sql/update.sql index ce4c3fd9..21bc893c 100644 --- a/sql/update.sql +++ b/sql/update.sql @@ -19,12 +19,6 @@ MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURR ALTER TABLE charainfosearch MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; -ALTER TABLE charaitemcrystal -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charaitemcurrency -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - ALTER TABLE charaitemgearset MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; From 320422cb6d6dc2537cb33724bfc748ccbc9872bd Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 23 Nov 2018 17:45:37 +1100 Subject: [PATCH 097/385] correctly check state when sending ward info --- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index e882eca1..c9d50ca0 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -240,8 +240,13 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, auto& entry = wardInfoPacket->data().houseInfoEntry[ i ]; + // retail always sends the house price in this packet, even after the house has been sold + // so I guess we do the same entry.housePrice = land->getCurrentPrice(); + if( land->getState() == Common::HouseState::forSale ) + continue; + switch( land->getLandType() ) { case LandType::FreeCompany: From 4d132f87e4d458e0e1573bcd02cd336ed957cbe9 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 23 Nov 2018 09:19:49 +0100 Subject: [PATCH 098/385] saving player names in map to reduce SQL query --- src/servers/sapphire_zone/ServerMgr.cpp | 11 ++++++++++- src/servers/sapphire_zone/ServerMgr.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index 9e6232bc..26aaa18e 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -367,13 +367,22 @@ bool Core::ServerMgr::isRunning() const std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) { + auto it = m_payerNameMap.find( playerId ); + + if( it != m_payerNameMap.end() ) + return ( it->second ); + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT name FROM charainfo WHERE characterid = " + std::to_string( playerId ) ); if( !res->next() ) return "Unknown"; - return res->getString( 1 ); + std::string playerName = res->getString( 1 ); + + m_payerNameMap[ playerId ] = playerName; + + return playerName; } void Core::ServerMgr::loadBNpcTemplates() diff --git a/src/servers/sapphire_zone/ServerMgr.h b/src/servers/sapphire_zone/ServerMgr.h index 13fbac75..6a2721e9 100644 --- a/src/servers/sapphire_zone/ServerMgr.h +++ b/src/servers/sapphire_zone/ServerMgr.h @@ -59,6 +59,7 @@ private: std::map< uint32_t, SessionPtr > m_sessionMapById; std::map< std::string, SessionPtr > m_sessionMapByName; + std::map< uint32_t, std::string > m_payerNameMap; std::map< uint32_t, uint32_t > m_zones; std::map< std::string, Entity::BNpcTemplatePtr > m_bNpcTemplateMap; From 308a0cf00e0afbc6bbdb8e820a4a826b8c2c630f Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 23 Nov 2018 09:42:51 +0100 Subject: [PATCH 099/385] style + update name --- src/servers/sapphire_zone/ServerMgr.cpp | 14 +++++++++++--- src/servers/sapphire_zone/ServerMgr.h | 3 ++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index 26aaa18e..d521f999 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -367,9 +367,9 @@ bool Core::ServerMgr::isRunning() const std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) { - auto it = m_payerNameMap.find( playerId ); + auto it = m_payerNameMapById.find( playerId ); - if( it != m_payerNameMap.end() ) + if( it != m_payerNameMapById.end() ) return ( it->second ); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -380,11 +380,19 @@ std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) std::string playerName = res->getString( 1 ); - m_payerNameMap[ playerId ] = playerName; + m_payerNameMapById[ playerId ] = playerName; return playerName; } +void Core::ServerMgr::updatePlayerName( uint32_t playerId, const std::string & playerNewName ) +{ + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + pDb->execute( "UPDATE charainfo SET name = '" + playerNewName + "' WHERE name = " + std::to_string( playerId ) ); + + m_payerNameMapById[ playerId ] = playerNewName; +} + void Core::ServerMgr::loadBNpcTemplates() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); diff --git a/src/servers/sapphire_zone/ServerMgr.h b/src/servers/sapphire_zone/ServerMgr.h index 6a2721e9..7c2a91db 100644 --- a/src/servers/sapphire_zone/ServerMgr.h +++ b/src/servers/sapphire_zone/ServerMgr.h @@ -45,6 +45,7 @@ public: Entity::BNpcTemplatePtr getBNpcTemplate( uint32_t id ); std::string getPlayerNameFromDb( uint32_t playerId ); + void updatePlayerName( uint32_t playerId, const std::string& playerNewName ); private: uint16_t m_port; @@ -59,7 +60,7 @@ private: std::map< uint32_t, SessionPtr > m_sessionMapById; std::map< std::string, SessionPtr > m_sessionMapByName; - std::map< uint32_t, std::string > m_payerNameMap; + std::map< uint32_t, std::string > m_payerNameMapById; std::map< uint32_t, uint32_t > m_zones; std::map< std::string, Entity::BNpcTemplatePtr > m_bNpcTemplateMap; From 46f6e45a0cb1c5f0c76351e9ddbe59a818a53115 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 23 Nov 2018 11:04:19 +0100 Subject: [PATCH 100/385] no payers anymore --- src/servers/sapphire_zone/ServerMgr.cpp | 8 ++++---- src/servers/sapphire_zone/ServerMgr.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index d521f999..245e3a46 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -367,9 +367,9 @@ bool Core::ServerMgr::isRunning() const std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) { - auto it = m_payerNameMapById.find( playerId ); + auto it = m_playerNameMapById.find( playerId ); - if( it != m_payerNameMapById.end() ) + if( it != m_playerNameMapById.end() ) return ( it->second ); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -380,7 +380,7 @@ std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) std::string playerName = res->getString( 1 ); - m_payerNameMapById[ playerId ] = playerName; + m_playerNameMapById[ playerId ] = playerName; return playerName; } @@ -390,7 +390,7 @@ void Core::ServerMgr::updatePlayerName( uint32_t playerId, const std::string & p auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); pDb->execute( "UPDATE charainfo SET name = '" + playerNewName + "' WHERE name = " + std::to_string( playerId ) ); - m_payerNameMapById[ playerId ] = playerNewName; + m_playerNameMapById[ playerId ] = playerNewName; } void Core::ServerMgr::loadBNpcTemplates() diff --git a/src/servers/sapphire_zone/ServerMgr.h b/src/servers/sapphire_zone/ServerMgr.h index 7c2a91db..861b5b7a 100644 --- a/src/servers/sapphire_zone/ServerMgr.h +++ b/src/servers/sapphire_zone/ServerMgr.h @@ -60,7 +60,7 @@ private: std::map< uint32_t, SessionPtr > m_sessionMapById; std::map< std::string, SessionPtr > m_sessionMapByName; - std::map< uint32_t, std::string > m_payerNameMapById; + std::map< uint32_t, std::string > m_playerNameMapById; std::map< uint32_t, uint32_t > m_zones; std::map< std::string, Entity::BNpcTemplatePtr > m_bNpcTemplateMap; From d1dc8c937dd390cb165f6756c434ae35d0532810 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 23 Nov 2018 11:17:02 +0100 Subject: [PATCH 101/385] fixed SQL string --- src/servers/sapphire_zone/ServerMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index 245e3a46..9003537d 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -388,7 +388,7 @@ std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) void Core::ServerMgr::updatePlayerName( uint32_t playerId, const std::string & playerNewName ) { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - pDb->execute( "UPDATE charainfo SET name = '" + playerNewName + "' WHERE name = " + std::to_string( playerId ) ); + pDb->execute( "UPDATE charainfo SET name = '" + playerNewName + "' WHERE characterid = " + std::to_string( playerId ) ); m_playerNameMapById[ playerId ] = playerNewName; } From bd315d9b45b6c107011b26bc0f1f280a391f6fbd Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 23 Nov 2018 11:46:39 +0100 Subject: [PATCH 102/385] updates --- src/servers/sapphire_zone/Actor/Player.cpp | 7 +++++++ src/servers/sapphire_zone/ServerMgr.cpp | 14 +++++++------- src/servers/sapphire_zone/ServerMgr.h | 2 +- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 7aba3e56..0601a7df 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1533,6 +1533,13 @@ uint32_t Core::Entity::Player::getTerritoryTypeId() const void Core::Entity::Player::sendZonePackets() { + if( isLogin() ) + { + //Update player map in servermgr - in case player name has been changed + auto pServerMgr = g_fw.get< Core::ServerMgr >(); + pServerMgr->updatePlayerName( getId(), getName() ); + } + getCurrentZone()->onBeforePlayerZoneIn( *this ); auto initPacket = makeZonePacket< FFXIVIpcInit >( getId() ); diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index 9003537d..de23e693 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -365,12 +365,15 @@ bool Core::ServerMgr::isRunning() const return m_bRunning; } -std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) +std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId, bool forceDbLoad ) { - auto it = m_playerNameMapById.find( playerId ); + if( !forceDbLoad ) + { + auto it = m_playerNameMapById.find( playerId ); - if( it != m_playerNameMapById.end() ) - return ( it->second ); + if( it != m_playerNameMapById.end() ) + return ( it->second ); + } auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT name FROM charainfo WHERE characterid = " + std::to_string( playerId ) ); @@ -387,9 +390,6 @@ std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId ) void Core::ServerMgr::updatePlayerName( uint32_t playerId, const std::string & playerNewName ) { - auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - pDb->execute( "UPDATE charainfo SET name = '" + playerNewName + "' WHERE characterid = " + std::to_string( playerId ) ); - m_playerNameMapById[ playerId ] = playerNewName; } diff --git a/src/servers/sapphire_zone/ServerMgr.h b/src/servers/sapphire_zone/ServerMgr.h index 861b5b7a..efdb4870 100644 --- a/src/servers/sapphire_zone/ServerMgr.h +++ b/src/servers/sapphire_zone/ServerMgr.h @@ -44,7 +44,7 @@ public: Entity::BNpcTemplatePtr getBNpcTemplate( const std::string& key ); Entity::BNpcTemplatePtr getBNpcTemplate( uint32_t id ); - std::string getPlayerNameFromDb( uint32_t playerId ); + std::string getPlayerNameFromDb( uint32_t playerId, bool forceDbLoad = false ); void updatePlayerName( uint32_t playerId, const std::string& playerNewName ); private: From bbe88d10b895affe87a9164a0556a26fd9b6abdc Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Fri, 23 Nov 2018 11:59:36 +0100 Subject: [PATCH 103/385] style --- src/servers/sapphire_zone/ServerMgr.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index de23e693..6f8f39b0 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -382,8 +382,7 @@ std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId, bool forceD return "Unknown"; std::string playerName = res->getString( 1 ); - - m_playerNameMapById[ playerId ] = playerName; + updatePlayerName( playerId, playerName ); return playerName; } From ee7cef96cc979d62f2060e7ab51400951f2ad2ed Mon Sep 17 00:00:00 2001 From: mordred Date: Fri, 23 Nov 2018 15:02:42 +0100 Subject: [PATCH 104/385] Added variant identification to exds and fixed exd_struct_gen with adam --- deps/datReader/Exd.cpp | 87 + deps/datReader/Exd.h | 2 + deps/datReader/Exh.h | 3 + src/tools/exd_struct_gen/ex.json | 3966 ++++++++++++++++++++++++++++- src/tools/exd_struct_gen/main.cpp | 125 +- 5 files changed, 4031 insertions(+), 152 deletions(-) diff --git a/deps/datReader/Exd.cpp b/deps/datReader/Exd.cpp index b4513130..f86ac318 100644 --- a/deps/datReader/Exd.cpp +++ b/deps/datReader/Exd.cpp @@ -81,6 +81,90 @@ namespace xiv { } + const std::vector Exd::get_row( uint32_t id, uint32_t subRow ) + { + + auto cacheEntryIt = _idCache.find( id ); + if( cacheEntryIt == _idCache.end() ) + throw std::runtime_error( "Id not found: " + std::to_string( id ) ); + + // Iterates over all the files + const uint32_t member_count = _exh->get_members().size(); + auto& file_ptr = cacheEntryIt->second.file; + + std::vector< char > dataCpy = file_ptr->get_data_sections().front(); + std::istringstream iss( std::string( dataCpy.begin(), dataCpy.end() ) ); + + // Get the vector fields for the given record and preallocate it + auto fields = _data[id]; + fields.reserve( member_count ); + iss.seekg( cacheEntryIt->second.offset + 6 ); + + uint8_t subRows = *reinterpret_cast< uint8_t* >( &dataCpy[ cacheEntryIt->second.offset + 5 ] ); + + for( auto& member_entry : _exh->get_exh_members() ) + { + // Seek to the position of the member to extract. + // 6 is because we have uint32_t/uint16_t at the start of each record + iss.seekg( cacheEntryIt->second.offset + 6 + member_entry.offset ); + + // Switch depending on the type to extract + switch( member_entry.type ) + { + case DataType::string: + // Extract the offset to the actual string + // Seek to it then extract the actual string + { + auto string_offset = extract( iss, "string_offset", false ); + iss.seekg( cacheEntryIt->second.offset + 6 + _exh->get_header().data_offset + string_offset ); + fields.emplace_back( utils::bparse::extract_cstring( iss, "string" ) ); + } + break; + + case DataType::boolean: + fields.emplace_back( extract( iss, "bool" ) ); + break; + + case DataType::int8: + fields.emplace_back( extract( iss, "int8_t" ) ); + break; + + case DataType::int16: + fields.emplace_back( extract( iss, "int16_t", false ) ); + break; + case DataType::int32: + fields.emplace_back( extract( iss, "int32_t", false ) ); + break; + + case DataType::uint32: + fields.emplace_back( extract( iss, "uint32_t", false ) ); + break; + + case DataType::float32: + fields.emplace_back( extract( iss, "float", false ) ); + break; + + case DataType::uint64: + fields.emplace_back( extract( iss, "uint64_t", false ) ); + break; + + default: + auto type = static_cast< uint16_t >( member_entry.type ); + if( type < 0x19 || type > 0x20 ) + throw std::runtime_error("Unknown DataType: " + std::to_string( type )); + uint64_t val = extract< uint64_t >( iss, "bool" ); + int32_t shift = type - 0x19; + int32_t i = 1 << shift; + val &= i; + fields.emplace_back( ( val & i ) == i ); + break; + } + } + return fields; + + } + + const std::vector Exd::get_row( uint32_t id ) { @@ -98,6 +182,9 @@ namespace xiv // Get the vector fields for the given record and preallocate it auto fields = _data[id]; fields.reserve( member_count ); + iss.seekg( cacheEntryIt->second.offset + 6 ); + + uint8_t subRows = *reinterpret_cast< uint8_t* >( &dataCpy[ cacheEntryIt->second.offset + 5 ] ); for( auto& member_entry : _exh->get_exh_members() ) { diff --git a/deps/datReader/Exd.h b/deps/datReader/Exd.h index 0bafa5e4..c504176b 100644 --- a/deps/datReader/Exd.h +++ b/deps/datReader/Exd.h @@ -47,6 +47,8 @@ public: // Get a row by its id const std::vector get_row(uint32_t id); + // Get a row by its id and sub-row + const std::vector get_row(uint32_t id, uint32_t subRow); // Get all rows const std::map>& get_rows(); diff --git a/deps/datReader/Exh.h b/deps/datReader/Exh.h index 2a7cf630..80b11150 100644 --- a/deps/datReader/Exh.h +++ b/deps/datReader/Exh.h @@ -31,6 +31,9 @@ namespace xiv uint16_t field_count; uint16_t exd_count; uint16_t language_count; + uint16_t unknown1; + uint8_t u2; + uint8_t variant; }; struct ExhMember diff --git a/src/tools/exd_struct_gen/ex.json b/src/tools/exd_struct_gen/ex.json index 6f27ec8c..70e27d0d 100644 --- a/src/tools/exd_struct_gen/ex.json +++ b/src/tools/exd_struct_gen/ex.json @@ -1,5 +1,5 @@ { - "version": "2018.05.16.0000.0000", + "version": "2018.10.30.0000.0000", "sheets": [ { "sheet": "Achievement", @@ -53,15 +53,173 @@ }, { "index": 9, + "name": "Key", + "converter": { + "type": "complexlink", + "links": [ + { + "sheet": "Achievement", + "when": { + "key": "Type", + "value": 2 + } + }, + { + "sheet": "ClassJob", + "when": { + "key": "Type", + "value": 3 + } + }, + { + "sheet": "Quest", + "when": { + "key": "Type", + "value": 6 + } + }, + { + "sheet": "ClassJob", + "when": { + "key": "Type", + "value": 7 + } + }, + { + "sheet": "Map", + "when": { + "key": "Type", + "value": 8 + } + }, + { + "sheet": "Quest", + "when": { + "key": "Type", + "value": 9 + } + }, + { + "sheet": "GrandCompany", + "when": { + "key": "Type", + "value": 11 + } + }, + { + "sheet": "InstanceContent", + "when": { + "key": "Type", + "value": 14 + } + }, + { + "sheet": "BeastTribe", + "when": { + "key": "Type", + "value": 15 + } + }, + { + "sheet": "GrandCompany", + "when": { + "key": "Type", + "value": 18 + } + }, + { + "sheet": "AetherCurrentCompFlgSet", + "when": { + "key": "Type", + "value": 20 + } + }, + { + "sheet": "Quest", + "when": { + "key": "Type", + "value": 24 + } + }, + { + "sheet": "ClassJob", + "when": { + "key": "Type", + "value": 24 + } + } + ] + } + }, + { + "index": 10, "type": "repeat", - "count": 9, + "count": 8, "definition": { - "name": "Data" + "name": "Data", + "converter": { + "type": "complexlink", + "links": [ + { + "sheet": "Achievement", + "when": { + "key": "Type", + "value": 2 + } + }, + { + "sheet": "Quest", + "when": { + "key": "Type", + "value": 6 + } + }, + { + "sheet": "Quest", + "when": { + "key": "Type", + "value": 9 + } + }, + { + "sheet": "BeastReputationRank", + "when": { + "key": "Type", + "value": 15 + } + }, + { + "sheet": "AetherCurrentCompFlgSet", + "when": { + "key": "Type", + "value": 20 + } + }, + { + "sheet": "Quest", + "when": { + "key": "Type", + "value": 24 + } + }, + { + "sheet": "ClassJob", + "when": { + "key": "Type", + "value": 24 + } + } + ] + } } }, { "index": 18, "name": "Order" + }, + { + "index": 20, + "name": "InitialHide" } ] }, @@ -79,6 +237,10 @@ "type": "link", "target": "AchievementKind" } + }, + { + "index": 3, + "name": "HideCategory" } ] }, @@ -263,7 +425,7 @@ }, { "index": 44, - "name": "ActionData", + "name": "UnlockLink", "converter": { "type": "generic" } @@ -403,6 +565,10 @@ } ] }, + { + "sheet": "ActionTimelineMove", + "definitions": [] + }, { "sheet": "ActionTimelineReplace", "definitions": [ @@ -432,6 +598,91 @@ } ] }, + { + "sheet": "ActivityFeedButtons", + "definitions": [ + { + "index": 1, + "name": "BannerURL" + }, + { + "index": 2, + "name": "Description" + }, + { + "index": 3, + "name": "Language" + }, + { + "index": 4, + "name": "PictureURL" + } + ] + }, + { + "sheet": "ActivityFeedCaptions", + "definitions": [ + { + "name": "JA" + }, + { + "index": 1, + "name": "EN" + }, + { + "index": 2, + "name": "DE" + }, + { + "index": 3, + "name": "FR" + } + ] + }, + { + "sheet": "ActivityFeedGroupCaptions", + "definitions": [ + { + "name": "JA" + }, + { + "index": 1, + "name": "EN" + }, + { + "index": 2, + "name": "DE" + }, + { + "index": 3, + "name": "FR" + } + ] + }, + { + "sheet": "ActivityFeedImages", + "definitions": [ + { + "name": "ExpansionImage" + }, + { + "index": 1, + "name": "ActivityFeedJA" + }, + { + "index": 2, + "name": "ActivityFeedEN" + }, + { + "index": 3, + "name": "ActivityFeedDE" + }, + { + "index": 4, + "name": "ActivityFeedFR" + } + ] + }, { "sheet": "Addon", "defaultColumn": "Text", @@ -441,6 +692,22 @@ } ] }, + { + "sheet": "AddonHud", + "definitions": [ + { + "name": "Long" + }, + { + "index": 1, + "name": "Short" + }, + { + "index": 2, + "name": "Function" + } + ] + }, { "sheet": "Adventure", "defaultColumn": "Name", @@ -545,6 +812,7 @@ }, { "sheet": "AetherCurrent", + "defaultColumn": "Quest", "definitions": [ { "name": "Quest", @@ -611,6 +879,33 @@ "sheet": "Aetheryte", "defaultColumn": "PlaceName", "definitions": [ + { + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "PlaceName", @@ -655,6 +950,14 @@ "index": 16, "name": "AethernetGroup" }, + { + "index": 18, + "name": "RequiredQuest", + "converter": { + "type": "link", + "target": "Quest" + } + }, { "index": 19, "name": "Map", @@ -673,6 +976,15 @@ } ] }, + { + "sheet": "AetheryteSystemDefine", + "defaultColumn": "name", + "definitions": [ + { + "name": "Text" + } + ] + }, { "sheet": "AirshipExplorationLevel", "definitions": [ @@ -1014,6 +1326,31 @@ } ] }, + { + "sheet": "ArrayEventHandler", + "definitions": [ + { + "type": "repeat", + "count": 16, + "definition": { + "name": "Data", + "converter": { + "type": "multiref", + "targets": [ + "InstanceContentGuide", + "Story", + "Opening", + "CustomTalk", + "DefaultTalk", + "GilShop", + "Warp", + "Quest" + ] + } + } + } + ] + }, { "sheet": "AttackType", "defaultColumn": "Name", @@ -1023,6 +1360,18 @@ } ] }, + { + "sheet": "BacklightColor", + "defaultColumn": "Color", + "definitions": [ + { + "name": "Color", + "converter": { + "type": "color" + } + } + ] + }, { "sheet": "Balloon", "defaultColumn": "Dialogue", @@ -1037,6 +1386,9 @@ "sheet": "BaseParam", "defaultColumn": "Name", "definitions": [ + { + "name": "Order" + }, { "index": 1, "name": "Name" @@ -1307,6 +1659,84 @@ } ] }, + { + "sheet": "BGMFade", + "definitions": [ + { + "index": 2, + "name": "BGMFadeType", + "converter": { + "type": "link", + "target": "BGMFadeType" + } + } + ] + }, + { + "sheet": "BGMSituation", + "definitions": [ + { + "name": "BGM{Day}", + "converter": { + "type": "link", + "target": "BGM" + } + }, + { + "index": 1, + "name": "BGM{Night}", + "converter": { + "type": "link", + "target": "BGM" + } + }, + { + "index": 2, + "name": "BGM{Battle}", + "converter": { + "type": "link", + "target": "BGM" + } + }, + { + "index": 3, + "name": "BGM{Field}", + "converter": { + "type": "link", + "target": "BGM" + } + } + ] + }, + { + "sheet": "BGMSwitch", + "definitions": [ + { + "name": "BGMSystemDefine", + "converter": { + "type": "link", + "target": "BGMSystemDefine" + } + }, + { + "index": 1, + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } + } + ] + }, + { + "sheet": "BGMSystemDefine", + "defaultColumn": "Define", + "definitions": [ + { + "name": "Define" + } + ] + }, { "sheet": "BNpcAnnounceIcon", "defaultColumn": "Icon", @@ -1322,6 +1752,21 @@ { "sheet": "BNpcBase", "definitions": [ + { + "name": "Behavior", + "converter": { + "type": "link", + "target": "Behavior" + } + }, + { + "index": 1, + "name": "ActionTimelineMove", + "converter": { + "type": "link", + "target": "ActionTimelineMove" + } + }, { "index": 4, "name": "Scale" @@ -1357,6 +1802,14 @@ "type": "link", "target": "ArrayEventHandler" } + }, + { + "index": 12, + "name": "BNpcParts", + "converter": { + "type": "link", + "target": "BNpcParts" + } } ] }, @@ -1483,9 +1936,173 @@ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" + }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + } + ] + }, + { + "sheet": "BNpcParts", + "definitions": [ + { + "name": "BNpcBase[1]", + "converter": { + "type": "link", + "target": "BNpcBase" + } + }, + { + "index": 1, + "name": "PartSlot[1]" + }, + { + "index": 6, + "name": "X[1]" + }, + { + "index": 7, + "name": "Y[1]" + }, + { + "index": 8, + "name": "Z[1]" + }, + { + "index": 10, + "name": "Scale[1]" + }, + { + "index": 11, + "name": "BNpcBase[2]", + "converter": { + "type": "link", + "target": "BNpcBase" + } + }, + { + "index": 12, + "name": "PartSlot[2]" + }, + { + "index": 17, + "name": "X[2]" + }, + { + "index": 18, + "name": "Y[2]" + }, + { + "index": 19, + "name": "Z[2]" + }, + { + "index": 21, + "name": "Scale[2]" + }, + { + "index": 22, + "name": "BNpcBase[3]", + "converter": { + "type": "link", + "target": "BNpcBase" + } + }, + { + "index": 23, + "name": "PartSlot[3]" + }, + { + "index": 28, + "name": "X[3]" + }, + { + "index": 29, + "name": "Y[3]" + }, + { + "index": 30, + "name": "Z[3]" + }, + { + "index": 31, + "name": "Scale[3]" + }, + { + "index": 33, + "name": "BNpcBase[4]", + "converter": { + "type": "link", + "target": "BNpcBase" + } + }, + { + "index": 34, + "name": "PartSlot[4]" + }, + { + "index": 39, + "name": "X[4]" + }, + { + "index": 40, + "name": "Y[4]" + }, + { + "index": 41, + "name": "Z[4]" + }, + { + "index": 43, + "name": "Scale[4]" + }, + { + "index": 44, + "name": "BNpcBase[5]", + "converter": { + "type": "link", + "target": "BNpcBase" + } + }, + { + "index": 45, + "name": "PartSlot[5]" + }, + { + "index": 50, + "name": "X[5]" + }, + { + "index": 51, + "name": "Y[5]" + }, + { + "index": 52, + "name": "Z[5]" + }, + { + "index": 54, + "name": "Scale[5]" } ] }, @@ -1560,10 +2177,30 @@ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Name" @@ -1615,7 +2252,7 @@ "sheet": "BuddyItem", "definitions": [ { - "name": "Name", + "name": "Item", "converter": { "type": "link", "target": "Item" @@ -1946,6 +2583,42 @@ } ] }, + { + "sheet": "ChocoboRaceTutorial", + "definitions": [ + { + "type": "repeat", + "count": 8, + "definition": { + "name": "NpcYell", + "converter": { + "type": "link", + "target": "NpcYell" + } + } + } + ] + }, + { + "sheet": "ChocoboRaceWeather", + "definitions": [ + { + "name": "WeatherType[1]", + "converter": { + "type": "link", + "target": "Weather" + } + }, + { + "index": 1, + "name": "WeatherType[2]", + "converter": { + "type": "link", + "target": "Weather" + } + } + ] + }, { "sheet": "ChocoboTaxi", "definitions": [ @@ -2266,10 +2939,38 @@ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, + { + "index": 8, + "name": "Model", + "converter": { + "type": "link", + "target": "ModelChara" + } + }, { "index": 14, "name": "Behavior", @@ -2628,6 +3329,17 @@ "sheet": "CompleteJournal", "defaultColumn": "Name", "definitions": [ + { + "index": 1, + "name": "RequiredLevel" + }, + { + "index": 3, + "name": "Icon", + "converter": { + "type": "icon" + } + }, { "index": 5, "name": "Name" @@ -2666,6 +3378,18 @@ } ] }, + { + "sheet": "ContentCloseCycle", + "definitions": [ + { + "name": "Unixtime" + }, + { + "index": 1, + "name": "Time{Seconds}" + } + ] + }, { "sheet": "ContentExAction", "definitions": [ @@ -2684,13 +3408,55 @@ }, { "sheet": "ContentFinderCondition", + "defaultColumn": "Name", "definitions": [ { - "index": 3, - "name": "InstanceContent", + "index": 1, + "name": "TerritoryType", "converter": { "type": "link", - "target": "InstanceContent" + "target": "TerritoryType" + } + }, + { + "index": 2, + "name": "ContentLinkType" + }, + { + "index": 3, + "name": "Content", + "converter": { + "type": "complexlink", + "links": [ + { + "sheet": "InstanceContent", + "when": { + "key": "ContentLinkType", + "value": 1 + } + }, + { + "sheet": "PartyContent", + "when": { + "key": "ContentLinkType", + "value": 2 + } + }, + { + "sheet": "PublicContent", + "when": { + "key": "ContentLinkType", + "value": 3 + } + }, + { + "sheet": "GoldSaucerContent", + "when": { + "key": "ContentLinkType", + "value": 4 + } + } + ] } }, { @@ -2718,8 +3484,20 @@ "name": "ItemLevel{Sync}" }, { - "index": 24, - "name": "ContentIndicator" + "index": 20, + "name": "AllowReplacement" + }, + { + "index": 26, + "name": "HighEndDuty" + }, + { + "index": 30, + "name": "DutyRecorderAllowed" + }, + { + "index": 32, + "name": "Name" }, { "index": 33, @@ -2729,9 +3507,17 @@ "target": "ContentType" } }, + { + "index": 34, + "name": "Transient", + "converter": { + "type": "link", + "target": "ContentFinderConditionTransient" + } + }, { "index": 37, - "name": "Icon", + "name": "Image", "converter": { "type": "icon" } @@ -2740,12 +3526,49 @@ }, { "sheet": "ContentFinderConditionTransient", + "defaultColumn": "Description", "definitions": [ { "name": "Description" } ] }, + { + "sheet": "ContentGauge", + "definitions": [ + { + "name": "Name" + }, + { + "index": 1, + "name": "Color", + "converter": { + "type": "link", + "target": "ContentGaugeColor" + } + }, + { + "index": 3, + "name": "TextString" + } + ] + }, + { + "sheet": "ContentGaugeColor", + "definitions": [ + { + "name": "AndroidColor{1}" + }, + { + "index": 1, + "name": "AndroidColor{2}" + }, + { + "index": 2, + "name": "AndroidColor{3}" + } + ] + }, { "sheet": "ContentMemberType", "defaultColumn": "InstanceContent", @@ -2804,6 +3627,18 @@ "index": 6, "name": "IsInDutyFinder" }, + { + "index": 7, + "name": "OpenRule", + "converter": { + "type": "link", + "target": "ContentRouletteOpenRule" + } + }, + { + "index": 9, + "name": "RequiredLevel" + }, { "index": 11, "name": "ItemLevel{Required}" @@ -2815,6 +3650,14 @@ "type": "icon" } }, + { + "index": 14, + "name": "ContentRouletteRoleBonus", + "converter": { + "type": "link", + "target": "ContentRouletteRoleBonus" + } + }, { "index": 15, "name": "Reward{TomeA}" @@ -2842,6 +3685,44 @@ { "index": 32, "name": "RequireAllDuties" + }, + { + "index": 34, + "name": "ContentRouletteOpenRule" + }, + { + "index": 35, + "name": "InstanceContent", + "converter": { + "type": "link", + "target": "InstanceContent" + } + } + ] + }, + { + "sheet": "ContentRouletteOpenRule", + "definitions": [ + { + "index": 1, + "name": "Type" + } + ] + }, + { + "sheet": "ContentRouletteRoleBonus", + "definitions": [ + { + "index": 6, + "name": "ItemRewardType", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 7, + "name": "RewardAmount" } ] }, @@ -2857,21 +3738,43 @@ }, { "index": 2, - "name": "RequiredAmount" - } - ] - }, - { - "sheet": "ContentsNoteCategory", - "defaultColumn": "Type", - "definitions": [ + "name": "MenuOrder" + }, { - "index": 1, - "name": "Type", + "index": 3, + "name": "RequiredAmount" + }, + { + "index": 5, + "name": "ExpMultiplier" + }, + { + "index": 7, + "name": "GilRward" + }, + { + "index": 8, + "name": "LevelUnlock" + }, + { + "index": 9, + "name": "HowTo", "converter": { "type": "link", - "target": "ContentType" + "target": "HowTo" } + }, + { + "index": 11, + "name": "Name" + }, + { + "index": 12, + "name": "Description" + }, + { + "index": 13, + "name": "ExpCap" } ] }, @@ -3079,6 +3982,14 @@ "target": "Leve" } }, + { + "index": 1, + "name": "CraftLeveTalk", + "converter": { + "type": "link", + "target": "CraftLeveTalk" + } + }, { "index": 2, "name": "Repeats" @@ -3115,6 +4026,100 @@ } ] }, + { + "sheet": "Credit", + "definitions": [ + { + "index": 1, + "name": "Roles(1)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 2, + "name": "JapaneseCast(1)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 3, + "name": "EnglishCast(1)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 4, + "name": "FrenchCast(1)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 5, + "name": "GermanCast(1)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 6, + "name": "Roles(2)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 7, + "name": "JapaneseCast(2)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 8, + "name": "EnglishCast(2)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 9, + "name": "FrenchCast(2)", + "converter": { + "type": "link", + "target": "CreditCast" + } + }, + { + "index": 10, + "name": "GermanCast(2)", + "converter": { + "type": "link", + "target": "CreditCast" + } + } + ] + }, + { + "sheet": "CreditCast", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + } + ] + }, { "sheet": "Currency", "defaultColumn": "Item", @@ -3221,6 +4226,16 @@ } ] }, + { + "sheet": "DeepDungeon", + "defaultColumn": "Name", + "definitions": [ + { + "index": 22, + "name": "Name" + } + ] + }, { "sheet": "DeepDungeonBan", "defaultColumn": "Name", @@ -3292,10 +4307,30 @@ "index": 1, "name": "Singular" }, + { + "index": 2, + "name": "Adjective" + }, { "index": 3, "name": "Plural" }, + { + "index": 4, + "name": "PossessivePronoun" + }, + { + "index": 5, + "name": "StartsWithVowel" + }, + { + "index": 7, + "name": "Pronoun" + }, + { + "index": 8, + "name": "Article" + }, { "index": 9, "name": "Name" @@ -3340,10 +4375,30 @@ "index": 1, "name": "Singular" }, + { + "index": 2, + "name": "Adjective" + }, { "index": 3, "name": "Plural" }, + { + "index": 4, + "name": "PossessivePronoun" + }, + { + "index": 5, + "name": "StartsWithVowel" + }, + { + "index": 7, + "name": "Pronoun" + }, + { + "index": 8, + "name": "Article" + }, { "index": 9, "name": "Name" @@ -3362,6 +4417,98 @@ } ] }, + { + "sheet": "DeepDungeonLayer", + "definitions": [ + { + "name": "DeepDungeon", + "converter": { + "type": "link", + "target": "DeepDungeon" + } + } + ] + }, + { + "sheet": "DeepDungeonMagicStone", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Icon", + "converter": { + "type": "icon" + } + }, + { + "index": 1, + "name": "Singular" + }, + { + "index": 2, + "name": "Adjective" + }, + { + "index": 3, + "name": "Plural" + }, + { + "index": 4, + "name": "PossessivePronoun" + }, + { + "index": 5, + "name": "StartsWithVowel" + }, + { + "index": 7, + "name": "Pronoun" + }, + { + "index": 8, + "name": "Article" + }, + { + "index": 9, + "name": "Name" + }, + { + "index": 10, + "name": "Tooltip" + } + ] + }, + { + "sheet": "DeepDungeonMap5X", + "definitions": [ + { + "type": "repeat", + "count": 5, + "definition": { + "name": "DeepDungeonRoom", + "converter": { + "type": "link", + "target": "DeepDungeonRoom" + } + } + } + ] + }, + { + "sheet": "DeepDungeonRoom", + "definitions": [ + { + "type": "repeat", + "count": 5, + "definition": { + "name": "Level", + "converter": { + "type": "link", + "target": "Level" + } + } + } + ] + }, { "sheet": "DeepDungeonStatus", "definitions": [ @@ -3416,6 +4563,19 @@ } ] }, + { + "sheet": "DefaultTalkLipSyncType", + "defaultColumn": "ActionTimeline", + "definitions": [ + { + "name": "ActionTimeline", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, { "sheet": "DeliveryQuest", "defaultColumn": "Quest", @@ -3579,6 +4739,14 @@ "target": "EmoteMode" } }, + { + "index": 15, + "name": "HasCancelEmote" + }, + { + "index": 16, + "name": "DrawsWeapon" + }, { "index": 18, "name": "TextCommand", @@ -3932,10 +5100,30 @@ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Title" @@ -3957,6 +5145,14 @@ { "index": 9, "name": "Data" + }, + { + "index": 11, + "name": "SgbPath", + "converter": { + "type": "link", + "target": "ExportedSG" + } } ] }, @@ -3966,6 +5162,30 @@ "definitions": [ { "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" } ] }, @@ -4065,6 +5285,43 @@ } ] }, + { + "sheet": "EurekaAetherItem", + "defaultColumn": "Singular", + "definitions": [ + { + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, + { + "index": 8, + "name": "Name" + } + ] + }, { "sheet": "EurekaAethernet", "defaultColumn": "Location", @@ -4087,6 +5344,67 @@ } ] }, + { + "sheet": "EurekaLogosMixerProbability", + "definitions": [ + { + "name": "Probability<%>" + } + ] + }, + { + "sheet": "EurekaMagiaAction", + "definitions": [ + { + "name": "Action", + "converter": { + "type": "link", + "target": "Action" + } + }, + { + "index": 1, + "name": "MaxUses" + } + ] + }, + { + "sheet": "EurekaMagiciteItem", + "definitions": [ + { + "name": "EurekaMagiciteItemType", + "converter": { + "type": "link", + "target": "EurekaMagiciteItemType" + } + }, + { + "index": 1, + "name": "ClassJobCategory", + "converter": { + "type": "link", + "target": "ClassJobCategory" + } + }, + { + "index": 2, + "name": "Item", + "converter": { + "type": "link", + "target": "Item" + } + } + ] + }, + { + "sheet": "EurekaMagiciteItemType", + "defaultColumn": "Type", + "definitions": [ + { + "name": "Type" + } + ] + }, { "sheet": "EurekaSphereElementAdjust", "defaultColumn": "PowerModifier", @@ -4113,6 +5431,18 @@ { "index": 2, "name": "CastTime" + }, + { + "index": 3, + "type": "repeat", + "count": 3, + "definition": { + "name": "Animation", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } } ] }, @@ -4169,18 +5499,34 @@ }, { "sheet": "EventItem", - "defaultColumn": "Name", + "defaultColumn": "Singular", "definitions": [ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" }, { - "index": 5, - "name": "Rarity" + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" }, { "index": 9, @@ -4193,6 +5539,14 @@ "type": "icon" } }, + { + "index": 11, + "name": "Action", + "converter": { + "type": "link", + "target": "Action" + } + }, { "index": 12, "name": "StackSize" @@ -4211,6 +5565,19 @@ } ] }, + { + "sheet": "EventItemCastTimeline", + "defaultColumn": "ActionTimeline", + "definitions": [ + { + "name": "ActionTimeline", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, { "sheet": "EventItemHelp", "defaultColumn": "Description", @@ -4220,6 +5587,28 @@ } ] }, + { + "sheet": "EventItemTimeline", + "defaultColumn": "ActionTimeline", + "definitions": [ + { + "name": "ActionTimeline", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, + { + "sheet": "ExportedSG", + "defaultColumn": "SgbPath", + "definitions": [ + { + "name": "SgbPath" + } + ] + }, { "sheet": "ExVersion", "defaultColumn": "Name", @@ -4278,6 +5667,10 @@ "target": "BGM" } }, + { + "index": 19, + "name": "HasWorldMapIcon" + }, { "index": 27, "name": "Name" @@ -4491,6 +5884,15 @@ } ] }, + { + "sheet": "Festival", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name" + } + ] + }, { "sheet": "FieldMarker", "defaultColumn": "Icon", @@ -4511,6 +5913,31 @@ } ] }, + { + "sheet": "FishingRecordType", + "defaultColumn": "Addon", + "definitions": [ + { + "name": "Addon", + "converter": { + "type": "link", + "target": "Addon" + } + } + ] + }, + { + "sheet": "FishingRecordTypeTransient", + "defaultColumn": "Icon", + "definitions": [ + { + "name": "Image", + "converter": { + "type": "icon" + } + } + ] + }, { "sheet": "FishingSpot", "defaultColumn": "PlaceName", @@ -4592,7 +6019,19 @@ "name": "GatheringItemLevel" }, { - "index": 4, + "index": 3, + "name": "IsHidden" + }, + { + "index": 5, + "name": "FishingRecordType", + "converter": { + "type": "link", + "target": "FishingRecordType" + } + }, + { + "index": 6, "name": "TerritoryType", "converter": { "type": "link", @@ -4600,11 +6039,19 @@ } }, { - "index": 5, - "name": "IsFish" + "index": 7, + "name": "IsInLog" }, { - "index": 6, + "index": 8, + "name": "TimeRestricted" + }, + { + "index": 9, + "name": "WeatherRestricted" + }, + { + "index": 10, "name": "GatheringSubCategory", "converter": { "type": "link", @@ -4613,6 +6060,95 @@ } ] }, + { + "sheet": "Frontline03", + "definitions": [ + { + "index": 9, + "type": "repeat", + "count": 3, + "definition": { + "name": "EmptyIcon", + "converter": { + "type": "icon" + } + } + }, + { + "index": 12, + "type": "repeat", + "count": 3, + "definition": { + "name": "MaelstromIcon", + "converter": { + "type": "icon" + } + } + }, + { + "index": 15, + "type": "repeat", + "count": 3, + "definition": { + "name": "TwinAdderIcon", + "converter": { + "type": "icon" + } + } + }, + { + "index": 18, + "type": "repeat", + "count": 3, + "definition": { + "name": "ImmortalFlamesIcon", + "converter": { + "type": "icon" + } + } + } + ] + }, + { + "sheet": "Frontline04", + "definitions": [ + { + "name": "Level[1]", + "converter": { + "type": "link", + "target": "Level" + } + }, + { + "index": 1, + "name": "Level[2]", + "converter": { + "type": "link", + "target": "Level" + } + }, + { + "index": 2, + "name": "Level[3]", + "converter": { + "type": "link", + "target": "Level" + } + }, + { + "index": 6, + "type": "repeat", + "count": 27, + "definition": { + "name": "Unknown{Level}", + "converter": { + "type": "link", + "target": "Level" + } + } + } + ] + }, { "sheet": "GardeningSeed", "defaultColumn": "Item", @@ -4703,6 +6239,59 @@ } ] }, + { + "sheet": "GatheringLeve", + "definitions": [ + { + "index": 4, + "name": "RequiredItem[1]", + "converter": { + "type": "link", + "target": "EventItem" + } + }, + { + "index": 5, + "name": "LeveLevel" + }, + { + "index": 6, + "name": "RequiredItem[2]", + "converter": { + "type": "link", + "target": "EventItem" + } + } + ] + }, + { + "sheet": "GatheringLeveRoute", + "definitions": [ + { + "type": "repeat", + "count": 12, + "definition": { + "type": "group", + "members": [ + { + "name": "GatheringPoint", + "converter": { + "type": "link", + "target": "GatheringPoint" + } + }, + { + "name": "Level", + "converter": { + "type": "link", + "target": "Level" + } + } + ] + } + } + ] + }, { "sheet": "GatheringNotebookList", "definitions": [ @@ -4848,9 +6437,29 @@ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" + }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" } ] }, @@ -4895,6 +6504,46 @@ } ] }, + { + "sheet": "GcArmyCaptureTactics", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Name", + "converter": { + "type": "link", + "target": "Status" + } + }, + { + "index": 1, + "name": "HP" + }, + { + "index": 2, + "name": "DamageDealt" + }, + { + "index": 3, + "name": "DamageReceived" + }, + { + "index": 4, + "name": "Tactic", + "converter": { + "type": "link", + "target": "Addon" + } + }, + { + "index": 5, + "name": "Icon", + "converter": { + "type": "icon" + } + } + ] + }, { "sheet": "GcArmyExpedition", "defaultColumn": "Name", @@ -5141,15 +6790,35 @@ }, { "sheet": "GCRankGridaniaFemaleText", - "defaultColumn": "Name", + "defaultColumn": "Singular", "definitions": [ { - "name": "Name" + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Name{Rank}" @@ -5158,15 +6827,35 @@ }, { "sheet": "GCRankGridaniaMaleText", - "defaultColumn": "Name", + "defaultColumn": "Singular", "definitions": [ { - "name": "Name" + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Name{Rank}" @@ -5175,15 +6864,35 @@ }, { "sheet": "GCRankLimsaFemaleText", - "defaultColumn": "Name", + "defaultColumn": "Singular", "definitions": [ { - "name": "Name" + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Name{Rank}" @@ -5192,15 +6901,35 @@ }, { "sheet": "GCRankLimsaMaleText", - "defaultColumn": "Name", + "defaultColumn": "Singular", "definitions": [ { - "name": "Name" + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Name{Rank}" @@ -5209,15 +6938,35 @@ }, { "sheet": "GCRankUldahFemaleText", - "defaultColumn": "Name", + "defaultColumn": "Singular", "definitions": [ { - "name": "Name" + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Name{Rank}" @@ -5226,15 +6975,35 @@ }, { "sheet": "GCRankUldahMaleText", - "defaultColumn": "Name", + "defaultColumn": "Singular", "definitions": [ { - "name": "Name" + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Name{Rank}" @@ -5383,6 +7152,10 @@ "target": "Action" } }, + { + "index": 4, + "name": "UnlockLink" + }, { "index": 7, "name": "Icon", @@ -5392,6 +7165,58 @@ } ] }, + { + "sheet": "GFATE", + "definitions": [ + { + "index": 22, + "type": "repeat", + "count": 16, + "definition": { + "name": "Icon", + "converter": { + "type": "icon" + } + } + } + ] + }, + { + "sheet": "GFateClimbing2", + "definitions": [ + { + "name": "ContentEntry", + "converter": { + "type": "link", + "target": "ContentEntry" + } + } + ] + }, + { + "sheet": "GFateClimbing2Content", + "definitions": [ + { + "name": "PublicContentTextData", + "converter": { + "type": "link", + "target": "PublicContentTextData" + } + } + ] + }, + { + "sheet": "GFateClimbing2TotemType", + "definitions": [ + { + "name": "PublicContentTextData", + "converter": { + "type": "link", + "target": "PublicContentTextData" + } + } + ] + }, { "sheet": "GilShop", "defaultColumn": "Name", @@ -5399,6 +7224,41 @@ "definitions": [ { "name": "Name" + }, + { + "index": 1, + "name": "Icon", + "converter": { + "type": "icon" + } + }, + { + "index": 2, + "type": "repeat", + "count": 4, + "definition": { + "name": "Quest{Required}", + "converter": { + "type": "link", + "target": "Quest" + } + } + }, + { + "index": 6, + "name": "AcceptTalk", + "converter": { + "type": "link", + "target": "DefaultTalk" + } + }, + { + "index": 7, + "name": "FailTalk", + "converter": { + "type": "link", + "target": "DefaultTalk" + } } ] }, @@ -5438,6 +7298,46 @@ } ] }, + { + "sheet": "GoldSaucerArcadeMachine", + "definitions": [ + { + "index": 6, + "name": "Fail Image", + "converter": { + "type": "icon" + } + }, + { + "index": 35, + "name": "Poor", + "converter": { + "type": "icon" + } + }, + { + "index": 36, + "name": "Good", + "converter": { + "type": "icon" + } + }, + { + "index": 37, + "name": "Great", + "converter": { + "type": "icon" + } + }, + { + "index": 38, + "name": "Excellent", + "converter": { + "type": "icon" + } + } + ] + }, { "sheet": "GoldSaucerTextData", "defaultColumn": "Text", @@ -5545,6 +7445,14 @@ "sheet": "GuildleveAssignment", "isGenericReferenceTarget": true, "definitions": [ + { + "index": 1, + "name": "AssignmentTalk", + "converter": { + "type": "link", + "target": "GuildleveAssignmentTalk" + } + }, { "index": 2, "type": "repeat", @@ -5559,6 +7467,23 @@ } ] }, + { + "sheet": "GuildleveAssignmentCategory", + "defaultColumn": "", + "definitions": [ + { + "type": "repeat", + "count": 8, + "definition": { + "name": "Category", + "converter": { + "type": "link", + "target": "LeveAssignmentType" + } + } + } + ] + }, { "sheet": "GuildOrderGuide", "isGenericReferenceTarget": true, @@ -5569,6 +7494,30 @@ "isGenericReferenceTarget": true, "definitions": [] }, + { + "sheet": "HairMakeType", + "definitions": [ + { + "name": "Race", + "converter": { + "type": "link", + "target": "Race" + } + }, + { + "index": 1, + "name": "Tribe", + "converter": { + "type": "link", + "target": "Tribe" + } + }, + { + "index": 2, + "name": "Gender" + } + ] + }, { "sheet": "HouseRetainerPose", "defaultColumn": "ActionTimeline", @@ -5582,6 +7531,112 @@ } ] }, + { + "sheet": "HousingAethernet", + "definitions": [ + { + "name": "Level", + "converter": { + "type": "link", + "target": "Level" + } + }, + { + "index": 1, + "name": "TerritoryType", + "converter": { + "type": "link", + "target": "TerritoryType" + } + }, + { + "index": 2, + "name": "PlaceName", + "converter": { + "type": "link", + "target": "PlaceName" + } + }, + { + "index": 3, + "name": "Order" + } + ] + }, + { + "sheet": "HousingAppeal", + "defaultColumn": "Tag", + "definitions": [ + { + "name": "Tag" + }, + { + "index": 1, + "name": "Icon", + "converter": { + "type": "icon" + } + }, + { + "index": 2, + "name": "Order" + } + ] + }, + { + "sheet": "HousingEmploymentNpcList", + "definitions": [ + { + "name": "Race", + "converter": { + "type": "link", + "target": "HousingEmploymentNpcRace" + } + }, + { + "index": 1, + "type": "repeat", + "count": 2, + "definition": { + "name": "ENpcBase", + "converter": { + "type": "link", + "target": "ENpcBase" + } + } + } + ] + }, + { + "sheet": "HousingEmploymentNpcRace", + "defaultColumn": "Race", + "definitions": [ + { + "name": "Race" + } + ] + }, + { + "sheet": "HousingExterior", + "definitions": [ + { + "index": 2, + "name": "PlaceName", + "converter": { + "type": "link", + "target": "PlaceName" + } + }, + { + "index": 3, + "name": "HousingSize" + }, + { + "index": 4, + "name": "Model" + } + ] + }, { "sheet": "HousingFurniture", "defaultColumn": "Item", @@ -5613,9 +7668,17 @@ "target": "HousingLayoutLimit" } }, + { + "index": 5, + "name": "AquariumTier" + }, { "index": 6, - "name": "Event" + "name": "CustomTalk", + "converter": { + "type": "link", + "target": "CustomTalk" + } }, { "index": 7, @@ -5628,6 +7691,247 @@ { "index": 8, "name": "DestroyOnRemoval" + }, + { + "index": 9, + "name": "Tooltip", + "converter": { + "type": "link", + "target": "HousingPlacement" + } + } + ] + }, + { + "sheet": "HousingMapMarkerInfo", + "definitions": [ + { + "index": 4, + "name": "Map", + "converter": { + "type": "link", + "target": "Map" + } + } + ] + }, + { + "sheet": "HousingMerchantPose", + "defaultColumn": "Pose", + "definitions": [ + { + "name": "ActionTimeline", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 1, + "name": "Pose" + } + ] + }, + { + "sheet": "HousingLandSet", + "defaultColumn": "", + "definitions": [ + { + "type": "repeat", + "count": 60, + "definition": { + "name": "PlotSize" + } + }, + { + "index": 300, + "type": "repeat", + "count": 60, + "definition": { + "name": "InitialPrice" + } + } + ] + }, + { + "sheet": "HousingPlacement", + "defaultColumn": "Text", + "definitions": [ + { + "name": "Text" + } + ] + }, + { + "sheet": "HousingPreset", + "definitions": [ + { + "name": "Singular" + }, + { + "index": 1, + "name": "Adjective" + }, + { + "index": 2, + "name": "Plural" + }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, + { + "index": 8, + "name": "PlaceName", + "converter": { + "type": "link", + "target": "PlaceName" + } + }, + { + "index": 9, + "name": "HousingSize" + }, + { + "index": 10, + "name": "ExteriorRoof", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 11, + "name": "ExteriorWall", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 12, + "name": "ExteriorWindow", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 13, + "name": "ExteriorDoor", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 14, + "name": "InteriorWall", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 15, + "name": "InteriorFlooring", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 16, + "name": "InteriorLighting", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 17, + "name": "OtherFloorWall", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 18, + "name": "OtherFloorFlooring", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 19, + "name": "OtherFloorLighting", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 20, + "name": "BasementWall", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 21, + "name": "BasementFlooring", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 22, + "name": "BasementLighting", + "converter": { + "type": "link", + "target": "Item" + } + }, + { + "index": 23, + "name": "MansionLighting", + "converter": { + "type": "link", + "target": "Item" + } + } + ] + }, + { + "sheet": "HousingUnitedExterior", + "definitions": [ + { + "index": 1, + "type": "repeat", + "count": 8, + "definition": { + "name": "Item", + "converter": { + "type": "link", + "target": "HousingExterior" + } + } } ] }, @@ -5664,7 +7968,11 @@ }, { "index": 5, - "name": "Event" + "name": "CustomTalk", + "converter": { + "type": "link", + "target": "CustomTalk" + } }, { "index": 6, @@ -5680,6 +7988,53 @@ } ] }, + { + "sheet": "HowTo", + "definitions": [ + { + "index": 2, + "type": "repeat", + "count": 10, + "definition": { + "name": "Images", + "converter": { + "type": "link", + "target": "HowToPage" + } + } + }, + { + "index": 12, + "name": "Category", + "converter": { + "type": "link", + "target": "HowToCategory" + } + } + ] + }, + { + "sheet": "HowToCategory", + "defaultColumn": "Category", + "definitions": [ + { + "name": "Category" + } + ] + }, + { + "sheet": "HowToPage", + "defaultColumn": "Image", + "definitions": [ + { + "index": 2, + "name": "Image", + "converter": { + "type": "icon" + } + } + ] + }, { "sheet": "InstanceContent", "defaultColumn": "Name", @@ -5712,23 +8067,43 @@ } }, { - "index": 9, - "name": "TerritoryType", + "index": 6, + "name": "WinBGM", "converter": { "type": "link", - "target": "TerritoryType" + "target": "BGM" + } + }, + { + "index": 7, + "name": "Cutscene", + "converter": { + "type": "link", + "target": "Cutscene" + } + }, + { + "index": 9, + "name": "Order" + }, + { + "index": 12, + "name": "InstanceContentTextData{Boss}{Start}", + "converter": { + "type": "link", + "target": "InstanceContentTextData" } }, { "index": 13, - "name": "InstanceContentTextData{Boss}{Start}" + "name": "InstanceContentTextData{Boss}{End}", + "converter": { + "type": "link", + "target": "InstanceContentTextData" + } }, { "index": 14, - "name": "InstanceContentTextData{Boss}{End}" - }, - { - "index": 15, "name": "BNpcBase{Boss}", "converter": { "type": "link", @@ -5736,7 +8111,7 @@ } }, { - "index": 16, + "index": 15, "name": "InstanceContentTextData{Objective}{Start}", "converter": { "type": "link", @@ -5744,7 +8119,7 @@ } }, { - "index": 17, + "index": 16, "name": "InstanceContentTextData{Objective}{End}", "converter": { "type": "link", @@ -5752,31 +8127,48 @@ } }, { - "index": 18, + "index": 17, "name": "SortKey" }, { - "index": 21, + "index": 20, "name": "NewPlayerBonusA" }, { - "index": 22, + "index": 21, "name": "NewPlayerBonusB" }, { - "index": 24, + "index": 22, + "name": "FinalBossExp" + }, + { + "index": 23, "name": "FinalBossCurrencyA" }, { - "index": 25, + "index": 24, "name": "FinalBossCurrencyB" }, { - "index": 26, + "index": 25, "name": "FinalBossCurrencyC" }, { - "index": 32, + "index": 26, + "type": "repeat", + "count": 5, + "definition": { + "type": "group", + "members": [ + { + "name": "BossExp" + } + ] + } + }, + { + "index": 31, "type": "repeat", "count": 5, "definition": { @@ -5789,7 +8181,7 @@ } }, { - "index": 37, + "index": 36, "type": "repeat", "count": 5, "definition": { @@ -5802,7 +8194,7 @@ } }, { - "index": 42, + "index": 41, "type": "repeat", "count": 5, "definition": { @@ -5815,7 +8207,11 @@ } }, { - "index": 52, + "index": 46, + "name": "InstanceClearExp" + }, + { + "index": 51, "name": "InstanceContentBuff", "converter": { "type": "link", @@ -5823,7 +8219,15 @@ } }, { - "index": 56, + "index": 52, + "name": "ReqInstance", + "converter": { + "type": "link", + "target": "InstanceContent" + } + }, + { + "index": 55, "name": "PartyCondition" } ] @@ -5856,14 +8260,30 @@ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, { "index": 4, "name": "StartsWithVowel" }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, { "index": 8, "name": "Description" @@ -5897,10 +8317,67 @@ }, { "index": 14, - "name": "Stain", + "name": "AdditionalData", "converter": { - "type": "link", - "target": "Stain" + "type": "complexlink", + "links": [ + { + "sheet": "Stain", + "when": { + "key": "FilterGroup", + "value": 15 + } + }, + { + "sheet": "TreasureHuntRank", + "when": { + "key": "FilterGroup", + "value": 18 + } + }, + { + "sheet": "GardeningSeed", + "when": { + "key": "FilterGroup", + "value": 20 + } + }, + { + "sheet": "AetherialWheel", + "when": { + "key": "FilterGroup", + "value": 25 + } + }, + { + "sheet": "CompanyAction", + "when": { + "key": "FilterGroup", + "value": 26 + } + }, + { + "sheet": "TripleTriadCard", + "when": { + "key": "FilterGroup", + "value": 27 + } + }, + { + "sheet": "AirshipExplorationPart", + "when": { + "key": "FilterGroup", + "value": 28 + } + }, + { + "sheet": "SubmarinePart", + "when": { + "key": "FilterGroup", + "value": 37 + } + } + ] } }, { @@ -5943,6 +8420,10 @@ "index": 22, "name": "IsIndisposable" }, + { + "index": 23, + "name": "IsEquippable" + }, { "index": 24, "name": "Price{Mid}" @@ -6162,6 +8643,10 @@ { "index": 86, "name": "IsPvP" + }, + { + "index": 87, + "name": "IsGlamourous" } ] }, @@ -6227,6 +8712,302 @@ } ] }, + { + "sheet": "ItemLevel", + "definitions": [ + { + "name": "Strength" + }, + { + "index": 1, + "name": "Dexterity" + }, + { + "index": 2, + "name": "Vitality" + }, + { + "index": 3, + "name": "Intelligence" + }, + { + "index": 4, + "name": "Mind" + }, + { + "index": 5, + "name": "Piety" + }, + { + "index": 6, + "name": "HP" + }, + { + "index": 7, + "name": "MP" + }, + { + "index": 8, + "name": "TP" + }, + { + "index": 9, + "name": "GP" + }, + { + "index": 10, + "name": "CP" + }, + { + "index": 11, + "name": "PhysicalDamage" + }, + { + "index": 12, + "name": "MagicalDamage" + }, + { + "index": 13, + "name": "Delay" + }, + { + "index": 14, + "name": "AdditionalEffect" + }, + { + "index": 15, + "name": "AttackSpeed" + }, + { + "index": 16, + "name": "BlockRate" + }, + { + "index": 17, + "name": "BlockStrength" + }, + { + "index": 18, + "name": "Tenacity" + }, + { + "index": 19, + "name": "AttackPower" + }, + { + "index": 20, + "name": "Defense" + }, + { + "index": 21, + "name": "DirectHitRate" + }, + { + "index": 22, + "name": "Evasion" + }, + { + "index": 23, + "name": "MagicDefense" + }, + { + "index": 24, + "name": "CriticalHitPower" + }, + { + "index": 25, + "name": "CriticalHitResilience" + }, + { + "index": 26, + "name": "CriticalHit" + }, + { + "index": 27, + "name": "CriticalHitEvasion" + }, + { + "index": 28, + "name": "SlashingResistance" + }, + { + "index": 29, + "name": "PiercingResistance" + }, + { + "index": 30, + "name": "BluntResistance" + }, + { + "index": 31, + "name": "ProjectileResistance" + }, + { + "index": 32, + "name": "AttackMagicPotency" + }, + { + "index": 33, + "name": "HealingMagicPotency" + }, + { + "index": 34, + "name": "EnhancementMagicPotency" + }, + { + "index": 35, + "name": "EnfeeblingMagicPotency" + }, + { + "index": 36, + "name": "FireResistance" + }, + { + "index": 37, + "name": "IceResistance" + }, + { + "index": 38, + "name": "WindResistance" + }, + { + "index": 39, + "name": "EarthResistance" + }, + { + "index": 40, + "name": "LightningResistance" + }, + { + "index": 41, + "name": "WaterResistance" + }, + { + "index": 42, + "name": "MagicResistance" + }, + { + "index": 43, + "name": "Determination" + }, + { + "index": 44, + "name": "SkillSpeed" + }, + { + "index": 45, + "name": "SpellSpeed" + }, + { + "index": 46, + "name": "Haste" + }, + { + "index": 47, + "name": "Morale" + }, + { + "index": 48, + "name": "Enmity" + }, + { + "index": 49, + "name": "EnmityReduction" + }, + { + "index": 50, + "name": "CarefulDesynthesis" + }, + { + "index": 51, + "name": "EXPBonus" + }, + { + "index": 52, + "name": "Regen" + }, + { + "index": 53, + "name": "Refresh" + }, + { + "index": 54, + "name": "MovementSpeed" + }, + { + "index": 55, + "name": "Spikes" + }, + { + "index": 56, + "name": "SlowResistance" + }, + { + "index": 57, + "name": "PetrificationResistance" + }, + { + "index": 58, + "name": "ParalysisResistance" + }, + { + "index": 59, + "name": "SilenceResistance" + }, + { + "index": 60, + "name": "BlindResistance" + }, + { + "index": 61, + "name": "PoisonResistance" + }, + { + "index": 62, + "name": "StunResistance" + }, + { + "index": 63, + "name": "SleepResistance" + }, + { + "index": 64, + "name": "BindResistance" + }, + { + "index": 65, + "name": "HeavyResistance" + }, + { + "index": 66, + "name": "DoomResistance" + }, + { + "index": 67, + "name": "ReducedDurabilityLoss" + }, + { + "index": 68, + "name": "IncreasedSpiritbondGain" + }, + { + "index": 69, + "name": "Craftsmanship" + }, + { + "index": 70, + "name": "Control" + }, + { + "index": 71, + "name": "Gathering" + }, + { + "index": 72, + "name": "Perception" + } + ] + }, { "sheet": "ItemSearchCategory", "defaultColumn": "Name", @@ -6435,7 +9216,16 @@ }, { "index": 17, - "name": "DataId" + "name": "DataId", + "converter": { + "type": "multiref", + "targets": [ + "CraftLeve", + "CompanyLeve", + "GatheringLeve", + "BattleLeve" + ] + } }, { "index": 21, @@ -6559,7 +9349,47 @@ }, { "index": 6, - "name": "ObjectKey" + "name": "Object", + "converter": { + "type": "complexlink", + "links": [ + { + "sheet": "ENpcBase", + "when": { + "key": "Type", + "value": 8 + } + }, + { + "sheet": "BNpcBase", + "when": { + "key": "Type", + "value": 9 + } + }, + { + "sheet": "Aetheryte", + "when": { + "key": "Type", + "value": 12 + } + }, + { + "sheet": "GatheringPoint", + "when": { + "key": "Type", + "value": 14 + } + }, + { + "sheet": "EObj", + "when": { + "key": "Type", + "value": 45 + } + } + ] + } }, { "index": 7, @@ -6571,7 +9401,16 @@ }, { "index": 8, - "name": "EventId" + "name": "EventId", + "converter": { + "type": "multiref", + "targets": [ + "TripleTriad", + "Adventure", + "Opening", + "Quest" + ] + } }, { "index": 9, @@ -6654,7 +9493,6 @@ "defaultColumn": "Name", "definitions": [ { - "index": 1, "name": "LogKind", "converter": { "type": "link", @@ -6723,6 +9561,31 @@ } ] }, + { + "sheet": "LotteryExchangeShop", + "definitions": [ + { + "index": 1, + "type": "repeat", + "count": 16, + "definition": { + "name": "ItemAccepted", + "converter": { + "type": "link", + "target": "Item" + } + } + }, + { + "index": 17, + "type": "repeat", + "count": 16, + "definition": { + "name": "AmountAccepted" + } + } + ] + }, { "sheet": "MacroIcon", "defaultColumn": "Icon", @@ -6791,6 +9654,34 @@ } ] }, + { + "sheet": "ManeuversArmor", + "definitions": [ + { + "index": 1, + "type": "repeat", + "count": 2, + "definition": { + "name": "BNpcBase", + "converter": { + "type": "link", + "target": "BNpcName" + } + } + }, + { + "index": 5, + "type": "repeat", + "count": 5, + "definition": { + "name": "Icon", + "converter": { + "type": "icon" + } + } + } + ] + }, { "sheet": "Map", "defaultColumn": "PlaceName", @@ -6908,7 +9799,40 @@ }, { "index": 8, - "name": "Data{Key}" + "name": "Data{Key}", + "converter": { + "type": "complexlink", + "links": [ + { + "sheet": "Map", + "when": { + "key": "Data{Type}", + "value": 1 + } + }, + { + "sheet": "Map", + "when": { + "key": "Data{Type}", + "value": 2 + } + }, + { + "sheet": "Aetheryte", + "when": { + "key": "Data{Type}", + "value": 3 + } + }, + { + "sheet": "PlaceName", + "when": { + "key": "Data{Type}", + "value": 4 + } + } + ] + } } ] }, @@ -7083,6 +10007,26 @@ } ] }, + { + "sheet": "MiniGameRA", + "definitions": [ + { + "index": 1, + "name": "Icon", + "converter": { + "type": "icon" + } + }, + { + "index": 2, + "name": "BGM", + "converter": { + "type": "link", + "target": "BGM" + } + } + ] + }, { "sheet": "MinionRace", "defaultColumn": "Name", @@ -7114,6 +10058,27 @@ } ] }, + { + "sheet": "MobHuntOrderType", + "definitions": [ + { + "index": 1, + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } + }, + { + "index": 2, + "name": "EventItem", + "converter": { + "type": "link", + "target": "EventItem" + } + } + ] + }, { "sheet": "MobHuntTarget", "definitions": [ @@ -7177,6 +10142,27 @@ } ] }, + { + "sheet": "ModelState", + "defaultColumn": "Start", + "definitions": [ + { + "name": "Start", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + }, + { + "index": 1, + "name": "End", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, { "sheet": "MonsterNote", "defaultColumn": "Name", @@ -7261,18 +10247,58 @@ { "name": "Singular" }, + { + "index": 1, + "name": "Adjective" + }, { "index": 2, "name": "Plural" }, + { + "index": 3, + "name": "PossessivePronoun" + }, + { + "index": 4, + "name": "StartsWithVowel" + }, + { + "index": 6, + "name": "Pronoun" + }, + { + "index": 7, + "name": "Article" + }, + { + "index": 8, + "name": "ModelChara", + "converter": { + "type": "link", + "target": "ModelChara" + } + }, { "index": 10, - "name": "FlyingCondition" + "name": "FlyingCondition", + "converter": { + "type": "link", + "target": "MountFlyingCondition" + } }, { "index": 14, "name": "IsFlying" }, + { + "index": 16, + "name": "MountCustomize", + "converter": { + "type": "link", + "target": "MountCustomize" + } + }, { "index": 17, "name": "RideBGM", @@ -7291,6 +10317,30 @@ "converter": { "type": "icon" } + }, + { + "index": 36, + "name": "ExtraSeats" + }, + { + "index": 37, + "name": "MountAction", + "converter": { + "type": "link", + "target": "MountAction" + } + }, + { + "index": 38, + "name": "IsAirborne" + }, + { + "index": 40, + "name": "UseEP" + }, + { + "index": 42, + "name": "IsImmobile" } ] }, @@ -7310,6 +10360,149 @@ } ] }, + { + "sheet": "MountCustomize", + "definitions": [ + { + "index": 1, + "name": "HyurMaleScale" + }, + { + "index": 2, + "name": "HyurFemaleScale" + }, + { + "index": 3, + "name": "ElezenMaleScale" + }, + { + "index": 4, + "name": "ElezenFemaleScale" + }, + { + "index": 5, + "name": "LalaMaleScale" + }, + { + "index": 6, + "name": "LalaFemaleScale" + }, + { + "index": 7, + "name": "MiqoMaleScale" + }, + { + "index": 8, + "name": "MiqoFemaleScale" + }, + { + "index": 9, + "name": "RoeMaleScale" + }, + { + "index": 10, + "name": "RoeFemaleScale" + }, + { + "index": 11, + "name": "AuRaMaleScale" + }, + { + "index": 12, + "name": "AuRaFemaleScale" + }, + { + "index": 13, + "name": "HyurMaleCameraHeight" + }, + { + "index": 14, + "name": "HyurFemaleCameraHeight" + }, + { + "index": 15, + "name": "ElezenMaleCameraHeight" + }, + { + "index": 16, + "name": "ElezenFemaleCameraHeight" + }, + { + "index": 17, + "name": "LalaMaleCameraHeight" + }, + { + "index": 18, + "name": "LalaFemaleCameraHeight" + }, + { + "index": 19, + "name": "MiqoMaleCameraHeight" + }, + { + "index": 20, + "name": "MiqoFemaleCameraHeight" + }, + { + "index": 21, + "name": "RoeMaleCameraHeight" + }, + { + "index": 22, + "name": "RoeFemaleCameraHeight" + }, + { + "index": 23, + "name": "AuRaMaleCameraHeight" + }, + { + "index": 24, + "name": "AuRaFemaleCameraHeight" + } + ] + }, + { + "sheet": "MountFlyingCondition", + "defaultColumn": "Quest", + "definitions": [ + { + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } + } + ] + }, + { + "sheet": "MountSpeed", + "defaultColumn": "Quest", + "definitions": [ + { + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } + } + ] + }, + { + "sheet": "MountTransient", + "definitions": [ + { + "name": "Description" + }, + { + "index": 1, + "name": "Description{Enhanced}" + }, + { + "index": 2, + "name": "Tooltip" + } + ] + }, { "sheet": "MoveTimeline", "defaultColumn": "Idle", @@ -7397,10 +10590,10 @@ }, { "sheet": "MoveVfx", - "defaultColumn": "0", + "defaultColumn": "VFXNormal", "definitions": [ { - "name": "0", + "name": "VFXNormal", "converter": { "type": "link", "target": "VFX" @@ -7408,7 +10601,7 @@ }, { "index": 1, - "name": "1", + "name": "VFXWalking", "converter": { "type": "link", "target": "VFX" @@ -7568,6 +10761,16 @@ } ] }, + { + "sheet": "NpcYell", + "defaultColumn": "Text", + "definitions": [ + { + "index": 9, + "name": "Text" + } + ] + }, { "sheet": "Omen", "defaultColumn": "FileName", @@ -7604,6 +10807,14 @@ "definitions": [ { "name": "Name" + }, + { + "index": 1, + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } } ] }, @@ -7688,6 +10899,76 @@ } ] }, + { + "sheet": "PartyContent", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Key" + }, + { + "index": 1, + "name": "TimeLimit" + }, + { + "index": 2, + "name": "Name" + }, + { + "index": 3, + "name": "TextData{Start}", + "converter": { + "type": "link", + "target": "PartyContentTextData" + } + }, + { + "index": 4, + "name": "TextData{End}", + "converter": { + "type": "link", + "target": "PartyContentTextData" + } + }, + { + "index": 33, + "name": "ContentFinderCondition", + "converter": { + "type": "link", + "target": "ContentFinderCondition" + } + }, + { + "index": 34, + "name": "Image", + "converter": { + "type": "icon" + } + } + ] + }, + { + "sheet": "PartyContentCutscene", + "defaultColumn": "Name", + "definitions": [ + { + "name": "Cutscene", + "converter": { + "type": "link", + "target": "Cutscene" + } + } + ] + }, + { + "sheet": "PartyContentTextData", + "defaultColumn": "Data", + "definitions": [ + { + "name": "Data" + } + ] + }, { "sheet": "Perform", "defaultColumn": "Name", @@ -7790,6 +11071,13 @@ "index": 1, "name": "Description" }, + { + "index": 2, + "name": "Icon", + "converter": { + "type": "icon" + } + }, { "index": 3, "name": "Action", @@ -7845,10 +11133,49 @@ } ] }, + { + "sheet": "PlantPotFlowerSeed", + "definitions": [ + { + "type": "repeat", + "count": 9, + "definition": { + "name": "SeedIcon", + "converter": { + "type": "icon" + } + } + } + ] + }, + { + "sheet": "PreHandler", + "defaultColumn": "", + "definitions": [ + { + "name": "GilShop", + "converter": { + "type": "link", + "target": "GilShop" + } + }, + { + "index": 2, + "name": "ActionTimeline", + "converter": { + "type": "link", + "target": "ActionTimeline" + } + } + ] + }, { "sheet": "PublicContent", "defaultColumn": "Name", "definitions": [ + { + "name": "Type" + }, { "index": 1, "name": "TimeLimit" @@ -7865,11 +11192,92 @@ "name": "Name" }, { - "index": 7, - "name": "TerritoryType", + "index": 4, + "name": "TextData{Start}", "converter": { "type": "link", - "target": "TerritoryType" + "target": "PublicContentTextData" + } + }, + { + "index": 5, + "name": "TextData{End}", + "converter": { + "type": "link", + "target": "PublicContentTextData" + } + }, + { + "index": 7, + "name": "ContentFinderCondition", + "converter": { + "type": "link", + "target": "ContentFinderCondition" + } + }, + { + "index": 8, + "name": "AdditionalData", + "converter": { + "type": "complexlink", + "links": [ + { + "sheet": "Eureka", + "when": { + "key": "Type", + "value": 3 + } + }, + { + "sheet": "GFateClimbing2Content", + "when": { + "key": "Type", + "value": 5 + } + } + ] + } + } + ] + }, + { + "sheet": "PublicContentCutscene", + "definitions": [ + { + "name": "Cutscene", + "converter": { + "type": "link", + "target": "Cutscene" + } + }, + { + "index": 1, + "name": "Cutscene2", + "converter": { + "type": "link", + "target": "Cutscene" + } + } + ] + }, + { + "sheet": "PublicContentTextData", + "defaultColumn": "TextData", + "definitions": [ + { + "name": "TextData" + } + ] + }, + { + "sheet": "PvPAction", + "defaultColumn": "Action", + "definitions": [ + { + "name": "Action", + "converter": { + "type": "link", + "target": "Action" } } ] @@ -7891,6 +11299,61 @@ } ] }, + { + "sheet": "PvPRank", + "definitions": [ + { + "name": "ExpRequired" + } + ] + }, + { + "sheet": "PvPSelectTrait", + "definitions": [ + { + "name": "Effect" + }, + { + "index": 1, + "name": "Icon", + "converter": { + "type": "icon" + } + }, + { + "index": 2, + "name": "Value" + } + ] + }, + { + "sheet": "PvPTrait", + "definitions": [ + { + "name": "Trait{1}", + "converter": { + "type": "link", + "target": "Trait" + } + }, + { + "index": 1, + "name": "Trait{2}", + "converter": { + "type": "link", + "target": "Trait" + } + }, + { + "index": 2, + "name": "Trait{3}", + "converter": { + "type": "link", + "target": "Trait" + } + } + ] + }, { "sheet": "Quest", "defaultColumn": "Name", @@ -7927,6 +11390,10 @@ "index": 5, "name": "QuestLevelOffset" }, + { + "index": 6, + "name": "Level{Max}" + }, { "index": 7, "name": "ClassJobCategory[1]", @@ -8023,6 +11490,14 @@ } } }, + { + "index": 27, + "name": "Festival", + "converter": { + "type": "link", + "target": "Festival" + } + }, { "index": 30, "name": "Bell{Start}" @@ -8083,6 +11558,14 @@ "index": 44, "name": "RepeatIntervalType" }, + { + "index": 45, + "name": "QuestRepeatFlag", + "converter": { + "type": "link", + "target": "QuestRepeatFlag" + } + }, { "index": 50, "type": "repeat", @@ -8162,8 +11645,19 @@ "definition": { "name": "Item{Reward}[0]", "converter": { - "type": "link", - "target": "Item" + "type": "complexlink", + "links": [ + { + "sheet": "QuestClassJobReward", + "when": { + "key": "ItemRewardType", + "value": 6 + } + }, + { + "sheet": "Item" + } + ] } } }, @@ -8339,7 +11833,6 @@ }, { "sheet": "QuestClassJobReward", - "defaultColumn": "Name", "definitions": [ { "name": "ClassJobCategory", @@ -8390,6 +11883,35 @@ } ] }, + { + "sheet": "QuestClassJobSupply", + "defaultColumn": "Name", + "definitions": [ + { + "name": "ClassJobCategory", + "converter": { + "type": "link", + "target": "ClassJobCategory" + } + }, + { + "index": 2, + "name": "ENpcResident", + "converter": { + "type": "link", + "target": "ENpcResident" + } + }, + { + "index": 3, + "name": "Item", + "converter": { + "type": "link", + "target": "Item" + } + } + ] + }, { "sheet": "QuestRepeatFlag", "defaultColumn": "Quest", @@ -8407,6 +11929,12 @@ "sheet": "QuestRewardOther", "defaultColumn": "Name", "definitions": [ + { + "name": "Icon", + "converter": { + "type": "icon" + } + }, { "index": 1, "name": "Name" @@ -8730,6 +12258,10 @@ { "index": 42, "name": "IsSpecializationRequired" + }, + { + "index": 44, + "name": "PatchNumber" } ] }, @@ -8752,6 +12284,10 @@ "index": 1, "name": "Stars" }, + { + "index": 2, + "name": "SuggestedCraftsmanship" + }, { "index": 3, "name": "Difficulty" @@ -9048,6 +12584,31 @@ } ] }, + { + "sheet": "Resident", + "definitions": [ + { + "index": 1, + "name": "Model" + }, + { + "index": 2, + "name": "NpcYell", + "converter": { + "type": "link", + "target": "NpcYell" + } + }, + { + "index": 3, + "name": "ResidentMotionType", + "converter": { + "type": "link", + "target": "ResidentMotionType" + } + } + ] + }, { "sheet": "RetainerTask", "definitions": [ @@ -9204,6 +12765,27 @@ } ] }, + { + "sheet": "RPParameter", + "defaultColumn": "BNpcName", + "definitions": [ + { + "name": "BNpcName", + "converter": { + "type": "link", + "target": "BNpcName" + } + }, + { + "index": 1, + "name": "ClassJob", + "converter": { + "type": "link", + "target": "ClassJob" + } + } + ] + }, { "sheet": "Salvage", "defaultColumn": "OptimalSkill", @@ -9474,7 +13056,7 @@ "name": "Level", "converter": { "type": "link", - "target": "level" + "target": "Level" } } ] @@ -9492,7 +13074,10 @@ "sheet": "ScreenImage", "definitions": [ { - "name": "Image" + "name": "Image", + "converter": { + "type": "icon" + } } ] }, @@ -9706,6 +13291,26 @@ } ] }, + { + "sheet": "SpearfishingRecordPage", + "definitions": [ + { + "index": 3, + "name": "PlaceName", + "converter": { + "type": "link", + "target": "PlaceName" + } + }, + { + "index": 4, + "name": "Image", + "converter": { + "type": "icon" + } + } + ] + }, { "sheet": "SpecialShop", "defaultColumn": "Name", @@ -9831,6 +13436,14 @@ ] } }, + { + "index": 1862, + "name": "Quest{Unlock}", + "converter": { + "type": "link", + "target": "Quest" + } + }, { "index": 1863, "name": "Quest{Shop}", @@ -9838,6 +13451,22 @@ "type": "link", "target": "Quest" } + }, + { + "index": 1864, + "name": "NotCompleteText", + "converter": { + "type": "link", + "target": "DefaultTalk" + } + }, + { + "index": 1865, + "name": "CompleteText", + "converter": { + "type": "link", + "target": "DefaultTalk" + } } ] }, @@ -9986,10 +13615,26 @@ }, { "sheet": "StatusLoopVFX", - "defaultColumn": "Location", + "defaultColumn": "VFX", "definitions": [ { - "name": "Location", + "name": "VFX", + "converter": { + "type": "link", + "target": "VFX" + } + }, + { + "index": 2, + "name": "VFX2", + "converter": { + "type": "link", + "target": "VFX" + } + }, + { + "index": 4, + "name": "VFX3", "converter": { "type": "link", "target": "VFX" @@ -10120,7 +13765,7 @@ }, { "sheet": "TerritoryType", - "defaultColumn": "Name", + "defaultColumn": "PlaceName", "definitions": [ { "name": "Name" @@ -10227,12 +13872,15 @@ { "index": 2, "name": "IsPrefix" + }, + { + "index": 3, + "name": "Order" } ] }, { "sheet": "Tomestones", - "defaultColumn": "WeeklyLimit", "definitions": [ { "name": "WeeklyLimit" @@ -10332,6 +13980,14 @@ "index": 3, "name": "Level" }, + { + "index": 4, + "name": "Quest", + "converter": { + "type": "link", + "target": "Quest" + } + }, { "index": 5, "name": "Value" @@ -10392,7 +14048,7 @@ } }, { - "index": 2, + "index": 4, "name": "BNpcCustomize", "converter": { "type": "link", @@ -10400,15 +14056,7 @@ } }, { - "index": 3, - "name": "BNpcEquip", - "converter": { - "type": "link", - "target": "BNpcEquip" - } - }, - { - "index": 4, + "index": 5, "type": "repeat", "count": 6, "definition": { @@ -10420,23 +14068,23 @@ } }, { - "index": 12, + "index": 13, "name": "Speed" }, { - "index": 13, + "index": 14, "name": "Scale" }, { - "index": 14, + "index": 15, "name": "IsPvP" }, { - "index": 15, + "index": 16, "name": "IsEvent" }, { - "index": 16, + "index": 17, "name": "PlayerCamera" } ] @@ -10842,6 +14490,18 @@ } ] }, + { + "sheet": "UIColor", + "definitions": [ + { + "name": "Foreground" + }, + { + "index": 1, + "name": "Background" + } + ] + }, { "sheet": "VaseFlower", "definitions": [ @@ -10885,7 +14545,7 @@ }, { "index": 2, - "name": "DefaultTalk1", + "name": "ConditionSuccessEvent", "converter": { "type": "link", "target": "DefaultTalk" @@ -10893,7 +14553,7 @@ }, { "index": 3, - "name": "DefaultTalk2", + "name": "ConditionFailEvent", "converter": { "type": "link", "target": "DefaultTalk" @@ -10901,7 +14561,7 @@ }, { "index": 4, - "name": "DefaultTalk3", + "name": "ConfirmEvent", "converter": { "type": "link", "target": "DefaultTalk" @@ -10909,11 +14569,19 @@ }, { "index": 5, - "name": "WarpCondition" + "name": "WarpCondition", + "converter": { + "type": "link", + "target": "WarpCondition" + } }, { "index": 6, - "name": "WarpLogic" + "name": "WarpLogic", + "converter": { + "type": "link", + "target": "WarpLogic" + } } ] }, @@ -10954,6 +14622,44 @@ } ] }, + { + "sheet": "WarpLogic", + "defaultColumn": "WarpName", + "definitions": [ + { + "index": 1, + "name": "WarpName" + }, + { + "index": 3, + "type": "repeat", + "count": 10, + "definition": { + "name": "Function" + } + }, + { + "index": 13, + "type": "repeat", + "count": 10, + "definition": { + "name": "Argument" + } + }, + { + "index": 23, + "name": "Question" + }, + { + "index": 24, + "name": "Response{Yes}" + }, + { + "index": 25, + "name": "Response{No}" + } + ] + }, { "sheet": "Weather", "defaultColumn": "Name", @@ -11033,9 +14739,24 @@ { "sheet": "WeeklyBingoOrderData", "definitions": [ + { + "name": "Type" + }, { "index": 1, - "name": "Data" + "name": "Data", + "converter": { + "type": "complexlink", + "links": [ + { + "sheet": "InstanceContent", + "when": { + "key": "Type", + "value": 0 + } + } + ] + } }, { "index": 3, @@ -11125,16 +14846,39 @@ } ] }, + { + "sheet": "WeeklyLotBonus", + "definitions": [ + { + "type": "repeat", + "count": 31, + "definition": { + "name": "WeeklyLotBonusThreshold", + "converter": { + "type": "link", + "target": "WeeklyLotBonusThreshold" + } + } + } + ] + }, { "sheet": "World", "definitions": [ { - "index": 1, + "name": "Name" + }, + { + "index": 2, "name": "DataCenter", "converter": { "type": "link", "target": "WorldDCGroupType" } + }, + { + "index": 3, + "name": "IsPublic" } ] }, @@ -11226,4 +14970,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index d60b153b..3cad3b5f 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -45,8 +45,8 @@ std::vector< std::string > cppKeyWords "class" }; -//std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); -std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); +std::string datLocation( "/home/mordred/sqpack" ); +//std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); std::map< uint8_t, std::string > g_typeMap; @@ -117,29 +117,57 @@ std::string generateStruct( const std::string& exd ) std::ifstream exJson( "ex.json" ); exJson >> json; - for( auto& definition : json["sheets"][exd] ) + for( auto& sheet : json[ "sheets" ] ) { - uint32_t index; - std::string converterTarget = ""; - bool isRepeat = false; - int num = 0; - - index = definition["index"].get< uint32_t >(); - indexToNameMap[ index ] = std::string( definition["name"] ); - - converterTarget = std::string( definition["converter"]["target"] ); - if( nameTaken.find( converterTarget ) != nameTaken.end() ) - indexToTarget[ index ] = converterTarget; - - if( auto count = definition["count"] ) + if( sheet[ "sheet" ] != exd ) + continue; + + for( auto& definition : sheet[ "definitions" ] ) { - num = std::stoi( std::string( count ) ); - isRepeat = true; - indexIsArrayMap[ index ] = true; - indexCountMap[ index ] = num; + uint32_t index; + std::string converterTarget = ""; + bool isRepeat = false; + int num = 0; + try + { + index = definition.at( "index" ); + } + catch( ... ) + { + index = 0; + } + + try + { + std::string fieldName = std::string( definition.at( "name" ) ); + indexToNameMap[ index ] = fieldName; + } + catch( ... ) + { + } - std::string fName = definition["definition"]["name"]; - indexToNameMap[ index ] = fName; + try + { + converterTarget = std::string( definition.at( "converter" ).at( "target" ) ); + if( nameTaken.find( converterTarget ) != nameTaken.end() ) + indexToTarget[ index ] = converterTarget; + } + catch( ... ) + { + } + + try + { + num = definition.at( "count" ); + isRepeat = true; + indexIsArrayMap[ index ] = true; + indexCountMap[ index ] = num; + std::string fName = definition.at( "definition" ).at( "name" ); + indexToNameMap[ index ] = fName; + } + catch( ... ) + { + } } @@ -213,7 +241,15 @@ std::string generateStruct( const std::string& exd ) count++; } - result += "\n " + exd + "( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );\n"; + auto exhHead = exh.get_header(); + if( exhHead.variant == 2 ) + { + result += "\n " + exd + "( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData );\n"; + } + else + { + result += "\n " + exd + "( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );\n"; + } result += "};\n\n"; return result; @@ -229,11 +265,20 @@ std::string generateConstructorsDecl( const std::string& exd ) int count = 0; - - result += "\nCore::Data::" + exd + "::" + exd + "( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )\n"; - result += "{\n"; std::string indent = " "; - result += indent + "auto row = exdData->m_" + exd + "Dat.get_row( row_id );\n"; + auto exhHead = exh.get_header(); + if( exhHead.variant == 2 ) + { + result += "\nCore::Data::" + exd + "::" + exd + "( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData )\n"; + result += "{\n"; + result += indent + "auto row = exdData->m_" + exd + "Dat.get_row( row_id, subRow );\n"; + } + else + { + result += "\nCore::Data::" + exd + "::" + exd + "( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )\n"; + result += "{\n"; + result += indent + "auto row = exdData->m_" + exd + "Dat.get_row( row_id );\n"; + } for( auto member : exhMem ) { if( indexToNameMap.find( count ) == indexToNameMap.end() ) @@ -333,22 +378,20 @@ int main( int argc, char** argv ) //BOOST_FOREACH( boost::property_tree::ptree::value_type &sheet, m_propTree.get_child( "sheets" ) ) //{ - //std::string name = sheet.second.get< std::string >( "sheet" ); //nameTaken[name] = "1"; //} - - for( auto& sheet : json["sheets"] ) - { - std::string name = json["sheet"]; - - forwards += "struct " + name + ";\n"; - structDefs += generateStruct( name ); - dataDecl += generateDatAccessDecl( name ); - idListsDecl += generateIdListDecl( name ); - getterDecl += generateDirectGetters( name ); - datAccCall += generateSetDatAccessCall( name ); - constructorDecl += generateConstructorsDecl( name ); - idListGetters += generateIdListGetter( name ); + // + for( auto& sheet : json[ "sheets" ] ) + { + std::string name = sheet[ "sheet" ]; + forwards += "struct " + name + ";\n"; + structDefs += generateStruct( name ); + dataDecl += generateDatAccessDecl( name ); + idListsDecl += generateIdListDecl( name ); + getterDecl += generateDirectGetters( name ); + datAccCall += generateSetDatAccessCall( name ); + constructorDecl += generateConstructorsDecl( name ); + idListGetters += generateIdListGetter( name ); } getterDecl += From 32c6ef0b7c2616a24185035a745a6ddac67fa7ac Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 23 Nov 2018 21:16:02 +0100 Subject: [PATCH 105/385] Fixed exd to work with generated data, also fixed generator ( boost leftovers ) --- src/common/Exd/ExdDataGenerated.cpp | 633 ++++++- src/common/Exd/ExdDataGenerated.h | 1538 +++++++++++------ src/servers/Scripts/common/WarpTaxi.cpp | 5 +- .../Network/Handlers/CFHandlers.cpp | 2 +- src/servers/sapphire_zone/Zone/Land.cpp | 14 +- .../sapphire_zone/Zone/TerritoryMgr.cpp | 2 +- src/tools/exd_struct_gen/ExdData.cpp.tmpl | 4 +- src/tools/exd_struct_gen/ExdData.h.tmpl | 8 +- src/tools/exd_struct_gen/main.cpp | 4 +- 9 files changed, 1620 insertions(+), 590 deletions(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index aafcb458..d6585c1a 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -1,10 +1,6 @@ #include "ExdDataGenerated.h" #include -#include - - - Core::Data::Achievement::Achievement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AchievementDat.get_row( row_id ); @@ -26,6 +22,7 @@ Core::Data::Achievement::Achievement( uint32_t row_id, Core::Data::ExdDataGenera data.push_back( exdData->getField< int32_t >( row, 16 ) ); data.push_back( exdData->getField< int32_t >( row, 17 ) ); order = exdData->getField< uint16_t >( row, 18 ); + initialHide = exdData->getField< bool >( row, 20 ); } Core::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -33,6 +30,7 @@ Core::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Core::Dat auto row = exdData->m_AchievementCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); achievementKind = exdData->getField< uint8_t >( row, 1 ); + hideCategory = exdData->getField< bool >( row, 3 ); } Core::Data::AchievementKind::AchievementKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -199,9 +197,9 @@ Core::Data::Addon::Addon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData Core::Data::AddonHud::AddonHud( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AddonHudDat.get_row( row_id ); - longs = exdData->getField< std::string >( row, 0 ); - shorts = exdData->getField< std::string >( row, 1 ); - function = exdData->getField< std::string >( row, 2 ); + _long = exdData->getField< std::string >( row, 0 ); + _short = exdData->getField< std::string >( row, 1 ); + _function = exdData->getField< std::string >( row, 2 ); } Core::Data::Adventure::Adventure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -268,6 +266,13 @@ Core::Data::AetherialWheel::AetherialWheel( uint32_t row_id, Core::Data::ExdData Core::Data::Aetheryte::Aetheryte( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AetheryteDat.get_row( row_id ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); + plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); placeName = exdData->getField< uint16_t >( row, 8 ); aethernetName = exdData->getField< uint16_t >( row, 9 ); territory = exdData->getField< uint16_t >( row, 10 ); @@ -357,9 +362,9 @@ Core::Data::AnimaWeapon5PatternGroup::AnimaWeapon5PatternGroup( uint32_t row_id, name = exdData->getField< std::string >( row, 0 ); } -Core::Data::AnimaWeapon5SpiritTalk::AnimaWeapon5SpiritTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::AnimaWeapon5SpiritTalk::AnimaWeapon5SpiritTalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_AnimaWeapon5SpiritTalkDat.get_row( row_id ); + auto row = exdData->m_AnimaWeapon5SpiritTalkDat.get_row( row_id, subRow ); dialogue = exdData->getField< int32_t >( row, 0 ); } @@ -378,9 +383,9 @@ Core::Data::AnimaWeapon5TradeItem::AnimaWeapon5TradeItem( uint32_t row_id, Core: category = exdData->getField< uint8_t >( row, 27 ); } -Core::Data::AnimaWeaponFUITalk::AnimaWeaponFUITalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::AnimaWeaponFUITalk::AnimaWeaponFUITalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_AnimaWeaponFUITalkDat.get_row( row_id ); + auto row = exdData->m_AnimaWeaponFUITalkDat.get_row( row_id, subRow ); dialogue = exdData->getField< int32_t >( row, 0 ); } @@ -476,6 +481,7 @@ Core::Data::Balloon::Balloon( uint32_t row_id, Core::Data::ExdDataGenerated* exd Core::Data::BaseParam::BaseParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BaseParamDat.get_row( row_id ); + order = exdData->getField< int8_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); description = exdData->getField< std::string >( row, 2 ); oneHWpn = exdData->getField< uint8_t >( row, 4 ); @@ -582,9 +588,9 @@ Core::Data::BeastTribe::BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerate nameRelation = exdData->getField< std::string >( row, 18 ); } -Core::Data::Behavior::Behavior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::Behavior::Behavior( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_BehaviorDat.get_row( row_id ); + auto row = exdData->m_BehaviorDat.get_row( row_id, subRow ); balloon = exdData->getField< uint16_t >( row, 6 ); } @@ -609,9 +615,9 @@ Core::Data::BGMSituation::BGMSituation( uint32_t row_id, Core::Data::ExdDataGene bGMField = exdData->getField< uint16_t >( row, 3 ); } -Core::Data::BGMSwitch::BGMSwitch( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::BGMSwitch::BGMSwitch( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_BGMSwitchDat.get_row( row_id ); + auto row = exdData->m_BGMSwitchDat.get_row( row_id, subRow ); bGMSystemDefine = exdData->getField< uint8_t >( row, 0 ); quest = exdData->getField< uint32_t >( row, 1 ); } @@ -676,8 +682,12 @@ Core::Data::BNpcName::BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* e { auto row = exdData->m_BNpcNameDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); } Core::Data::BNpcParts::BNpcParts( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -739,9 +749,12 @@ Core::Data::BuddyEquip::BuddyEquip( uint32_t row_id, Core::Data::ExdDataGenerate { auto row = exdData->m_BuddyEquipDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); startsWithVowel = exdData->getField< int8_t >( row, 4 ); - rarity = exdData->getField< int8_t >( row, 5 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); name = exdData->getField< std::string >( row, 8 ); modelTop = exdData->getField< int32_t >( row, 9 ); modelBody = exdData->getField< int32_t >( row, 10 ); @@ -1077,9 +1090,13 @@ Core::Data::Companion::Companion( uint32_t row_id, Core::Data::ExdDataGenerated* { auto row = exdData->m_CompanionDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); startsWithVowel = exdData->getField< int8_t >( row, 4 ); - rarity = exdData->getField< int8_t >( row, 5 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); + model = exdData->getField< uint16_t >( row, 8 ); behavior = exdData->getField< uint8_t >( row, 14 ); icon = exdData->getField< uint16_t >( row, 26 ); cost = exdData->getField< uint8_t >( row, 30 ); @@ -1247,7 +1264,7 @@ Core::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, Cor auto row = exdData->m_ContentFinderConditionDat.get_row( row_id ); territoryType = exdData->getField< uint16_t >( row, 1 ); contentLinkType = exdData->getField< uint8_t >( row, 2 ); - instanceContent = exdData->getField< uint16_t >( row, 3 ); + content = exdData->getField< uint16_t >( row, 3 ); contentMemberType = exdData->getField< uint8_t >( row, 9 ); classJobLevelRequired = exdData->getField< uint8_t >( row, 15 ); classJobLevelSync = exdData->getField< uint8_t >( row, 16 ); @@ -1255,6 +1272,7 @@ Core::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, Cor itemLevelSync = exdData->getField< uint16_t >( row, 18 ); allowReplacement = exdData->getField< bool >( row, 20 ); highEndDuty = exdData->getField< bool >( row, 26 ); + dutyRecorderAllowed = exdData->getField< bool >( row, 30 ); name = exdData->getField< std::string >( row, 32 ); contentType = exdData->getField< uint8_t >( row, 33 ); transient = exdData->getField< uint8_t >( row, 34 ); @@ -1415,9 +1433,9 @@ Core::Data::CraftType::CraftType( uint32_t row_id, Core::Data::ExdDataGenerated* name = exdData->getField< std::string >( row, 2 ); } -Core::Data::Credit::Credit( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::Credit::Credit( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_CreditDat.get_row( row_id ); + auto row = exdData->m_CreditDat.get_row( row_id, subRow ); roles1 = exdData->getField< uint16_t >( row, 1 ); japaneseCast1 = exdData->getField< uint16_t >( row, 2 ); englishCast1 = exdData->getField< uint16_t >( row, 3 ); @@ -1556,9 +1574,12 @@ Core::Data::DeepDungeonEquipment::DeepDungeonEquipment( uint32_t row_id, Core::D auto row = exdData->m_DeepDungeonEquipmentDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); singular = exdData->getField< std::string >( row, 1 ); + adjective = exdData->getField< int8_t >( row, 2 ); plural = exdData->getField< std::string >( row, 3 ); + possessivePronoun = exdData->getField< int8_t >( row, 4 ); startsWithVowel = exdData->getField< int8_t >( row, 5 ); - rarity = exdData->getField< int8_t >( row, 6 ); + pronoun = exdData->getField< int8_t >( row, 7 ); + article = exdData->getField< int8_t >( row, 8 ); name = exdData->getField< std::string >( row, 9 ); description = exdData->getField< std::string >( row, 10 ); } @@ -1576,9 +1597,12 @@ Core::Data::DeepDungeonItem::DeepDungeonItem( uint32_t row_id, Core::Data::ExdDa auto row = exdData->m_DeepDungeonItemDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); singular = exdData->getField< std::string >( row, 1 ); + adjective = exdData->getField< int8_t >( row, 2 ); plural = exdData->getField< std::string >( row, 3 ); + possessivePronoun = exdData->getField< int8_t >( row, 4 ); startsWithVowel = exdData->getField< int8_t >( row, 5 ); - rarity = exdData->getField< int8_t >( row, 6 ); + pronoun = exdData->getField< int8_t >( row, 7 ); + article = exdData->getField< int8_t >( row, 8 ); name = exdData->getField< std::string >( row, 9 ); tooltip = exdData->getField< std::string >( row, 10 ); action = exdData->getField< uint32_t >( row, 11 ); @@ -1595,16 +1619,19 @@ Core::Data::DeepDungeonMagicStone::DeepDungeonMagicStone( uint32_t row_id, Core: auto row = exdData->m_DeepDungeonMagicStoneDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); singular = exdData->getField< std::string >( row, 1 ); + adjective = exdData->getField< int8_t >( row, 2 ); plural = exdData->getField< std::string >( row, 3 ); + possessivePronoun = exdData->getField< int8_t >( row, 4 ); startsWithVowel = exdData->getField< int8_t >( row, 5 ); - rarity = exdData->getField< int8_t >( row, 6 ); + pronoun = exdData->getField< int8_t >( row, 7 ); + article = exdData->getField< int8_t >( row, 8 ); name = exdData->getField< std::string >( row, 9 ); tooltip = exdData->getField< std::string >( row, 10 ); } -Core::Data::DeepDungeonMap5X::DeepDungeonMap5X( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::DeepDungeonMap5X::DeepDungeonMap5X( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_DeepDungeonMap5XDat.get_row( row_id ); + auto row = exdData->m_DeepDungeonMap5XDat.get_row( row_id, subRow ); deepDungeonRoom.push_back( exdData->getField< uint16_t >( row, 0 ) ); deepDungeonRoom.push_back( exdData->getField< uint16_t >( row, 1 ) ); deepDungeonRoom.push_back( exdData->getField< uint16_t >( row, 2 ) ); @@ -1665,9 +1692,9 @@ Core::Data::DisposalShopFilterType::DisposalShopFilterType( uint32_t row_id, Cor category = exdData->getField< std::string >( row, 0 ); } -Core::Data::DisposalShopItem::DisposalShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::DisposalShopItem::DisposalShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_DisposalShopItemDat.get_row( row_id ); + auto row = exdData->m_DisposalShopItemDat.get_row( row_id, subRow ); itemDisposed = exdData->getField< int32_t >( row, 0 ); itemReceived = exdData->getField< int32_t >( row, 2 ); quantityReceived = exdData->getField< uint32_t >( row, 4 ); @@ -1844,7 +1871,12 @@ Core::Data::ENpcResident::ENpcResident( uint32_t row_id, Core::Data::ExdDataGene { auto row = exdData->m_ENpcResidentDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); title = exdData->getField< std::string >( row, 8 ); map = exdData->getField< uint8_t >( row, 9 ); } @@ -1860,6 +1892,12 @@ Core::Data::EObjName::EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* e { auto row = exdData->m_EObjNameDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); + plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); } Core::Data::EquipRaceCategory::EquipRaceCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -1894,6 +1932,19 @@ Core::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Core::Data::E soulCrystal = exdData->getField< int8_t >( row, 13 ); } +Core::Data::EurekaAetherItem::EurekaAetherItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_EurekaAetherItemDat.get_row( row_id ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); + plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); + name = exdData->getField< std::string >( row, 8 ); +} + Core::Data::EurekaAethernet::EurekaAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaAethernetDat.get_row( row_id ); @@ -1906,6 +1957,33 @@ Core::Data::EurekaGrowData::EurekaGrowData( uint32_t row_id, Core::Data::ExdData baseResistance = exdData->getField< uint16_t >( row, 0 ); } +Core::Data::EurekaLogosMixerProbability::EurekaLogosMixerProbability( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_EurekaLogosMixerProbabilityDat.get_row( row_id ); + probability = exdData->getField< uint8_t >( row, 0 ); +} + +Core::Data::EurekaMagiaAction::EurekaMagiaAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_EurekaMagiaActionDat.get_row( row_id ); + action = exdData->getField< uint32_t >( row, 0 ); + maxUses = exdData->getField< uint8_t >( row, 1 ); +} + +Core::Data::EurekaMagiciteItem::EurekaMagiciteItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_EurekaMagiciteItemDat.get_row( row_id ); + eurekaMagiciteItemType = exdData->getField< uint8_t >( row, 0 ); + classJobCategory = exdData->getField< uint8_t >( row, 1 ); + item = exdData->getField< uint32_t >( row, 2 ); +} + +Core::Data::EurekaMagiciteItemType::EurekaMagiciteItemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_EurekaMagiciteItemTypeDat.get_row( row_id ); + type = exdData->getField< std::string >( row, 0 ); +} + Core::Data::EurekaSphereElementAdjust::EurekaSphereElementAdjust( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaSphereElementAdjustDat.get_row( row_id ); @@ -1958,9 +2036,12 @@ Core::Data::EventItem::EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* { auto row = exdData->m_EventItemDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); startsWithVowel = exdData->getField< int8_t >( row, 4 ); - rarity = exdData->getField< int8_t >( row, 5 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); name = exdData->getField< std::string >( row, 9 ); icon = exdData->getField< uint16_t >( row, 10 ); action = exdData->getField< uint16_t >( row, 11 ); @@ -2010,6 +2091,7 @@ Core::Data::Fate::Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) iconObjective = exdData->getField< uint32_t >( row, 10 ); iconMap = exdData->getField< uint32_t >( row, 11 ); music = exdData->getField< int32_t >( row, 13 ); + hasWorldMapIcon = exdData->getField< bool >( row, 19 ); name = exdData->getField< std::string >( row, 27 ); description = exdData->getField< std::string >( row, 28 ); objective = exdData->getField< std::string >( row, 29 ); @@ -2086,6 +2168,12 @@ Core::Data::FCRights::FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* e fCRank = exdData->getField< uint8_t >( row, 3 ); } +Core::Data::Festival::Festival( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_FestivalDat.get_row( row_id ); + name = exdData->getField< std::string >( row, 0 ); +} + Core::Data::FieldMarker::FieldMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FieldMarkerDat.get_row( row_id ); @@ -2093,6 +2181,12 @@ Core::Data::FieldMarker::FieldMarker( uint32_t row_id, Core::Data::ExdDataGenera icon = exdData->getField< uint16_t >( row, 1 ); } +Core::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_FishingRecordTypeDat.get_row( row_id ); + addon = exdData->getField< int32_t >( row, 0 ); +} + Core::Data::FishingRecordTypeTransient::FishingRecordTypeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FishingRecordTypeTransientDat.get_row( row_id ); @@ -2129,8 +2223,12 @@ Core::Data::FishParameter::FishParameter( uint32_t row_id, Core::Data::ExdDataGe text = exdData->getField< std::string >( row, 0 ); item = exdData->getField< int32_t >( row, 1 ); gatheringItemLevel = exdData->getField< uint16_t >( row, 2 ); + isHidden = exdData->getField< bool >( row, 3 ); + fishingRecordType = exdData->getField< uint8_t >( row, 5 ); territoryType = exdData->getField< int32_t >( row, 6 ); - isFish = exdData->getField< bool >( row, 7 ); + isInLog = exdData->getField< bool >( row, 7 ); + timeRestricted = exdData->getField< bool >( row, 8 ); + weatherRestricted = exdData->getField< bool >( row, 9 ); gatheringSubCategory = exdData->getField< uint16_t >( row, 10 ); } @@ -2220,9 +2318,9 @@ Core::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint stars = exdData->getField< uint8_t >( row, 1 ); } -Core::Data::GatheringItemPoint::GatheringItemPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::GatheringItemPoint::GatheringItemPoint( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_GatheringItemPointDat.get_row( row_id ); + auto row = exdData->m_GatheringItemPointDat.get_row( row_id, subRow ); gatheringPoint = exdData->getField< uint32_t >( row, 0 ); } @@ -2390,8 +2488,12 @@ Core::Data::GatheringPointName::GatheringPointName( uint32_t row_id, Core::Data: { auto row = exdData->m_GatheringPointNameDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); } Core::Data::GatheringSubCategory::GatheringSubCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -2468,48 +2570,78 @@ Core::Data::GcArmyTraining::GcArmyTraining( uint32_t row_id, Core::Data::ExdData Core::Data::GCRankGridaniaFemaleText::GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankGridaniaFemaleTextDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); nameRank = exdData->getField< std::string >( row, 8 ); } Core::Data::GCRankGridaniaMaleText::GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankGridaniaMaleTextDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); nameRank = exdData->getField< std::string >( row, 8 ); } Core::Data::GCRankLimsaFemaleText::GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankLimsaFemaleTextDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); nameRank = exdData->getField< std::string >( row, 8 ); } Core::Data::GCRankLimsaMaleText::GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankLimsaMaleTextDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); nameRank = exdData->getField< std::string >( row, 8 ); } Core::Data::GCRankUldahFemaleText::GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankUldahFemaleTextDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); nameRank = exdData->getField< std::string >( row, 8 ); } Core::Data::GCRankUldahMaleText::GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankUldahMaleTextDat.get_row( row_id ); - name = exdData->getField< std::string >( row, 0 ); + singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); nameRank = exdData->getField< std::string >( row, 8 ); } @@ -2521,9 +2653,9 @@ Core::Data::GCScripShopCategory::GCScripShopCategory( uint32_t row_id, Core::Dat subCategory = exdData->getField< int8_t >( row, 2 ); } -Core::Data::GCScripShopItem::GCScripShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::GCScripShopItem::GCScripShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_GCScripShopItemDat.get_row( row_id ); + auto row = exdData->m_GCScripShopItemDat.get_row( row_id, subRow ); item = exdData->getField< int32_t >( row, 0 ); requiredGrandCompanyRank = exdData->getField< int32_t >( row, 1 ); costGCSeals = exdData->getField< uint32_t >( row, 2 ); @@ -2588,6 +2720,24 @@ Core::Data::GFATE::GFATE( uint32_t row_id, Core::Data::ExdDataGenerated* exdData icon.push_back( exdData->getField< uint32_t >( row, 37 ) ); } +Core::Data::GFateClimbing2::GFateClimbing2( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_GFateClimbing2Dat.get_row( row_id ); + contentEntry = exdData->getField< uint32_t >( row, 0 ); +} + +Core::Data::GFateClimbing2Content::GFateClimbing2Content( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_GFateClimbing2ContentDat.get_row( row_id ); + publicContentTextData = exdData->getField< uint32_t >( row, 0 ); +} + +Core::Data::GFateClimbing2TotemType::GFateClimbing2TotemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_GFateClimbing2TotemTypeDat.get_row( row_id ); + publicContentTextData = exdData->getField< uint32_t >( row, 0 ); +} + Core::Data::GilShop::GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GilShopDat.get_row( row_id ); @@ -2601,9 +2751,9 @@ Core::Data::GilShop::GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exd failTalk = exdData->getField< int32_t >( row, 7 ); } -Core::Data::GilShopItem::GilShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::GilShopItem::GilShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_GilShopItemDat.get_row( row_id ); + auto row = exdData->m_GilShopItemDat.get_row( row_id, subRow ); item = exdData->getField< int32_t >( row, 0 ); rowRequired.push_back( exdData->getField< int32_t >( row, 3 ) ); rowRequired.push_back( exdData->getField< int32_t >( row, 4 ) ); @@ -2711,9 +2861,17 @@ Core::Data::HousingAethernet::HousingAethernet( uint32_t row_id, Core::Data::Exd order = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::HousingEmploymentNpcList::HousingEmploymentNpcList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::HousingAppeal::HousingAppeal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_HousingEmploymentNpcListDat.get_row( row_id ); + auto row = exdData->m_HousingAppealDat.get_row( row_id ); + tag = exdData->getField< std::string >( row, 0 ); + icon = exdData->getField< uint32_t >( row, 1 ); + order = exdData->getField< uint8_t >( row, 2 ); +} + +Core::Data::HousingEmploymentNpcList::HousingEmploymentNpcList( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_HousingEmploymentNpcListDat.get_row( row_id, subRow ); race = exdData->getField< uint8_t >( row, 0 ); eNpcBase.push_back( exdData->getField< uint32_t >( row, 1 ) ); eNpcBase.push_back( exdData->getField< uint32_t >( row, 2 ) ); @@ -2725,6 +2883,14 @@ Core::Data::HousingEmploymentNpcRace::HousingEmploymentNpcRace( uint32_t row_id, race = exdData->getField< std::string >( row, 0 ); } +Core::Data::HousingExterior::HousingExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_HousingExteriorDat.get_row( row_id ); + placeName = exdData->getField< uint16_t >( row, 2 ); + housingSize = exdData->getField< uint8_t >( row, 3 ); + model = exdData->getField< std::string >( row, 4 ); +} + Core::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingFurnitureDat.get_row( row_id ); @@ -2733,23 +2899,151 @@ Core::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Core::Data::Exd usageType = exdData->getField< uint8_t >( row, 2 ); usageParameter = exdData->getField< uint32_t >( row, 3 ); housingLayoutLimit = exdData->getField< uint8_t >( row, 4 ); - customTalk = exdData->getField< uint8_t >( row, 5 ); - event = exdData->getField< uint32_t >( row, 6 ); + aquariumTier = exdData->getField< uint8_t >( row, 5 ); + customTalk = exdData->getField< uint32_t >( row, 6 ); item = exdData->getField< uint32_t >( row, 7 ); destroyOnRemoval = exdData->getField< bool >( row, 8 ); tooltip = exdData->getField< bool >( row, 9 ); } +Core::Data::HousingMapMarkerInfo::HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_HousingMapMarkerInfoDat.get_row( row_id, subRow ); + map = exdData->getField< uint16_t >( row, 4 ); +} + +Core::Data::HousingMerchantPose::HousingMerchantPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_HousingMerchantPoseDat.get_row( row_id ); + actionTimeline = exdData->getField< uint16_t >( row, 0 ); + pose = exdData->getField< std::string >( row, 1 ); +} + Core::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_HousingLandSetDat.get_row( row_id ); - for ( int i = 0; i < 60; i++ ) - sizes.push_back( exdData->getField< uint8_t >( row, i ) ); - for ( int i = 60; i < 60 + 60; i++ ) - minPrices.push_back( exdData->getField< uint32_t >( row, i ) ); - for ( int i = 300; i < 300 + 60; i++ ) - prices.push_back( exdData->getField< uint32_t >( row, i ) ); - + auto row = exdData->m_HousingLandSetDat.get_row( row_id ); + plotSize.push_back( exdData->getField< uint8_t >( row, 0 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 1 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 2 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 3 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 4 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 5 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 6 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 7 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 8 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 9 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 10 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 11 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 12 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 13 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 14 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 15 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 16 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 17 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 18 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 19 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 20 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 21 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 22 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 23 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 24 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 25 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 26 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 27 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 28 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 29 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 30 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 31 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 32 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 33 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 34 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 35 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 36 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 37 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 38 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 39 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 40 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 41 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 42 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 43 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 44 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 45 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 46 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 47 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 48 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 49 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 50 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 51 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 52 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 53 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 54 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 55 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 56 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 57 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 58 ) ); + plotSize.push_back( exdData->getField< uint8_t >( row, 59 ) ); + for ( int i = 60; i < 60 + 60; i++ ) + minPrice.push_back( exdData->getField< uint32_t >( row, i ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 300 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 301 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 302 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 303 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 304 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 305 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 306 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 307 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 308 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 309 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 310 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 311 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 312 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 313 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 314 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 315 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 316 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 317 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 318 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 319 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 320 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 321 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 322 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 323 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 324 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 325 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 326 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 327 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 328 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 329 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 330 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 331 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 332 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 333 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 334 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 335 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 336 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 337 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 338 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 339 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 340 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 341 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 342 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 343 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 344 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 345 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 346 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 347 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 348 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 349 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 350 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 351 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 352 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 353 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 354 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 355 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 356 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 357 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 358 ) ); + initialPrice.push_back( exdData->getField< uint32_t >( row, 359 ) ); } Core::Data::HousingPlacement::HousingPlacement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -2762,7 +3056,14 @@ Core::Data::HousingPreset::HousingPreset( uint32_t row_id, Core::Data::ExdDataGe { auto row = exdData->m_HousingPresetDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); + startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); + placeName = exdData->getField< uint16_t >( row, 8 ); + housingSize = exdData->getField< uint8_t >( row, 9 ); exteriorRoof = exdData->getField< int32_t >( row, 10 ); exteriorWall = exdData->getField< int32_t >( row, 11 ); exteriorWindow = exdData->getField< int32_t >( row, 12 ); @@ -2779,6 +3080,19 @@ Core::Data::HousingPreset::HousingPreset( uint32_t row_id, Core::Data::ExdDataGe mansionLighting = exdData->getField< int32_t >( row, 23 ); } +Core::Data::HousingUnitedExterior::HousingUnitedExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_HousingUnitedExteriorDat.get_row( row_id ); + item.push_back( exdData->getField< uint32_t >( row, 1 ) ); + item.push_back( exdData->getField< uint32_t >( row, 2 ) ); + item.push_back( exdData->getField< uint32_t >( row, 3 ) ); + item.push_back( exdData->getField< uint32_t >( row, 4 ) ); + item.push_back( exdData->getField< uint32_t >( row, 5 ) ); + item.push_back( exdData->getField< uint32_t >( row, 6 ) ); + item.push_back( exdData->getField< uint32_t >( row, 7 ) ); + item.push_back( exdData->getField< uint32_t >( row, 8 ) ); +} + Core::Data::HousingYardObject::HousingYardObject( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingYardObjectDat.get_row( row_id ); @@ -2845,7 +3159,7 @@ Core::Data::InstanceContent::InstanceContent( uint32_t row_id, Core::Data::ExdDa finalBossCurrencyC = exdData->getField< uint16_t >( row, 25 ); instanceClearExp = exdData->getField< uint32_t >( row, 46 ); instanceContentBuff = exdData->getField< int32_t >( row, 51 ); - territoryType = exdData->getField< uint32_t >( row, 52 ); + reqInstance = exdData->getField< uint32_t >( row, 52 ); partyCondition = exdData->getField< uint8_t >( row, 55 ); } @@ -2866,8 +3180,12 @@ Core::Data::Item::Item( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); description = exdData->getField< std::string >( row, 8 ); name = exdData->getField< std::string >( row, 9 ); icon = exdData->getField< uint16_t >( row, 10 ); @@ -2950,6 +3268,84 @@ Core::Data::ItemFood::ItemFood( uint32_t row_id, Core::Data::ExdDataGenerated* e auto row = exdData->m_ItemFoodDat.get_row( row_id ); } +Core::Data::ItemLevel::ItemLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_ItemLevelDat.get_row( row_id ); + strength = exdData->getField< uint16_t >( row, 0 ); + dexterity = exdData->getField< uint16_t >( row, 1 ); + vitality = exdData->getField< uint16_t >( row, 2 ); + intelligence = exdData->getField< uint16_t >( row, 3 ); + mind = exdData->getField< uint16_t >( row, 4 ); + piety = exdData->getField< uint16_t >( row, 5 ); + hP = exdData->getField< uint16_t >( row, 6 ); + mP = exdData->getField< uint16_t >( row, 7 ); + tP = exdData->getField< uint16_t >( row, 8 ); + gP = exdData->getField< uint16_t >( row, 9 ); + cP = exdData->getField< uint16_t >( row, 10 ); + physicalDamage = exdData->getField< uint16_t >( row, 11 ); + magicalDamage = exdData->getField< uint16_t >( row, 12 ); + delay = exdData->getField< uint16_t >( row, 13 ); + additionalEffect = exdData->getField< uint16_t >( row, 14 ); + attackSpeed = exdData->getField< uint16_t >( row, 15 ); + blockRate = exdData->getField< uint16_t >( row, 16 ); + blockStrength = exdData->getField< uint16_t >( row, 17 ); + tenacity = exdData->getField< uint16_t >( row, 18 ); + attackPower = exdData->getField< uint16_t >( row, 19 ); + defense = exdData->getField< uint16_t >( row, 20 ); + directHitRate = exdData->getField< uint16_t >( row, 21 ); + evasion = exdData->getField< uint16_t >( row, 22 ); + magicDefense = exdData->getField< uint16_t >( row, 23 ); + criticalHitPower = exdData->getField< uint16_t >( row, 24 ); + criticalHitResilience = exdData->getField< uint16_t >( row, 25 ); + criticalHit = exdData->getField< uint16_t >( row, 26 ); + criticalHitEvasion = exdData->getField< uint16_t >( row, 27 ); + slashingResistance = exdData->getField< uint16_t >( row, 28 ); + piercingResistance = exdData->getField< uint16_t >( row, 29 ); + bluntResistance = exdData->getField< uint16_t >( row, 30 ); + projectileResistance = exdData->getField< uint16_t >( row, 31 ); + attackMagicPotency = exdData->getField< uint16_t >( row, 32 ); + healingMagicPotency = exdData->getField< uint16_t >( row, 33 ); + enhancementMagicPotency = exdData->getField< uint16_t >( row, 34 ); + enfeeblingMagicPotency = exdData->getField< uint16_t >( row, 35 ); + fireResistance = exdData->getField< uint16_t >( row, 36 ); + iceResistance = exdData->getField< uint16_t >( row, 37 ); + windResistance = exdData->getField< uint16_t >( row, 38 ); + earthResistance = exdData->getField< uint16_t >( row, 39 ); + lightningResistance = exdData->getField< uint16_t >( row, 40 ); + waterResistance = exdData->getField< uint16_t >( row, 41 ); + magicResistance = exdData->getField< uint16_t >( row, 42 ); + determination = exdData->getField< uint16_t >( row, 43 ); + skillSpeed = exdData->getField< uint16_t >( row, 44 ); + spellSpeed = exdData->getField< uint16_t >( row, 45 ); + haste = exdData->getField< uint16_t >( row, 46 ); + morale = exdData->getField< uint16_t >( row, 47 ); + enmity = exdData->getField< uint16_t >( row, 48 ); + enmityReduction = exdData->getField< uint16_t >( row, 49 ); + carefulDesynthesis = exdData->getField< uint16_t >( row, 50 ); + eXPBonus = exdData->getField< uint16_t >( row, 51 ); + regen = exdData->getField< uint16_t >( row, 52 ); + refresh = exdData->getField< uint16_t >( row, 53 ); + movementSpeed = exdData->getField< uint16_t >( row, 54 ); + spikes = exdData->getField< uint16_t >( row, 55 ); + slowResistance = exdData->getField< uint16_t >( row, 56 ); + petrificationResistance = exdData->getField< uint16_t >( row, 57 ); + paralysisResistance = exdData->getField< uint16_t >( row, 58 ); + silenceResistance = exdData->getField< uint16_t >( row, 59 ); + blindResistance = exdData->getField< uint16_t >( row, 60 ); + poisonResistance = exdData->getField< uint16_t >( row, 61 ); + stunResistance = exdData->getField< uint16_t >( row, 62 ); + sleepResistance = exdData->getField< uint16_t >( row, 63 ); + bindResistance = exdData->getField< uint16_t >( row, 64 ); + heavyResistance = exdData->getField< uint16_t >( row, 65 ); + doomResistance = exdData->getField< uint16_t >( row, 66 ); + reducedDurabilityLoss = exdData->getField< uint16_t >( row, 67 ); + increasedSpiritbondGain = exdData->getField< uint16_t >( row, 68 ); + craftsmanship = exdData->getField< uint16_t >( row, 69 ); + control = exdData->getField< uint16_t >( row, 70 ); + gathering = exdData->getField< uint16_t >( row, 71 ); + perception = exdData->getField< uint16_t >( row, 72 ); +} + Core::Data::ItemSearchCategory::ItemSearchCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemSearchCategoryDat.get_row( row_id ); @@ -3199,9 +3595,9 @@ Core::Data::Map::Map( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) discoveryArrayByte = exdData->getField< bool >( row, 15 ); } -Core::Data::MapMarker::MapMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::MapMarker::MapMarker( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_MapMarkerDat.get_row( row_id ); + auto row = exdData->m_MapMarkerDat.get_row( row_id, subRow ); x = exdData->getField< int16_t >( row, 0 ); y = exdData->getField< int16_t >( row, 1 ); icon = exdData->getField< uint16_t >( row, 2 ); @@ -3276,6 +3672,13 @@ Core::Data::Materia::Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exd value.push_back( exdData->getField< uint8_t >( row, 20 ) ); } +Core::Data::MiniGameRA::MiniGameRA( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_MiniGameRADat.get_row( row_id ); + icon = exdData->getField< int32_t >( row, 1 ); + bGM = exdData->getField< int32_t >( row, 2 ); +} + Core::Data::MinionRace::MinionRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MinionRaceDat.get_row( row_id ); @@ -3354,8 +3757,12 @@ Core::Data::Mount::Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData { auto row = exdData->m_MountDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); + adjective = exdData->getField< int8_t >( row, 1 ); plural = exdData->getField< std::string >( row, 2 ); + possessivePronoun = exdData->getField< int8_t >( row, 3 ); startsWithVowel = exdData->getField< int8_t >( row, 4 ); + pronoun = exdData->getField< int8_t >( row, 6 ); + article = exdData->getField< int8_t >( row, 7 ); modelChara = exdData->getField< int32_t >( row, 8 ); flyingCondition = exdData->getField< uint8_t >( row, 10 ); isFlying = exdData->getField< uint8_t >( row, 14 ); @@ -3363,8 +3770,11 @@ Core::Data::Mount::Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData rideBGM = exdData->getField< uint16_t >( row, 17 ); order = exdData->getField< int16_t >( row, 29 ); icon = exdData->getField< uint16_t >( row, 30 ); + extraSeats = exdData->getField< uint8_t >( row, 36 ); mountAction = exdData->getField< uint16_t >( row, 37 ); isAirborne = exdData->getField< bool >( row, 38 ); + useEP = exdData->getField< bool >( row, 40 ); + isImmobile = exdData->getField< bool >( row, 42 ); } Core::Data::MountAction::MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -3393,6 +3803,18 @@ Core::Data::MountCustomize::MountCustomize( uint32_t row_id, Core::Data::ExdData roeFemaleScale = exdData->getField< float >( row, 10 ); auRaMaleScale = exdData->getField< float >( row, 11 ); auRaFemaleScale = exdData->getField< float >( row, 12 ); + hyurMaleCameraHeight = exdData->getField< uint8_t >( row, 13 ); + hyurFemaleCameraHeight = exdData->getField< uint8_t >( row, 14 ); + elezenMaleCameraHeight = exdData->getField< uint8_t >( row, 15 ); + elezenFemaleCameraHeight = exdData->getField< uint8_t >( row, 16 ); + lalaMaleCameraHeight = exdData->getField< uint8_t >( row, 17 ); + lalaFemaleCameraHeight = exdData->getField< uint8_t >( row, 18 ); + miqoMaleCameraHeight = exdData->getField< uint8_t >( row, 19 ); + miqoFemaleCameraHeight = exdData->getField< uint8_t >( row, 20 ); + roeMaleCameraHeight = exdData->getField< uint8_t >( row, 21 ); + roeFemaleCameraHeight = exdData->getField< uint8_t >( row, 22 ); + auRaMaleCameraHeight = exdData->getField< uint8_t >( row, 23 ); + auRaFemaleCameraHeight = exdData->getField< uint8_t >( row, 24 ); } Core::Data::MountFlyingCondition::MountFlyingCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -3533,12 +3955,30 @@ Core::Data::ParamGrow::ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* huntingLogExpReward = exdData->getField< int32_t >( row, 9 ); } +Core::Data::PartyContent::PartyContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_PartyContentDat.get_row( row_id ); + key = exdData->getField< uint8_t >( row, 0 ); + timeLimit = exdData->getField< uint16_t >( row, 1 ); + name = exdData->getField< std::string >( row, 2 ); + textDataStart = exdData->getField< uint32_t >( row, 3 ); + textDataEnd = exdData->getField< uint32_t >( row, 4 ); + contentFinderCondition = exdData->getField< uint16_t >( row, 33 ); + image = exdData->getField< uint32_t >( row, 34 ); +} + Core::Data::PartyContentCutscene::PartyContentCutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PartyContentCutsceneDat.get_row( row_id ); cutscene = exdData->getField< uint32_t >( row, 0 ); } +Core::Data::PartyContentTextData::PartyContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_PartyContentTextDataDat.get_row( row_id ); + data = exdData->getField< std::string >( row, 0 ); +} + Core::Data::Perform::Perform( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PerformDat.get_row( row_id ); @@ -3615,13 +4055,14 @@ Core::Data::PreHandler::PreHandler( uint32_t row_id, Core::Data::ExdDataGenerate Core::Data::PublicContent::PublicContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PublicContentDat.get_row( row_id ); + type = exdData->getField< uint8_t >( row, 0 ); timeLimit = exdData->getField< uint16_t >( row, 1 ); mapIcon = exdData->getField< uint32_t >( row, 2 ); name = exdData->getField< std::string >( row, 3 ); textDataStart = exdData->getField< uint32_t >( row, 4 ); textDataEnd = exdData->getField< uint32_t >( row, 5 ); contentFinderCondition = exdData->getField< uint16_t >( row, 7 ); - eureka = exdData->getField< uint16_t >( row, 8 ); + additionalData = exdData->getField< uint16_t >( row, 8 ); } Core::Data::PublicContentCutscene::PublicContentCutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -3643,9 +4084,9 @@ Core::Data::PvPAction::PvPAction( uint32_t row_id, Core::Data::ExdDataGenerated* action = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::PvPActionSort::PvPActionSort( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::PvPActionSort::PvPActionSort( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_PvPActionSortDat.get_row( row_id ); + auto row = exdData->m_PvPActionSortDat.get_row( row_id, subRow ); name = exdData->getField< uint8_t >( row, 0 ); action = exdData->getField< uint16_t >( row, 1 ); } @@ -3681,6 +4122,7 @@ Core::Data::Quest::Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData classJobCategory0 = exdData->getField< uint8_t >( row, 3 ); classJobLevel0 = exdData->getField< uint16_t >( row, 4 ); questLevelOffset = exdData->getField< uint8_t >( row, 5 ); + levelMax = exdData->getField< uint16_t >( row, 6 ); classJobCategory1 = exdData->getField< uint8_t >( row, 7 ); classJobLevel1 = exdData->getField< uint16_t >( row, 8 ); previousQuestJoin = exdData->getField< uint8_t >( row, 9 ); @@ -3697,6 +4139,7 @@ Core::Data::Quest::Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData instanceContent.push_back( exdData->getField< uint32_t >( row, 24 ) ); instanceContent.push_back( exdData->getField< uint32_t >( row, 25 ) ); instanceContent.push_back( exdData->getField< uint32_t >( row, 26 ) ); + festival = exdData->getField< uint8_t >( row, 27 ); bellStart = exdData->getField< uint16_t >( row, 30 ); bellEnd = exdData->getField< uint16_t >( row, 31 ); beastTribe = exdData->getField< uint8_t >( row, 32 ); @@ -3707,6 +4150,7 @@ Core::Data::Quest::Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData eNpcResidentEnd = exdData->getField< uint32_t >( row, 42 ); isRepeatable = exdData->getField< bool >( row, 43 ); repeatIntervalType = exdData->getField< uint8_t >( row, 44 ); + questRepeatFlag = exdData->getField< uint8_t >( row, 45 ); scriptInstruction.push_back( exdData->getField< std::string >( row, 50 ) ); scriptInstruction.push_back( exdData->getField< std::string >( row, 51 ) ); scriptInstruction.push_back( exdData->getField< std::string >( row, 52 ) ); @@ -4044,9 +4488,9 @@ Core::Data::Quest::Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData sortKey = exdData->getField< uint16_t >( row, 1514 ); } -Core::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_QuestClassJobRewardDat.get_row( row_id ); + auto row = exdData->m_QuestClassJobRewardDat.get_row( row_id, subRow ); classJobCategory = exdData->getField< uint8_t >( row, 0 ); rewardItem.push_back( exdData->getField< uint32_t >( row, 1 ) ); rewardItem.push_back( exdData->getField< uint32_t >( row, 2 ) ); @@ -4066,9 +4510,9 @@ Core::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, Core::Dat requiredAmount.push_back( exdData->getField< uint8_t >( row, 16 ) ); } -Core::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_QuestClassJobSupplyDat.get_row( row_id ); + auto row = exdData->m_QuestClassJobSupplyDat.get_row( row_id, subRow ); classJobCategory = exdData->getField< uint8_t >( row, 0 ); eNpcResident = exdData->getField< uint32_t >( row, 2 ); item = exdData->getField< uint32_t >( row, 3 ); @@ -4417,9 +4861,9 @@ Core::Data::RelicNoteCategory::RelicNoteCategory( uint32_t row_id, Core::Data::E text = exdData->getField< std::string >( row, 1 ); } -Core::Data::Resident::Resident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::Resident::Resident( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_ResidentDat.get_row( row_id ); + auto row = exdData->m_ResidentDat.get_row( row_id, subRow ); model = exdData->getField< uint64_t >( row, 1 ); npcYell = exdData->getField< int32_t >( row, 2 ); residentMotionType = exdData->getField< uint8_t >( row, 3 ); @@ -4510,9 +4954,9 @@ Core::Data::SatisfactionNpc::SatisfactionNpc( uint32_t row_id, Core::Data::ExdDa icon = exdData->getField< int32_t >( row, 70 ); } -Core::Data::SatisfactionSupply::SatisfactionSupply( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::SatisfactionSupply::SatisfactionSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_SatisfactionSupplyDat.get_row( row_id ); + auto row = exdData->m_SatisfactionSupplyDat.get_row( row_id, subRow ); slot = exdData->getField< uint8_t >( row, 0 ); probability = exdData->getField< uint8_t >( row, 1 ); item = exdData->getField< int32_t >( row, 2 ); @@ -4547,9 +4991,9 @@ Core::Data::ScenarioTreeTips::ScenarioTreeTips( uint32_t row_id, Core::Data::Exd tips2 = exdData->getField< uint32_t >( row, 3 ); } -Core::Data::ScenarioTreeTipsClassQuest::ScenarioTreeTipsClassQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::ScenarioTreeTipsClassQuest::ScenarioTreeTipsClassQuest( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_ScenarioTreeTipsClassQuestDat.get_row( row_id ); + auto row = exdData->m_ScenarioTreeTipsClassQuestDat.get_row( row_id, subRow ); quest = exdData->getField< uint32_t >( row, 0 ); requiredLevel = exdData->getField< uint16_t >( row, 1 ); requiredExpansion = exdData->getField< uint8_t >( row, 2 ); @@ -4875,6 +5319,7 @@ Core::Data::Title::Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData masculine = exdData->getField< std::string >( row, 0 ); feminine = exdData->getField< std::string >( row, 1 ); isPrefix = exdData->getField< bool >( row, 2 ); + order = exdData->getField< uint16_t >( row, 3 ); } Core::Data::Tomestones::Tomestones( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -5085,6 +5530,13 @@ Core::Data::TutorialTank::TutorialTank( uint32_t row_id, Core::Data::ExdDataGene objective = exdData->getField< uint8_t >( row, 0 ); } +Core::Data::UIColor::UIColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +{ + auto row = exdData->m_UIColorDat.get_row( row_id ); + foreground = exdData->getField< uint32_t >( row, 0 ); + background = exdData->getField< uint32_t >( row, 1 ); +} + Core::Data::VaseFlower::VaseFlower( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_VaseFlowerDat.get_row( row_id ); @@ -5102,9 +5554,9 @@ Core::Data::Warp::Warp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) auto row = exdData->m_WarpDat.get_row( row_id ); level = exdData->getField< uint32_t >( row, 0 ); placeName = exdData->getField< uint16_t >( row, 1 ); - defaultTalk1 = exdData->getField< uint32_t >( row, 2 ); - defaultTalk2 = exdData->getField< uint32_t >( row, 3 ); - defaultTalk3 = exdData->getField< uint32_t >( row, 4 ); + conditionSuccessEvent = exdData->getField< uint32_t >( row, 2 ); + conditionFailEvent = exdData->getField< uint32_t >( row, 3 ); + confirmEvent = exdData->getField< uint32_t >( row, 4 ); warpCondition = exdData->getField< uint16_t >( row, 5 ); warpLogic = exdData->getField< uint16_t >( row, 6 ); } @@ -5121,7 +5573,7 @@ Core::Data::WarpCondition::WarpCondition( uint32_t row_id, Core::Data::ExdDataGe Core::Data::WarpLogic::WarpLogic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WarpLogicDat.get_row( row_id ); - warpName = exdData->getField< bool >( row, 2 ); + warpName = exdData->getField< std::string >( row, 1 ); function.push_back( exdData->getField< std::string >( row, 3 ) ); function.push_back( exdData->getField< std::string >( row, 4 ) ); function.push_back( exdData->getField< std::string >( row, 5 ) ); @@ -5142,9 +5594,9 @@ Core::Data::WarpLogic::WarpLogic( uint32_t row_id, Core::Data::ExdDataGenerated* argument.push_back( exdData->getField< uint32_t >( row, 20 ) ); argument.push_back( exdData->getField< uint32_t >( row, 21 ) ); argument.push_back( exdData->getField< uint32_t >( row, 22 ) ); - textString = exdData->getField< std::string >( row, 23 ); - response1 = exdData->getField< std::string >( row, 24 ); - response2 = exdData->getField< std::string >( row, 25 ); + question = exdData->getField< std::string >( row, 23 ); + responseYes = exdData->getField< std::string >( row, 24 ); + responseNo = exdData->getField< std::string >( row, 25 ); } Core::Data::Weather::Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -5155,9 +5607,9 @@ Core::Data::Weather::Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exd description = exdData->getField< std::string >( row, 2 ); } -Core::Data::WeatherGroup::WeatherGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::WeatherGroup::WeatherGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_WeatherGroupDat.get_row( row_id ); + auto row = exdData->m_WeatherGroupDat.get_row( row_id, subRow ); weatherRate = exdData->getField< int32_t >( row, 1 ); } @@ -5237,6 +5689,7 @@ Core::Data::World::World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData auto row = exdData->m_WorldDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); dataCenter = exdData->getField< uint8_t >( row, 2 ); + isPublic = exdData->getField< bool >( row, 3 ); } Core::Data::WorldDCGroupType::WorldDCGroupType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) @@ -5254,9 +5707,9 @@ Core::Data::YKW::YKW( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) location.push_back( exdData->getField< uint16_t >( row, 4 ) ); } -Core::Data::ZoneSharedGroup::ZoneSharedGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Core::Data::ZoneSharedGroup::ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) { - auto row = exdData->m_ZoneSharedGroupDat.get_row( row_id ); + auto row = exdData->m_ZoneSharedGroupDat.get_row( row_id, subRow ); quest1 = exdData->getField< uint32_t >( row, 2 ); quest2 = exdData->getField< uint32_t >( row, 6 ); quest3 = exdData->getField< uint32_t >( row, 10 ); @@ -5455,8 +5908,13 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_EObjNameDat = setupDatAccess( "EObjName", xiv::exd::Language::en ); m_EquipRaceCategoryDat = setupDatAccess( "EquipRaceCategory", xiv::exd::Language::none ); m_EquipSlotCategoryDat = setupDatAccess( "EquipSlotCategory", xiv::exd::Language::none ); + m_EurekaAetherItemDat = setupDatAccess( "EurekaAetherItem", xiv::exd::Language::en ); m_EurekaAethernetDat = setupDatAccess( "EurekaAethernet", xiv::exd::Language::none ); m_EurekaGrowDataDat = setupDatAccess( "EurekaGrowData", xiv::exd::Language::none ); + m_EurekaLogosMixerProbabilityDat = setupDatAccess( "EurekaLogosMixerProbability", xiv::exd::Language::none ); + m_EurekaMagiaActionDat = setupDatAccess( "EurekaMagiaAction", xiv::exd::Language::none ); + m_EurekaMagiciteItemDat = setupDatAccess( "EurekaMagiciteItem", xiv::exd::Language::none ); + m_EurekaMagiciteItemTypeDat = setupDatAccess( "EurekaMagiciteItemType", xiv::exd::Language::en ); m_EurekaSphereElementAdjustDat = setupDatAccess( "EurekaSphereElementAdjust", xiv::exd::Language::none ); m_EventActionDat = setupDatAccess( "EventAction", xiv::exd::Language::en ); m_EventIconPriorityDat = setupDatAccess( "EventIconPriority", xiv::exd::Language::none ); @@ -5478,7 +5936,9 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_FCProfileDat = setupDatAccess( "FCProfile", xiv::exd::Language::en ); m_FCReputationDat = setupDatAccess( "FCReputation", xiv::exd::Language::en ); m_FCRightsDat = setupDatAccess( "FCRights", xiv::exd::Language::en ); + m_FestivalDat = setupDatAccess( "Festival", xiv::exd::Language::none ); m_FieldMarkerDat = setupDatAccess( "FieldMarker", xiv::exd::Language::en ); + m_FishingRecordTypeDat = setupDatAccess( "FishingRecordType", xiv::exd::Language::none ); m_FishingRecordTypeTransientDat = setupDatAccess( "FishingRecordTypeTransient", xiv::exd::Language::none ); m_FishingSpotDat = setupDatAccess( "FishingSpot", xiv::exd::Language::en ); m_FishParameterDat = setupDatAccess( "FishParameter", xiv::exd::Language::en ); @@ -5520,6 +5980,9 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_GCSupplyDutyRewardDat = setupDatAccess( "GCSupplyDutyReward", xiv::exd::Language::none ); m_GeneralActionDat = setupDatAccess( "GeneralAction", xiv::exd::Language::en ); m_GFATEDat = setupDatAccess( "GFATE", xiv::exd::Language::none ); + m_GFateClimbing2Dat = setupDatAccess( "GFateClimbing2", xiv::exd::Language::none ); + m_GFateClimbing2ContentDat = setupDatAccess( "GFateClimbing2Content", xiv::exd::Language::none ); + m_GFateClimbing2TotemTypeDat = setupDatAccess( "GFateClimbing2TotemType", xiv::exd::Language::none ); m_GilShopDat = setupDatAccess( "GilShop", xiv::exd::Language::en ); m_GilShopItemDat = setupDatAccess( "GilShopItem", xiv::exd::Language::none ); m_GoldSaucerArcadeMachineDat = setupDatAccess( "GoldSaucerArcadeMachine", xiv::exd::Language::en ); @@ -5534,12 +5997,17 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_HairMakeTypeDat = setupDatAccess( "HairMakeType", xiv::exd::Language::none ); m_HouseRetainerPoseDat = setupDatAccess( "HouseRetainerPose", xiv::exd::Language::none ); m_HousingAethernetDat = setupDatAccess( "HousingAethernet", xiv::exd::Language::none ); + m_HousingAppealDat = setupDatAccess( "HousingAppeal", xiv::exd::Language::en ); m_HousingEmploymentNpcListDat = setupDatAccess( "HousingEmploymentNpcList", xiv::exd::Language::none ); m_HousingEmploymentNpcRaceDat = setupDatAccess( "HousingEmploymentNpcRace", xiv::exd::Language::en ); + m_HousingExteriorDat = setupDatAccess( "HousingExterior", xiv::exd::Language::none ); m_HousingFurnitureDat = setupDatAccess( "HousingFurniture", xiv::exd::Language::none ); + m_HousingMapMarkerInfoDat = setupDatAccess( "HousingMapMarkerInfo", xiv::exd::Language::none ); + m_HousingMerchantPoseDat = setupDatAccess( "HousingMerchantPose", xiv::exd::Language::en ); m_HousingLandSetDat = setupDatAccess( "HousingLandSet", xiv::exd::Language::none ); m_HousingPlacementDat = setupDatAccess( "HousingPlacement", xiv::exd::Language::en ); m_HousingPresetDat = setupDatAccess( "HousingPreset", xiv::exd::Language::en ); + m_HousingUnitedExteriorDat = setupDatAccess( "HousingUnitedExterior", xiv::exd::Language::none ); m_HousingYardObjectDat = setupDatAccess( "HousingYardObject", xiv::exd::Language::none ); m_HowToDat = setupDatAccess( "HowTo", xiv::exd::Language::en ); m_HowToCategoryDat = setupDatAccess( "HowToCategory", xiv::exd::Language::en ); @@ -5550,6 +6018,7 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_ItemDat = setupDatAccess( "Item", xiv::exd::Language::en ); m_ItemActionDat = setupDatAccess( "ItemAction", xiv::exd::Language::none ); m_ItemFoodDat = setupDatAccess( "ItemFood", xiv::exd::Language::none ); + m_ItemLevelDat = setupDatAccess( "ItemLevel", xiv::exd::Language::none ); m_ItemSearchCategoryDat = setupDatAccess( "ItemSearchCategory", xiv::exd::Language::en ); m_ItemSeriesDat = setupDatAccess( "ItemSeries", xiv::exd::Language::en ); m_ItemSpecialBonusDat = setupDatAccess( "ItemSpecialBonus", xiv::exd::Language::en ); @@ -5582,6 +6051,7 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_MasterpieceSupplyDutyDat = setupDatAccess( "MasterpieceSupplyDuty", xiv::exd::Language::none ); m_MasterpieceSupplyMultiplierDat = setupDatAccess( "MasterpieceSupplyMultiplier", xiv::exd::Language::none ); m_MateriaDat = setupDatAccess( "Materia", xiv::exd::Language::none ); + m_MiniGameRADat = setupDatAccess( "MiniGameRA", xiv::exd::Language::none ); m_MinionRaceDat = setupDatAccess( "MinionRace", xiv::exd::Language::en ); m_MinionRulesDat = setupDatAccess( "MinionRules", xiv::exd::Language::en ); m_MinionSkillTypeDat = setupDatAccess( "MinionSkillType", xiv::exd::Language::en ); @@ -5609,7 +6079,9 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_OrchestrionPathDat = setupDatAccess( "OrchestrionPath", xiv::exd::Language::none ); m_OrchestrionUiparamDat = setupDatAccess( "OrchestrionUiparam", xiv::exd::Language::none ); m_ParamGrowDat = setupDatAccess( "ParamGrow", xiv::exd::Language::none ); + m_PartyContentDat = setupDatAccess( "PartyContent", xiv::exd::Language::en ); m_PartyContentCutsceneDat = setupDatAccess( "PartyContentCutscene", xiv::exd::Language::none ); + m_PartyContentTextDataDat = setupDatAccess( "PartyContentTextData", xiv::exd::Language::en ); m_PerformDat = setupDatAccess( "Perform", xiv::exd::Language::en ); m_PerformTransientDat = setupDatAccess( "PerformTransient", xiv::exd::Language::en ); m_PetDat = setupDatAccess( "Pet", xiv::exd::Language::en ); @@ -5711,6 +6183,7 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) m_TutorialDPSDat = setupDatAccess( "TutorialDPS", xiv::exd::Language::none ); m_TutorialHealerDat = setupDatAccess( "TutorialHealer", xiv::exd::Language::none ); m_TutorialTankDat = setupDatAccess( "TutorialTank", xiv::exd::Language::none ); + m_UIColorDat = setupDatAccess( "UIColor", xiv::exd::Language::none ); m_VaseFlowerDat = setupDatAccess( "VaseFlower", xiv::exd::Language::none ); m_VFXDat = setupDatAccess( "VFX", xiv::exd::Language::none ); m_WarpDat = setupDatAccess( "Warp", xiv::exd::Language::en ); diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index b4da203b..d4b76dc5 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -13,8 +13,8 @@ #include #include -namespace Core::Data -{ +namespace Core { +namespace Data { class ExdDataGenerated; @@ -174,8 +174,13 @@ struct EObj; struct EObjName; struct EquipRaceCategory; struct EquipSlotCategory; +struct EurekaAetherItem; struct EurekaAethernet; struct EurekaGrowData; +struct EurekaLogosMixerProbability; +struct EurekaMagiaAction; +struct EurekaMagiciteItem; +struct EurekaMagiciteItemType; struct EurekaSphereElementAdjust; struct EventAction; struct EventIconPriority; @@ -197,7 +202,9 @@ struct FCHierarchy; struct FCProfile; struct FCReputation; struct FCRights; +struct Festival; struct FieldMarker; +struct FishingRecordType; struct FishingRecordTypeTransient; struct FishingSpot; struct FishParameter; @@ -239,6 +246,9 @@ struct GCSupplyDuty; struct GCSupplyDutyReward; struct GeneralAction; struct GFATE; +struct GFateClimbing2; +struct GFateClimbing2Content; +struct GFateClimbing2TotemType; struct GilShop; struct GilShopItem; struct GoldSaucerArcadeMachine; @@ -253,12 +263,17 @@ struct GuildOrderOfficer; struct HairMakeType; struct HouseRetainerPose; struct HousingAethernet; +struct HousingAppeal; struct HousingEmploymentNpcList; struct HousingEmploymentNpcRace; +struct HousingExterior; struct HousingFurniture; +struct HousingMapMarkerInfo; +struct HousingMerchantPose; struct HousingLandSet; struct HousingPlacement; struct HousingPreset; +struct HousingUnitedExterior; struct HousingYardObject; struct HowTo; struct HowToCategory; @@ -269,6 +284,7 @@ struct InstanceContentTextData; struct Item; struct ItemAction; struct ItemFood; +struct ItemLevel; struct ItemSearchCategory; struct ItemSeries; struct ItemSpecialBonus; @@ -301,6 +317,7 @@ struct Marker; struct MasterpieceSupplyDuty; struct MasterpieceSupplyMultiplier; struct Materia; +struct MiniGameRA; struct MinionRace; struct MinionRules; struct MinionSkillType; @@ -328,7 +345,9 @@ struct OrchestrionCategory; struct OrchestrionPath; struct OrchestrionUiparam; struct ParamGrow; +struct PartyContent; struct PartyContentCutscene; +struct PartyContentTextData; struct Perform; struct PerformTransient; struct Pet; @@ -430,6 +449,7 @@ struct Tutorial; struct TutorialDPS; struct TutorialHealer; struct TutorialTank; +struct UIColor; struct VaseFlower; struct VFX; struct Warp; @@ -462,6 +482,7 @@ struct Achievement int32_t key; std::vector< int32_t > data; uint16_t order; + bool initialHide; Achievement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -470,6 +491,7 @@ struct AchievementCategory { std::string name; uint8_t achievementKind; + bool hideCategory; AchievementCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -652,9 +674,9 @@ struct Addon struct AddonHud { - std::string longs; - std::string shorts; - std::string function; + std::string _long; + std::string _short; + std::string _function; AddonHud( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -713,6 +735,13 @@ struct AetherialWheel struct Aetheryte { + std::string singular; + int8_t adjective; + std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; uint16_t placeName; uint16_t aethernetName; uint16_t territory; @@ -810,7 +839,7 @@ struct AnimaWeapon5SpiritTalk { int32_t dialogue; - AnimaWeapon5SpiritTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeapon5SpiritTalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct AnimaWeapon5SpiritTalkParam @@ -834,7 +863,7 @@ struct AnimaWeaponFUITalk { int32_t dialogue; - AnimaWeaponFUITalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeaponFUITalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct AnimaWeaponFUITalkParam @@ -909,6 +938,7 @@ struct Balloon struct BaseParam { + int8_t order; std::string name; std::string description; uint8_t oneHWpn; @@ -983,7 +1013,7 @@ struct Behavior { uint16_t balloon; - Behavior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Behavior( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct BGM @@ -1015,7 +1045,7 @@ struct BGMSwitch uint8_t bGMSystemDefine; uint32_t quest; - BGMSwitch( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BGMSwitch( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct BGMSystemDefine @@ -1081,8 +1111,12 @@ struct BNpcCustomize struct BNpcName { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; + int8_t pronoun; + int8_t article; BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -1148,9 +1182,12 @@ struct BuddyAction struct BuddyEquip { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; - int8_t rarity; + int8_t pronoun; + int8_t article; std::string name; int32_t modelTop; int32_t modelBody; @@ -1398,9 +1435,13 @@ struct ClassJobCategory struct Companion { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; - int8_t rarity; + int8_t pronoun; + int8_t article; + uint16_t model; uint8_t behavior; uint16_t icon; uint8_t cost; @@ -1552,7 +1593,7 @@ struct ContentFinderCondition { uint16_t territoryType; uint8_t contentLinkType; - uint16_t instanceContent; + uint16_t content; uint8_t contentMemberType; uint8_t classJobLevelRequired; uint8_t classJobLevelSync; @@ -1560,6 +1601,7 @@ struct ContentFinderCondition uint16_t itemLevelSync; bool allowReplacement; bool highEndDuty; + bool dutyRecorderAllowed; std::string name; uint8_t contentType; uint8_t transient; @@ -1743,7 +1785,7 @@ struct Credit uint16_t frenchCast2; uint16_t germanCast2; - Credit( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Credit( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct CreditCast @@ -1822,9 +1864,12 @@ struct DeepDungeonEquipment { uint32_t icon; std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; - int8_t rarity; + int8_t pronoun; + int8_t article; std::string name; std::string description; @@ -1844,9 +1889,12 @@ struct DeepDungeonItem { uint32_t icon; std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; - int8_t rarity; + int8_t pronoun; + int8_t article; std::string name; std::string tooltip; uint32_t action; @@ -1865,9 +1913,12 @@ struct DeepDungeonMagicStone { uint32_t icon; std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; - int8_t rarity; + int8_t pronoun; + int8_t article; std::string name; std::string tooltip; @@ -1878,7 +1929,7 @@ struct DeepDungeonMap5X { std::vector< uint16_t > deepDungeonRoom; - DeepDungeonMap5X( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonMap5X( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonRoom @@ -1939,7 +1990,7 @@ struct DisposalShopItem int32_t itemReceived; uint32_t quantityReceived; - DisposalShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DisposalShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct DpsChallenge @@ -2057,7 +2108,12 @@ struct ENpcBase struct ENpcResident { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string title; uint8_t map; @@ -2075,6 +2131,12 @@ struct EObj struct EObjName { std::string singular; + int8_t adjective; + std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -2113,6 +2175,20 @@ struct EquipSlotCategory EquipSlotCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct EurekaAetherItem +{ + std::string singular; + int8_t adjective; + std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; + std::string name; + + EurekaAetherItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct EurekaAethernet { uint16_t location; @@ -2127,6 +2203,37 @@ struct EurekaGrowData EurekaGrowData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct EurekaLogosMixerProbability +{ + uint8_t probability; + + EurekaLogosMixerProbability( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct EurekaMagiaAction +{ + uint32_t action; + uint8_t maxUses; + + EurekaMagiaAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct EurekaMagiciteItem +{ + uint8_t eurekaMagiciteItemType; + uint8_t classJobCategory; + uint32_t item; + + EurekaMagiciteItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct EurekaMagiciteItemType +{ + std::string type; + + EurekaMagiciteItemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct EurekaSphereElementAdjust { uint16_t powerModifier; @@ -2165,9 +2272,12 @@ struct EventIconType struct EventItem { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; - int8_t rarity; + int8_t pronoun; + int8_t article; std::string name; uint16_t icon; uint16_t action; @@ -2223,6 +2333,7 @@ struct Fate uint32_t iconObjective; uint32_t iconMap; int32_t music; + bool hasWorldMapIcon; std::string name; std::string description; std::string objective; @@ -2309,6 +2420,13 @@ struct FCRights FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct Festival +{ + std::string name; + + Festival( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct FieldMarker { int32_t vFX; @@ -2317,6 +2435,13 @@ struct FieldMarker FieldMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct FishingRecordType +{ + int32_t addon; + + FishingRecordType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct FishingRecordTypeTransient { int32_t image; @@ -2345,8 +2470,12 @@ struct FishParameter std::string text; int32_t item; uint16_t gatheringItemLevel; + bool isHidden; + uint8_t fishingRecordType; int32_t territoryType; - bool isFish; + bool isInLog; + bool timeRestricted; + bool weatherRestricted; uint16_t gatheringSubCategory; FishParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2415,7 +2544,7 @@ struct GatheringItemPoint { uint32_t gatheringPoint; - GatheringItemPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringItemPoint( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct GatheringLeve @@ -2481,8 +2610,12 @@ struct GatheringPointBonusType struct GatheringPointName { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; + int8_t pronoun; + int8_t article; GatheringPointName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -2568,8 +2701,13 @@ struct GcArmyTraining struct GCRankGridaniaFemaleText { - std::string name; + std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string nameRank; GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2577,8 +2715,13 @@ struct GCRankGridaniaFemaleText struct GCRankGridaniaMaleText { - std::string name; + std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string nameRank; GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2586,8 +2729,13 @@ struct GCRankGridaniaMaleText struct GCRankLimsaFemaleText { - std::string name; + std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string nameRank; GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2595,8 +2743,13 @@ struct GCRankLimsaFemaleText struct GCRankLimsaMaleText { - std::string name; + std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string nameRank; GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2604,8 +2757,13 @@ struct GCRankLimsaMaleText struct GCRankUldahFemaleText { - std::string name; + std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string nameRank; GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2613,8 +2771,13 @@ struct GCRankUldahFemaleText struct GCRankUldahMaleText { - std::string name; + std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string nameRank; GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2636,7 +2799,7 @@ struct GCScripShopItem uint32_t costGCSeals; uint8_t sortKey; - GCScripShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCScripShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct GCShop @@ -2688,6 +2851,27 @@ struct GFATE GFATE( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct GFateClimbing2 +{ + uint32_t contentEntry; + + GFateClimbing2( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct GFateClimbing2Content +{ + uint32_t publicContentTextData; + + GFateClimbing2Content( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct GFateClimbing2TotemType +{ + uint32_t publicContentTextData; + + GFateClimbing2TotemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct GilShop { std::string name; @@ -2706,7 +2890,7 @@ struct GilShopItem uint16_t stateRequired; uint16_t patch; - GilShopItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GilShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct GoldSaucerArcadeMachine @@ -2812,12 +2996,21 @@ struct HousingAethernet HousingAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct HousingAppeal +{ + std::string tag; + uint32_t icon; + uint8_t order; + + HousingAppeal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct HousingEmploymentNpcList { uint8_t race; std::vector< uint32_t > eNpcBase; - HousingEmploymentNpcList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingEmploymentNpcList( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct HousingEmploymentNpcRace @@ -2827,6 +3020,15 @@ struct HousingEmploymentNpcRace HousingEmploymentNpcRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct HousingExterior +{ + uint16_t placeName; + uint8_t housingSize; + std::string model; + + HousingExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct HousingFurniture { uint16_t modelKey; @@ -2834,8 +3036,8 @@ struct HousingFurniture uint8_t usageType; uint32_t usageParameter; uint8_t housingLayoutLimit; - uint8_t customTalk; - uint32_t event; + uint8_t aquariumTier; + uint32_t customTalk; uint32_t item; bool destroyOnRemoval; bool tooltip; @@ -2843,6 +3045,30 @@ struct HousingFurniture HousingFurniture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct HousingMapMarkerInfo +{ + uint16_t map; + + HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); +}; + +struct HousingMerchantPose +{ + uint16_t actionTimeline; + std::string pose; + + HousingMerchantPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + +struct HousingLandSet +{ + std::vector< uint8_t > plotSize; + std::vector< uint32_t > minPrice; + std::vector< uint32_t > initialPrice; + + HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct HousingPlacement { std::string text; @@ -2850,19 +3076,17 @@ struct HousingPlacement HousingPlacement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; -struct HousingLandSet -{ - std::vector< uint8_t > sizes; - std::vector< uint32_t > minPrices; - std::vector< uint32_t > prices; - - HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); -}; - struct HousingPreset { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; + int8_t startsWithVowel; + int8_t pronoun; + int8_t article; + uint16_t placeName; + uint8_t housingSize; int32_t exteriorRoof; int32_t exteriorWall; int32_t exteriorWindow; @@ -2881,6 +3105,13 @@ struct HousingPreset HousingPreset( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct HousingUnitedExterior +{ + std::vector< uint32_t > item; + + HousingUnitedExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct HousingYardObject { uint8_t modelKey; @@ -2941,7 +3172,7 @@ struct InstanceContent uint16_t finalBossCurrencyC; uint32_t instanceClearExp; int32_t instanceContentBuff; - uint32_t territoryType; + uint32_t reqInstance; uint8_t partyCondition; InstanceContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); @@ -2965,8 +3196,12 @@ struct InstanceContentTextData struct Item { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; + int8_t pronoun; + int8_t article; std::string description; std::string name; uint16_t icon; @@ -3037,6 +3272,85 @@ struct ItemFood ItemFood( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct ItemLevel +{ + uint16_t strength; + uint16_t dexterity; + uint16_t vitality; + uint16_t intelligence; + uint16_t mind; + uint16_t piety; + uint16_t hP; + uint16_t mP; + uint16_t tP; + uint16_t gP; + uint16_t cP; + uint16_t physicalDamage; + uint16_t magicalDamage; + uint16_t delay; + uint16_t additionalEffect; + uint16_t attackSpeed; + uint16_t blockRate; + uint16_t blockStrength; + uint16_t tenacity; + uint16_t attackPower; + uint16_t defense; + uint16_t directHitRate; + uint16_t evasion; + uint16_t magicDefense; + uint16_t criticalHitPower; + uint16_t criticalHitResilience; + uint16_t criticalHit; + uint16_t criticalHitEvasion; + uint16_t slashingResistance; + uint16_t piercingResistance; + uint16_t bluntResistance; + uint16_t projectileResistance; + uint16_t attackMagicPotency; + uint16_t healingMagicPotency; + uint16_t enhancementMagicPotency; + uint16_t enfeeblingMagicPotency; + uint16_t fireResistance; + uint16_t iceResistance; + uint16_t windResistance; + uint16_t earthResistance; + uint16_t lightningResistance; + uint16_t waterResistance; + uint16_t magicResistance; + uint16_t determination; + uint16_t skillSpeed; + uint16_t spellSpeed; + uint16_t haste; + uint16_t morale; + uint16_t enmity; + uint16_t enmityReduction; + uint16_t carefulDesynthesis; + uint16_t eXPBonus; + uint16_t regen; + uint16_t refresh; + uint16_t movementSpeed; + uint16_t spikes; + uint16_t slowResistance; + uint16_t petrificationResistance; + uint16_t paralysisResistance; + uint16_t silenceResistance; + uint16_t blindResistance; + uint16_t poisonResistance; + uint16_t stunResistance; + uint16_t sleepResistance; + uint16_t bindResistance; + uint16_t heavyResistance; + uint16_t doomResistance; + uint16_t reducedDurabilityLoss; + uint16_t increasedSpiritbondGain; + uint16_t craftsmanship; + uint16_t control; + uint16_t gathering; + uint16_t perception; + + ItemLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct ItemSearchCategory { std::string name; @@ -3288,7 +3602,7 @@ struct MapMarker uint8_t dataType; uint16_t dataKey; - MapMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MapMarker( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct MapMarkerRegion @@ -3340,6 +3654,14 @@ struct Materia Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct MiniGameRA +{ + int32_t icon; + int32_t bGM; + + MiniGameRA( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct MinionRace { std::string name; @@ -3420,8 +3742,12 @@ struct MonsterNoteTarget struct Mount { std::string singular; + int8_t adjective; std::string plural; + int8_t possessivePronoun; int8_t startsWithVowel; + int8_t pronoun; + int8_t article; int32_t modelChara; uint8_t flyingCondition; uint8_t isFlying; @@ -3429,8 +3755,11 @@ struct Mount uint16_t rideBGM; int16_t order; uint16_t icon; + uint8_t extraSeats; uint16_t mountAction; bool isAirborne; + bool useEP; + bool isImmobile; Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -3456,6 +3785,18 @@ struct MountCustomize float roeFemaleScale; float auRaMaleScale; float auRaFemaleScale; + uint8_t hyurMaleCameraHeight; + uint8_t hyurFemaleCameraHeight; + uint8_t elezenMaleCameraHeight; + uint8_t elezenFemaleCameraHeight; + uint8_t lalaMaleCameraHeight; + uint8_t lalaFemaleCameraHeight; + uint8_t miqoMaleCameraHeight; + uint8_t miqoFemaleCameraHeight; + uint8_t roeMaleCameraHeight; + uint8_t roeFemaleCameraHeight; + uint8_t auRaMaleCameraHeight; + uint8_t auRaFemaleCameraHeight; MountCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -3613,6 +3954,19 @@ struct ParamGrow ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct PartyContent +{ + uint8_t key; + uint16_t timeLimit; + std::string name; + uint32_t textDataStart; + uint32_t textDataEnd; + uint16_t contentFinderCondition; + uint32_t image; + + PartyContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct PartyContentCutscene { uint32_t cutscene; @@ -3620,6 +3974,13 @@ struct PartyContentCutscene PartyContentCutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct PartyContentTextData +{ + std::string data; + + PartyContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct Perform { std::string name; @@ -3695,13 +4056,14 @@ struct PreHandler struct PublicContent { + uint8_t type; uint16_t timeLimit; uint32_t mapIcon; std::string name; uint32_t textDataStart; uint32_t textDataEnd; uint16_t contentFinderCondition; - uint16_t eureka; + uint16_t additionalData; PublicContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -3733,7 +4095,7 @@ struct PvPActionSort uint8_t name; uint16_t action; - PvPActionSort( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PvPActionSort( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct PvPRank @@ -3769,6 +4131,7 @@ struct Quest uint8_t classJobCategory0; uint16_t classJobLevel0; uint8_t questLevelOffset; + uint16_t levelMax; uint8_t classJobCategory1; uint16_t classJobLevel1; uint8_t previousQuestJoin; @@ -3782,6 +4145,7 @@ struct Quest uint8_t grandCompanyRank; uint8_t instanceContentJoin; std::vector< uint32_t > instanceContent; + uint8_t festival; uint16_t bellStart; uint16_t bellEnd; uint8_t beastTribe; @@ -3792,6 +4156,7 @@ struct Quest uint32_t eNpcResidentEnd; bool isRepeatable; uint8_t repeatIntervalType; + uint8_t questRepeatFlag; std::vector< std::string > scriptInstruction; std::vector< uint32_t > scriptArg; std::vector< uint32_t > level; @@ -3835,7 +4200,7 @@ struct QuestClassJobReward std::vector< uint32_t > requiredItem; std::vector< uint8_t > requiredAmount; - QuestClassJobReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + QuestClassJobReward( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct QuestClassJobSupply @@ -3844,7 +4209,7 @@ struct QuestClassJobSupply uint32_t eNpcResident; uint32_t item; - QuestClassJobSupply( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct QuestRepeatFlag @@ -4052,7 +4417,7 @@ struct Resident int32_t npcYell; uint8_t residentMotionType; - Resident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Resident( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct RetainerTask @@ -4145,7 +4510,7 @@ struct SatisfactionSupply uint16_t collectabilityHigh; uint16_t reward; - SatisfactionSupply( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SatisfactionSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct SatisfactionSupplyReward @@ -4183,7 +4548,7 @@ struct ScenarioTreeTipsClassQuest uint8_t requiredExpansion; uint32_t requiredQuest; - ScenarioTreeTipsClassQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ScenarioTreeTipsClassQuest( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct ScenarioTreeTipsQuest @@ -4441,6 +4806,7 @@ struct Title std::string masculine; std::string feminine; bool isPrefix; + uint16_t order; Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -4656,6 +5022,14 @@ struct TutorialTank TutorialTank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; +struct UIColor +{ + uint32_t foreground; + uint32_t background; + + UIColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); +}; + struct VaseFlower { uint32_t item; @@ -4674,9 +5048,9 @@ struct Warp { uint32_t level; uint16_t placeName; - uint32_t defaultTalk1; - uint32_t defaultTalk2; - uint32_t defaultTalk3; + uint32_t conditionSuccessEvent; + uint32_t conditionFailEvent; + uint32_t confirmEvent; uint16_t warpCondition; uint16_t warpLogic; @@ -4695,12 +5069,12 @@ struct WarpCondition struct WarpLogic { - bool warpName; + std::string warpName; std::vector< std::string > function; std::vector< uint32_t > argument; - std::string textString; - std::string response1; - std::string response2; + std::string question; + std::string responseYes; + std::string responseNo; WarpLogic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -4718,7 +5092,7 @@ struct WeatherGroup { int32_t weatherRate; - WeatherGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WeatherGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; struct WeatherRate @@ -4772,6 +5146,7 @@ struct World { std::string name; uint8_t dataCenter; + bool isPublic; World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); }; @@ -4800,7 +5175,7 @@ struct ZoneSharedGroup uint32_t quest5; uint32_t quest6; - ZoneSharedGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); }; @@ -4982,8 +5357,13 @@ struct ZoneSharedGroup xiv::exd::Exd m_EObjNameDat; xiv::exd::Exd m_EquipRaceCategoryDat; xiv::exd::Exd m_EquipSlotCategoryDat; + xiv::exd::Exd m_EurekaAetherItemDat; xiv::exd::Exd m_EurekaAethernetDat; xiv::exd::Exd m_EurekaGrowDataDat; + xiv::exd::Exd m_EurekaLogosMixerProbabilityDat; + xiv::exd::Exd m_EurekaMagiaActionDat; + xiv::exd::Exd m_EurekaMagiciteItemDat; + xiv::exd::Exd m_EurekaMagiciteItemTypeDat; xiv::exd::Exd m_EurekaSphereElementAdjustDat; xiv::exd::Exd m_EventActionDat; xiv::exd::Exd m_EventIconPriorityDat; @@ -5005,7 +5385,9 @@ struct ZoneSharedGroup xiv::exd::Exd m_FCProfileDat; xiv::exd::Exd m_FCReputationDat; xiv::exd::Exd m_FCRightsDat; + xiv::exd::Exd m_FestivalDat; xiv::exd::Exd m_FieldMarkerDat; + xiv::exd::Exd m_FishingRecordTypeDat; xiv::exd::Exd m_FishingRecordTypeTransientDat; xiv::exd::Exd m_FishingSpotDat; xiv::exd::Exd m_FishParameterDat; @@ -5047,6 +5429,9 @@ struct ZoneSharedGroup xiv::exd::Exd m_GCSupplyDutyRewardDat; xiv::exd::Exd m_GeneralActionDat; xiv::exd::Exd m_GFATEDat; + xiv::exd::Exd m_GFateClimbing2Dat; + xiv::exd::Exd m_GFateClimbing2ContentDat; + xiv::exd::Exd m_GFateClimbing2TotemTypeDat; xiv::exd::Exd m_GilShopDat; xiv::exd::Exd m_GilShopItemDat; xiv::exd::Exd m_GoldSaucerArcadeMachineDat; @@ -5061,12 +5446,17 @@ struct ZoneSharedGroup xiv::exd::Exd m_HairMakeTypeDat; xiv::exd::Exd m_HouseRetainerPoseDat; xiv::exd::Exd m_HousingAethernetDat; + xiv::exd::Exd m_HousingAppealDat; xiv::exd::Exd m_HousingEmploymentNpcListDat; xiv::exd::Exd m_HousingEmploymentNpcRaceDat; + xiv::exd::Exd m_HousingExteriorDat; xiv::exd::Exd m_HousingFurnitureDat; + xiv::exd::Exd m_HousingMapMarkerInfoDat; + xiv::exd::Exd m_HousingMerchantPoseDat; xiv::exd::Exd m_HousingLandSetDat; xiv::exd::Exd m_HousingPlacementDat; xiv::exd::Exd m_HousingPresetDat; + xiv::exd::Exd m_HousingUnitedExteriorDat; xiv::exd::Exd m_HousingYardObjectDat; xiv::exd::Exd m_HowToDat; xiv::exd::Exd m_HowToCategoryDat; @@ -5077,6 +5467,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_ItemDat; xiv::exd::Exd m_ItemActionDat; xiv::exd::Exd m_ItemFoodDat; + xiv::exd::Exd m_ItemLevelDat; xiv::exd::Exd m_ItemSearchCategoryDat; xiv::exd::Exd m_ItemSeriesDat; xiv::exd::Exd m_ItemSpecialBonusDat; @@ -5109,6 +5500,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_MasterpieceSupplyDutyDat; xiv::exd::Exd m_MasterpieceSupplyMultiplierDat; xiv::exd::Exd m_MateriaDat; + xiv::exd::Exd m_MiniGameRADat; xiv::exd::Exd m_MinionRaceDat; xiv::exd::Exd m_MinionRulesDat; xiv::exd::Exd m_MinionSkillTypeDat; @@ -5136,7 +5528,9 @@ struct ZoneSharedGroup xiv::exd::Exd m_OrchestrionPathDat; xiv::exd::Exd m_OrchestrionUiparamDat; xiv::exd::Exd m_ParamGrowDat; + xiv::exd::Exd m_PartyContentDat; xiv::exd::Exd m_PartyContentCutsceneDat; + xiv::exd::Exd m_PartyContentTextDataDat; xiv::exd::Exd m_PerformDat; xiv::exd::Exd m_PerformTransientDat; xiv::exd::Exd m_PetDat; @@ -5238,6 +5632,7 @@ struct ZoneSharedGroup xiv::exd::Exd m_TutorialDPSDat; xiv::exd::Exd m_TutorialHealerDat; xiv::exd::Exd m_TutorialTankDat; + xiv::exd::Exd m_UIColorDat; xiv::exd::Exd m_VaseFlowerDat; xiv::exd::Exd m_VFXDat; xiv::exd::Exd m_WarpDat; @@ -5257,435 +5652,455 @@ struct ZoneSharedGroup xiv::exd::Exd m_ZoneSharedGroupDat; - using AchievementPtr = std::shared_ptr< Achievement >; - using AchievementCategoryPtr = std::shared_ptr< AchievementCategory >; - using AchievementKindPtr = std::shared_ptr< AchievementKind >; - using ActionPtr = std::shared_ptr< Action >; - using ActionCastTimelinePtr = std::shared_ptr< ActionCastTimeline >; - using ActionCastVFXPtr = std::shared_ptr< ActionCastVFX >; - using ActionCategoryPtr = std::shared_ptr< ActionCategory >; - using ActionComboRoutePtr = std::shared_ptr< ActionComboRoute >; - using ActionIndirectionPtr = std::shared_ptr< ActionIndirection >; - using ActionParamPtr = std::shared_ptr< ActionParam >; - using ActionProcStatusPtr = std::shared_ptr< ActionProcStatus >; - using ActionTimelinePtr = std::shared_ptr< ActionTimeline >; - using ActionTimelineMovePtr = std::shared_ptr< ActionTimelineMove >; - using ActionTimelineReplacePtr = std::shared_ptr< ActionTimelineReplace >; - using ActionTransientPtr = std::shared_ptr< ActionTransient >; - using ActivityFeedButtonsPtr = std::shared_ptr< ActivityFeedButtons >; - using ActivityFeedCaptionsPtr = std::shared_ptr< ActivityFeedCaptions >; - using ActivityFeedGroupCaptionsPtr = std::shared_ptr< ActivityFeedGroupCaptions >; - using ActivityFeedImagesPtr = std::shared_ptr< ActivityFeedImages >; - using AddonPtr = std::shared_ptr< Addon >; - using AddonHudPtr = std::shared_ptr< AddonHud >; - using AdventurePtr = std::shared_ptr< Adventure >; - using AdventureExPhasePtr = std::shared_ptr< AdventureExPhase >; - using AetherCurrentPtr = std::shared_ptr< AetherCurrent >; - using AetherCurrentCompFlgSetPtr = std::shared_ptr< AetherCurrentCompFlgSet >; - using AetherialWheelPtr = std::shared_ptr< AetherialWheel >; - using AetherytePtr = std::shared_ptr< Aetheryte >; - using AetheryteSystemDefinePtr = std::shared_ptr< AetheryteSystemDefine >; - using AirshipExplorationLevelPtr = std::shared_ptr< AirshipExplorationLevel >; - using AirshipExplorationLogPtr = std::shared_ptr< AirshipExplorationLog >; - using AirshipExplorationParamTypePtr = std::shared_ptr< AirshipExplorationParamType >; - using AirshipExplorationPartPtr = std::shared_ptr< AirshipExplorationPart >; - using AirshipExplorationPointPtr = std::shared_ptr< AirshipExplorationPoint >; - using AnimaWeapon5Ptr = std::shared_ptr< AnimaWeapon5 >; - using AnimaWeapon5ParamPtr = std::shared_ptr< AnimaWeapon5Param >; - using AnimaWeapon5PatternGroupPtr = std::shared_ptr< AnimaWeapon5PatternGroup >; - using AnimaWeapon5SpiritTalkPtr = std::shared_ptr< AnimaWeapon5SpiritTalk >; - using AnimaWeapon5SpiritTalkParamPtr = std::shared_ptr< AnimaWeapon5SpiritTalkParam >; - using AnimaWeapon5TradeItemPtr = std::shared_ptr< AnimaWeapon5TradeItem >; - using AnimaWeaponFUITalkPtr = std::shared_ptr< AnimaWeaponFUITalk >; - using AnimaWeaponFUITalkParamPtr = std::shared_ptr< AnimaWeaponFUITalkParam >; - using AnimaWeaponIconPtr = std::shared_ptr< AnimaWeaponIcon >; - using AnimaWeaponItemPtr = std::shared_ptr< AnimaWeaponItem >; - using AquariumFishPtr = std::shared_ptr< AquariumFish >; - using AquariumWaterPtr = std::shared_ptr< AquariumWater >; - using ArrayEventHandlerPtr = std::shared_ptr< ArrayEventHandler >; - using AttackTypePtr = std::shared_ptr< AttackType >; - using BacklightColorPtr = std::shared_ptr< BacklightColor >; - using BalloonPtr = std::shared_ptr< Balloon >; - using BaseParamPtr = std::shared_ptr< BaseParam >; - using BattleLevePtr = std::shared_ptr< BattleLeve >; - using BeastRankBonusPtr = std::shared_ptr< BeastRankBonus >; - using BeastReputationRankPtr = std::shared_ptr< BeastReputationRank >; - using BeastTribePtr = std::shared_ptr< BeastTribe >; - using BehaviorPtr = std::shared_ptr< Behavior >; - using BGMPtr = std::shared_ptr< BGM >; - using BGMFadePtr = std::shared_ptr< BGMFade >; - using BGMSituationPtr = std::shared_ptr< BGMSituation >; - using BGMSwitchPtr = std::shared_ptr< BGMSwitch >; - using BGMSystemDefinePtr = std::shared_ptr< BGMSystemDefine >; - using BNpcAnnounceIconPtr = std::shared_ptr< BNpcAnnounceIcon >; - using BNpcBasePtr = std::shared_ptr< BNpcBase >; - using BNpcCustomizePtr = std::shared_ptr< BNpcCustomize >; - using BNpcNamePtr = std::shared_ptr< BNpcName >; - using BNpcPartsPtr = std::shared_ptr< BNpcParts >; - using BuddyPtr = std::shared_ptr< Buddy >; - using BuddyActionPtr = std::shared_ptr< BuddyAction >; - using BuddyEquipPtr = std::shared_ptr< BuddyEquip >; - using BuddyItemPtr = std::shared_ptr< BuddyItem >; - using BuddyRankPtr = std::shared_ptr< BuddyRank >; - using BuddySkillPtr = std::shared_ptr< BuddySkill >; - using CabinetPtr = std::shared_ptr< Cabinet >; - using CabinetCategoryPtr = std::shared_ptr< CabinetCategory >; - using CalendarPtr = std::shared_ptr< Calendar >; - using CharaMakeCustomizePtr = std::shared_ptr< CharaMakeCustomize >; - using CharaMakeTypePtr = std::shared_ptr< CharaMakeType >; - using ChocoboRacePtr = std::shared_ptr< ChocoboRace >; - using ChocoboRaceAbilityPtr = std::shared_ptr< ChocoboRaceAbility >; - using ChocoboRaceAbilityTypePtr = std::shared_ptr< ChocoboRaceAbilityType >; - using ChocoboRaceItemPtr = std::shared_ptr< ChocoboRaceItem >; - using ChocoboRaceRankPtr = std::shared_ptr< ChocoboRaceRank >; - using ChocoboRaceStatusPtr = std::shared_ptr< ChocoboRaceStatus >; - using ChocoboRaceTerritoryPtr = std::shared_ptr< ChocoboRaceTerritory >; - using ChocoboRaceTutorialPtr = std::shared_ptr< ChocoboRaceTutorial >; - using ChocoboRaceWeatherPtr = std::shared_ptr< ChocoboRaceWeather >; - using ChocoboTaxiPtr = std::shared_ptr< ChocoboTaxi >; - using ChocoboTaxiStandPtr = std::shared_ptr< ChocoboTaxiStand >; - using ClassJobPtr = std::shared_ptr< ClassJob >; - using ClassJobCategoryPtr = std::shared_ptr< ClassJobCategory >; - using CompanionPtr = std::shared_ptr< Companion >; - using CompanionMovePtr = std::shared_ptr< CompanionMove >; - using CompanionTransientPtr = std::shared_ptr< CompanionTransient >; - using CompanyActionPtr = std::shared_ptr< CompanyAction >; - using CompanyCraftDraftPtr = std::shared_ptr< CompanyCraftDraft >; - using CompanyCraftDraftCategoryPtr = std::shared_ptr< CompanyCraftDraftCategory >; - using CompanyCraftManufactoryStatePtr = std::shared_ptr< CompanyCraftManufactoryState >; - using CompanyCraftPartPtr = std::shared_ptr< CompanyCraftPart >; - using CompanyCraftProcessPtr = std::shared_ptr< CompanyCraftProcess >; - using CompanyCraftSequencePtr = std::shared_ptr< CompanyCraftSequence >; - using CompanyCraftSupplyItemPtr = std::shared_ptr< CompanyCraftSupplyItem >; - using CompanyCraftTypePtr = std::shared_ptr< CompanyCraftType >; - using CompleteJournalPtr = std::shared_ptr< CompleteJournal >; - using CompleteJournalCategoryPtr = std::shared_ptr< CompleteJournalCategory >; - using ContentCloseCyclePtr = std::shared_ptr< ContentCloseCycle >; - using ContentExActionPtr = std::shared_ptr< ContentExAction >; - using ContentFinderConditionPtr = std::shared_ptr< ContentFinderCondition >; - using ContentFinderConditionTransientPtr = std::shared_ptr< ContentFinderConditionTransient >; - using ContentGaugePtr = std::shared_ptr< ContentGauge >; - using ContentGaugeColorPtr = std::shared_ptr< ContentGaugeColor >; - using ContentMemberTypePtr = std::shared_ptr< ContentMemberType >; - using ContentNpcTalkPtr = std::shared_ptr< ContentNpcTalk >; - using ContentRoulettePtr = std::shared_ptr< ContentRoulette >; - using ContentRouletteOpenRulePtr = std::shared_ptr< ContentRouletteOpenRule >; - using ContentRouletteRoleBonusPtr = std::shared_ptr< ContentRouletteRoleBonus >; - using ContentsNotePtr = std::shared_ptr< ContentsNote >; - using ContentTalkPtr = std::shared_ptr< ContentTalk >; - using ContentTalkParamPtr = std::shared_ptr< ContentTalkParam >; - using ContentTypePtr = std::shared_ptr< ContentType >; - using CraftActionPtr = std::shared_ptr< CraftAction >; - using CraftLevePtr = std::shared_ptr< CraftLeve >; - using CraftTypePtr = std::shared_ptr< CraftType >; - using CreditPtr = std::shared_ptr< Credit >; - using CreditCastPtr = std::shared_ptr< CreditCast >; - using CurrencyPtr = std::shared_ptr< Currency >; - using CustomTalkPtr = std::shared_ptr< CustomTalk >; - using CutscenePtr = std::shared_ptr< Cutscene >; - using CutScreenImagePtr = std::shared_ptr< CutScreenImage >; - using DailySupplyItemPtr = std::shared_ptr< DailySupplyItem >; - using DeepDungeonPtr = std::shared_ptr< DeepDungeon >; - using DeepDungeonBanPtr = std::shared_ptr< DeepDungeonBan >; - using DeepDungeonDangerPtr = std::shared_ptr< DeepDungeonDanger >; - using DeepDungeonEquipmentPtr = std::shared_ptr< DeepDungeonEquipment >; - using DeepDungeonFloorEffectUIPtr = std::shared_ptr< DeepDungeonFloorEffectUI >; - using DeepDungeonItemPtr = std::shared_ptr< DeepDungeonItem >; - using DeepDungeonLayerPtr = std::shared_ptr< DeepDungeonLayer >; - using DeepDungeonMagicStonePtr = std::shared_ptr< DeepDungeonMagicStone >; - using DeepDungeonMap5XPtr = std::shared_ptr< DeepDungeonMap5X >; - using DeepDungeonRoomPtr = std::shared_ptr< DeepDungeonRoom >; - using DeepDungeonStatusPtr = std::shared_ptr< DeepDungeonStatus >; - using DefaultTalkPtr = std::shared_ptr< DefaultTalk >; - using DefaultTalkLipSyncTypePtr = std::shared_ptr< DefaultTalkLipSyncType >; - using DeliveryQuestPtr = std::shared_ptr< DeliveryQuest >; - using DisposalShopPtr = std::shared_ptr< DisposalShop >; - using DisposalShopFilterTypePtr = std::shared_ptr< DisposalShopFilterType >; - using DisposalShopItemPtr = std::shared_ptr< DisposalShopItem >; - using DpsChallengePtr = std::shared_ptr< DpsChallenge >; - using DpsChallengeOfficerPtr = std::shared_ptr< DpsChallengeOfficer >; - using DpsChallengeTransientPtr = std::shared_ptr< DpsChallengeTransient >; - using EmotePtr = std::shared_ptr< Emote >; - using EmoteCategoryPtr = std::shared_ptr< EmoteCategory >; - using ENpcBasePtr = std::shared_ptr< ENpcBase >; - using ENpcResidentPtr = std::shared_ptr< ENpcResident >; - using EObjPtr = std::shared_ptr< EObj >; - using EObjNamePtr = std::shared_ptr< EObjName >; - using EquipRaceCategoryPtr = std::shared_ptr< EquipRaceCategory >; - using EquipSlotCategoryPtr = std::shared_ptr< EquipSlotCategory >; - using EurekaAethernetPtr = std::shared_ptr< EurekaAethernet >; - using EurekaGrowDataPtr = std::shared_ptr< EurekaGrowData >; - using EurekaSphereElementAdjustPtr = std::shared_ptr< EurekaSphereElementAdjust >; - using EventActionPtr = std::shared_ptr< EventAction >; - using EventIconPriorityPtr = std::shared_ptr< EventIconPriority >; - using EventIconTypePtr = std::shared_ptr< EventIconType >; - using EventItemPtr = std::shared_ptr< EventItem >; - using EventItemCastTimelinePtr = std::shared_ptr< EventItemCastTimeline >; - using EventItemHelpPtr = std::shared_ptr< EventItemHelp >; - using EventItemTimelinePtr = std::shared_ptr< EventItemTimeline >; - using ExportedSGPtr = std::shared_ptr< ExportedSG >; - using ExVersionPtr = std::shared_ptr< ExVersion >; - using FatePtr = std::shared_ptr< Fate >; - using FCActivityPtr = std::shared_ptr< FCActivity >; - using FCActivityCategoryPtr = std::shared_ptr< FCActivityCategory >; - using FCAuthorityPtr = std::shared_ptr< FCAuthority >; - using FCAuthorityCategoryPtr = std::shared_ptr< FCAuthorityCategory >; - using FCChestNamePtr = std::shared_ptr< FCChestName >; - using FccShopPtr = std::shared_ptr< FccShop >; - using FCHierarchyPtr = std::shared_ptr< FCHierarchy >; - using FCProfilePtr = std::shared_ptr< FCProfile >; - using FCReputationPtr = std::shared_ptr< FCReputation >; - using FCRightsPtr = std::shared_ptr< FCRights >; - using FieldMarkerPtr = std::shared_ptr< FieldMarker >; - using FishingRecordTypeTransientPtr = std::shared_ptr< FishingRecordTypeTransient >; - using FishingSpotPtr = std::shared_ptr< FishingSpot >; - using FishParameterPtr = std::shared_ptr< FishParameter >; - using Frontline03Ptr = std::shared_ptr< Frontline03 >; - using Frontline04Ptr = std::shared_ptr< Frontline04 >; - using GardeningSeedPtr = std::shared_ptr< GardeningSeed >; - using GatheringConditionPtr = std::shared_ptr< GatheringCondition >; - using GatheringExpPtr = std::shared_ptr< GatheringExp >; - using GatheringItemPtr = std::shared_ptr< GatheringItem >; - using GatheringItemLevelConvertTablePtr = std::shared_ptr< GatheringItemLevelConvertTable >; - using GatheringItemPointPtr = std::shared_ptr< GatheringItemPoint >; - using GatheringLevePtr = std::shared_ptr< GatheringLeve >; - using GatheringLeveRoutePtr = std::shared_ptr< GatheringLeveRoute >; - using GatheringNotebookListPtr = std::shared_ptr< GatheringNotebookList >; - using GatheringPointPtr = std::shared_ptr< GatheringPoint >; - using GatheringPointBasePtr = std::shared_ptr< GatheringPointBase >; - using GatheringPointBonusPtr = std::shared_ptr< GatheringPointBonus >; - using GatheringPointBonusTypePtr = std::shared_ptr< GatheringPointBonusType >; - using GatheringPointNamePtr = std::shared_ptr< GatheringPointName >; - using GatheringSubCategoryPtr = std::shared_ptr< GatheringSubCategory >; - using GatheringTypePtr = std::shared_ptr< GatheringType >; - using GcArmyCaptureTacticsPtr = std::shared_ptr< GcArmyCaptureTactics >; - using GcArmyExpeditionPtr = std::shared_ptr< GcArmyExpedition >; - using GcArmyExpeditionMemberBonusPtr = std::shared_ptr< GcArmyExpeditionMemberBonus >; - using GcArmyExpeditionTypePtr = std::shared_ptr< GcArmyExpeditionType >; - using GcArmyMemberGrowPtr = std::shared_ptr< GcArmyMemberGrow >; - using GcArmyTrainingPtr = std::shared_ptr< GcArmyTraining >; - using GCRankGridaniaFemaleTextPtr = std::shared_ptr< GCRankGridaniaFemaleText >; - using GCRankGridaniaMaleTextPtr = std::shared_ptr< GCRankGridaniaMaleText >; - using GCRankLimsaFemaleTextPtr = std::shared_ptr< GCRankLimsaFemaleText >; - using GCRankLimsaMaleTextPtr = std::shared_ptr< GCRankLimsaMaleText >; - using GCRankUldahFemaleTextPtr = std::shared_ptr< GCRankUldahFemaleText >; - using GCRankUldahMaleTextPtr = std::shared_ptr< GCRankUldahMaleText >; - using GCScripShopCategoryPtr = std::shared_ptr< GCScripShopCategory >; - using GCScripShopItemPtr = std::shared_ptr< GCScripShopItem >; - using GCShopPtr = std::shared_ptr< GCShop >; - using GCShopItemCategoryPtr = std::shared_ptr< GCShopItemCategory >; - using GCSupplyDutyPtr = std::shared_ptr< GCSupplyDuty >; - using GCSupplyDutyRewardPtr = std::shared_ptr< GCSupplyDutyReward >; - using GeneralActionPtr = std::shared_ptr< GeneralAction >; - using GFATEPtr = std::shared_ptr< GFATE >; - using GilShopPtr = std::shared_ptr< GilShop >; - using GilShopItemPtr = std::shared_ptr< GilShopItem >; - using GoldSaucerArcadeMachinePtr = std::shared_ptr< GoldSaucerArcadeMachine >; - using GoldSaucerTextDataPtr = std::shared_ptr< GoldSaucerTextData >; - using GrandCompanyPtr = std::shared_ptr< GrandCompany >; - using GrandCompanyRankPtr = std::shared_ptr< GrandCompanyRank >; - using GuardianDeityPtr = std::shared_ptr< GuardianDeity >; - using GuildleveAssignmentPtr = std::shared_ptr< GuildleveAssignment >; - using GuildleveAssignmentCategoryPtr = std::shared_ptr< GuildleveAssignmentCategory >; - using GuildOrderGuidePtr = std::shared_ptr< GuildOrderGuide >; - using GuildOrderOfficerPtr = std::shared_ptr< GuildOrderOfficer >; - using HairMakeTypePtr = std::shared_ptr< HairMakeType >; - using HouseRetainerPosePtr = std::shared_ptr< HouseRetainerPose >; - using HousingAethernetPtr = std::shared_ptr< HousingAethernet >; - using HousingEmploymentNpcListPtr = std::shared_ptr< HousingEmploymentNpcList >; - using HousingEmploymentNpcRacePtr = std::shared_ptr< HousingEmploymentNpcRace >; - using HousingFurniturePtr = std::shared_ptr< HousingFurniture >; - using HousingLandSetPtr = std::shared_ptr< HousingLandSet >; - using HousingPlacementPtr = std::shared_ptr< HousingPlacement >; - using HousingPresetPtr = std::shared_ptr< HousingPreset >; - using HousingYardObjectPtr = std::shared_ptr< HousingYardObject >; - using HowToPtr = std::shared_ptr< HowTo >; - using HowToCategoryPtr = std::shared_ptr< HowToCategory >; - using HowToPagePtr = std::shared_ptr< HowToPage >; - using InstanceContentPtr = std::shared_ptr< InstanceContent >; - using InstanceContentBuffPtr = std::shared_ptr< InstanceContentBuff >; - using InstanceContentTextDataPtr = std::shared_ptr< InstanceContentTextData >; - using ItemPtr = std::shared_ptr< Item >; - using ItemActionPtr = std::shared_ptr< ItemAction >; - using ItemFoodPtr = std::shared_ptr< ItemFood >; - using ItemSearchCategoryPtr = std::shared_ptr< ItemSearchCategory >; - using ItemSeriesPtr = std::shared_ptr< ItemSeries >; - using ItemSpecialBonusPtr = std::shared_ptr< ItemSpecialBonus >; - using ItemUICategoryPtr = std::shared_ptr< ItemUICategory >; - using JournalCategoryPtr = std::shared_ptr< JournalCategory >; - using JournalGenrePtr = std::shared_ptr< JournalGenre >; - using JournalSectionPtr = std::shared_ptr< JournalSection >; - using LevePtr = std::shared_ptr< Leve >; - using LeveAssignmentTypePtr = std::shared_ptr< LeveAssignmentType >; - using LeveClientPtr = std::shared_ptr< LeveClient >; - using LevelPtr = std::shared_ptr< Level >; - using LeveRewardItemPtr = std::shared_ptr< LeveRewardItem >; - using LeveRewardItemGroupPtr = std::shared_ptr< LeveRewardItemGroup >; - using LeveVfxPtr = std::shared_ptr< LeveVfx >; - using LogFilterPtr = std::shared_ptr< LogFilter >; - using LogKindPtr = std::shared_ptr< LogKind >; - using LogKindCategoryTextPtr = std::shared_ptr< LogKindCategoryText >; - using LogMessagePtr = std::shared_ptr< LogMessage >; - using LotteryExchangeShopPtr = std::shared_ptr< LotteryExchangeShop >; - using MacroIconPtr = std::shared_ptr< MacroIcon >; - using MacroIconRedirectOldPtr = std::shared_ptr< MacroIconRedirectOld >; - using MainCommandPtr = std::shared_ptr< MainCommand >; - using MainCommandCategoryPtr = std::shared_ptr< MainCommandCategory >; - using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >; - using MapPtr = std::shared_ptr< Map >; - using MapMarkerPtr = std::shared_ptr< MapMarker >; - using MapMarkerRegionPtr = std::shared_ptr< MapMarkerRegion >; - using MapSymbolPtr = std::shared_ptr< MapSymbol >; - using MarkerPtr = std::shared_ptr< Marker >; - using MasterpieceSupplyDutyPtr = std::shared_ptr< MasterpieceSupplyDuty >; - using MasterpieceSupplyMultiplierPtr = std::shared_ptr< MasterpieceSupplyMultiplier >; - using MateriaPtr = std::shared_ptr< Materia >; - using MinionRacePtr = std::shared_ptr< MinionRace >; - using MinionRulesPtr = std::shared_ptr< MinionRules >; - using MinionSkillTypePtr = std::shared_ptr< MinionSkillType >; - using MobHuntOrderTypePtr = std::shared_ptr< MobHuntOrderType >; - using MobHuntTargetPtr = std::shared_ptr< MobHuntTarget >; - using ModelCharaPtr = std::shared_ptr< ModelChara >; - using ModelStatePtr = std::shared_ptr< ModelState >; - using MonsterNotePtr = std::shared_ptr< MonsterNote >; - using MonsterNoteTargetPtr = std::shared_ptr< MonsterNoteTarget >; - using MountPtr = std::shared_ptr< Mount >; - using MountActionPtr = std::shared_ptr< MountAction >; - using MountCustomizePtr = std::shared_ptr< MountCustomize >; - using MountFlyingConditionPtr = std::shared_ptr< MountFlyingCondition >; - using MountSpeedPtr = std::shared_ptr< MountSpeed >; - using MountTransientPtr = std::shared_ptr< MountTransient >; - using MoveTimelinePtr = std::shared_ptr< MoveTimeline >; - using MoveVfxPtr = std::shared_ptr< MoveVfx >; - using NpcEquipPtr = std::shared_ptr< NpcEquip >; - using NpcYellPtr = std::shared_ptr< NpcYell >; - using OmenPtr = std::shared_ptr< Omen >; - using OnlineStatusPtr = std::shared_ptr< OnlineStatus >; - using OpeningPtr = std::shared_ptr< Opening >; - using OrchestrionPtr = std::shared_ptr< Orchestrion >; - using OrchestrionCategoryPtr = std::shared_ptr< OrchestrionCategory >; - using OrchestrionPathPtr = std::shared_ptr< OrchestrionPath >; - using OrchestrionUiparamPtr = std::shared_ptr< OrchestrionUiparam >; - using ParamGrowPtr = std::shared_ptr< ParamGrow >; - using PartyContentCutscenePtr = std::shared_ptr< PartyContentCutscene >; - using PerformPtr = std::shared_ptr< Perform >; - using PerformTransientPtr = std::shared_ptr< PerformTransient >; - using PetPtr = std::shared_ptr< Pet >; - using PetActionPtr = std::shared_ptr< PetAction >; - using PicturePtr = std::shared_ptr< Picture >; - using PlaceNamePtr = std::shared_ptr< PlaceName >; - using PlantPotFlowerSeedPtr = std::shared_ptr< PlantPotFlowerSeed >; - using PreHandlerPtr = std::shared_ptr< PreHandler >; - using PublicContentPtr = std::shared_ptr< PublicContent >; - using PublicContentCutscenePtr = std::shared_ptr< PublicContentCutscene >; - using PublicContentTextDataPtr = std::shared_ptr< PublicContentTextData >; - using PvPActionPtr = std::shared_ptr< PvPAction >; - using PvPActionSortPtr = std::shared_ptr< PvPActionSort >; - using PvPRankPtr = std::shared_ptr< PvPRank >; - using PvPSelectTraitPtr = std::shared_ptr< PvPSelectTrait >; - using PvPTraitPtr = std::shared_ptr< PvPTrait >; - using QuestPtr = std::shared_ptr< Quest >; - using QuestClassJobRewardPtr = std::shared_ptr< QuestClassJobReward >; - using QuestClassJobSupplyPtr = std::shared_ptr< QuestClassJobSupply >; - using QuestRepeatFlagPtr = std::shared_ptr< QuestRepeatFlag >; - using QuestRewardOtherPtr = std::shared_ptr< QuestRewardOther >; - using QuickChatPtr = std::shared_ptr< QuickChat >; - using QuickChatTransientPtr = std::shared_ptr< QuickChatTransient >; - using RacePtr = std::shared_ptr< Race >; - using RacingChocoboItemPtr = std::shared_ptr< RacingChocoboItem >; - using RacingChocoboNamePtr = std::shared_ptr< RacingChocoboName >; - using RacingChocoboNameCategoryPtr = std::shared_ptr< RacingChocoboNameCategory >; - using RacingChocoboNameInfoPtr = std::shared_ptr< RacingChocoboNameInfo >; - using RacingChocoboParamPtr = std::shared_ptr< RacingChocoboParam >; - using RecipePtr = std::shared_ptr< Recipe >; - using RecipeElementPtr = std::shared_ptr< RecipeElement >; - using RecipeLevelTablePtr = std::shared_ptr< RecipeLevelTable >; - using RecipeNotebookListPtr = std::shared_ptr< RecipeNotebookList >; - using RecommendContentsPtr = std::shared_ptr< RecommendContents >; - using RelicPtr = std::shared_ptr< Relic >; - using Relic3Ptr = std::shared_ptr< Relic3 >; - using RelicItemPtr = std::shared_ptr< RelicItem >; - using RelicNotePtr = std::shared_ptr< RelicNote >; - using RelicNoteCategoryPtr = std::shared_ptr< RelicNoteCategory >; - using ResidentPtr = std::shared_ptr< Resident >; - using RetainerTaskPtr = std::shared_ptr< RetainerTask >; - using RetainerTaskLvRangePtr = std::shared_ptr< RetainerTaskLvRange >; - using RetainerTaskNormalPtr = std::shared_ptr< RetainerTaskNormal >; - using RetainerTaskParameterPtr = std::shared_ptr< RetainerTaskParameter >; - using RetainerTaskRandomPtr = std::shared_ptr< RetainerTaskRandom >; - using RPParameterPtr = std::shared_ptr< RPParameter >; - using SalvagePtr = std::shared_ptr< Salvage >; - using SatisfactionNpcPtr = std::shared_ptr< SatisfactionNpc >; - using SatisfactionSupplyPtr = std::shared_ptr< SatisfactionSupply >; - using SatisfactionSupplyRewardPtr = std::shared_ptr< SatisfactionSupplyReward >; - using ScenarioTreePtr = std::shared_ptr< ScenarioTree >; - using ScenarioTreeTipsPtr = std::shared_ptr< ScenarioTreeTips >; - using ScenarioTreeTipsClassQuestPtr = std::shared_ptr< ScenarioTreeTipsClassQuest >; - using ScenarioTreeTipsQuestPtr = std::shared_ptr< ScenarioTreeTipsQuest >; - using ScenarioTypePtr = std::shared_ptr< ScenarioType >; - using ScreenImagePtr = std::shared_ptr< ScreenImage >; - using SecretRecipeBookPtr = std::shared_ptr< SecretRecipeBook >; - using SkyIsland2MissionPtr = std::shared_ptr< SkyIsland2Mission >; - using SkyIsland2MissionDetailPtr = std::shared_ptr< SkyIsland2MissionDetail >; - using SkyIsland2MissionTypePtr = std::shared_ptr< SkyIsland2MissionType >; - using SkyIsland2RangeTypePtr = std::shared_ptr< SkyIsland2RangeType >; - using SpearfishingItemPtr = std::shared_ptr< SpearfishingItem >; - using SpearfishingNotebookPtr = std::shared_ptr< SpearfishingNotebook >; - using SpearfishingRecordPagePtr = std::shared_ptr< SpearfishingRecordPage >; - using SpecialShopPtr = std::shared_ptr< SpecialShop >; - using SpecialShopItemCategoryPtr = std::shared_ptr< SpecialShopItemCategory >; - using StainPtr = std::shared_ptr< Stain >; - using StainTransientPtr = std::shared_ptr< StainTransient >; - using StatusPtr = std::shared_ptr< Status >; - using StatusHitEffectPtr = std::shared_ptr< StatusHitEffect >; - using StatusLoopVFXPtr = std::shared_ptr< StatusLoopVFX >; - using StoryPtr = std::shared_ptr< Story >; - using SubmarineExplorationPtr = std::shared_ptr< SubmarineExploration >; - using SubmarinePartPtr = std::shared_ptr< SubmarinePart >; - using SubmarineRankPtr = std::shared_ptr< SubmarineRank >; - using SwitchTalkPtr = std::shared_ptr< SwitchTalk >; - using TerritoryTypePtr = std::shared_ptr< TerritoryType >; - using TextCommandPtr = std::shared_ptr< TextCommand >; - using TitlePtr = std::shared_ptr< Title >; - using TomestonesPtr = std::shared_ptr< Tomestones >; - using TomestonesItemPtr = std::shared_ptr< TomestonesItem >; - using TopicSelectPtr = std::shared_ptr< TopicSelect >; - using TownPtr = std::shared_ptr< Town >; - using TraitPtr = std::shared_ptr< Trait >; - using TraitRecastPtr = std::shared_ptr< TraitRecast >; - using TraitTransientPtr = std::shared_ptr< TraitTransient >; - using TransformationPtr = std::shared_ptr< Transformation >; - using TreasurePtr = std::shared_ptr< Treasure >; - using TreasureHuntRankPtr = std::shared_ptr< TreasureHuntRank >; - using TribePtr = std::shared_ptr< Tribe >; - using TripleTriadPtr = std::shared_ptr< TripleTriad >; - using TripleTriadCardPtr = std::shared_ptr< TripleTriadCard >; - using TripleTriadCardRarityPtr = std::shared_ptr< TripleTriadCardRarity >; - using TripleTriadCardResidentPtr = std::shared_ptr< TripleTriadCardResident >; - using TripleTriadCardTypePtr = std::shared_ptr< TripleTriadCardType >; - using TripleTriadCompetitionPtr = std::shared_ptr< TripleTriadCompetition >; - using TripleTriadRulePtr = std::shared_ptr< TripleTriadRule >; - using TutorialPtr = std::shared_ptr< Tutorial >; - using TutorialDPSPtr = std::shared_ptr< TutorialDPS >; - using TutorialHealerPtr = std::shared_ptr< TutorialHealer >; - using TutorialTankPtr = std::shared_ptr< TutorialTank >; - using VaseFlowerPtr = std::shared_ptr< VaseFlower >; - using VFXPtr = std::shared_ptr< VFX >; - using WarpPtr = std::shared_ptr< Warp >; - using WarpConditionPtr = std::shared_ptr< WarpCondition >; - using WarpLogicPtr = std::shared_ptr< WarpLogic >; - using WeatherPtr = std::shared_ptr< Weather >; - using WeatherGroupPtr = std::shared_ptr< WeatherGroup >; - using WeatherRatePtr = std::shared_ptr< WeatherRate >; - using WeddingBGMPtr = std::shared_ptr< WeddingBGM >; - using WeeklyBingoOrderDataPtr = std::shared_ptr< WeeklyBingoOrderData >; - using WeeklyBingoRewardDataPtr = std::shared_ptr< WeeklyBingoRewardData >; - using WeeklyBingoTextPtr = std::shared_ptr< WeeklyBingoText >; - using WeeklyLotBonusPtr = std::shared_ptr< WeeklyLotBonus >; - using WorldPtr = std::shared_ptr< World >; - using WorldDCGroupTypePtr = std::shared_ptr< WorldDCGroupType >; - using YKWPtr = std::shared_ptr< YKW >; - using ZoneSharedGroupPtr = std::shared_ptr< ZoneSharedGroup >; + using AchievementPtr = std::shared_ptr< Achievement >; + using AchievementCategoryPtr = std::shared_ptr< AchievementCategory >; + using AchievementKindPtr = std::shared_ptr< AchievementKind >; + using ActionPtr = std::shared_ptr< Action >; + using ActionCastTimelinePtr = std::shared_ptr< ActionCastTimeline >; + using ActionCastVFXPtr = std::shared_ptr< ActionCastVFX >; + using ActionCategoryPtr = std::shared_ptr< ActionCategory >; + using ActionComboRoutePtr = std::shared_ptr< ActionComboRoute >; + using ActionIndirectionPtr = std::shared_ptr< ActionIndirection >; + using ActionParamPtr = std::shared_ptr< ActionParam >; + using ActionProcStatusPtr = std::shared_ptr< ActionProcStatus >; + using ActionTimelinePtr = std::shared_ptr< ActionTimeline >; + using ActionTimelineMovePtr = std::shared_ptr< ActionTimelineMove >; + using ActionTimelineReplacePtr = std::shared_ptr< ActionTimelineReplace >; + using ActionTransientPtr = std::shared_ptr< ActionTransient >; + using ActivityFeedButtonsPtr = std::shared_ptr< ActivityFeedButtons >; + using ActivityFeedCaptionsPtr = std::shared_ptr< ActivityFeedCaptions >; + using ActivityFeedGroupCaptionsPtr = std::shared_ptr< ActivityFeedGroupCaptions >; + using ActivityFeedImagesPtr = std::shared_ptr< ActivityFeedImages >; + using AddonPtr = std::shared_ptr< Addon >; + using AddonHudPtr = std::shared_ptr< AddonHud >; + using AdventurePtr = std::shared_ptr< Adventure >; + using AdventureExPhasePtr = std::shared_ptr< AdventureExPhase >; + using AetherCurrentPtr = std::shared_ptr< AetherCurrent >; + using AetherCurrentCompFlgSetPtr = std::shared_ptr< AetherCurrentCompFlgSet >; + using AetherialWheelPtr = std::shared_ptr< AetherialWheel >; + using AetherytePtr = std::shared_ptr< Aetheryte >; + using AetheryteSystemDefinePtr = std::shared_ptr< AetheryteSystemDefine >; + using AirshipExplorationLevelPtr = std::shared_ptr< AirshipExplorationLevel >; + using AirshipExplorationLogPtr = std::shared_ptr< AirshipExplorationLog >; + using AirshipExplorationParamTypePtr = std::shared_ptr< AirshipExplorationParamType >; + using AirshipExplorationPartPtr = std::shared_ptr< AirshipExplorationPart >; + using AirshipExplorationPointPtr = std::shared_ptr< AirshipExplorationPoint >; + using AnimaWeapon5Ptr = std::shared_ptr< AnimaWeapon5 >; + using AnimaWeapon5ParamPtr = std::shared_ptr< AnimaWeapon5Param >; + using AnimaWeapon5PatternGroupPtr = std::shared_ptr< AnimaWeapon5PatternGroup >; + using AnimaWeapon5SpiritTalkPtr = std::shared_ptr< AnimaWeapon5SpiritTalk >; + using AnimaWeapon5SpiritTalkParamPtr = std::shared_ptr< AnimaWeapon5SpiritTalkParam >; + using AnimaWeapon5TradeItemPtr = std::shared_ptr< AnimaWeapon5TradeItem >; + using AnimaWeaponFUITalkPtr = std::shared_ptr< AnimaWeaponFUITalk >; + using AnimaWeaponFUITalkParamPtr = std::shared_ptr< AnimaWeaponFUITalkParam >; + using AnimaWeaponIconPtr = std::shared_ptr< AnimaWeaponIcon >; + using AnimaWeaponItemPtr = std::shared_ptr< AnimaWeaponItem >; + using AquariumFishPtr = std::shared_ptr< AquariumFish >; + using AquariumWaterPtr = std::shared_ptr< AquariumWater >; + using ArrayEventHandlerPtr = std::shared_ptr< ArrayEventHandler >; + using AttackTypePtr = std::shared_ptr< AttackType >; + using BacklightColorPtr = std::shared_ptr< BacklightColor >; + using BalloonPtr = std::shared_ptr< Balloon >; + using BaseParamPtr = std::shared_ptr< BaseParam >; + using BattleLevePtr = std::shared_ptr< BattleLeve >; + using BeastRankBonusPtr = std::shared_ptr< BeastRankBonus >; + using BeastReputationRankPtr = std::shared_ptr< BeastReputationRank >; + using BeastTribePtr = std::shared_ptr< BeastTribe >; + using BehaviorPtr = std::shared_ptr< Behavior >; + using BGMPtr = std::shared_ptr< BGM >; + using BGMFadePtr = std::shared_ptr< BGMFade >; + using BGMSituationPtr = std::shared_ptr< BGMSituation >; + using BGMSwitchPtr = std::shared_ptr< BGMSwitch >; + using BGMSystemDefinePtr = std::shared_ptr< BGMSystemDefine >; + using BNpcAnnounceIconPtr = std::shared_ptr< BNpcAnnounceIcon >; + using BNpcBasePtr = std::shared_ptr< BNpcBase >; + using BNpcCustomizePtr = std::shared_ptr< BNpcCustomize >; + using BNpcNamePtr = std::shared_ptr< BNpcName >; + using BNpcPartsPtr = std::shared_ptr< BNpcParts >; + using BuddyPtr = std::shared_ptr< Buddy >; + using BuddyActionPtr = std::shared_ptr< BuddyAction >; + using BuddyEquipPtr = std::shared_ptr< BuddyEquip >; + using BuddyItemPtr = std::shared_ptr< BuddyItem >; + using BuddyRankPtr = std::shared_ptr< BuddyRank >; + using BuddySkillPtr = std::shared_ptr< BuddySkill >; + using CabinetPtr = std::shared_ptr< Cabinet >; + using CabinetCategoryPtr = std::shared_ptr< CabinetCategory >; + using CalendarPtr = std::shared_ptr< Calendar >; + using CharaMakeCustomizePtr = std::shared_ptr< CharaMakeCustomize >; + using CharaMakeTypePtr = std::shared_ptr< CharaMakeType >; + using ChocoboRacePtr = std::shared_ptr< ChocoboRace >; + using ChocoboRaceAbilityPtr = std::shared_ptr< ChocoboRaceAbility >; + using ChocoboRaceAbilityTypePtr = std::shared_ptr< ChocoboRaceAbilityType >; + using ChocoboRaceItemPtr = std::shared_ptr< ChocoboRaceItem >; + using ChocoboRaceRankPtr = std::shared_ptr< ChocoboRaceRank >; + using ChocoboRaceStatusPtr = std::shared_ptr< ChocoboRaceStatus >; + using ChocoboRaceTerritoryPtr = std::shared_ptr< ChocoboRaceTerritory >; + using ChocoboRaceTutorialPtr = std::shared_ptr< ChocoboRaceTutorial >; + using ChocoboRaceWeatherPtr = std::shared_ptr< ChocoboRaceWeather >; + using ChocoboTaxiPtr = std::shared_ptr< ChocoboTaxi >; + using ChocoboTaxiStandPtr = std::shared_ptr< ChocoboTaxiStand >; + using ClassJobPtr = std::shared_ptr< ClassJob >; + using ClassJobCategoryPtr = std::shared_ptr< ClassJobCategory >; + using CompanionPtr = std::shared_ptr< Companion >; + using CompanionMovePtr = std::shared_ptr< CompanionMove >; + using CompanionTransientPtr = std::shared_ptr< CompanionTransient >; + using CompanyActionPtr = std::shared_ptr< CompanyAction >; + using CompanyCraftDraftPtr = std::shared_ptr< CompanyCraftDraft >; + using CompanyCraftDraftCategoryPtr = std::shared_ptr< CompanyCraftDraftCategory >; + using CompanyCraftManufactoryStatePtr = std::shared_ptr< CompanyCraftManufactoryState >; + using CompanyCraftPartPtr = std::shared_ptr< CompanyCraftPart >; + using CompanyCraftProcessPtr = std::shared_ptr< CompanyCraftProcess >; + using CompanyCraftSequencePtr = std::shared_ptr< CompanyCraftSequence >; + using CompanyCraftSupplyItemPtr = std::shared_ptr< CompanyCraftSupplyItem >; + using CompanyCraftTypePtr = std::shared_ptr< CompanyCraftType >; + using CompleteJournalPtr = std::shared_ptr< CompleteJournal >; + using CompleteJournalCategoryPtr = std::shared_ptr< CompleteJournalCategory >; + using ContentCloseCyclePtr = std::shared_ptr< ContentCloseCycle >; + using ContentExActionPtr = std::shared_ptr< ContentExAction >; + using ContentFinderConditionPtr = std::shared_ptr< ContentFinderCondition >; + using ContentFinderConditionTransientPtr = std::shared_ptr< ContentFinderConditionTransient >; + using ContentGaugePtr = std::shared_ptr< ContentGauge >; + using ContentGaugeColorPtr = std::shared_ptr< ContentGaugeColor >; + using ContentMemberTypePtr = std::shared_ptr< ContentMemberType >; + using ContentNpcTalkPtr = std::shared_ptr< ContentNpcTalk >; + using ContentRoulettePtr = std::shared_ptr< ContentRoulette >; + using ContentRouletteOpenRulePtr = std::shared_ptr< ContentRouletteOpenRule >; + using ContentRouletteRoleBonusPtr = std::shared_ptr< ContentRouletteRoleBonus >; + using ContentsNotePtr = std::shared_ptr< ContentsNote >; + using ContentTalkPtr = std::shared_ptr< ContentTalk >; + using ContentTalkParamPtr = std::shared_ptr< ContentTalkParam >; + using ContentTypePtr = std::shared_ptr< ContentType >; + using CraftActionPtr = std::shared_ptr< CraftAction >; + using CraftLevePtr = std::shared_ptr< CraftLeve >; + using CraftTypePtr = std::shared_ptr< CraftType >; + using CreditPtr = std::shared_ptr< Credit >; + using CreditCastPtr = std::shared_ptr< CreditCast >; + using CurrencyPtr = std::shared_ptr< Currency >; + using CustomTalkPtr = std::shared_ptr< CustomTalk >; + using CutscenePtr = std::shared_ptr< Cutscene >; + using CutScreenImagePtr = std::shared_ptr< CutScreenImage >; + using DailySupplyItemPtr = std::shared_ptr< DailySupplyItem >; + using DeepDungeonPtr = std::shared_ptr< DeepDungeon >; + using DeepDungeonBanPtr = std::shared_ptr< DeepDungeonBan >; + using DeepDungeonDangerPtr = std::shared_ptr< DeepDungeonDanger >; + using DeepDungeonEquipmentPtr = std::shared_ptr< DeepDungeonEquipment >; + using DeepDungeonFloorEffectUIPtr = std::shared_ptr< DeepDungeonFloorEffectUI >; + using DeepDungeonItemPtr = std::shared_ptr< DeepDungeonItem >; + using DeepDungeonLayerPtr = std::shared_ptr< DeepDungeonLayer >; + using DeepDungeonMagicStonePtr = std::shared_ptr< DeepDungeonMagicStone >; + using DeepDungeonMap5XPtr = std::shared_ptr< DeepDungeonMap5X >; + using DeepDungeonRoomPtr = std::shared_ptr< DeepDungeonRoom >; + using DeepDungeonStatusPtr = std::shared_ptr< DeepDungeonStatus >; + using DefaultTalkPtr = std::shared_ptr< DefaultTalk >; + using DefaultTalkLipSyncTypePtr = std::shared_ptr< DefaultTalkLipSyncType >; + using DeliveryQuestPtr = std::shared_ptr< DeliveryQuest >; + using DisposalShopPtr = std::shared_ptr< DisposalShop >; + using DisposalShopFilterTypePtr = std::shared_ptr< DisposalShopFilterType >; + using DisposalShopItemPtr = std::shared_ptr< DisposalShopItem >; + using DpsChallengePtr = std::shared_ptr< DpsChallenge >; + using DpsChallengeOfficerPtr = std::shared_ptr< DpsChallengeOfficer >; + using DpsChallengeTransientPtr = std::shared_ptr< DpsChallengeTransient >; + using EmotePtr = std::shared_ptr< Emote >; + using EmoteCategoryPtr = std::shared_ptr< EmoteCategory >; + using ENpcBasePtr = std::shared_ptr< ENpcBase >; + using ENpcResidentPtr = std::shared_ptr< ENpcResident >; + using EObjPtr = std::shared_ptr< EObj >; + using EObjNamePtr = std::shared_ptr< EObjName >; + using EquipRaceCategoryPtr = std::shared_ptr< EquipRaceCategory >; + using EquipSlotCategoryPtr = std::shared_ptr< EquipSlotCategory >; + using EurekaAetherItemPtr = std::shared_ptr< EurekaAetherItem >; + using EurekaAethernetPtr = std::shared_ptr< EurekaAethernet >; + using EurekaGrowDataPtr = std::shared_ptr< EurekaGrowData >; + using EurekaLogosMixerProbabilityPtr = std::shared_ptr< EurekaLogosMixerProbability >; + using EurekaMagiaActionPtr = std::shared_ptr< EurekaMagiaAction >; + using EurekaMagiciteItemPtr = std::shared_ptr< EurekaMagiciteItem >; + using EurekaMagiciteItemTypePtr = std::shared_ptr< EurekaMagiciteItemType >; + using EurekaSphereElementAdjustPtr = std::shared_ptr< EurekaSphereElementAdjust >; + using EventActionPtr = std::shared_ptr< EventAction >; + using EventIconPriorityPtr = std::shared_ptr< EventIconPriority >; + using EventIconTypePtr = std::shared_ptr< EventIconType >; + using EventItemPtr = std::shared_ptr< EventItem >; + using EventItemCastTimelinePtr = std::shared_ptr< EventItemCastTimeline >; + using EventItemHelpPtr = std::shared_ptr< EventItemHelp >; + using EventItemTimelinePtr = std::shared_ptr< EventItemTimeline >; + using ExportedSGPtr = std::shared_ptr< ExportedSG >; + using ExVersionPtr = std::shared_ptr< ExVersion >; + using FatePtr = std::shared_ptr< Fate >; + using FCActivityPtr = std::shared_ptr< FCActivity >; + using FCActivityCategoryPtr = std::shared_ptr< FCActivityCategory >; + using FCAuthorityPtr = std::shared_ptr< FCAuthority >; + using FCAuthorityCategoryPtr = std::shared_ptr< FCAuthorityCategory >; + using FCChestNamePtr = std::shared_ptr< FCChestName >; + using FccShopPtr = std::shared_ptr< FccShop >; + using FCHierarchyPtr = std::shared_ptr< FCHierarchy >; + using FCProfilePtr = std::shared_ptr< FCProfile >; + using FCReputationPtr = std::shared_ptr< FCReputation >; + using FCRightsPtr = std::shared_ptr< FCRights >; + using FestivalPtr = std::shared_ptr< Festival >; + using FieldMarkerPtr = std::shared_ptr< FieldMarker >; + using FishingRecordTypePtr = std::shared_ptr< FishingRecordType >; + using FishingRecordTypeTransientPtr = std::shared_ptr< FishingRecordTypeTransient >; + using FishingSpotPtr = std::shared_ptr< FishingSpot >; + using FishParameterPtr = std::shared_ptr< FishParameter >; + using Frontline03Ptr = std::shared_ptr< Frontline03 >; + using Frontline04Ptr = std::shared_ptr< Frontline04 >; + using GardeningSeedPtr = std::shared_ptr< GardeningSeed >; + using GatheringConditionPtr = std::shared_ptr< GatheringCondition >; + using GatheringExpPtr = std::shared_ptr< GatheringExp >; + using GatheringItemPtr = std::shared_ptr< GatheringItem >; + using GatheringItemLevelConvertTablePtr = std::shared_ptr< GatheringItemLevelConvertTable >; + using GatheringItemPointPtr = std::shared_ptr< GatheringItemPoint >; + using GatheringLevePtr = std::shared_ptr< GatheringLeve >; + using GatheringLeveRoutePtr = std::shared_ptr< GatheringLeveRoute >; + using GatheringNotebookListPtr = std::shared_ptr< GatheringNotebookList >; + using GatheringPointPtr = std::shared_ptr< GatheringPoint >; + using GatheringPointBasePtr = std::shared_ptr< GatheringPointBase >; + using GatheringPointBonusPtr = std::shared_ptr< GatheringPointBonus >; + using GatheringPointBonusTypePtr = std::shared_ptr< GatheringPointBonusType >; + using GatheringPointNamePtr = std::shared_ptr< GatheringPointName >; + using GatheringSubCategoryPtr = std::shared_ptr< GatheringSubCategory >; + using GatheringTypePtr = std::shared_ptr< GatheringType >; + using GcArmyCaptureTacticsPtr = std::shared_ptr< GcArmyCaptureTactics >; + using GcArmyExpeditionPtr = std::shared_ptr< GcArmyExpedition >; + using GcArmyExpeditionMemberBonusPtr = std::shared_ptr< GcArmyExpeditionMemberBonus >; + using GcArmyExpeditionTypePtr = std::shared_ptr< GcArmyExpeditionType >; + using GcArmyMemberGrowPtr = std::shared_ptr< GcArmyMemberGrow >; + using GcArmyTrainingPtr = std::shared_ptr< GcArmyTraining >; + using GCRankGridaniaFemaleTextPtr = std::shared_ptr< GCRankGridaniaFemaleText >; + using GCRankGridaniaMaleTextPtr = std::shared_ptr< GCRankGridaniaMaleText >; + using GCRankLimsaFemaleTextPtr = std::shared_ptr< GCRankLimsaFemaleText >; + using GCRankLimsaMaleTextPtr = std::shared_ptr< GCRankLimsaMaleText >; + using GCRankUldahFemaleTextPtr = std::shared_ptr< GCRankUldahFemaleText >; + using GCRankUldahMaleTextPtr = std::shared_ptr< GCRankUldahMaleText >; + using GCScripShopCategoryPtr = std::shared_ptr< GCScripShopCategory >; + using GCScripShopItemPtr = std::shared_ptr< GCScripShopItem >; + using GCShopPtr = std::shared_ptr< GCShop >; + using GCShopItemCategoryPtr = std::shared_ptr< GCShopItemCategory >; + using GCSupplyDutyPtr = std::shared_ptr< GCSupplyDuty >; + using GCSupplyDutyRewardPtr = std::shared_ptr< GCSupplyDutyReward >; + using GeneralActionPtr = std::shared_ptr< GeneralAction >; + using GFATEPtr = std::shared_ptr< GFATE >; + using GFateClimbing2Ptr = std::shared_ptr< GFateClimbing2 >; + using GFateClimbing2ContentPtr = std::shared_ptr< GFateClimbing2Content >; + using GFateClimbing2TotemTypePtr = std::shared_ptr< GFateClimbing2TotemType >; + using GilShopPtr = std::shared_ptr< GilShop >; + using GilShopItemPtr = std::shared_ptr< GilShopItem >; + using GoldSaucerArcadeMachinePtr = std::shared_ptr< GoldSaucerArcadeMachine >; + using GoldSaucerTextDataPtr = std::shared_ptr< GoldSaucerTextData >; + using GrandCompanyPtr = std::shared_ptr< GrandCompany >; + using GrandCompanyRankPtr = std::shared_ptr< GrandCompanyRank >; + using GuardianDeityPtr = std::shared_ptr< GuardianDeity >; + using GuildleveAssignmentPtr = std::shared_ptr< GuildleveAssignment >; + using GuildleveAssignmentCategoryPtr = std::shared_ptr< GuildleveAssignmentCategory >; + using GuildOrderGuidePtr = std::shared_ptr< GuildOrderGuide >; + using GuildOrderOfficerPtr = std::shared_ptr< GuildOrderOfficer >; + using HairMakeTypePtr = std::shared_ptr< HairMakeType >; + using HouseRetainerPosePtr = std::shared_ptr< HouseRetainerPose >; + using HousingAethernetPtr = std::shared_ptr< HousingAethernet >; + using HousingAppealPtr = std::shared_ptr< HousingAppeal >; + using HousingEmploymentNpcListPtr = std::shared_ptr< HousingEmploymentNpcList >; + using HousingEmploymentNpcRacePtr = std::shared_ptr< HousingEmploymentNpcRace >; + using HousingExteriorPtr = std::shared_ptr< HousingExterior >; + using HousingFurniturePtr = std::shared_ptr< HousingFurniture >; + using HousingMapMarkerInfoPtr = std::shared_ptr< HousingMapMarkerInfo >; + using HousingMerchantPosePtr = std::shared_ptr< HousingMerchantPose >; + using HousingLandSetPtr = std::shared_ptr< HousingLandSet >; + using HousingPlacementPtr = std::shared_ptr< HousingPlacement >; + using HousingPresetPtr = std::shared_ptr< HousingPreset >; + using HousingUnitedExteriorPtr = std::shared_ptr< HousingUnitedExterior >; + using HousingYardObjectPtr = std::shared_ptr< HousingYardObject >; + using HowToPtr = std::shared_ptr< HowTo >; + using HowToCategoryPtr = std::shared_ptr< HowToCategory >; + using HowToPagePtr = std::shared_ptr< HowToPage >; + using InstanceContentPtr = std::shared_ptr< InstanceContent >; + using InstanceContentBuffPtr = std::shared_ptr< InstanceContentBuff >; + using InstanceContentTextDataPtr = std::shared_ptr< InstanceContentTextData >; + using ItemPtr = std::shared_ptr< Item >; + using ItemActionPtr = std::shared_ptr< ItemAction >; + using ItemFoodPtr = std::shared_ptr< ItemFood >; + using ItemLevelPtr = std::shared_ptr< ItemLevel >; + using ItemSearchCategoryPtr = std::shared_ptr< ItemSearchCategory >; + using ItemSeriesPtr = std::shared_ptr< ItemSeries >; + using ItemSpecialBonusPtr = std::shared_ptr< ItemSpecialBonus >; + using ItemUICategoryPtr = std::shared_ptr< ItemUICategory >; + using JournalCategoryPtr = std::shared_ptr< JournalCategory >; + using JournalGenrePtr = std::shared_ptr< JournalGenre >; + using JournalSectionPtr = std::shared_ptr< JournalSection >; + using LevePtr = std::shared_ptr< Leve >; + using LeveAssignmentTypePtr = std::shared_ptr< LeveAssignmentType >; + using LeveClientPtr = std::shared_ptr< LeveClient >; + using LevelPtr = std::shared_ptr< Level >; + using LeveRewardItemPtr = std::shared_ptr< LeveRewardItem >; + using LeveRewardItemGroupPtr = std::shared_ptr< LeveRewardItemGroup >; + using LeveVfxPtr = std::shared_ptr< LeveVfx >; + using LogFilterPtr = std::shared_ptr< LogFilter >; + using LogKindPtr = std::shared_ptr< LogKind >; + using LogKindCategoryTextPtr = std::shared_ptr< LogKindCategoryText >; + using LogMessagePtr = std::shared_ptr< LogMessage >; + using LotteryExchangeShopPtr = std::shared_ptr< LotteryExchangeShop >; + using MacroIconPtr = std::shared_ptr< MacroIcon >; + using MacroIconRedirectOldPtr = std::shared_ptr< MacroIconRedirectOld >; + using MainCommandPtr = std::shared_ptr< MainCommand >; + using MainCommandCategoryPtr = std::shared_ptr< MainCommandCategory >; + using ManeuversArmorPtr = std::shared_ptr< ManeuversArmor >; + using MapPtr = std::shared_ptr< Map >; + using MapMarkerPtr = std::shared_ptr< MapMarker >; + using MapMarkerRegionPtr = std::shared_ptr< MapMarkerRegion >; + using MapSymbolPtr = std::shared_ptr< MapSymbol >; + using MarkerPtr = std::shared_ptr< Marker >; + using MasterpieceSupplyDutyPtr = std::shared_ptr< MasterpieceSupplyDuty >; + using MasterpieceSupplyMultiplierPtr = std::shared_ptr< MasterpieceSupplyMultiplier >; + using MateriaPtr = std::shared_ptr< Materia >; + using MiniGameRAPtr = std::shared_ptr< MiniGameRA >; + using MinionRacePtr = std::shared_ptr< MinionRace >; + using MinionRulesPtr = std::shared_ptr< MinionRules >; + using MinionSkillTypePtr = std::shared_ptr< MinionSkillType >; + using MobHuntOrderTypePtr = std::shared_ptr< MobHuntOrderType >; + using MobHuntTargetPtr = std::shared_ptr< MobHuntTarget >; + using ModelCharaPtr = std::shared_ptr< ModelChara >; + using ModelStatePtr = std::shared_ptr< ModelState >; + using MonsterNotePtr = std::shared_ptr< MonsterNote >; + using MonsterNoteTargetPtr = std::shared_ptr< MonsterNoteTarget >; + using MountPtr = std::shared_ptr< Mount >; + using MountActionPtr = std::shared_ptr< MountAction >; + using MountCustomizePtr = std::shared_ptr< MountCustomize >; + using MountFlyingConditionPtr = std::shared_ptr< MountFlyingCondition >; + using MountSpeedPtr = std::shared_ptr< MountSpeed >; + using MountTransientPtr = std::shared_ptr< MountTransient >; + using MoveTimelinePtr = std::shared_ptr< MoveTimeline >; + using MoveVfxPtr = std::shared_ptr< MoveVfx >; + using NpcEquipPtr = std::shared_ptr< NpcEquip >; + using NpcYellPtr = std::shared_ptr< NpcYell >; + using OmenPtr = std::shared_ptr< Omen >; + using OnlineStatusPtr = std::shared_ptr< OnlineStatus >; + using OpeningPtr = std::shared_ptr< Opening >; + using OrchestrionPtr = std::shared_ptr< Orchestrion >; + using OrchestrionCategoryPtr = std::shared_ptr< OrchestrionCategory >; + using OrchestrionPathPtr = std::shared_ptr< OrchestrionPath >; + using OrchestrionUiparamPtr = std::shared_ptr< OrchestrionUiparam >; + using ParamGrowPtr = std::shared_ptr< ParamGrow >; + using PartyContentPtr = std::shared_ptr< PartyContent >; + using PartyContentCutscenePtr = std::shared_ptr< PartyContentCutscene >; + using PartyContentTextDataPtr = std::shared_ptr< PartyContentTextData >; + using PerformPtr = std::shared_ptr< Perform >; + using PerformTransientPtr = std::shared_ptr< PerformTransient >; + using PetPtr = std::shared_ptr< Pet >; + using PetActionPtr = std::shared_ptr< PetAction >; + using PicturePtr = std::shared_ptr< Picture >; + using PlaceNamePtr = std::shared_ptr< PlaceName >; + using PlantPotFlowerSeedPtr = std::shared_ptr< PlantPotFlowerSeed >; + using PreHandlerPtr = std::shared_ptr< PreHandler >; + using PublicContentPtr = std::shared_ptr< PublicContent >; + using PublicContentCutscenePtr = std::shared_ptr< PublicContentCutscene >; + using PublicContentTextDataPtr = std::shared_ptr< PublicContentTextData >; + using PvPActionPtr = std::shared_ptr< PvPAction >; + using PvPActionSortPtr = std::shared_ptr< PvPActionSort >; + using PvPRankPtr = std::shared_ptr< PvPRank >; + using PvPSelectTraitPtr = std::shared_ptr< PvPSelectTrait >; + using PvPTraitPtr = std::shared_ptr< PvPTrait >; + using QuestPtr = std::shared_ptr< Quest >; + using QuestClassJobRewardPtr = std::shared_ptr< QuestClassJobReward >; + using QuestClassJobSupplyPtr = std::shared_ptr< QuestClassJobSupply >; + using QuestRepeatFlagPtr = std::shared_ptr< QuestRepeatFlag >; + using QuestRewardOtherPtr = std::shared_ptr< QuestRewardOther >; + using QuickChatPtr = std::shared_ptr< QuickChat >; + using QuickChatTransientPtr = std::shared_ptr< QuickChatTransient >; + using RacePtr = std::shared_ptr< Race >; + using RacingChocoboItemPtr = std::shared_ptr< RacingChocoboItem >; + using RacingChocoboNamePtr = std::shared_ptr< RacingChocoboName >; + using RacingChocoboNameCategoryPtr = std::shared_ptr< RacingChocoboNameCategory >; + using RacingChocoboNameInfoPtr = std::shared_ptr< RacingChocoboNameInfo >; + using RacingChocoboParamPtr = std::shared_ptr< RacingChocoboParam >; + using RecipePtr = std::shared_ptr< Recipe >; + using RecipeElementPtr = std::shared_ptr< RecipeElement >; + using RecipeLevelTablePtr = std::shared_ptr< RecipeLevelTable >; + using RecipeNotebookListPtr = std::shared_ptr< RecipeNotebookList >; + using RecommendContentsPtr = std::shared_ptr< RecommendContents >; + using RelicPtr = std::shared_ptr< Relic >; + using Relic3Ptr = std::shared_ptr< Relic3 >; + using RelicItemPtr = std::shared_ptr< RelicItem >; + using RelicNotePtr = std::shared_ptr< RelicNote >; + using RelicNoteCategoryPtr = std::shared_ptr< RelicNoteCategory >; + using ResidentPtr = std::shared_ptr< Resident >; + using RetainerTaskPtr = std::shared_ptr< RetainerTask >; + using RetainerTaskLvRangePtr = std::shared_ptr< RetainerTaskLvRange >; + using RetainerTaskNormalPtr = std::shared_ptr< RetainerTaskNormal >; + using RetainerTaskParameterPtr = std::shared_ptr< RetainerTaskParameter >; + using RetainerTaskRandomPtr = std::shared_ptr< RetainerTaskRandom >; + using RPParameterPtr = std::shared_ptr< RPParameter >; + using SalvagePtr = std::shared_ptr< Salvage >; + using SatisfactionNpcPtr = std::shared_ptr< SatisfactionNpc >; + using SatisfactionSupplyPtr = std::shared_ptr< SatisfactionSupply >; + using SatisfactionSupplyRewardPtr = std::shared_ptr< SatisfactionSupplyReward >; + using ScenarioTreePtr = std::shared_ptr< ScenarioTree >; + using ScenarioTreeTipsPtr = std::shared_ptr< ScenarioTreeTips >; + using ScenarioTreeTipsClassQuestPtr = std::shared_ptr< ScenarioTreeTipsClassQuest >; + using ScenarioTreeTipsQuestPtr = std::shared_ptr< ScenarioTreeTipsQuest >; + using ScenarioTypePtr = std::shared_ptr< ScenarioType >; + using ScreenImagePtr = std::shared_ptr< ScreenImage >; + using SecretRecipeBookPtr = std::shared_ptr< SecretRecipeBook >; + using SkyIsland2MissionPtr = std::shared_ptr< SkyIsland2Mission >; + using SkyIsland2MissionDetailPtr = std::shared_ptr< SkyIsland2MissionDetail >; + using SkyIsland2MissionTypePtr = std::shared_ptr< SkyIsland2MissionType >; + using SkyIsland2RangeTypePtr = std::shared_ptr< SkyIsland2RangeType >; + using SpearfishingItemPtr = std::shared_ptr< SpearfishingItem >; + using SpearfishingNotebookPtr = std::shared_ptr< SpearfishingNotebook >; + using SpearfishingRecordPagePtr = std::shared_ptr< SpearfishingRecordPage >; + using SpecialShopPtr = std::shared_ptr< SpecialShop >; + using SpecialShopItemCategoryPtr = std::shared_ptr< SpecialShopItemCategory >; + using StainPtr = std::shared_ptr< Stain >; + using StainTransientPtr = std::shared_ptr< StainTransient >; + using StatusPtr = std::shared_ptr< Status >; + using StatusHitEffectPtr = std::shared_ptr< StatusHitEffect >; + using StatusLoopVFXPtr = std::shared_ptr< StatusLoopVFX >; + using StoryPtr = std::shared_ptr< Story >; + using SubmarineExplorationPtr = std::shared_ptr< SubmarineExploration >; + using SubmarinePartPtr = std::shared_ptr< SubmarinePart >; + using SubmarineRankPtr = std::shared_ptr< SubmarineRank >; + using SwitchTalkPtr = std::shared_ptr< SwitchTalk >; + using TerritoryTypePtr = std::shared_ptr< TerritoryType >; + using TextCommandPtr = std::shared_ptr< TextCommand >; + using TitlePtr = std::shared_ptr< Title >; + using TomestonesPtr = std::shared_ptr< Tomestones >; + using TomestonesItemPtr = std::shared_ptr< TomestonesItem >; + using TopicSelectPtr = std::shared_ptr< TopicSelect >; + using TownPtr = std::shared_ptr< Town >; + using TraitPtr = std::shared_ptr< Trait >; + using TraitRecastPtr = std::shared_ptr< TraitRecast >; + using TraitTransientPtr = std::shared_ptr< TraitTransient >; + using TransformationPtr = std::shared_ptr< Transformation >; + using TreasurePtr = std::shared_ptr< Treasure >; + using TreasureHuntRankPtr = std::shared_ptr< TreasureHuntRank >; + using TribePtr = std::shared_ptr< Tribe >; + using TripleTriadPtr = std::shared_ptr< TripleTriad >; + using TripleTriadCardPtr = std::shared_ptr< TripleTriadCard >; + using TripleTriadCardRarityPtr = std::shared_ptr< TripleTriadCardRarity >; + using TripleTriadCardResidentPtr = std::shared_ptr< TripleTriadCardResident >; + using TripleTriadCardTypePtr = std::shared_ptr< TripleTriadCardType >; + using TripleTriadCompetitionPtr = std::shared_ptr< TripleTriadCompetition >; + using TripleTriadRulePtr = std::shared_ptr< TripleTriadRule >; + using TutorialPtr = std::shared_ptr< Tutorial >; + using TutorialDPSPtr = std::shared_ptr< TutorialDPS >; + using TutorialHealerPtr = std::shared_ptr< TutorialHealer >; + using TutorialTankPtr = std::shared_ptr< TutorialTank >; + using UIColorPtr = std::shared_ptr< UIColor >; + using VaseFlowerPtr = std::shared_ptr< VaseFlower >; + using VFXPtr = std::shared_ptr< VFX >; + using WarpPtr = std::shared_ptr< Warp >; + using WarpConditionPtr = std::shared_ptr< WarpCondition >; + using WarpLogicPtr = std::shared_ptr< WarpLogic >; + using WeatherPtr = std::shared_ptr< Weather >; + using WeatherGroupPtr = std::shared_ptr< WeatherGroup >; + using WeatherRatePtr = std::shared_ptr< WeatherRate >; + using WeddingBGMPtr = std::shared_ptr< WeddingBGM >; + using WeeklyBingoOrderDataPtr = std::shared_ptr< WeeklyBingoOrderData >; + using WeeklyBingoRewardDataPtr = std::shared_ptr< WeeklyBingoRewardData >; + using WeeklyBingoTextPtr = std::shared_ptr< WeeklyBingoText >; + using WeeklyLotBonusPtr = std::shared_ptr< WeeklyLotBonus >; + using WorldPtr = std::shared_ptr< World >; + using WorldDCGroupTypePtr = std::shared_ptr< WorldDCGroupType >; + using YKWPtr = std::shared_ptr< YKW >; + using ZoneSharedGroupPtr = std::shared_ptr< ZoneSharedGroup >; template< class T > std::shared_ptr< T > get( uint32_t id ) @@ -5859,8 +6274,13 @@ struct ZoneSharedGroup std::set< uint32_t > m_EObjNameIdList; std::set< uint32_t > m_EquipRaceCategoryIdList; std::set< uint32_t > m_EquipSlotCategoryIdList; + std::set< uint32_t > m_EurekaAetherItemIdList; std::set< uint32_t > m_EurekaAethernetIdList; std::set< uint32_t > m_EurekaGrowDataIdList; + std::set< uint32_t > m_EurekaLogosMixerProbabilityIdList; + std::set< uint32_t > m_EurekaMagiaActionIdList; + std::set< uint32_t > m_EurekaMagiciteItemIdList; + std::set< uint32_t > m_EurekaMagiciteItemTypeIdList; std::set< uint32_t > m_EurekaSphereElementAdjustIdList; std::set< uint32_t > m_EventActionIdList; std::set< uint32_t > m_EventIconPriorityIdList; @@ -5882,7 +6302,9 @@ struct ZoneSharedGroup std::set< uint32_t > m_FCProfileIdList; std::set< uint32_t > m_FCReputationIdList; std::set< uint32_t > m_FCRightsIdList; + std::set< uint32_t > m_FestivalIdList; std::set< uint32_t > m_FieldMarkerIdList; + std::set< uint32_t > m_FishingRecordTypeIdList; std::set< uint32_t > m_FishingRecordTypeTransientIdList; std::set< uint32_t > m_FishingSpotIdList; std::set< uint32_t > m_FishParameterIdList; @@ -5924,6 +6346,9 @@ struct ZoneSharedGroup std::set< uint32_t > m_GCSupplyDutyRewardIdList; std::set< uint32_t > m_GeneralActionIdList; std::set< uint32_t > m_GFATEIdList; + std::set< uint32_t > m_GFateClimbing2IdList; + std::set< uint32_t > m_GFateClimbing2ContentIdList; + std::set< uint32_t > m_GFateClimbing2TotemTypeIdList; std::set< uint32_t > m_GilShopIdList; std::set< uint32_t > m_GilShopItemIdList; std::set< uint32_t > m_GoldSaucerArcadeMachineIdList; @@ -5938,12 +6363,17 @@ struct ZoneSharedGroup std::set< uint32_t > m_HairMakeTypeIdList; std::set< uint32_t > m_HouseRetainerPoseIdList; std::set< uint32_t > m_HousingAethernetIdList; + std::set< uint32_t > m_HousingAppealIdList; std::set< uint32_t > m_HousingEmploymentNpcListIdList; std::set< uint32_t > m_HousingEmploymentNpcRaceIdList; + std::set< uint32_t > m_HousingExteriorIdList; std::set< uint32_t > m_HousingFurnitureIdList; + std::set< uint32_t > m_HousingMapMarkerInfoIdList; + std::set< uint32_t > m_HousingMerchantPoseIdList; std::set< uint32_t > m_HousingLandSetIdList; std::set< uint32_t > m_HousingPlacementIdList; std::set< uint32_t > m_HousingPresetIdList; + std::set< uint32_t > m_HousingUnitedExteriorIdList; std::set< uint32_t > m_HousingYardObjectIdList; std::set< uint32_t > m_HowToIdList; std::set< uint32_t > m_HowToCategoryIdList; @@ -5954,6 +6384,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_ItemIdList; std::set< uint32_t > m_ItemActionIdList; std::set< uint32_t > m_ItemFoodIdList; + std::set< uint32_t > m_ItemLevelIdList; std::set< uint32_t > m_ItemSearchCategoryIdList; std::set< uint32_t > m_ItemSeriesIdList; std::set< uint32_t > m_ItemSpecialBonusIdList; @@ -5986,6 +6417,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_MasterpieceSupplyDutyIdList; std::set< uint32_t > m_MasterpieceSupplyMultiplierIdList; std::set< uint32_t > m_MateriaIdList; + std::set< uint32_t > m_MiniGameRAIdList; std::set< uint32_t > m_MinionRaceIdList; std::set< uint32_t > m_MinionRulesIdList; std::set< uint32_t > m_MinionSkillTypeIdList; @@ -6013,7 +6445,9 @@ struct ZoneSharedGroup std::set< uint32_t > m_OrchestrionPathIdList; std::set< uint32_t > m_OrchestrionUiparamIdList; std::set< uint32_t > m_ParamGrowIdList; + std::set< uint32_t > m_PartyContentIdList; std::set< uint32_t > m_PartyContentCutsceneIdList; + std::set< uint32_t > m_PartyContentTextDataIdList; std::set< uint32_t > m_PerformIdList; std::set< uint32_t > m_PerformTransientIdList; std::set< uint32_t > m_PetIdList; @@ -6115,6 +6549,7 @@ struct ZoneSharedGroup std::set< uint32_t > m_TutorialDPSIdList; std::set< uint32_t > m_TutorialHealerIdList; std::set< uint32_t > m_TutorialTankIdList; + std::set< uint32_t > m_UIColorIdList; std::set< uint32_t > m_VaseFlowerIdList; std::set< uint32_t > m_VFXIdList; std::set< uint32_t > m_WarpIdList; @@ -7070,6 +7505,12 @@ const std::set< uint32_t >& getEquipSlotCategoryIdList() loadIdList( m_EquipSlotCategoryDat, m_EquipSlotCategoryIdList ); return m_EquipSlotCategoryIdList; } +const std::set< uint32_t >& getEurekaAetherItemIdList() +{ + if( m_EurekaAetherItemIdList.size() == 0 ) + loadIdList( m_EurekaAetherItemDat, m_EurekaAetherItemIdList ); + return m_EurekaAetherItemIdList; +} const std::set< uint32_t >& getEurekaAethernetIdList() { if( m_EurekaAethernetIdList.size() == 0 ) @@ -7082,6 +7523,30 @@ const std::set< uint32_t >& getEurekaGrowDataIdList() loadIdList( m_EurekaGrowDataDat, m_EurekaGrowDataIdList ); return m_EurekaGrowDataIdList; } +const std::set< uint32_t >& getEurekaLogosMixerProbabilityIdList() +{ + if( m_EurekaLogosMixerProbabilityIdList.size() == 0 ) + loadIdList( m_EurekaLogosMixerProbabilityDat, m_EurekaLogosMixerProbabilityIdList ); + return m_EurekaLogosMixerProbabilityIdList; +} +const std::set< uint32_t >& getEurekaMagiaActionIdList() +{ + if( m_EurekaMagiaActionIdList.size() == 0 ) + loadIdList( m_EurekaMagiaActionDat, m_EurekaMagiaActionIdList ); + return m_EurekaMagiaActionIdList; +} +const std::set< uint32_t >& getEurekaMagiciteItemIdList() +{ + if( m_EurekaMagiciteItemIdList.size() == 0 ) + loadIdList( m_EurekaMagiciteItemDat, m_EurekaMagiciteItemIdList ); + return m_EurekaMagiciteItemIdList; +} +const std::set< uint32_t >& getEurekaMagiciteItemTypeIdList() +{ + if( m_EurekaMagiciteItemTypeIdList.size() == 0 ) + loadIdList( m_EurekaMagiciteItemTypeDat, m_EurekaMagiciteItemTypeIdList ); + return m_EurekaMagiciteItemTypeIdList; +} const std::set< uint32_t >& getEurekaSphereElementAdjustIdList() { if( m_EurekaSphereElementAdjustIdList.size() == 0 ) @@ -7208,12 +7673,24 @@ const std::set< uint32_t >& getFCRightsIdList() loadIdList( m_FCRightsDat, m_FCRightsIdList ); return m_FCRightsIdList; } +const std::set< uint32_t >& getFestivalIdList() +{ + if( m_FestivalIdList.size() == 0 ) + loadIdList( m_FestivalDat, m_FestivalIdList ); + return m_FestivalIdList; +} const std::set< uint32_t >& getFieldMarkerIdList() { if( m_FieldMarkerIdList.size() == 0 ) loadIdList( m_FieldMarkerDat, m_FieldMarkerIdList ); return m_FieldMarkerIdList; } +const std::set< uint32_t >& getFishingRecordTypeIdList() +{ + if( m_FishingRecordTypeIdList.size() == 0 ) + loadIdList( m_FishingRecordTypeDat, m_FishingRecordTypeIdList ); + return m_FishingRecordTypeIdList; +} const std::set< uint32_t >& getFishingRecordTypeTransientIdList() { if( m_FishingRecordTypeTransientIdList.size() == 0 ) @@ -7460,6 +7937,24 @@ const std::set< uint32_t >& getGFATEIdList() loadIdList( m_GFATEDat, m_GFATEIdList ); return m_GFATEIdList; } +const std::set< uint32_t >& getGFateClimbing2IdList() +{ + if( m_GFateClimbing2IdList.size() == 0 ) + loadIdList( m_GFateClimbing2Dat, m_GFateClimbing2IdList ); + return m_GFateClimbing2IdList; +} +const std::set< uint32_t >& getGFateClimbing2ContentIdList() +{ + if( m_GFateClimbing2ContentIdList.size() == 0 ) + loadIdList( m_GFateClimbing2ContentDat, m_GFateClimbing2ContentIdList ); + return m_GFateClimbing2ContentIdList; +} +const std::set< uint32_t >& getGFateClimbing2TotemTypeIdList() +{ + if( m_GFateClimbing2TotemTypeIdList.size() == 0 ) + loadIdList( m_GFateClimbing2TotemTypeDat, m_GFateClimbing2TotemTypeIdList ); + return m_GFateClimbing2TotemTypeIdList; +} const std::set< uint32_t >& getGilShopIdList() { if( m_GilShopIdList.size() == 0 ) @@ -7544,6 +8039,12 @@ const std::set< uint32_t >& getHousingAethernetIdList() loadIdList( m_HousingAethernetDat, m_HousingAethernetIdList ); return m_HousingAethernetIdList; } +const std::set< uint32_t >& getHousingAppealIdList() +{ + if( m_HousingAppealIdList.size() == 0 ) + loadIdList( m_HousingAppealDat, m_HousingAppealIdList ); + return m_HousingAppealIdList; +} const std::set< uint32_t >& getHousingEmploymentNpcListIdList() { if( m_HousingEmploymentNpcListIdList.size() == 0 ) @@ -7556,17 +8057,35 @@ const std::set< uint32_t >& getHousingEmploymentNpcRaceIdList() loadIdList( m_HousingEmploymentNpcRaceDat, m_HousingEmploymentNpcRaceIdList ); return m_HousingEmploymentNpcRaceIdList; } +const std::set< uint32_t >& getHousingExteriorIdList() +{ + if( m_HousingExteriorIdList.size() == 0 ) + loadIdList( m_HousingExteriorDat, m_HousingExteriorIdList ); + return m_HousingExteriorIdList; +} const std::set< uint32_t >& getHousingFurnitureIdList() { if( m_HousingFurnitureIdList.size() == 0 ) loadIdList( m_HousingFurnitureDat, m_HousingFurnitureIdList ); return m_HousingFurnitureIdList; } +const std::set< uint32_t >& getHousingMapMarkerInfoIdList() +{ + if( m_HousingMapMarkerInfoIdList.size() == 0 ) + loadIdList( m_HousingMapMarkerInfoDat, m_HousingMapMarkerInfoIdList ); + return m_HousingMapMarkerInfoIdList; +} +const std::set< uint32_t >& getHousingMerchantPoseIdList() +{ + if( m_HousingMerchantPoseIdList.size() == 0 ) + loadIdList( m_HousingMerchantPoseDat, m_HousingMerchantPoseIdList ); + return m_HousingMerchantPoseIdList; +} const std::set< uint32_t >& getHousingLandSetIdList() { - if( m_HousingLandSetIdList.size() == 0 ) - loadIdList( m_HousingLandSetDat, m_HousingLandSetIdList ); - return m_HousingLandSetIdList; + if( m_HousingLandSetIdList.size() == 0 ) + loadIdList( m_HousingLandSetDat, m_HousingLandSetIdList ); + return m_HousingLandSetIdList; } const std::set< uint32_t >& getHousingPlacementIdList() { @@ -7580,6 +8099,12 @@ const std::set< uint32_t >& getHousingPresetIdList() loadIdList( m_HousingPresetDat, m_HousingPresetIdList ); return m_HousingPresetIdList; } +const std::set< uint32_t >& getHousingUnitedExteriorIdList() +{ + if( m_HousingUnitedExteriorIdList.size() == 0 ) + loadIdList( m_HousingUnitedExteriorDat, m_HousingUnitedExteriorIdList ); + return m_HousingUnitedExteriorIdList; +} const std::set< uint32_t >& getHousingYardObjectIdList() { if( m_HousingYardObjectIdList.size() == 0 ) @@ -7640,6 +8165,12 @@ const std::set< uint32_t >& getItemFoodIdList() loadIdList( m_ItemFoodDat, m_ItemFoodIdList ); return m_ItemFoodIdList; } +const std::set< uint32_t >& getItemLevelIdList() +{ + if( m_ItemLevelIdList.size() == 0 ) + loadIdList( m_ItemLevelDat, m_ItemLevelIdList ); + return m_ItemLevelIdList; +} const std::set< uint32_t >& getItemSearchCategoryIdList() { if( m_ItemSearchCategoryIdList.size() == 0 ) @@ -7832,6 +8363,12 @@ const std::set< uint32_t >& getMateriaIdList() loadIdList( m_MateriaDat, m_MateriaIdList ); return m_MateriaIdList; } +const std::set< uint32_t >& getMiniGameRAIdList() +{ + if( m_MiniGameRAIdList.size() == 0 ) + loadIdList( m_MiniGameRADat, m_MiniGameRAIdList ); + return m_MiniGameRAIdList; +} const std::set< uint32_t >& getMinionRaceIdList() { if( m_MinionRaceIdList.size() == 0 ) @@ -7994,12 +8531,24 @@ const std::set< uint32_t >& getParamGrowIdList() loadIdList( m_ParamGrowDat, m_ParamGrowIdList ); return m_ParamGrowIdList; } +const std::set< uint32_t >& getPartyContentIdList() +{ + if( m_PartyContentIdList.size() == 0 ) + loadIdList( m_PartyContentDat, m_PartyContentIdList ); + return m_PartyContentIdList; +} const std::set< uint32_t >& getPartyContentCutsceneIdList() { if( m_PartyContentCutsceneIdList.size() == 0 ) loadIdList( m_PartyContentCutsceneDat, m_PartyContentCutsceneIdList ); return m_PartyContentCutsceneIdList; } +const std::set< uint32_t >& getPartyContentTextDataIdList() +{ + if( m_PartyContentTextDataIdList.size() == 0 ) + loadIdList( m_PartyContentTextDataDat, m_PartyContentTextDataIdList ); + return m_PartyContentTextDataIdList; +} const std::set< uint32_t >& getPerformIdList() { if( m_PerformIdList.size() == 0 ) @@ -8606,6 +9155,12 @@ const std::set< uint32_t >& getTutorialTankIdList() loadIdList( m_TutorialTankDat, m_TutorialTankIdList ); return m_TutorialTankIdList; } +const std::set< uint32_t >& getUIColorIdList() +{ + if( m_UIColorIdList.size() == 0 ) + loadIdList( m_UIColorDat, m_UIColorIdList ); + return m_UIColorIdList; +} const std::set< uint32_t >& getVaseFlowerIdList() { if( m_VaseFlowerIdList.size() == 0 ) @@ -8713,6 +9268,7 @@ const std::set< uint32_t >& getZoneSharedGroupIdList() }; } +} #endif diff --git a/src/servers/Scripts/common/WarpTaxi.cpp b/src/servers/Scripts/common/WarpTaxi.cpp index 69194be2..b36763e7 100644 --- a/src/servers/Scripts/common/WarpTaxi.cpp +++ b/src/servers/Scripts/common/WarpTaxi.cpp @@ -61,7 +61,8 @@ public: if( !warp ) return; - player.eventStart( actorId, warp->defaultTalk1, Event::EventHandler::Nest, 0, 0, std::bind( &WarpTaxi::inner2, this, std::placeholders::_1, std::placeholders::_2 ) ); - player.playScene( warp->defaultTalk1, 0, HIDE_HOTBAR, 0, 0, 7, nullptr ); + player.eventStart( actorId, warp->conditionSuccessEvent, Event::EventHandler::Nest, 0, 0, + std::bind( &WarpTaxi::inner2, this, std::placeholders::_1, std::placeholders::_2 ) ); + player.playScene( warp->conditionSuccessEvent, 0, HIDE_HOTBAR, 0, 0, 7, nullptr ); } }; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp index f1f8c2ef..df03db4f 100644 --- a/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp @@ -77,7 +77,7 @@ void Core::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_PACK if( !cfCondition ) return; - auto instance = pTeriMgr->createInstanceContent( cfCondition->instanceContent ); + auto instance = pTeriMgr->createInstanceContent( cfCondition->content ); if( !instance ) return; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index e0e4bbba..c39701af 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -58,12 +58,12 @@ void Core::Land::load() pDb->directExecute( "INSERT INTO land ( landsetid, landid, type, size, status, landprice ) " "VALUES ( " + std::to_string( m_landSetId ) + "," + std::to_string( m_landId ) + "," + std::to_string( static_cast< uint8_t >( m_type ) ) + "," - + std::to_string( m_landInfo->sizes[ m_landId ] ) + "," - + " 1, " + std::to_string( m_landInfo->prices[ m_landId ] ) + " );" ); + + std::to_string( m_landInfo->plotSize[ m_landId ] ) + "," + + " 1, " + std::to_string( m_landInfo->initialPrice[ m_landId ] ) + " );" ); - m_currentPrice = m_landInfo->prices[ m_landId ]; - m_minPrice = m_landInfo->minPrices[ m_landId ]; - m_size = m_landInfo->sizes[ m_landId ]; + m_currentPrice = m_landInfo->initialPrice[ m_landId ]; + m_minPrice = m_landInfo->minPrice[ m_landId ]; + m_size = m_landInfo->plotSize[ m_landId ]; m_state = HouseState::forSale; } else @@ -73,8 +73,8 @@ void Core::Land::load() m_state = res->getUInt( "Status" ); m_currentPrice = res->getUInt( "LandPrice" ); m_ownerPlayerId = res->getUInt( "OwnerId" ); - m_minPrice = m_landInfo->minPrices[ m_landId ]; - m_maxPrice = m_landInfo->prices[ m_landId ]; + m_minPrice = m_landInfo->minPrice[ m_landId ]; + m_maxPrice = m_landInfo->initialPrice[ m_landId ]; } init(); } diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index d8cb748e..d355bc81 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -249,7 +249,7 @@ Core::ZonePtr Core::TerritoryMgr::createInstanceContent( uint32_t contentFinderC auto pContentFinderCondition = pExdData->get< Core::Data::ContentFinderCondition >( contentFinderConditionId ); if( !pContentFinderCondition ) return nullptr; - auto instanceContentId = pContentFinderCondition->instanceContent; + auto instanceContentId = pContentFinderCondition->content; auto pInstanceContent = pExdData->get< Core::Data::InstanceContent >( instanceContentId ); if( !pInstanceContent ) diff --git a/src/tools/exd_struct_gen/ExdData.cpp.tmpl b/src/tools/exd_struct_gen/ExdData.cpp.tmpl index f63e8ce0..a4babc6d 100644 --- a/src/tools/exd_struct_gen/ExdData.cpp.tmpl +++ b/src/tools/exd_struct_gen/ExdData.cpp.tmpl @@ -36,8 +36,8 @@ bool Core::Data::ExdDataGenerated::init( const std::string& path ) { try { - m_data = boost::make_shared< xiv::dat::GameData >( path ); - m_exd_data = boost::make_shared< xiv::exd::ExdData >( *m_data ); + m_data = std::make_shared< xiv::dat::GameData >( path ); + m_exd_data = std::make_shared< xiv::exd::ExdData >( *m_data ); SETUPDATACCESS } diff --git a/src/tools/exd_struct_gen/ExdData.h.tmpl b/src/tools/exd_struct_gen/ExdData.h.tmpl index 055a9e12..58b6267c 100644 --- a/src/tools/exd_struct_gen/ExdData.h.tmpl +++ b/src/tools/exd_struct_gen/ExdData.h.tmpl @@ -11,7 +11,7 @@ #include #include #include -#include +#include namespace Core { namespace Data { @@ -35,13 +35,13 @@ STRUCTS template< class T > T getField( std::vector< xiv::exd::Field >& fields, uint32_t index ) { - return *boost::get< T >( &fields.at( index ) ); + return boost::get< T >( fields.at( index ) ); } void loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList ); - boost::shared_ptr< xiv::dat::GameData > m_data; - boost::shared_ptr< xiv::exd::ExdData > m_exd_data; + std::shared_ptr< xiv::dat::GameData > m_data; + std::shared_ptr< xiv::exd::ExdData > m_exd_data; DATACCESS diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index 3cad3b5f..306e2473 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -45,8 +45,8 @@ std::vector< std::string > cppKeyWords "class" }; -std::string datLocation( "/home/mordred/sqpack" ); -//std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); +//std::string datLocation( "/home/mordred/sqpack" ); +std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); std::map< uint8_t, std::string > g_typeMap; From 4c573cde738ceb2bd8b1838d4b71cf0acdea3c54 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 23 Nov 2018 21:20:16 +0100 Subject: [PATCH 106/385] One slipped through --- src/tools/exd_struct_gen/ExdData.h.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/exd_struct_gen/ExdData.h.tmpl b/src/tools/exd_struct_gen/ExdData.h.tmpl index 58b6267c..20ac48c5 100644 --- a/src/tools/exd_struct_gen/ExdData.h.tmpl +++ b/src/tools/exd_struct_gen/ExdData.h.tmpl @@ -35,7 +35,7 @@ STRUCTS template< class T > T getField( std::vector< xiv::exd::Field >& fields, uint32_t index ) { - return boost::get< T >( fields.at( index ) ); + return std::get< T >( fields.at( index ) ); } void loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList ); From 28abe4c6f94c38f7d758e057f96c0a6e3ca19990 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 24 Nov 2018 01:35:25 +0100 Subject: [PATCH 107/385] Variant2 exds are now readable --- deps/datReader/Exd.cpp | 33 ++++++++++++++++++++++-------- deps/datReader/Exh.h | 6 +++--- src/common/Exd/ExdDataGenerated.h | 16 +++++++++++++++ src/tools/exd_struct_test/main.cpp | 21 +++++++++++-------- 4 files changed, 56 insertions(+), 20 deletions(-) diff --git a/deps/datReader/Exd.cpp b/deps/datReader/Exd.cpp index f86ac318..e82fcc96 100644 --- a/deps/datReader/Exd.cpp +++ b/deps/datReader/Exd.cpp @@ -2,7 +2,7 @@ #include "bparse.h" #include "stream.h" - +#include #include "Exh.h" using xiv::utils::bparse::extract; @@ -58,7 +58,7 @@ namespace xiv for ( auto &file_ptr : _files ) { // Get a stream - std::vector< char > dataCpy = file_ptr->get_data_sections().front(); + std::vector< char > dataCpy = file_ptr->get_data_sections().front(); std::istringstream iss( std::string( dataCpy.begin(), dataCpy.end() ) ); // Extract the header and skip to the record indices @@ -101,12 +101,17 @@ namespace xiv iss.seekg( cacheEntryIt->second.offset + 6 ); uint8_t subRows = *reinterpret_cast< uint8_t* >( &dataCpy[ cacheEntryIt->second.offset + 5 ] ); - + + if( subRow >= subRows ) + throw std::runtime_error( "Out of bounds sub-row!" ); + + int offset = cacheEntryIt->second.offset + 6 + ( subRow * _exh->get_header().data_offset + 2 * ( subRow + 1 ) ); + for( auto& member_entry : _exh->get_exh_members() ) { - // Seek to the position of the member to extract. + // Seek to the position of the member to extract. // 6 is because we have uint32_t/uint16_t at the start of each record - iss.seekg( cacheEntryIt->second.offset + 6 + member_entry.offset ); + iss.seekg( offset + member_entry.offset ); // Switch depending on the type to extract switch( member_entry.type ) @@ -115,9 +120,10 @@ namespace xiv // Extract the offset to the actual string // Seek to it then extract the actual string { - auto string_offset = extract( iss, "string_offset", false ); - iss.seekg( cacheEntryIt->second.offset + 6 + _exh->get_header().data_offset + string_offset ); - fields.emplace_back( utils::bparse::extract_cstring( iss, "string" ) ); + throw std::runtime_error( "String not implemented for variant 2!" ); + //auto string_offset = extract( iss, "string_offset", false ); + //iss.seekg( cacheEntryIt->second.offset + 6 + _exh->get_header().data_offset + string_offset ); + //fields.emplace_back( utils::bparse::extract_cstring( iss, "string" ) ); } break; @@ -129,9 +135,18 @@ namespace xiv fields.emplace_back( extract( iss, "int8_t" ) ); break; + case DataType::uint8: + fields.emplace_back( extract( iss, "uint8_t" ) ); + break; + case DataType::int16: fields.emplace_back( extract( iss, "int16_t", false ) ); break; + + case DataType::uint16: + fields.emplace_back( extract( iss, "uint16_t", false ) ); + break; + case DataType::int32: fields.emplace_back( extract( iss, "int32_t", false ) ); break; @@ -184,7 +199,7 @@ namespace xiv fields.reserve( member_count ); iss.seekg( cacheEntryIt->second.offset + 6 ); - uint8_t subRows = *reinterpret_cast< uint8_t* >( &dataCpy[ cacheEntryIt->second.offset + 5 ] ); + uint8_t subRows = *reinterpret_cast< uint8_t* >( &dataCpy[ cacheEntryIt->second.offset + 5 ] ); for( auto& member_entry : _exh->get_exh_members() ) { diff --git a/deps/datReader/Exh.h b/deps/datReader/Exh.h index 80b11150..be273185 100644 --- a/deps/datReader/Exh.h +++ b/deps/datReader/Exh.h @@ -31,9 +31,9 @@ namespace xiv uint16_t field_count; uint16_t exd_count; uint16_t language_count; - uint16_t unknown1; - uint8_t u2; - uint8_t variant; + uint16_t unknown1; + uint8_t u2; + uint8_t variant; }; struct ExhMember diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index d4b76dc5..6eda3351 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -6117,6 +6117,22 @@ struct ZoneSharedGroup return nullptr; } + template< class T > + std::shared_ptr< T > get( uint32_t id, uint32_t slotId ) + { + try + { + auto info = std::make_shared< T >( id, slotId, this ); + return info; + } + catch( std::runtime_error error ) + { + std::cout << error.what(); + return nullptr; + } + return nullptr; + } + std::set< uint32_t > m_AchievementIdList; std::set< uint32_t > m_AchievementCategoryIdList; diff --git a/src/tools/exd_struct_test/main.cpp b/src/tools/exd_struct_test/main.cpp index a13d017b..ea4389d9 100644 --- a/src/tools/exd_struct_test/main.cpp +++ b/src/tools/exd_struct_test/main.cpp @@ -21,8 +21,8 @@ Core::Logger g_log; Core::Data::ExdDataGenerated g_exdData; -const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); -//const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" ); +//const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); +const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); int main() @@ -38,15 +38,20 @@ int main() } - g_log.info( "getting id list " ); - auto idList = g_exdData.getTerritoryTypeIdList(); + //g_log.info( "getting id list " ); + //auto idList = g_exdData.getGilShopIdList(); - g_log.info( "getting id list done" ); - for( auto id : idList ) + //g_log.info( "getting id list done" ); + //for( auto id : idList ) { - auto teri1 = g_exdData.get< Core::Data::TerritoryType >( id ); + auto teri1 = g_exdData.get< Core::Data::GilShopItem >( 262440, 0 ); + g_log.info( "0 -> " + std::to_string( teri1->item ) ); - g_log.info( teri1->name ); + auto teri2 = g_exdData.get< Core::Data::GilShopItem >( 262440, 1 ); + g_log.info( "1 -> " + std::to_string( teri2->item ) ); + + auto teri3 = g_exdData.get< Core::Data::GilShopItem >( 262440, 2 ); + g_log.info( "2 -> " + std::to_string( teri3->item ) ); } return 0; From b739b154b9085bf3f99a11e01fed6a6df1bd630f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 24 Nov 2018 15:17:18 +1100 Subject: [PATCH 108/385] buying from gilshops now works --- src/common/Common.h | 2 +- src/common/Exd/ExdDataGenerated.h | 2 +- src/common/Network/CommonActorControl.h | 1 + src/servers/Scripts/common/GilShop.cpp | 22 +++++++---- src/servers/sapphire_zone/Manager/ShopMgr.cpp | 34 +++++++++++++++++ src/servers/sapphire_zone/Manager/ShopMgr.h | 10 +++++ .../Network/Handlers/EventHandlers.cpp | 4 +- .../Network/Handlers/PacketHandlers.cpp | 38 +------------------ src/servers/sapphire_zone/Zone/HousingMgr.cpp | 27 +++++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.h | 2 + src/servers/sapphire_zone/Zone/Land.cpp | 16 +++++++- src/servers/sapphire_zone/Zone/Land.h | 4 +- src/servers/sapphire_zone/mainGameServer.cpp | 3 ++ 13 files changed, 114 insertions(+), 51 deletions(-) create mode 100644 src/servers/sapphire_zone/Manager/ShopMgr.cpp create mode 100644 src/servers/sapphire_zone/Manager/ShopMgr.h diff --git a/src/common/Common.h b/src/common/Common.h index 543cf72d..fe8eb6bc 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -805,8 +805,8 @@ namespace Core::Common none, forSale, sold, + privateHouse, fcHouse, - privateHouse }; enum HouseIconAdd : uint8_t diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index 6eda3351..af2974ef 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -6127,7 +6127,7 @@ struct ZoneSharedGroup } catch( std::runtime_error error ) { - std::cout << error.what(); + // std::cout << error.what(); return nullptr; } return nullptr; diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index e028e136..72ff77f3 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -290,6 +290,7 @@ enum ActorControlType : uint16_t AchievementList = 0x3E9, RequestHousingBuildPreset = 0x44C, + RequestBuildPreset = 0x450, // no idea what this is, it gets sent with BuildPresetHandler and has the plot id in param1 RequestLandSignFree = 0x451, RequestLandSignOwned = 0x452, RequestWardLandInfo = 0x453, diff --git a/src/servers/Scripts/common/GilShop.cpp b/src/servers/Scripts/common/GilShop.cpp index e6c988ea..6554ca72 100644 --- a/src/servers/Scripts/common/GilShop.cpp +++ b/src/servers/Scripts/common/GilShop.cpp @@ -1,6 +1,9 @@ #include #include +#include +#include + using namespace Core; class GilShop : @@ -16,11 +19,11 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - player.playScene( eventId, 0, SCENE_FLAGS, 0, 2, shopCallback ); + player.playScene( eventId, 0, SCENE_FLAGS, 0, 2, std::bind( &GilShop::shopCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); } private: - static void shopInteractionCallback( Entity::Player& player, const Event::SceneResult& result ) + void shopInteractionCallback( Entity::Player& player, const Event::SceneResult& result ) { // item purchase if( result.param1 == 768 ) @@ -28,17 +31,20 @@ private: // buy if( result.param2 == 1 ) { + auto shopMgr = getFramework()->get< Sapphire::World::Manager::ShopMgr >(); + shopMgr->purchaseGilShopItem( player, result.eventId, result.param3, result.param4 ); } - // sell + // sell else if( result.param2 == 2 ) { - + // so apparently shops will always show a sell window + // BUT won't always let you sell stuff (eg, housing permit menu) + // there doesn't seem to be anything in gilshop exd for that, so maybe it's some shitty server hack? } - player.sendDebug( "got tradeQuantity: " + std::to_string( result.param4 ) ); - player.playGilShop( result.eventId, SCENE_FLAGS, shopInteractionCallback ); + player.playGilShop( result.eventId, SCENE_FLAGS, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); return; } @@ -46,8 +52,8 @@ private: player.playScene( result.eventId, 255, SCENE_FLAGS ); } - static void shopCallback( Entity::Player& player, const Event::SceneResult& result ) + void shopCallback( Entity::Player& player, const Event::SceneResult& result ) { - player.playGilShop( result.eventId, SCENE_FLAGS, shopInteractionCallback ); + player.playGilShop( result.eventId, SCENE_FLAGS, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); } }; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Manager/ShopMgr.cpp b/src/servers/sapphire_zone/Manager/ShopMgr.cpp new file mode 100644 index 00000000..78173a1f --- /dev/null +++ b/src/servers/sapphire_zone/Manager/ShopMgr.cpp @@ -0,0 +1,34 @@ +#include "ShopMgr.h" + +#include +#include +#include +#include + +extern Core::Framework g_fw; +using namespace Core; + +bool Sapphire::World::Manager::ShopMgr::purchaseGilShopItem( Entity::Player& player, uint32_t shopId, uint16_t itemId, uint32_t quantity ) +{ + auto exdData = g_fw.get< Data::ExdDataGenerated >(); + if( !exdData ) + return false; + + auto gilShopItem = exdData->get< Data::GilShopItem >( shopId, itemId ); + if( !gilShopItem ) + return false; + + auto item = exdData->get< Data::Item >( gilShopItem->item ); + if( !item ) + return false; + + if( player.getCurrency( Common::CurrencyType::Gil ) < item->priceMid ) + return false; + + if( !player.addItem( gilShopItem->item, quantity ) ) + return false; + + player.removeCurrency( Common::CurrencyType::Gil, item->priceMid ); + + return true; +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Manager/ShopMgr.h b/src/servers/sapphire_zone/Manager/ShopMgr.h new file mode 100644 index 00000000..8ec5de4d --- /dev/null +++ b/src/servers/sapphire_zone/Manager/ShopMgr.h @@ -0,0 +1,10 @@ +#include "ForwardsZone.h" + +namespace Sapphire::World::Manager +{ + class ShopMgr + { + public: + bool purchaseGilShopItem( Core::Entity::Player& player, uint32_t shopId, uint16_t itemId, uint32_t quantity ); + }; +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp index d6d77bb2..becbcdc5 100644 --- a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp @@ -273,7 +273,9 @@ void Core::Network::GameConnection::eventHandlerShop( const Packets::FFXIVARR_PA " (0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + ")" ); player.sendDebug( "Calling: " + objName + "." + eventName ); - player.eventStart( 0, eventId, Event::EventHandler::UI, 0, packet.data().param ); + player.eventStart( player.getId(), eventId, Event::EventHandler::UI, 0, packet.data().param ); + + pScriptMgr->onTalk( player, player.getId(), eventId ); } diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index c7604ba8..821b9b3d 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -673,40 +673,6 @@ void Core::Network::GameConnection::buildPresetHandler( const Core::Network::Pac { const auto packet = ZoneChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket ); - auto zone = player.getCurrentZone(); - auto plotNum = packet.data().plotNum; - auto preset = packet.data().itemId; - std::string landString = std::string( packet.data().stateString ); - auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); - - if( !hZone ) - return; - - auto pLand = hZone->getLand( plotNum ); - /* - if (!pLand) - player.sendDebug( "Something went wrong..." ); - - if( stateString.find( "Private" ) ) - { - pLand->setPreset( preset ); - pLand->setState( HouseState::privateHouse ); - pLand->UpdateLandDb(); - hZone->sendLandUpdate( plotNum ); - } - else if( stateString.find("Free") ) - { - pLand->setPreset( preset ); - pLand->setState( HouseState::fcHouse ); - pLand->UpdateLandDb(); - hZone->sendLandUpdate( plotNum ); - } - else - { - player.sendDebug( "You tried to build a preset on not supported land." ); - } - - auto pSuccessBuildingPacket = makeActorControl142( player.getId(), BuildPresetResponse, plotNum ); - - player.queuePacket( pSuccessBuildingPacket );*/ + auto pHousingMgr = g_fw.get< HousingMgr >(); + pHousingMgr->buildPresetEstate( player, packet.data().plotNum, packet.data().itemId ); } diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index c9d50ca0..8b52c753 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -273,3 +273,30 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, player.queuePacket( wardInfoPacket ); } +void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ) +{ + auto hZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + + if( !hZone ) + return; + + auto pLand = hZone->getLand( plotNum ); + if( !pLand ) + return; + + // todo: when doing FC houses, look up the type from the original purchase and check perms from FC and set state accordingly + if( pLand->getPlayerOwner() != player.getId() ) + return; + + // todo: check if permit is in inventory and remove one + + pLand->setPreset( presetItem ); + pLand->setState( HouseState::privateHouse ); + pLand->setLandType( LandType::Private ); + pLand->updateLandDb(); + hZone->sendLandUpdate( plotNum ); + + auto pSuccessBuildingPacket = makeActorControl142( player.getId(), ActorControl::BuildPresetResponse, plotNum ); + + player.queuePacket( pSuccessBuildingPacket ); +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index bc5d94d8..cacaa9c1 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -34,6 +34,8 @@ namespace Core bool relinquishLand( Entity::Player& player, uint8_t plot ); + void buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ); + private: }; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index c39701af..8488c139 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -79,7 +79,7 @@ void Core::Land::load() init(); } -uint16_t Core::Land::convertItemIdToHousingItemId( uint16_t itemId ) +uint32_t Core::Land::convertItemIdToHousingItemId( uint32_t itemId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto info = pExdData->get< Core::Data::Item >( itemId ); @@ -246,7 +246,7 @@ void Core::Land::updateLandDb() pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_state ) + ", LandPrice = " + std::to_string( getCurrentPrice() ) + ", UpdateTime = " + std::to_string( getDevaluationTime() ) - + ", OwnerId = " + std::to_string( getPlayerOwner() ) + + ", OwnerId = " + std::to_string( getPlayerOwner() ) + ", HouseId = " + std::to_string( 0 ) //TODO: add house id + ", Type = " + std::to_string( static_cast< uint32_t >( m_type ) ) //TODO: add house id + " WHERE LandSetId = " + std::to_string( m_landSetId ) @@ -265,3 +265,15 @@ void Core::Land::update( uint32_t currTime ) } } } + +bool Core::Land::setPreset( uint32_t itemId ) +{ + auto housingItemId = convertItemIdToHousingItemId( itemId ); + + auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); + if( !exdData ) + return false; + + auto housingPreset = exdData->get< Core::Data::HousingPreset >( housingItemId ); + +} diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 173a00a7..243ca62c 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -48,7 +48,7 @@ namespace Core uint32_t getPlayerOwner(); //Housing Functions void setCurrentPrice( uint32_t currentPrice ); - void setPreset( uint32_t itemId ); + bool setPreset( uint32_t itemId ); void updateLandDb(); void update( uint32_t currTime ); @@ -62,7 +62,7 @@ namespace Core uint8_t getLandTag( uint8_t slot ); private: - uint16_t convertItemIdToHousingItemId( uint16_t itemId ); + uint32_t convertItemIdToHousingItemId( uint32_t itemId ); void init(); uint8_t m_wardNum; diff --git a/src/servers/sapphire_zone/mainGameServer.cpp b/src/servers/sapphire_zone/mainGameServer.cpp index 489857b0..e6acc87d 100644 --- a/src/servers/sapphire_zone/mainGameServer.cpp +++ b/src/servers/sapphire_zone/mainGameServer.cpp @@ -12,6 +12,7 @@ #include "Zone/HousingMgr.h" #include "DebugCommand/DebugCommandHandler.h" #include "Manager/PlayerMgr.h" +#include "Manager/ShopMgr.h" #include @@ -32,6 +33,7 @@ bool setupFramework() auto pDebugCom = std::make_shared< DebugCommandHandler >(); auto pConfig = std::make_shared< ConfigMgr >(); auto pPlayerMgr = std::make_shared< Sapphire::World::Manager::PlayerMgr >(); + auto pShopMgr = std::make_shared< Sapphire::World::Manager::ShopMgr >(); pLogger->setLogPath( "log/SapphireZone" ); pLogger->init(); @@ -47,6 +49,7 @@ bool setupFramework() g_fw.set< DebugCommandHandler >( pDebugCom ); g_fw.set< ConfigMgr >( pConfig ); g_fw.set< Sapphire::World::Manager::PlayerMgr >( pPlayerMgr ); + g_fw.set< Sapphire::World::Manager::ShopMgr >( pShopMgr ); // actuall catch errors here... return true; From 12eadd02e93a6b8223257a7e903561af72961619 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 25 Nov 2018 01:55:53 +1100 Subject: [PATCH 109/385] broken housing --- src/common/Network/CommonActorControl.h | 1 + src/servers/sapphire_zone/Actor/Player.cpp | 2 +- src/servers/sapphire_zone/Zone/House.cpp | 15 +++++- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 6 ++- .../sapphire_zone/Zone/HousingZone.cpp | 15 +++++- src/servers/sapphire_zone/Zone/Land.cpp | 48 ++++++++++++++++--- src/servers/sapphire_zone/Zone/Land.h | 5 +- 7 files changed, 79 insertions(+), 13 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 72ff77f3..5d126c49 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -290,6 +290,7 @@ enum ActorControlType : uint16_t AchievementList = 0x3E9, RequestHousingBuildPreset = 0x44C, + RequestEstateHallRemoval = 0x44F, RequestBuildPreset = 0x450, // no idea what this is, it gets sent with BuildPresetHandler and has the plot id in param1 RequestLandSignFree = 0x451, RequestLandSignOwned = 0x452, diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 7aba3e56..62e6143a 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1580,7 +1580,7 @@ void Core::Entity::Player::sendZonePackets() auto pHousingMgr = g_fw.get< HousingMgr >(); if( Core::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) { - setLandPermissions( LandPermissionSlot::Private, 0x00, pLand->getLandId(), pLand->getWardNum(), pLand->getZoneId() ); + setLandPermissions( LandPermissionSlot::Private, 0x00, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); } sendLandPermissions(); diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index 7b9a74b3..55ca5b1d 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -3,6 +3,7 @@ #include #include +#include #include "House.h" @@ -20,6 +21,18 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ { memset( &m_houseParts, 0x00, sizeof( m_houseParts ) ); memset( &m_commentMsg, 0x00, sizeof( m_commentMsg ) ); + + auto pDB = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDB->query("SELECT * FROM house WHERE HouseId = " + std::to_string( houseId ) ); + + if( !res->next() ) + { + pDB->directExecute("INSERT INTO house ( LandSetId, HouseId ) VALUES ( " + std::to_string( m_landSetId ) + ", " + std::to_string( m_houseId ) + " )" ); + } + else + { + // todo + } } Core::House::~House() @@ -70,4 +83,4 @@ void Core::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id ) uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) const { return m_houseParts[ slot ]; -} +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 8b52c753..28c18adf 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -98,7 +98,7 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); landInfoSignPacket->data().wardNum = land->getWardNum(); landInfoSignPacket->data().worldId = 67; - landInfoSignPacket->data().zoneId = land->getZoneId(); + landInfoSignPacket->data().zoneId = land->getTerritoryTypeId(); player.queuePacket( landInfoSignPacket ); } @@ -290,7 +290,9 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu // todo: check if permit is in inventory and remove one - pLand->setPreset( presetItem ); + if( !pLand->setPreset( presetItem ) ) + return; + pLand->setState( HouseState::privateHouse ); pLand->setLandType( LandType::Private ); pLand->updateLandDb(); diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 9d52a1f4..8ca52012 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -10,6 +10,7 @@ #include "Actor/Player.h" #include "Actor/Actor.h" #include "Land.h" +#include "House.h" #include "Forwards.h" #include "HousingZone.h" @@ -149,12 +150,24 @@ void Core::HousingZone::sendLandUpdate( uint8_t landId ) landUpdatePacket->data().landId = landId; landUpdatePacket->data().land.plotSize = pLand->getSize(); landUpdatePacket->data().land.houseState = pLand->getState(); - landUpdatePacket->data().land.type = static_cast< uint8_t >( pLand->getLandType() ); + landUpdatePacket->data().land.type = 0; landUpdatePacket->data().land.iconAddIcon = pLand->getSharing(); landUpdatePacket->data().land.fcId = pLand->getFcId(); landUpdatePacket->data().land.fcIcon = pLand->getFcIcon(); landUpdatePacket->data().land.fcIconColor = pLand->getFcColor(); + if( auto house = pLand->getHouse() ) + { + // todo: this is retarded, need a getter to the internal array + for( int i = 0; i < 8; i++ ) + { + auto slot = static_cast< Common::HousePartSlot >( i ); + auto part = pLand->getHouse()->getHousePart( slot ); + + landUpdatePacket->data().land.housePart[ slot ] = part; + } + } + pPlayer->queuePacket( landUpdatePacket ); } } diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 8488c139..3fbcd3ae 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -20,14 +20,15 @@ #include "Forwards.h" #include "Land.h" #include "Framework.h" +#include "House.h" extern Core::Framework g_fw; using namespace Core::Common; -Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, +Core::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, Core::Data::HousingLandSetPtr info ) : - m_zoneId( zoneId ), + m_territoryTypeId( territoryTypeId ), m_wardNum( wardNum ), m_landId( landId ), m_currentPrice( 0 ), @@ -36,7 +37,11 @@ Core::Land::Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t lan m_ownerPlayerId( 0 ), m_landSetId( landSetId ), m_landInfo( info ), - m_type( Common::LandType::Private ) + m_type( Common::LandType::Private ), + m_fcIcon( 0 ), + m_fcIconColor( 0 ), + m_fcId( 0 ), + m_iconAddIcon( 0 ) { memset( &m_tag, 0x00, 3 ); @@ -147,9 +152,9 @@ uint8_t Core::Land::getLandId() const return m_landId; } -uint16_t Core::Land::getZoneId() const +uint16_t Core::Land::getTerritoryTypeId() const { - return m_zoneId; + return m_territoryTypeId; } Core::HousePtr Core::Land::getHouse() const @@ -242,12 +247,17 @@ void Core::Land::init() void Core::Land::updateLandDb() { + uint32_t houseId = 0; + + if( getHouse() ) + houseId = getHouse()->getHouseId(); + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_state ) + ", LandPrice = " + std::to_string( getCurrentPrice() ) + ", UpdateTime = " + std::to_string( getDevaluationTime() ) + ", OwnerId = " + std::to_string( getPlayerOwner() ) - + ", HouseId = " + std::to_string( 0 ) //TODO: add house id + + ", HouseId = " + std::to_string( houseId ) + ", Type = " + std::to_string( static_cast< uint32_t >( m_type ) ) //TODO: add house id + " WHERE LandSetId = " + std::to_string( m_landSetId ) + " AND LandId = " + std::to_string( m_landId ) + ";" ); @@ -266,6 +276,17 @@ void Core::Land::update( uint32_t currTime ) } } +uint32_t Core::Land::getNextHouseId() +{ + auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto pQR = pDb->query( "SELECT MAX( HouseId ) FROM house" ); + + if( !pQR->next() ) + return 0; + + return pQR->getUInt( 1 ) + 1; +} + bool Core::Land::setPreset( uint32_t itemId ) { auto housingItemId = convertItemIdToHousingItemId( itemId ); @@ -275,5 +296,20 @@ bool Core::Land::setPreset( uint32_t itemId ) return false; auto housingPreset = exdData->get< Core::Data::HousingPreset >( housingItemId ); + if( !housingPreset ) + return false; + if( !getHouse() ) + { + // todo: i guess we'd create a house here? + auto newId = getNextHouseId(); + m_pHouse = make_House( newId, getLandSetId(), getLandId(), getWardNum(), getTerritoryTypeId() ); + } + + getHouse()->setHousePart( Common::HousePartSlot::ExteriorRoof, housingPreset->exteriorRoof ); + getHouse()->setHousePart( Common::HousePartSlot::ExteriorWall, housingPreset->exteriorWall ); + getHouse()->setHousePart( Common::HousePartSlot::ExteriorWindow, housingPreset->exteriorWindow ); + getHouse()->setHousePart( Common::HousePartSlot::ExteriorDoor, housingPreset->exteriorDoor ); + + return true; } diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 243ca62c..3bf792d2 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -33,7 +33,7 @@ namespace Core uint32_t getLandSetId() const; uint8_t getWardNum() const; uint8_t getLandId() const; - uint16_t getZoneId() const; + uint16_t getTerritoryTypeId() const; Common::LandType getLandType() const; Core::HousePtr getHouse() const; @@ -64,11 +64,12 @@ namespace Core private: uint32_t convertItemIdToHousingItemId( uint32_t itemId ); void init(); + uint32_t getNextHouseId(); uint8_t m_wardNum; uint8_t m_landId; uint32_t m_landSetId; - uint16_t m_zoneId; + uint16_t m_territoryTypeId; uint8_t m_size; uint8_t m_state; Common::LandType m_type; From 14417f2cfa6c28d655651f7d50ef0c7a882bc6cb Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 25 Nov 2018 23:20:56 +1100 Subject: [PATCH 110/385] GilShop improvements, init land values in db to 0, fix for login crash --- src/servers/Scripts/common/GilShop.cpp | 7 +++---- src/servers/sapphire_zone/Event/EventHandler.h | 1 + src/servers/sapphire_zone/Network/GameConnection.cpp | 4 ++++ .../sapphire_zone/Network/Handlers/EventHandlers.cpp | 1 + src/servers/sapphire_zone/Zone/Land.cpp | 6 +++--- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/servers/Scripts/common/GilShop.cpp b/src/servers/Scripts/common/GilShop.cpp index 6554ca72..d2d8cd5b 100644 --- a/src/servers/Scripts/common/GilShop.cpp +++ b/src/servers/Scripts/common/GilShop.cpp @@ -37,11 +37,10 @@ private: } // sell - else if( result.param2 == 2 ) + // can't sell if the vendor is yourself (eg, housing permit shop) + else if( result.param2 == 2 && result.actorId != player.getId() ) { - // so apparently shops will always show a sell window - // BUT won't always let you sell stuff (eg, housing permit menu) - // there doesn't seem to be anything in gilshop exd for that, so maybe it's some shitty server hack? + } player.playGilShop( result.eventId, SCENE_FLAGS, std::bind( &GilShop::shopInteractionCallback, this, std::placeholders::_1, std::placeholders::_2 ) ); diff --git a/src/servers/sapphire_zone/Event/EventHandler.h b/src/servers/sapphire_zone/Event/EventHandler.h index c9008964..77735623 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.h +++ b/src/servers/sapphire_zone/Event/EventHandler.h @@ -8,6 +8,7 @@ namespace Core::Event struct SceneResult { + uint64_t actorId; uint32_t eventId; uint16_t param1; uint16_t param2; diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index cb960315..0e00e7f4 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -321,6 +321,10 @@ void Core::Network::GameConnection::processOutQueue() pRP.addPacket( pPacket ); totalSize += pPacket->getSize(); + + // todo: figure out a good max set size and make it configurable + if( totalSize > 5000 ) + break; } if( totalSize > 0 ) diff --git a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp index becbcdc5..ffb3124a 100644 --- a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp @@ -221,6 +221,7 @@ void Core::Network::GameConnection::eventHandlerReturn( const Packets::FFXIVARR_ if( eventCallback ) { Event::SceneResult result; + result.actorId = pEvent->getActorId(); result.eventId = eventId; result.param1 = param1; result.param2 = param2; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 3fbcd3ae..26335d5a 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -37,7 +37,7 @@ Core::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, uin m_ownerPlayerId( 0 ), m_landSetId( landSetId ), m_landInfo( info ), - m_type( Common::LandType::Private ), + m_type( Common::LandType::none ), m_fcIcon( 0 ), m_fcIconColor( 0 ), m_fcId( 0 ), @@ -60,11 +60,11 @@ void Core::Land::load() "AND LandId = " + std::to_string( m_landId ) ); if( !res->next() ) { - pDb->directExecute( "INSERT INTO land ( landsetid, landid, type, size, status, landprice ) " + pDb->directExecute( "INSERT INTO land ( landsetid, landid, type, size, status, landprice, UpdateTime, OwnerId, HouseId ) " "VALUES ( " + std::to_string( m_landSetId ) + "," + std::to_string( m_landId ) + "," + std::to_string( static_cast< uint8_t >( m_type ) ) + "," + std::to_string( m_landInfo->plotSize[ m_landId ] ) + "," - + " 1, " + std::to_string( m_landInfo->initialPrice[ m_landId ] ) + " );" ); + + " 1, " + std::to_string( m_landInfo->initialPrice[ m_landId ] ) + ", 0, 0, 0 );" ); m_currentPrice = m_landInfo->initialPrice[ m_landId ]; m_minPrice = m_landInfo->minPrice[ m_landId ]; From 62833689ae7a60870bb8b4b08e3050d2b7a578c6 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 25 Nov 2018 23:29:37 +1100 Subject: [PATCH 111/385] Make max set size 15k so login feels slower so we are more retail accurate --- src/servers/sapphire_zone/Network/GameConnection.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index 0e00e7f4..bfeda82f 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -323,7 +323,7 @@ void Core::Network::GameConnection::processOutQueue() totalSize += pPacket->getSize(); // todo: figure out a good max set size and make it configurable - if( totalSize > 5000 ) + if( totalSize > 15000 ) break; } From 7374af583905524097d3041e177fd747066a2139 Mon Sep 17 00:00:00 2001 From: mordred Date: Sun, 25 Nov 2018 16:45:48 +0100 Subject: [PATCH 112/385] Begin of db manager tool --- src/dbm/CMakeLists.txt | 31 +++++++ src/dbm/DbManager.cpp | 69 +++++++++++++++ src/dbm/DbManager.h | 49 +++++++++++ src/dbm/main.cpp | 189 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 338 insertions(+) create mode 100644 src/dbm/CMakeLists.txt create mode 100644 src/dbm/DbManager.cpp create mode 100644 src/dbm/DbManager.h create mode 100644 src/dbm/main.cpp diff --git a/src/dbm/CMakeLists.txt b/src/dbm/CMakeLists.txt new file mode 100644 index 00000000..0736265e --- /dev/null +++ b/src/dbm/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.0) +cmake_policy(SET CMP0015 NEW) +project(sapphire_dbm) + +file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*" ) +file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") + +add_executable(sapphire_dbm ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) + +set_target_properties(sapphire_dbm PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS ON + RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" + RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" + RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" + RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" +) + +target_include_directories( sapphire_dbm + PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}/" + PRIVATE + "${CMAKE_CURRENT_SOURCE_DIR}/../" ) + target_link_libraries( sapphire_dbm PRIVATE mysqlConnector common xivdat ) +if (UNIX) + target_link_libraries( sapphire_dbm PRIVATE stdc++fs ) +else() + target_link_libraries( sapphire_dbm PRIVATE mysql ) +endif() + diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp new file mode 100644 index 00000000..7035e29f --- /dev/null +++ b/src/dbm/DbManager.cpp @@ -0,0 +1,69 @@ +#include "DbManager.h" +#include +DbManager::DbManager( const std::string& host, const std::string& database, const std::string& user, const std::string& pw, uint16_t port ) : + m_host( host ), + m_database( database ), + m_user( user ), + m_password( pw ), + m_port( port ) +{ +} + +DbManager::~DbManager() +{ + +} + +bool DbManager::connect() +{ + std::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() ); + Mysql::optionMap options; + options[ Mysql::MYSQL_OPT_RECONNECT ] = "1"; + options[ Mysql::MYSQL_SET_CHARSET_NAME ] = "utf8"; + + try + { + m_pConnection = base->connect( m_host, m_user, m_password, options, m_port ); + } + catch( std::runtime_error& e ) + { + m_lastError = e.what(); + return false; + } + return true; +} + +bool DbManager::selectSchema() +{ + if( !m_pConnection ) + { + m_lastError = "No valid db connection!"; + return false; + } + + try + { + m_pConnection->setSchema( m_database ); + } + catch( std::runtime_error& e ) + { + m_lastError = e.what(); + return false; + } + return true; +} + +const std::string& DbManager::getLastError() +{ + return m_lastError; +} + +void DbManager::setMode( Mode mode ) +{ + m_mode = mode; +} + +Mode DbManager::getMode() const +{ + return m_mode; +} diff --git a/src/dbm/DbManager.h b/src/dbm/DbManager.h new file mode 100644 index 00000000..7c6cd2eb --- /dev/null +++ b/src/dbm/DbManager.h @@ -0,0 +1,49 @@ +#ifndef SAPPHIRE_DBMANAGER +#define SAPPHIRE_DBMANAGER +#include +#include +#include + +namespace Mysql +{ + class Connection; +} + +enum class Mode +{ + INIT, + LIQUIDATE, + UPDATE, + CHECK, + CLEAN_CHARS +}; + +class DbManager +{ + public: + DbManager( const std::string& host, const std::string& database, const std::string& user, const std::string& pw, uint16_t port ); + + void setMode( Mode mode ); + Mode getMode() const; + + bool connect(); + bool selectSchema(); + + virtual ~DbManager(); + + const std::string& getLastError(); + + private: + std::string m_host; + std::string m_database; + std::string m_user; + std::string m_password; + uint16_t m_port; + std::shared_ptr< Mysql::Connection > m_pConnection; + std::string m_lastError; + Mode m_mode; +}; + + + +#endif diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp new file mode 100644 index 00000000..d7e337c9 --- /dev/null +++ b/src/dbm/main.cpp @@ -0,0 +1,189 @@ + +#include +#include +#include +#include +#include +#include + + +namespace filesys = std::experimental::filesystem; + +#include +#include +#include +#include + +#include "DbManager.h" + +Core::Logger g_log; + +std::vector< std::string > getAllFilesInDir( const std::string& dirPath, + const std::vector< std::string > dirSkipList = {} ) +{ + + // Create a vector of string + std::vector< std::string > listOfFiles; + try + { + // Check if given path exists and points to a directory + if( filesys::exists( dirPath ) && filesys::is_directory( dirPath ) ) + { + // Create a Recursive Directory Iterator object and points to the starting of directory + filesys::recursive_directory_iterator iter( dirPath ); + + // Create a Recursive Directory Iterator object pointing to end. + filesys::recursive_directory_iterator end; + + // Iterate till end + while( iter != end ) + { + // Check if current entry is a directory and if exists in skip list + if( filesys::is_directory( iter->path() ) && + ( std::find( dirSkipList.begin(), dirSkipList.end(), iter->path().filename() ) != dirSkipList.end() ) ) + { + // Skip the iteration of current directory pointed by iterator +#ifdef USING_BOOST + // Boost Fileystsem API to skip current directory iteration + iter.no_push(); +#else + // c++17 Filesystem API to skip current directory iteration + iter.disable_recursion_pending(); +#endif + } + else + { + // Add the name in vector + listOfFiles.push_back( iter->path().string() ); + } + + std::error_code ec; + // Increment the iterator to point to next entry in recursive iteration + iter.increment( ec ); + if( ec ) + { + std::cerr << "Error While Accessing : " << iter->path().string() << " :: " << ec.message() << '\n'; + } + } + } + } + catch( std::system_error& e ) + { + std::cerr << "Exception :: " << e.what(); + } + return listOfFiles; +} + +std::string delChar( std::string &str, char del ) +{ + str.erase( std::remove( str.begin(), str.end(), del ), str.end() ); + return str; +} + +void printUsage() +{ + g_log.info( " Usage: sapphire_dbm " ); + g_log.info( "\t --mode" ); + g_log.info( "\t\t initialize -> Creates DB if not present and inserts default tables/data" ); + g_log.info( "\t\t check -> Checks if Sapphire DB-Version matches your DB-Version" ); + g_log.info( "\t\t update -> Updates your DB-Version to Sapphire DB-Version" ); + g_log.info( "\t\t clearchars -> Removes all character data from DB. Accounts will stay untouched" ); + g_log.info( "\t\t liquidate -> Removes all tables and deletes the DB" ); + g_log.info( "\t --user " ); + g_log.info( "\t --pass ( default empty )" ); + g_log.info( "\t --host ( default 127.0.0.1 )" ); + g_log.info( "\t --port ( default 3306 )" ); + g_log.info( "\t --database " ); + +} + +int main( int32_t argc, char* argv[] ) +{ + std::string arg( "" ); + std::string val( "" ); + + std::string mode; + std::string user; + std::string host; + std::string database; + + g_log.setLogPath( "log/SapphireDbm" ); + g_log.init(); + + + std::vector< std::string > args( argv + 1, argv + argc ); + for( uint32_t i = 0; i + 1 < args.size(); i += 2 ) + { + arg = std::string( args[ i ] ); + val = std::string( args[ i + 1 ] ); + + // trim '-' from start of arg + arg = arg.erase( 0, arg.find_first_not_of( '-' ) ); + if( arg == "mode" ) + mode = val; + else if( arg == "user" ) + user = val; + else if( arg == "host" ) + host = val; + else if( arg == "database" ) + database = val; + } + + if( host.empty() ) + host = "127.0.0.1"; + + if( mode.empty() || user.empty() || database.empty() ) + { + printUsage(); + return 0; + } + + auto dbm = DbManager( host, database, user, "", 3306 ); + + //initialize|check|update|clearchars|liquidate + if( mode.find( "initialize" ) != std::string::npos ) + { + dbm.setMode( Mode::INIT ); + } + else if( mode.find( "check" ) != std::string::npos ) + { + dbm.setMode( Mode::CHECK ); + } + else if( mode.find( "update" ) != std::string::npos ) + { + dbm.setMode( Mode::UPDATE ); + } + else if( mode.find( "clearchars" ) != std::string::npos ) + { + dbm.setMode( Mode::CLEAN_CHARS ); + } + else if( mode.find( "liquidate" ) != std::string::npos ) + { + dbm.setMode( Mode::LIQUIDATE ); + } + else + { + g_log.fatal( "Not a valid mode: " + mode + " !" ); + return 0; + } + + g_log.info( "Launching in " + mode + " mode..." ); + + if( !dbm.connect() ) + { + g_log.fatal( "Could not connect to server!" ); + g_log.fatal( dbm.getLastError() ); + return 0; + } + + if( !dbm.selectSchema() ) + { + g_log.fatal( "Could not set schema!" ); + g_log.fatal( dbm.getLastError() ); + return 0; + } + + + + return 0; +} From b6f7beb61f8fad95493079ab327c5b59e1e7f57c Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 26 Nov 2018 00:05:10 +0100 Subject: [PATCH 113/385] Ongoing implementation of migration utility --- CMakeLists.txt | 2 +- src/dbm/DbManager.cpp | 67 +++++++++++++++++++++++++++++++++++++++++++ src/dbm/DbManager.h | 6 ++++ src/dbm/main.cpp | 19 ++++++------ 4 files changed, 84 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4e82357f..a0b051f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,7 +37,7 @@ add_subdirectory( "deps/mysqlConnector" ) add_subdirectory( "src/common" ) add_subdirectory( "src/servers" ) -#add_subdirectory( "src/dbm" ) +add_subdirectory( "src/dbm" ) add_subdirectory( "src/tools/exd_common_gen" ) add_subdirectory( "src/tools/exd_struct_gen" ) diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index 7035e29f..908895b6 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -14,6 +14,21 @@ DbManager::~DbManager() } +bool DbManager::execute( const std::string& sql ) +{ + try + { + auto stmt = m_pConnection->createStatement(); + bool result = stmt->execute( sql ); + return result; + } + catch( std::runtime_error& e ) + { + m_lastError = e.what(); + return false; + } +} + bool DbManager::connect() { std::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() ); @@ -67,3 +82,55 @@ Mode DbManager::getMode() const { return m_mode; } + +bool DbManager::performAction() +{ + bool result = false; + execute( " SET autocommit = 0 " ); + m_pConnection->beginTransaction(); + + switch( m_mode ) + { + case Mode::INIT: + result = modeInit(); + break; + case Mode::LIQUIDATE: + break; + case Mode::UPDATE: + break; + case Mode::CHECK: + break; + case Mode::CLEAN_CHARS: + break; + } + if( !result ) + m_pConnection->rollbackTransaction(); + else + m_pConnection->commitTransaction(); + + return result; +} + +bool DbManager::modeInit() +{ + + bool result = false; + + if( selectSchema() ) + { + m_lastError = "Database already existing, use mode first to remove it."; + return false; + } + + if( !execute( "CREATE DATABASE " + m_database ) ) + return false; + + if( !execute( "CREATE TABLE `dbversion` (\n" + " `major` int(11) NOT NULL,\n" + " `minor` int(11) NOT NULL\n" + ") ENGINE=InnoDB DEFAULT CHARSET=latin1;" ) ) + return false; + + + return false; +} diff --git a/src/dbm/DbManager.h b/src/dbm/DbManager.h index 7c6cd2eb..1d9db329 100644 --- a/src/dbm/DbManager.h +++ b/src/dbm/DbManager.h @@ -29,6 +29,12 @@ class DbManager bool connect(); bool selectSchema(); + bool execute( const std::string& sql ); + + bool performAction(); + + bool modeInit(); + virtual ~DbManager(); const std::string& getLastError(); diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index d7e337c9..3c1f8d14 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -43,13 +43,8 @@ std::vector< std::string > getAllFilesInDir( const std::string& dirPath, ( std::find( dirSkipList.begin(), dirSkipList.end(), iter->path().filename() ) != dirSkipList.end() ) ) { // Skip the iteration of current directory pointed by iterator -#ifdef USING_BOOST - // Boost Fileystsem API to skip current directory iteration - iter.no_push(); -#else // c++17 Filesystem API to skip current directory iteration iter.disable_recursion_pending(); -#endif } else { @@ -57,7 +52,7 @@ std::vector< std::string > getAllFilesInDir( const std::string& dirPath, listOfFiles.push_back( iter->path().string() ); } - std::error_code ec; + std::error_code ec; // Increment the iterator to point to next entry in recursive iteration iter.increment( ec ); if( ec ) @@ -176,13 +171,19 @@ int main( int32_t argc, char* argv[] ) return 0; } - if( !dbm.selectSchema() ) + if( !dbm.performAction() ) { - g_log.fatal( "Could not set schema!" ); + g_log.fatal( "Could not perform action!" ); g_log.fatal( dbm.getLastError() ); - return 0; } + //if( !dbm.selectSchema() ) + //{ + // g_log.fatal( "Could not set schema!" ); + // g_log.fatal( dbm.getLastError() ); + // return 0; + //} + return 0; From 111c2bb08cc5bb62a511afed9df23a60d317de1f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 26 Nov 2018 17:56:29 +1100 Subject: [PATCH 114/385] houses now correctly build and send landupdate/show on login --- .../Network/PacketDef/Zone/ServerZoneDef.h | 2 +- src/servers/sapphire_zone/Zone/House.cpp | 13 ++-- src/servers/sapphire_zone/Zone/House.h | 9 ++- .../sapphire_zone/Zone/HousingZone.cpp | 62 +++++++++++++------ src/servers/sapphire_zone/Zone/Land.cpp | 8 +-- 5 files changed, 62 insertions(+), 32 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 22c07e60..44247c6d 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1607,7 +1607,7 @@ struct LandStruct uint32_t fcIcon;// 12 uint32_t fcIconColor; // 16 uint16_t housePart[ 8 ]; // 34 - uint8_t color[ 8 ]; // 36 + uint8_t houseColour[ 8 ]; // 36 }; struct FFXIVIpcLandUpdate : FFXIVIpcBasePacket< LandUpdate > diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index 55ca5b1d..40aa2b73 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -67,20 +67,25 @@ uint32_t Core::House::getHouseId() const uint8_t Core::House::getHousePartColor( Common::HousePartSlot slot ) const { - return m_housePartsColor[ slot ]; + return std::get< 1 >( m_houseParts[ slot ] ); } void Core::House::setHousePart( Common::HousePartSlot slot, uint32_t id ) { - m_houseParts[ slot ] = id; + std::get< 0 >( m_houseParts[ slot ] ) = id; } void Core::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id ) { - m_housePartsColor[ slot ] = id; + std::get< 1 >( m_houseParts[ slot ] ) = id; } uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) const { - return m_houseParts[ slot ]; + return std::get< 0 >( m_houseParts[ slot ] ); +} + +Core::House::HousePartsArray const& Core::House::getHouseParts() const +{ + return m_houseParts; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h index 080aea2e..410ab80d 100644 --- a/src/servers/sapphire_zone/Zone/House.h +++ b/src/servers/sapphire_zone/Zone/House.h @@ -11,11 +11,13 @@ namespace Core class House { - public: House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t territoryTypeId ); virtual ~House(); + using HousePart = std::tuple< uint32_t, uint8_t >; + using HousePartsArray = std::array< HousePart, 8 >; + //gerneral uint32_t getLandSetId() const; uint8_t getLandId() const; @@ -29,6 +31,8 @@ namespace Core uint32_t getHousePart( Common::HousePartSlot slot ) const; uint8_t getHousePartColor( Common::HousePartSlot slot ) const; + HousePartsArray const& getHouseParts() const; + private: uint32_t m_landSetId; uint8_t m_landId; @@ -36,8 +40,7 @@ namespace Core uint16_t m_territoryTypeId; uint32_t m_houseId; - uint32_t m_houseParts[ 8 ]; - uint8_t m_housePartsColor[ 8 ]; + HousePartsArray m_houseParts; char m_commentMsg[ 193 ]; }; diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 8ca52012..37beafcd 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -127,13 +127,30 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) for( uint8_t i = startIndex, count = 0; i < ( startIndex + 30 ); ++i, ++count ) { auto pLand = getLand( i ); - landsetInitializePacket->data().land[ count ].plotSize = pLand->getSize(); - landsetInitializePacket->data().land[ count ].houseState = pLand->getState(); - landsetInitializePacket->data().land[ count ].type = static_cast< uint8_t >( pLand->getLandType() ); - landsetInitializePacket->data().land[ count ].iconAddIcon = pLand->getSharing(); - landsetInitializePacket->data().land[ count ].fcId = pLand->getFcId(); - landsetInitializePacket->data().land[ count ].fcIcon = pLand->getFcIcon(); - landsetInitializePacket->data().land[ count ].fcIconColor = pLand->getFcColor(); + + // todo: move this and sendLandUpdate building logic to its own function + auto& landData = landsetInitializePacket->data().land[ count ]; + + landData.plotSize = pLand->getSize(); + landData.houseState = pLand->getState(); + landData.type = static_cast< uint8_t >( pLand->getLandType() ); + landData.iconAddIcon = pLand->getSharing(); + landData.fcId = pLand->getFcId(); + landData.fcIcon = pLand->getFcIcon(); + landData.fcIconColor = pLand->getFcColor(); + + if( auto house = pLand->getHouse() ) + { + auto& parts = house->getHouseParts(); + + for( auto i = 0; i != parts.size(); i++ ) + { + auto [ part, colour ] = parts[ i ]; + + landData.housePart[ i ] = part; + landData.houseColour[ i ] = colour; + } + } } player.queuePacket( landsetInitializePacket ); @@ -148,23 +165,28 @@ void Core::HousingZone::sendLandUpdate( uint8_t landId ) auto landUpdatePacket = makeZonePacket< FFXIVIpcLandUpdate >( pPlayer->getId() ); landUpdatePacket->data().landId = landId; - landUpdatePacket->data().land.plotSize = pLand->getSize(); - landUpdatePacket->data().land.houseState = pLand->getState(); - landUpdatePacket->data().land.type = 0; - landUpdatePacket->data().land.iconAddIcon = pLand->getSharing(); - landUpdatePacket->data().land.fcId = pLand->getFcId(); - landUpdatePacket->data().land.fcIcon = pLand->getFcIcon(); - landUpdatePacket->data().land.fcIconColor = pLand->getFcColor(); + + auto& landData = landUpdatePacket->data().land; + + landData.plotSize = pLand->getSize(); + landData.houseState = pLand->getState(); + landData.type = static_cast< uint8_t >( pLand->getLandType() ); + landData.iconAddIcon = pLand->getSharing(); + landData.fcId = pLand->getFcId(); + landData.fcIcon = pLand->getFcIcon(); + landData.fcIconColor = pLand->getFcColor(); + if( auto house = pLand->getHouse() ) { - // todo: this is retarded, need a getter to the internal array - for( int i = 0; i < 8; i++ ) - { - auto slot = static_cast< Common::HousePartSlot >( i ); - auto part = pLand->getHouse()->getHousePart( slot ); + auto& parts = house->getHouseParts(); - landUpdatePacket->data().land.housePart[ slot ] = part; + for( auto i = 0; i != parts.size(); i++ ) + { + auto [ part, colour ] = parts[ i ]; + + landData.housePart[ i ] = part; + landData.houseColour[ i ] = colour; } } diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 26335d5a..81ce268e 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -306,10 +306,10 @@ bool Core::Land::setPreset( uint32_t itemId ) m_pHouse = make_House( newId, getLandSetId(), getLandId(), getWardNum(), getTerritoryTypeId() ); } - getHouse()->setHousePart( Common::HousePartSlot::ExteriorRoof, housingPreset->exteriorRoof ); - getHouse()->setHousePart( Common::HousePartSlot::ExteriorWall, housingPreset->exteriorWall ); - getHouse()->setHousePart( Common::HousePartSlot::ExteriorWindow, housingPreset->exteriorWindow ); - getHouse()->setHousePart( Common::HousePartSlot::ExteriorDoor, housingPreset->exteriorDoor ); + getHouse()->setHousePart( Common::HousePartSlot::ExteriorRoof, convertItemIdToHousingItemId( housingPreset->exteriorRoof ) ); + getHouse()->setHousePart( Common::HousePartSlot::ExteriorWall, convertItemIdToHousingItemId( housingPreset->exteriorWall ) ); + getHouse()->setHousePart( Common::HousePartSlot::ExteriorWindow, convertItemIdToHousingItemId( housingPreset->exteriorWindow ) ); + getHouse()->setHousePart( Common::HousePartSlot::ExteriorDoor, convertItemIdToHousingItemId( housingPreset->exteriorDoor ) ); return true; } From 89c8293eefda559e7adc75d4ce64cd40a950ebda Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 26 Nov 2018 23:18:16 +1100 Subject: [PATCH 115/385] New land sql, run update_land.sql --- sql/update_land.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sql/update_land.sql b/sql/update_land.sql index 6baa174e..d6034988 100644 --- a/sql/update_land.sql +++ b/sql/update_land.sql @@ -1,2 +1,4 @@ ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`; -ALTER TABLE `house` ADD `HouseName` binary(23) DEFAULT "" AFTER `Comment`; \ No newline at end of file +ALTER TABLE `house` ADD `HouseName` binary(23) DEFAULT "" AFTER `Comment`; +ALTER TABLE `house` ADD `HousePartModels` BINARY(48) DEFAULT "" AFTER `Endorsements`; +ALTER TABLE `house` ADD `HousePartColours` BINARY(48) DEFAULT "" AFTER `HousePartModels`; \ No newline at end of file From 345de714941ce624cf236befab7a5831e10c803a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 26 Nov 2018 23:32:22 +1100 Subject: [PATCH 116/385] save & load house state --- src/common/Database/ZoneDbConnection.cpp | 13 +++- src/common/Database/ZoneDbConnection.h | 3 + src/common/Network/CommonActorControl.h | 4 + src/servers/sapphire_zone/Zone/House.cpp | 75 ++++++++++++++++--- src/servers/sapphire_zone/Zone/House.h | 9 ++- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 11 ++- .../sapphire_zone/Zone/HousingZone.cpp | 12 +-- src/servers/sapphire_zone/Zone/Land.cpp | 11 +++ 8 files changed, 115 insertions(+), 23 deletions(-) diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index cf76f4f0..bb92489c 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -181,8 +181,8 @@ void Core::Db::ZoneDbConnection::doPrepareStatements() "secWeaponModel, aggressionMode, enemyType, pose, " "modelChara, displayFlags, Look, Models " "FROM bnpctemplate WHERE 1;", - CONNECTION_BOTH); - + CONNECTION_BOTH ); + prepareStatement( CHARA_ITEMGLOBAL_UP, "UPDATE charaglobalitem SET stack = ?, durability = ?, stain = ? WHERE ItemId = ?;", CONNECTION_BOTH ); @@ -191,6 +191,15 @@ void Core::Db::ZoneDbConnection::doPrepareStatements() "UPDATE charaglobalitem SET IS_DELETE = 1 WHERE ItemId = ?;", CONNECTION_BOTH ); + /// HOUSING + prepareStatement( HOUSING_HOUSE_INS, + "INSERT INTO house ( LandSetId, HouseId ) VALUES ( ?, ? );", + CONNECTION_BOTH ); + + prepareStatement( HOUSING_HOUSE_UP, + "UPDATE house SET BuildTime = ?, Aetheryte = ?, Comment = ?, HouseName = ?, Endorsements = ?, HousePartModels = ?, HousePartColours = ? WHERE HouseId = ?;", + CONNECTION_BOTH ); + /*prepareStatement( LAND_INS, "INSERT INTO land ( LandSetId ) VALUES ( ? );", CONNECTION_BOTH ); diff --git a/src/common/Database/ZoneDbConnection.h b/src/common/Database/ZoneDbConnection.h index 0a106cd3..aa3cdf0f 100644 --- a/src/common/Database/ZoneDbConnection.h +++ b/src/common/Database/ZoneDbConnection.h @@ -81,6 +81,9 @@ namespace Core::Db LAND_INS, LAND_SEL, LAND_UP, + HOUSING_HOUSE_INS, + HOUSING_HOUSE_UP, + HOUSING_HOUSE_DEL, MAX_STATEMENTS diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 5d126c49..496ed69e 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -297,7 +297,11 @@ enum ActorControlType : uint16_t RequestWardLandInfo = 0x453, RequestLandRelinquish = 0x454, RequestEstateRename = 0x45A, + RequestEstateEditGreeting = 0x45B, RequestEstateGreeting = 0x45C, // sends FFXIVIpcHousingEstateGreeting in return + RequestEstateEditGuestAccessSettings = 0x45D, + RequestEstateTagSettings = 0x45F, + RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index 40aa2b73..333bfec4 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "House.h" @@ -19,25 +20,79 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ m_wardNum( wardNum ), m_territoryTypeId( territoryTypeId ) { - memset( &m_houseParts, 0x00, sizeof( m_houseParts ) ); - memset( &m_commentMsg, 0x00, sizeof( m_commentMsg ) ); - auto pDB = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDB->query("SELECT * FROM house WHERE HouseId = " + std::to_string( houseId ) ); + + // todo: convert to prepared statement + auto res = pDB->query( "SELECT * FROM house WHERE HouseId = " + std::to_string( houseId ) ); if( !res->next() ) { - pDB->directExecute("INSERT INTO house ( LandSetId, HouseId ) VALUES ( " + std::to_string( m_landSetId ) + ", " + std::to_string( m_houseId ) + " )" ); + g_fw.get< Core::Logger >()->info( "Creating house House#" + std::to_string( houseId ) + " in LandSet#" + std::to_string( landSetId ) ); + + auto stmt = pDB->getPreparedStatement( Db::HOUSING_HOUSE_INS ); + + stmt->setUInt( 1, m_landSetId ); + stmt->setUInt( 2, m_houseId ); + + pDB->execute( stmt ); } else { - // todo + m_estateMessage = res->getString( "Comment" ); + m_houseName = res->getString( "HouseName" ); + + auto housePartModels = res->getBlobVector( "HousePartModels" ); + auto housePartColours = res->getBlobVector( "HousePartColours" ); + + auto models = reinterpret_cast< uint32_t* >( &housePartModels[ 0 ] ); + auto colours = &housePartColours[ 0 ]; + + for( auto i = 0; i < 8; i++ ) + { + m_houseParts[ i ] = { models[ i ], colours[ i ] }; + } } } Core::House::~House() { +} +void Core::House::updateHouseDb() +{ + auto pDB = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + + // BuildTime = 1, Aetheryte = 2, Comment = 3, HouseName = 4, Endorsements = 5, + // HousePartModels = 6, HousePartColours = 7, HouseId = 8 + auto stmt = pDB->getPreparedStatement( Db::HOUSING_HOUSE_UP ); + stmt->setUInt( 8, m_houseId ); + + stmt->setInt64( 1, m_buildTime ); + stmt->setInt( 2, 0 ); + + stmt->setString( 3, m_estateMessage ); + stmt->setString( 4, m_houseName ); + + stmt->setUInt64( 5, 0 ); + + std::vector< uint32_t > models; + std::vector< uint8_t > colours; + + for( auto i = 0; i < 8; i++ ) + { + auto& part = m_houseParts[ i ]; + models.push_back( part.first ); + colours.push_back( part.second ); + } + + // todo: this is shit + std::vector< uint8_t > tmpModels( models.size() * 4 ); + memcpy( tmpModels.data(), models.data(), tmpModels.size() ); + + stmt->setBinary( 6, tmpModels ); + stmt->setBinary( 7, colours ); + + pDB->execute( stmt ); } uint32_t Core::House::getLandSetId() const @@ -67,22 +122,22 @@ uint32_t Core::House::getHouseId() const uint8_t Core::House::getHousePartColor( Common::HousePartSlot slot ) const { - return std::get< 1 >( m_houseParts[ slot ] ); + return m_houseParts[ slot ].second; } void Core::House::setHousePart( Common::HousePartSlot slot, uint32_t id ) { - std::get< 0 >( m_houseParts[ slot ] ) = id; + m_houseParts[ slot ].first = id; } void Core::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id ) { - std::get< 1 >( m_houseParts[ slot ] ) = id; + m_houseParts[ slot ].second = id; } uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) const { - return std::get< 0 >( m_houseParts[ slot ] ); + return m_houseParts[ slot ].first; } Core::House::HousePartsArray const& Core::House::getHouseParts() const diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h index 410ab80d..17abaaba 100644 --- a/src/servers/sapphire_zone/Zone/House.h +++ b/src/servers/sapphire_zone/Zone/House.h @@ -15,7 +15,7 @@ namespace Core House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t territoryTypeId ); virtual ~House(); - using HousePart = std::tuple< uint32_t, uint8_t >; + using HousePart = std::pair< uint32_t, uint8_t >; using HousePartsArray = std::array< HousePart, 8 >; //gerneral @@ -33,6 +33,8 @@ namespace Core HousePartsArray const& getHouseParts() const; + void updateHouseDb(); + private: uint32_t m_landSetId; uint8_t m_landId; @@ -40,9 +42,12 @@ namespace Core uint16_t m_territoryTypeId; uint32_t m_houseId; + uint64_t m_buildTime; + HousePartsArray m_houseParts; - char m_commentMsg[ 193 ]; + std::string m_estateMessage; + std::string m_houseName; }; } diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 28c18adf..24b4540e 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -295,10 +295,19 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu pLand->setState( HouseState::privateHouse ); pLand->setLandType( LandType::Private ); - pLand->updateLandDb(); hZone->sendLandUpdate( plotNum ); auto pSuccessBuildingPacket = makeActorControl142( player.getId(), ActorControl::BuildPresetResponse, plotNum ); player.queuePacket( pSuccessBuildingPacket ); + + pLand->updateLandDb(); + + // start house built event + // CmnDefHousingBuildHouse_00149 + player.eventStart( player.getId(), 0x000B0095, Event::EventHandler::EventType::Housing, 1, 1 ); + // todo: wtf are these flags + player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr ); + + // todo: send perms/flags for house } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 37beafcd..be5434b4 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -145,10 +145,8 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) for( auto i = 0; i != parts.size(); i++ ) { - auto [ part, colour ] = parts[ i ]; - - landData.housePart[ i ] = part; - landData.houseColour[ i ] = colour; + landData.housePart[ i ] = parts[ i ].first; + landData.houseColour[ i ] = parts[ i ].second; } } } @@ -183,10 +181,8 @@ void Core::HousingZone::sendLandUpdate( uint8_t landId ) for( auto i = 0; i != parts.size(); i++ ) { - auto [ part, colour ] = parts[ i ]; - - landData.housePart[ i ] = part; - landData.houseColour[ i ] = colour; + landData.housePart[ i ] = parts[ i ].first; + landData.houseColour[ i ] = parts[ i ].second; } } diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 81ce268e..4db6c196 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -80,6 +80,13 @@ void Core::Land::load() m_ownerPlayerId = res->getUInt( "OwnerId" ); m_minPrice = m_landInfo->minPrice[ m_landId ]; m_maxPrice = m_landInfo->initialPrice[ m_landId ]; + + auto houseId = res->getUInt( "HouseId" ); + + // fetch the house if we have one for this land + if( houseId > 0 ) + m_pHouse = make_House( houseId, m_landSetId, m_landId, m_wardNum, m_territoryTypeId ); + } init(); } @@ -252,6 +259,7 @@ void Core::Land::updateLandDb() if( getHouse() ) houseId = getHouse()->getHouseId(); + // todo: change to prepared statement auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); pDb->directExecute( "UPDATE land SET status = " + std::to_string( m_state ) + ", LandPrice = " + std::to_string( getCurrentPrice() ) @@ -261,6 +269,9 @@ void Core::Land::updateLandDb() + ", Type = " + std::to_string( static_cast< uint32_t >( m_type ) ) //TODO: add house id + " WHERE LandSetId = " + std::to_string( m_landSetId ) + " AND LandId = " + std::to_string( m_landId ) + ";" ); + + if( auto house = getHouse() ) + house->updateHouseDb(); } void Core::Land::update( uint32_t currTime ) From 7b3a8943491a1d93be14fc480183c644d3254e5e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 26 Nov 2018 23:43:40 +1100 Subject: [PATCH 117/385] Correct house db column sizes --- sql/update_land.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/update_land.sql b/sql/update_land.sql index d6034988..87f14e23 100644 --- a/sql/update_land.sql +++ b/sql/update_land.sql @@ -1,4 +1,4 @@ ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`; ALTER TABLE `house` ADD `HouseName` binary(23) DEFAULT "" AFTER `Comment`; -ALTER TABLE `house` ADD `HousePartModels` BINARY(48) DEFAULT "" AFTER `Endorsements`; -ALTER TABLE `house` ADD `HousePartColours` BINARY(48) DEFAULT "" AFTER `HousePartModels`; \ No newline at end of file +ALTER TABLE `house` ADD `HousePartModels` BINARY(32) DEFAULT "" AFTER `Endorsements`; +ALTER TABLE `house` ADD `HousePartColours` BINARY(8) DEFAULT "" AFTER `HousePartModels`; \ No newline at end of file From 90eb03df95a0f7ac13c7b94865fee63d449fd95a Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 26 Nov 2018 23:15:42 +0100 Subject: [PATCH 118/385] Using LandIdent in packets --- src/common/Common.h | 9 +++++-- .../Network/PacketDef/Zone/ServerZoneDef.h | 27 ++++--------------- src/servers/sapphire_zone/Actor/Player.cpp | 16 +++++------ src/servers/sapphire_zone/Zone/HousingMgr.cpp | 13 ++++----- .../sapphire_zone/Zone/HousingZone.cpp | 9 ++++--- 5 files changed, 32 insertions(+), 42 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index fe8eb6bc..5cfd5a63 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -774,12 +774,17 @@ namespace Core::Common Private = 2, }; - struct LandPermissionSet + struct LandIdent { int16_t landId; //00 int16_t wardNum; //02 - int16_t zoneId; //04 + int16_t territoryTypeId; //04 int16_t worldId; //06 + }; + + struct LandPermissionSet + { + LandIdent landIdent; uint32_t permissionMask; //08 uint32_t unkown1; //12 }; diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 44247c6d..2c25972d 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1612,10 +1612,7 @@ struct LandStruct struct FFXIVIpcLandUpdate : FFXIVIpcBasePacket< LandUpdate > { - uint16_t landId; - uint16_t unknow0; - uint16_t unknow1; - uint16_t unknow2; + Common::LandIdent landIdent; LandStruct land; }; @@ -1627,10 +1624,7 @@ struct FFXIVIpcLandPriceUpdate : FFXIVIpcBasePacket< LandPriceUpdate > struct FFXIVIpcLandInfoSign : FFXIVIpcBasePacket< LandInfoSign > { - uint16_t landId; - uint16_t wardNum; - uint16_t zoneId; - uint16_t worldId; + Common::LandIdent landIdent; uint64_t ownerId; // ither contentId or fcId uint32_t unknow1; uint8_t houseIconAdd; @@ -1645,10 +1639,7 @@ struct FFXIVIpcLandInfoSign : FFXIVIpcBasePacket< LandInfoSign > struct FFXIVIpcLandRename : FFXIVIpcBasePacket< LandRename > { - uint16_t landId; - uint16_t wardNum; - uint16_t zoneId; - uint16_t worldId; + Common::LandIdent landIdent; char landName[20]; uint32_t padding; }; @@ -1669,10 +1660,7 @@ struct FFXIVIpcLandSetMap : FFXIVIpcBasePacket< LandSetMap > struct FFXIVIpcLandSetInitialize : FFXIVIpcBasePacket< LandSetInitialize > { - uint16_t unknown0; - uint16_t landSetId; // set 1 for "Mist, Ward 2" - uint16_t zoneId; - uint16_t worldId; + Common::LandIdent landIdent; uint8_t unknown1; uint8_t subInstance; // (default : 1/2) uint8_t unknown3; @@ -1722,12 +1710,7 @@ struct FFXIVIpcLandSetYardInitialize : FFXIVIpcBasePacket< LandSetYardInitialize struct FFXIVIpcHousingWardInfo : FFXIVIpcBasePacket< HousingWardInfo > { - uint16_t unknown1; - - uint16_t wardId; - uint16_t territoryTypeId; - - uint16_t unknown2; + Common::LandIdent landIdent; struct HouseInfoEntry { diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 796106c3..6f2866d6 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1771,11 +1771,11 @@ bool Core::Entity::Player::isOnEnterEventDone() const void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ) { - m_landPermission[ permissionSet ].landId = landId; + m_landPermission[ permissionSet ].landIdent.landId = landId; + m_landPermission[ permissionSet ].landIdent.wardNum = wardNum; + m_landPermission[ permissionSet ].landIdent.territoryTypeId = zoneId; + m_landPermission[ permissionSet ].landIdent.worldId = 67; m_landPermission[ permissionSet ].permissionMask = permissionMask; - m_landPermission[ permissionSet ].wardNum = wardNum; - m_landPermission[ permissionSet ].zoneId = zoneId; - m_landPermission[ permissionSet ].worldId = 67; m_landPermission[ permissionSet ].unkown1 = 0; } @@ -1805,10 +1805,10 @@ void Core::Entity::Player::sendLandPermissionSlot( uint8_t slotId, uint8_t landI auto landPermissions = makeZonePacket< FFXIVIpcLandPermissionSlot >( getId() ); landPermissions->data().type = slotId; - landPermissions->data().permissionSet.landId = landId; - landPermissions->data().permissionSet.wardNum = wardId; - landPermissions->data().permissionSet.zoneId = zoneId; - landPermissions->data().permissionSet.worldId = 67; + landPermissions->data().permissionSet.landIdent.landId = landId; + landPermissions->data().permissionSet.landIdent.wardNum = wardId; + landPermissions->data().permissionSet.landIdent.territoryTypeId = zoneId; + landPermissions->data().permissionSet.landIdent.worldId = 67; landPermissions->data().permissionSet.permissionMask = 0; queuePacket( landPermissions ); } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 24b4540e..0ff6dd85 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -93,12 +93,13 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); landInfoSignPacket->data().houseSize = land->getSize(); landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() ); - landInfoSignPacket->data().landId = land->getLandId(); + landInfoSignPacket->data().landIdent.landId = land->getLandId(); + landInfoSignPacket->data().landIdent.wardNum = land->getWardNum(); + landInfoSignPacket->data().landIdent.worldId = 67; + landInfoSignPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); - landInfoSignPacket->data().wardNum = land->getWardNum(); - landInfoSignPacket->data().worldId = 67; - landInfoSignPacket->data().zoneId = land->getTerritoryTypeId(); + player.queuePacket( landInfoSignPacket ); } @@ -230,8 +231,8 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, return; auto wardInfoPacket = makeZonePacket< Server::FFXIVIpcHousingWardInfo >( player.getId() ); - wardInfoPacket->data().wardId = wardId; - wardInfoPacket->data().territoryTypeId = territoryTypeId; + wardInfoPacket->data().landIdent.wardNum = wardId; + wardInfoPacket->data().landIdent.territoryTypeId = territoryTypeId; for( int i = 0; i < 60; i++ ) { diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index be5434b4..d3b99e4c 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -116,10 +116,11 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) { auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() ); - landsetInitializePacket->data().landSetId = m_landSetId; - landsetInitializePacket->data().zoneId = m_territoryTypeId; + landsetInitializePacket->data().landIdent.wardNum = m_wardNum; + //landsetInitializePacket->data().landIdent.landSetId = m_landSetId; + landsetInitializePacket->data().landIdent.territoryTypeId = m_territoryTypeId; //TODO: get current WorldId - landsetInitializePacket->data().worldId = 67; + landsetInitializePacket->data().landIdent.worldId = 67; landsetInitializePacket->data().subInstance = isPlayerSubInstance( player ) == false ? 1 : 2; uint8_t startIndex = isPlayerSubInstance( player ) == false ? 0 : 30; @@ -162,7 +163,7 @@ void Core::HousingZone::sendLandUpdate( uint8_t landId ) auto pPlayer = playerIt.second; auto landUpdatePacket = makeZonePacket< FFXIVIpcLandUpdate >( pPlayer->getId() ); - landUpdatePacket->data().landId = landId; + landUpdatePacket->data().landIdent.landId = landId; auto& landData = landUpdatePacket->data().land; From 6d3d90211a9e32cbb0b5c92df5b533cdaa730aa4 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 27 Nov 2018 22:48:58 +0100 Subject: [PATCH 119/385] Improved some errorhandling --- deps/watchdog/Watchdog.h | 6 ++++++ src/common/Config/ConfigMgr.cpp | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/deps/watchdog/Watchdog.h b/deps/watchdog/Watchdog.h index 735c0c6e..d9f7aa25 100644 --- a/deps/watchdog/Watchdog.h +++ b/deps/watchdog/Watchdog.h @@ -119,7 +119,13 @@ protected: // keep watching for modifications every ms milliseconds auto ms = std::chrono::milliseconds( 500 ); while( mWatching ) { + if( mFileWatchers.empty() ) + { + std::this_thread::sleep_for( ms ); + continue; + } do { + // iterate through each watcher and check for modification std::lock_guard lock( mMutex ); auto end = mFileWatchers.end(); diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index 1fdc9af0..8b72bf1a 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -17,7 +17,8 @@ bool Core::ConfigMgr::loadConfig( const std::string& configName ) if( !fs::exists( configFile ) ) { - copyDefaultConfig( configName ); + if( !copyDefaultConfig( configName ) ) + return false; } m_pInih = std::unique_ptr< INIReader >( new INIReader( configFile.string() ) ); From b3d662e2b2649a517a2b4d2bbdc05e7c3425b6d1 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 27 Nov 2018 21:11:02 +1100 Subject: [PATCH 120/385] refactor landpermission -> landstate --- src/common/Common.h | 4 ++-- src/common/Network/PacketDef/Ipcs.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 14 +++++++------- src/servers/sapphire_zone/Actor/Player.cpp | 18 +++++++++--------- src/servers/sapphire_zone/Actor/Player.h | 6 +++--- .../DebugCommand/DebugCommandHandler.cpp | 2 +- src/servers/sapphire_zone/Zone/House.cpp | 16 ++++++++++++++-- src/servers/sapphire_zone/Zone/House.h | 6 ++++++ src/servers/sapphire_zone/Zone/HousingMgr.cpp | 8 ++++---- 9 files changed, 47 insertions(+), 29 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 5cfd5a63..c64cbfef 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -758,7 +758,7 @@ namespace Core::Common SubTag2 }; - enum LandPermissionSlot + enum LandStateSlot { FreeCompany, Private, @@ -782,7 +782,7 @@ namespace Core::Common int16_t worldId; //06 }; - struct LandPermissionSet + struct LandStateSet { LandIdent landIdent; uint32_t permissionMask; //08 diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index a7c3533f..3dbfc1aa 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -193,7 +193,7 @@ namespace Core::Network::Packets HousingEstateGreeting = 0x0227, // updated 4.4 - LandPermissionSlot = 0x0228, // updated 4.4 + LandStateSlot = 0x0228, // updated 4.4 LandPermission = 0x0229, // updated 4.4 LandSetYardInitialize = 0x022C, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 2c25972d..f04e84ff 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1575,24 +1575,24 @@ struct FFXIVIpcPerformNote : FFXIVIpcBasePacket< PerformNote > uint8_t data[32]; }; -struct FFXIVIpcLandPermissionSlot : FFXIVIpcBasePacket< LandPermissionSlot > +struct FFXIVIpcLandStateSlot : FFXIVIpcBasePacket< LandStateSlot > { uint32_t type; uint32_t unknown; - Common::LandPermissionSet permissionSet; + Common::LandStateSet permissionSet; }; struct FFXIVIpcLandPermission : FFXIVIpcBasePacket< LandPermission > { - Common::LandPermissionSet freeCompanyHouse; // 00 + Common::LandStateSet freeCompanyHouse; // 00 uint64_t unkown1; - Common::LandPermissionSet privateHouse; // 24 + Common::LandStateSet privateHouse; // 24 uint64_t unkown2; - Common::LandPermissionSet apartment; // 48 + Common::LandStateSet apartment; // 48 uint64_t unkown3; - Common::LandPermissionSet sharedHouse[2]; //72 + Common::LandStateSet sharedHouse[2]; //72 uint64_t unkown4; - Common::LandPermissionSet unkownHouse; + Common::LandStateSet unkownHouse; uint64_t unkown5; }; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 6f2866d6..c75ef7bc 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1587,7 +1587,7 @@ void Core::Entity::Player::sendZonePackets() auto pHousingMgr = g_fw.get< HousingMgr >(); if( Core::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) { - setLandPermissions( LandPermissionSlot::Private, 0x00, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + setLandState( LandStateSlot::Private, 0x00, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); } sendLandPermissions(); @@ -1768,7 +1768,7 @@ bool Core::Entity::Player::isOnEnterEventDone() const return m_onEnterEventDone; } -void Core::Entity::Player::setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, +void Core::Entity::Player::setLandState( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ) { m_landPermission[ permissionSet ].landIdent.landId = landId; @@ -1783,11 +1783,11 @@ void Core::Entity::Player::sendLandPermissions() { auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); - landPermissions->data().freeCompanyHouse = m_landPermission[Common::LandPermissionSlot::FreeCompany]; - landPermissions->data().privateHouse = m_landPermission[Common::LandPermissionSlot::Private]; - landPermissions->data().apartment = m_landPermission[Common::LandPermissionSlot::Apartment]; - landPermissions->data().sharedHouse[0] = m_landPermission[Common::LandPermissionSlot::SharedHouse1]; - landPermissions->data().sharedHouse[1] = m_landPermission[Common::LandPermissionSlot::SharedHouse2]; + landPermissions->data().freeCompanyHouse = m_landPermission[Common::LandStateSlot::FreeCompany]; + landPermissions->data().privateHouse = m_landPermission[Common::LandStateSlot::Private]; + landPermissions->data().apartment = m_landPermission[Common::LandStateSlot::Apartment]; + landPermissions->data().sharedHouse[0] = m_landPermission[Common::LandStateSlot::SharedHouse1]; + landPermissions->data().sharedHouse[1] = m_landPermission[Common::LandStateSlot::SharedHouse2]; memset( &landPermissions->data().unkownHouse, 0xFF, 8 ); memset( &landPermissions->data().unkownHouse.permissionMask, 0, 8 ); landPermissions->data().unkownHouse.permissionMask = 2; @@ -1800,9 +1800,9 @@ void Core::Entity::Player::sendLandPermissions() queuePacket( landPermissions ); } -void Core::Entity::Player::sendLandPermissionSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ) +void Core::Entity::Player::sendLandStateSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ) { - auto landPermissions = makeZonePacket< FFXIVIpcLandPermissionSlot >( getId() ); + auto landPermissions = makeZonePacket< FFXIVIpcLandStateSlot >( getId() ); landPermissions->data().type = slotId; landPermissions->data().permissionSet.landIdent.landId = landId; diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 6462e6ea..3089dc3b 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -763,10 +763,10 @@ namespace Core::Entity // Housing Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// - void setLandPermissions( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ); + void setLandState( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ); void sendLandPermissions(); - void sendLandPermissionSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ); + void sendLandStateSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ); // Player Battle Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1025,7 +1025,7 @@ namespace Core::Entity uint8_t m_searchSelectClass; // class selected to show up in profile // housing info - Common::LandPermissionSet m_landPermission[5]; + Common::LandStateSet m_landPermission[5]; Common::ActiveLand m_activeLand; diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index f1962bf4..72ffb6ee 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -1018,7 +1018,7 @@ void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); if( pHousing ) { - player.setLandPermissions( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + player.setLandState( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); player.sendLandPermissions(); } else diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index 333bfec4..ce1f7a87 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -35,6 +35,9 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ stmt->setUInt( 2, m_houseId ); pDB->execute( stmt ); + + // todo: make this nicer/configurable? + m_houseName = "Estate #" + std::to_string( landId + 1 ); } else { @@ -45,11 +48,10 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ auto housePartColours = res->getBlobVector( "HousePartColours" ); auto models = reinterpret_cast< uint32_t* >( &housePartModels[ 0 ] ); - auto colours = &housePartColours[ 0 ]; for( auto i = 0; i < 8; i++ ) { - m_houseParts[ i ] = { models[ i ], colours[ i ] }; + m_houseParts[ i ] = { models[ i ], housePartColours[ i ] }; } } } @@ -143,4 +145,14 @@ uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) const Core::House::HousePartsArray const& Core::House::getHouseParts() const { return m_houseParts; +} + +const std::string& Core::House::getHouseName() const +{ + return m_houseName; +} + +const std::string& Core::House::getHouseGreeting() const +{ + return m_estateMessage; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h index 17abaaba..ff2c2af7 100644 --- a/src/servers/sapphire_zone/Zone/House.h +++ b/src/servers/sapphire_zone/Zone/House.h @@ -25,6 +25,12 @@ namespace Core uint16_t getTerritoryTypeId() const; uint32_t getHouseId() const; + const std::string& getHouseName() const; + void setHouseName( std::string& name ); + + const std::string& getHouseGreeting() const; + void setHouseGreeting( std::string& greeting ); + //functions void setHousePart( Common::HousePartSlot slot, uint32_t id ); void setHousePartColor( Common::HousePartSlot slot, uint32_t id ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 0ff6dd85..540bac56 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -157,10 +157,10 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, pLand->setState( HouseState::sold ); pLand->setLandType( Common::LandType::Private ); - player.setLandPermissions( LandPermissionSlot::Private, 0x00, plot, + player.setLandState( LandStateSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandPermissionSlot( static_cast< uint8_t >( LandType::Private ), plot, pHousing->getWardNum(), + player.sendLandStateSlot( static_cast< uint8_t >( LandType::Private ), plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); @@ -210,9 +210,9 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) pLand->setLandType( Common::LandType::none ); pLand->updateLandDb(); - player.setLandPermissions( LandPermissionSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); + player.setLandState( LandStateSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); - player.sendLandPermissionSlot( static_cast< uint8_t >( LandType::Private ), 0xFF, 0xFF, 0xFF ); + player.sendLandStateSlot( static_cast< uint8_t >( LandType::Private ), 0xFF, 0xFF, 0xFF ); auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 3351, 0x1AA, pLand->getWardNum() + 1, plot + 1 ); From 2e3a98f9de2ff247709a59a314d761a5a87a5c62 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 27 Nov 2018 21:45:29 +1100 Subject: [PATCH 121/385] send greeting, icon and house name when a house has been built --- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 540bac56..f338aaeb 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -9,6 +9,7 @@ #include #include +#include #include "Actor/Player.h" @@ -19,6 +20,7 @@ #include "Land.h" #include "Framework.h" #include "ServerMgr.h" +#include "House.h" using namespace Core::Common; using namespace Core::Network; @@ -97,7 +99,15 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId landInfoSignPacket->data().landIdent.wardNum = land->getWardNum(); landInfoSignPacket->data().landIdent.worldId = 67; landInfoSignPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + landInfoSignPacket->data().houseIconAdd = land->getSharing(); landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() + + if( auto house = land->getHouse() ) + { + std::strcpy( landInfoSignPacket->data().estateName, house->getHouseName().c_str() ); + std::strcpy( landInfoSignPacket->data().estateGreeting, house->getHouseGreeting().c_str() ); + } + memcpy( &landInfoSignPacket->data().ownerName, playerName.c_str(), playerName.size() ); player.queuePacket( landInfoSignPacket ); From f83d6ae35b8845cb208ecc8fee1f8bbe700349fe Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 27 Nov 2018 22:18:50 +1100 Subject: [PATCH 122/385] cleanup and unfuck the perms/state bullshit --- src/common/Common.h | 11 +++- src/servers/sapphire_zone/Actor/Player.cpp | 53 ++++++++++--------- src/servers/sapphire_zone/Actor/Player.h | 6 +-- .../DebugCommand/DebugCommandHandler.cpp | 4 +- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 8 +-- 5 files changed, 47 insertions(+), 35 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index c64cbfef..155b00ee 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -774,6 +774,15 @@ namespace Core::Common Private = 2, }; + enum LandEstateFlags : uint32_t + { + ESTATE_BUILT = 0x1, + ESTATE_HAS_AETHERYTE = 0x2, + UNKNOWN_1 = 0x4, + UNKNOWN_2 = 0x8, + UNKNOWN_3 = 0x10, + }; + struct LandIdent { int16_t landId; //00 @@ -785,7 +794,7 @@ namespace Core::Common struct LandStateSet { LandIdent landIdent; - uint32_t permissionMask; //08 + uint32_t estateFlags; //08 uint32_t unkown1; //12 }; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index c75ef7bc..20ae1d12 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -95,7 +95,7 @@ Core::Entity::Player::Player() : for ( uint8_t i = 0; i < 5; i++ ) { memset( &m_landPermission[i], 0xFF, 8 ); - memset( &m_landPermission[i].permissionMask, 0, 8 ); + memset( &m_landPermission[i].estateFlags, 0, 8 ); } m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS ); @@ -1587,10 +1587,20 @@ void Core::Entity::Player::sendZonePackets() auto pHousingMgr = g_fw.get< HousingMgr >(); if( Core::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) { - setLandState( LandStateSlot::Private, 0x00, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + uint32_t state = 0; + + if( pLand->getHouse() ) + { + state |= ESTATE_BUILT; + + // todo: remove this, debug for now + state |= ESTATE_HAS_AETHERYTE; + } + + setLandState( LandStateSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); } - sendLandPermissions(); + sendLandStates(); auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId(); @@ -1768,47 +1778,38 @@ bool Core::Entity::Player::isOnEnterEventDone() const return m_onEnterEventDone; } -void Core::Entity::Player::setLandState( uint8_t permissionSet, uint32_t permissionMask, +void Core::Entity::Player::setLandState( uint8_t permissionSet, uint32_t estateFlags, int16_t landId, int16_t wardNum, int16_t zoneId ) { m_landPermission[ permissionSet ].landIdent.landId = landId; m_landPermission[ permissionSet ].landIdent.wardNum = wardNum; m_landPermission[ permissionSet ].landIdent.territoryTypeId = zoneId; m_landPermission[ permissionSet ].landIdent.worldId = 67; - m_landPermission[ permissionSet ].permissionMask = permissionMask; + m_landPermission[ permissionSet ].estateFlags = estateFlags; m_landPermission[ permissionSet ].unkown1 = 0; } -void Core::Entity::Player::sendLandPermissions() +void Core::Entity::Player::sendLandStates() { auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); - landPermissions->data().freeCompanyHouse = m_landPermission[Common::LandStateSlot::FreeCompany]; - landPermissions->data().privateHouse = m_landPermission[Common::LandStateSlot::Private]; - landPermissions->data().apartment = m_landPermission[Common::LandStateSlot::Apartment]; - landPermissions->data().sharedHouse[0] = m_landPermission[Common::LandStateSlot::SharedHouse1]; - landPermissions->data().sharedHouse[1] = m_landPermission[Common::LandStateSlot::SharedHouse2]; - memset( &landPermissions->data().unkownHouse, 0xFF, 8 ); - memset( &landPermissions->data().unkownHouse.permissionMask, 0, 8 ); - landPermissions->data().unkownHouse.permissionMask = 2; - landPermissions->data().unkown1 = 0; - landPermissions->data().unkown2 = 0; - landPermissions->data().unkown3 = 0; - landPermissions->data().unkown4 = 0; - landPermissions->data().unkown5 = 0; + landPermissions->data().freeCompanyHouse = m_landPermission[ Common::LandStateSlot::FreeCompany ]; + landPermissions->data().privateHouse = m_landPermission[ Common::LandStateSlot::Private ]; + landPermissions->data().apartment = m_landPermission[ Common::LandStateSlot::Apartment ]; + landPermissions->data().sharedHouse[ 0 ] = m_landPermission[ Common::LandStateSlot::SharedHouse1 ]; + landPermissions->data().sharedHouse[ 1 ] = m_landPermission[ Common::LandStateSlot::SharedHouse2 ]; queuePacket( landPermissions ); } -void Core::Entity::Player::sendLandStateSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ) +void Core::Entity::Player::sendLandStateSlot( Common::LandStateSlot slot ) { auto landPermissions = makeZonePacket< FFXIVIpcLandStateSlot >( getId() ); - landPermissions->data().type = slotId; - landPermissions->data().permissionSet.landIdent.landId = landId; - landPermissions->data().permissionSet.landIdent.wardNum = wardId; - landPermissions->data().permissionSet.landIdent.territoryTypeId = zoneId; - landPermissions->data().permissionSet.landIdent.worldId = 67; - landPermissions->data().permissionSet.permissionMask = 0; + auto slotId = static_cast< uint8_t >( slot ); + + landPermissions->data().type = slotId; + landPermissions->data().permissionSet = m_landPermission[ slotId ]; + queuePacket( landPermissions ); } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 3089dc3b..2a7d5ea6 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -763,10 +763,10 @@ namespace Core::Entity // Housing Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// - void setLandState( uint8_t permissionSet, uint32_t permissionMask, int16_t landId, int16_t wardNum, int16_t zoneId ); + void setLandState( uint8_t permissionSet, uint32_t estateFlags, int16_t landId, int16_t wardNum, int16_t zoneId ); - void sendLandPermissions(); - void sendLandStateSlot( uint8_t slotId, uint8_t landId, uint8_t wardId, uint16_t zoneId ); + void sendLandStates(); + void sendLandStateSlot( Common::LandStateSlot slot ); // Player Battle Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 72ffb6ee..64723a1f 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -730,7 +730,7 @@ void Core::DebugCommandHandler::script( char* data, Entity::Player& player, std: for( auto it = scripts.begin(); it != scripts.end(); ++it ) { auto script = *it; - player.sendDebug( " - '" + script->library_name + + player.sendDebug( " - '" + script->library_name + ", num scripts: " + std::to_string( script->scripts.size() ) ); } } @@ -1019,7 +1019,7 @@ void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std if( pHousing ) { player.setLandState( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandPermissions(); + player.sendLandStates(); } else player.sendDebug( "You aren't in a housing Zone." ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index f338aaeb..2a88f384 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -170,8 +170,7 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, player.setLandState( LandStateSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandStateSlot( static_cast< uint8_t >( LandType::Private ), plot, pHousing->getWardNum(), - pHousing->getTerritoryTypeId() ); + player.sendLandStateSlot( LandStateSlot::Private ); //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); pLand->updateLandDb(); @@ -222,7 +221,7 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) player.setLandState( LandStateSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); - player.sendLandStateSlot( static_cast< uint8_t >( LandType::Private ), 0xFF, 0xFF, 0xFF ); + player.sendLandStateSlot( LandStateSlot::Private ); auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 3351, 0x1AA, pLand->getWardNum() + 1, plot + 1 ); @@ -321,4 +320,7 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr ); // todo: send perms/flags for house + + player.setLandState( LandStateSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + player.sendLandStateSlot( LandStateSlot::Private ); } From 945d91b7832faa85d9a54c657dadc7e99d563227 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 27 Nov 2018 23:12:26 +1100 Subject: [PATCH 123/385] change LandState to LandFlags --- src/common/Common.h | 8 ++++---- .../Network/PacketDef/Zone/ServerZoneDef.h | 12 ++++++------ src/servers/sapphire_zone/Actor/Player.cpp | 14 +++++++------- src/servers/sapphire_zone/Actor/Player.h | 8 ++++---- .../DebugCommand/DebugCommandHandler.cpp | 4 ++-- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 18 ++++++++---------- 6 files changed, 31 insertions(+), 33 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 155b00ee..17d7055c 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -774,7 +774,7 @@ namespace Core::Common Private = 2, }; - enum LandEstateFlags : uint32_t + enum LandFlags : uint32_t { ESTATE_BUILT = 0x1, ESTATE_HAS_AETHERYTE = 0x2, @@ -791,10 +791,10 @@ namespace Core::Common int16_t worldId; //06 }; - struct LandStateSet + struct LandFlagSet { LandIdent landIdent; - uint32_t estateFlags; //08 + uint32_t landFlags; //08 uint32_t unkown1; //12 }; @@ -843,7 +843,7 @@ namespace Core::Common Venue = 11, }; - enum WardEstateFlags : uint8_t + enum WardlandFlags : uint8_t { IsEstateOwned = 1, IsPublicEstate = 2, diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index f04e84ff..b5a6ebf8 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1579,20 +1579,20 @@ struct FFXIVIpcLandStateSlot : FFXIVIpcBasePacket< LandStateSlot > { uint32_t type; uint32_t unknown; - Common::LandStateSet permissionSet; + Common::LandFlagSet permissionSet; }; struct FFXIVIpcLandPermission : FFXIVIpcBasePacket< LandPermission > { - Common::LandStateSet freeCompanyHouse; // 00 + Common::LandFlagSet freeCompanyHouse; // 00 uint64_t unkown1; - Common::LandStateSet privateHouse; // 24 + Common::LandFlagSet privateHouse; // 24 uint64_t unkown2; - Common::LandStateSet apartment; // 48 + Common::LandFlagSet apartment; // 48 uint64_t unkown3; - Common::LandStateSet sharedHouse[2]; //72 + Common::LandFlagSet sharedHouse[2]; //72 uint64_t unkown4; - Common::LandStateSet unkownHouse; + Common::LandFlagSet unkownHouse; uint64_t unkown5; }; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 20ae1d12..95b5d1af 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -95,7 +95,7 @@ Core::Entity::Player::Player() : for ( uint8_t i = 0; i < 5; i++ ) { memset( &m_landPermission[i], 0xFF, 8 ); - memset( &m_landPermission[i].estateFlags, 0, 8 ); + memset( &m_landPermission[i].landFlags, 0, 8 ); } m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS ); @@ -1597,10 +1597,10 @@ void Core::Entity::Player::sendZonePackets() state |= ESTATE_HAS_AETHERYTE; } - setLandState( LandStateSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + setLandFlags( LandStateSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); } - sendLandStates(); + sendLandFlags(); auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryTypeId(); @@ -1778,18 +1778,18 @@ bool Core::Entity::Player::isOnEnterEventDone() const return m_onEnterEventDone; } -void Core::Entity::Player::setLandState( uint8_t permissionSet, uint32_t estateFlags, +void Core::Entity::Player::setLandFlags( uint8_t permissionSet, uint32_t landFlags, int16_t landId, int16_t wardNum, int16_t zoneId ) { m_landPermission[ permissionSet ].landIdent.landId = landId; m_landPermission[ permissionSet ].landIdent.wardNum = wardNum; m_landPermission[ permissionSet ].landIdent.territoryTypeId = zoneId; m_landPermission[ permissionSet ].landIdent.worldId = 67; - m_landPermission[ permissionSet ].estateFlags = estateFlags; + m_landPermission[ permissionSet ].landFlags = landFlags; m_landPermission[ permissionSet ].unkown1 = 0; } -void Core::Entity::Player::sendLandStates() +void Core::Entity::Player::sendLandFlags() { auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); @@ -1802,7 +1802,7 @@ void Core::Entity::Player::sendLandStates() queuePacket( landPermissions ); } -void Core::Entity::Player::sendLandStateSlot( Common::LandStateSlot slot ) +void Core::Entity::Player::sendLandFlagsSlot( Common::LandStateSlot slot ) { auto landPermissions = makeZonePacket< FFXIVIpcLandStateSlot >( getId() ); diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 2a7d5ea6..3ca345d2 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -763,10 +763,10 @@ namespace Core::Entity // Housing Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// - void setLandState( uint8_t permissionSet, uint32_t estateFlags, int16_t landId, int16_t wardNum, int16_t zoneId ); + void setLandFlags( uint8_t permissionSet, uint32_t landFlags, int16_t landId, int16_t wardNum, int16_t zoneId ); - void sendLandStates(); - void sendLandStateSlot( Common::LandStateSlot slot ); + void sendLandFlags(); + void sendLandFlagsSlot( Common::LandStateSlot slot ); // Player Battle Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1025,7 +1025,7 @@ namespace Core::Entity uint8_t m_searchSelectClass; // class selected to show up in profile // housing info - Common::LandStateSet m_landPermission[5]; + Common::LandFlagSet m_landPermission[5]; Common::ActiveLand m_activeLand; diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 64723a1f..86da3c95 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -1018,8 +1018,8 @@ void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); if( pHousing ) { - player.setLandState( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandStates(); + player.setLandFlags( permissionSet, 0, pHousing->getLandSetId(), pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); + player.sendLandFlags(); } else player.sendDebug( "You aren't in a housing Zone." ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 2a88f384..2d2a25fd 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -167,10 +167,10 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, pLand->setState( HouseState::sold ); pLand->setLandType( Common::LandType::Private ); - player.setLandState( LandStateSlot::Private, 0x00, plot, + player.setLandFlags( LandStateSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandStateSlot( LandStateSlot::Private ); + player.sendLandFlagsSlot( LandStateSlot::Private ); //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); pLand->updateLandDb(); @@ -219,9 +219,9 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) pLand->setLandType( Common::LandType::none ); pLand->updateLandDb(); - player.setLandState( LandStateSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); + player.setLandFlags( LandStateSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); - player.sendLandStateSlot( LandStateSlot::Private ); + player.sendLandFlagsSlot( LandStateSlot::Private ); auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 3351, 0x1AA, pLand->getWardNum() + 1, plot + 1 ); @@ -260,14 +260,14 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, switch( land->getLandType() ) { case LandType::FreeCompany: - entry.infoFlags = Common::WardEstateFlags::IsEstateOwned | Common::WardEstateFlags::IsFreeCompanyEstate; + entry.infoFlags = Common::WardlandFlags::IsEstateOwned | Common::WardlandFlags::IsFreeCompanyEstate; // todo: send FC name break; case LandType::Private: - entry.infoFlags = Common::WardEstateFlags::IsEstateOwned; + entry.infoFlags = Common::WardlandFlags::IsEstateOwned; auto owner = land->getPlayerOwner(); std::string playerName = g_fw.get< Core::ServerMgr >()->getPlayerNameFromDb( owner ); @@ -319,8 +319,6 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu // todo: wtf are these flags player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr ); - // todo: send perms/flags for house - - player.setLandState( LandStateSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); - player.sendLandStateSlot( LandStateSlot::Private ); + player.setLandFlags( LandStateSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + player.sendLandFlagsSlot( LandStateSlot::Private ); } From 614439836cb285a7b0f7e271a6b44f63159a4cc9 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 28 Nov 2018 00:05:57 +1100 Subject: [PATCH 124/385] house renaming works :tada: --- src/common/Network/PacketDef/Ipcs.h | 2 ++ .../Network/PacketDef/Zone/ClientZoneDef.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 9 ++++++++- .../Network/Handlers/ClientTriggerHandler.cpp | 19 ++++++++++++------- .../Network/Handlers/PacketHandlers.cpp | 17 +++++++++++++++-- src/servers/sapphire_zone/Zone/House.cpp | 14 ++++++++++++++ src/servers/sapphire_zone/Zone/House.h | 4 ++-- 7 files changed, 54 insertions(+), 13 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 3dbfc1aa..a8ee1df1 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -204,6 +204,8 @@ namespace Core::Network::Packets SharedEstateSettingsResponse = 0x023C, // updated 4.4 + LandUpdateHouseName = 0x024D, // updated 4.4 + LandSetMap = 0x0251, // updated 4.4 ////////////////////////////////////////////////// diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 88e6134e..3e2ac51b 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -203,7 +203,7 @@ struct FFXIVIpcRenameLandHandler : /* 0002 */ uint16_t wardNum; /* 0004 */ uint16_t zoneId; /* 0006 */ uint16_t worldId; - /* 0008 */ char landName[20]; + /* 0008 */ char houseName[20]; /* 0028 */ uint32_t padding; }; diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b5a6ebf8..c7c80203 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1640,10 +1640,17 @@ struct FFXIVIpcLandInfoSign : FFXIVIpcBasePacket< LandInfoSign > struct FFXIVIpcLandRename : FFXIVIpcBasePacket< LandRename > { Common::LandIdent landIdent; - char landName[20]; + char houseName[20]; uint32_t padding; }; +struct FFXIVIpcLandUpdateHouseName : FFXIVIpcBasePacket< LandUpdateHouseName > +{ + uint32_t unknown[3]; + char houseName[20]; + uint32_t unknown2[2]; +}; + struct FFXIVIpcLandSetMap : FFXIVIpcBasePacket< LandSetMap > { uint8_t u1; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 137e8424..45d6c568 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -13,6 +13,7 @@ #include "Zone/HousingZone.h" #include "Zone/HousingMgr.h" #include "Zone/Land.h" +#include "Zone/House.h" #include "Network/GameConnection.h" @@ -365,7 +366,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR case ClientTriggerType::RequestEstateRename: { // removed temporarly, there is no such thing as a LandName -/* auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); + auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); uint8_t ward = ( param12 & 0xFF00 ) >> 8; uint8_t plot = ( param12 & 0xFF ); @@ -382,13 +383,17 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR land = pHousingMgr->getLandByOwnerId( player.getId() ); } - landRenamePacket->data().landId = land->getLandId(); - landRenamePacket->data().wardNum = land->getWardNum(); - landRenamePacket->data().worldId = 67; - landRenamePacket->data().zoneId = land->getZoneId(); - memcpy( &landRenamePacket->data().landName, land->getLandName().c_str(), 20 ); + auto house = land->getHouse(); + if( !house ) + break; - player.queuePacket( landRenamePacket ); */ + landRenamePacket->data().landIdent.landId = land->getLandId(); + landRenamePacket->data().landIdent.wardNum = land->getWardNum(); + landRenamePacket->data().landIdent.worldId = 67; + landRenamePacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + memcpy( &landRenamePacket->data().houseName, house->getHouseName().c_str(), 20 ); + + player.queuePacket( landRenamePacket ); break; } diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 821b9b3d..16a7d5f0 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -20,6 +20,7 @@ #include "Zone/HousingMgr.h" #include "Zone/Land.h" #include "Zone/ZonePosition.h" +#include "Zone/House.h" #include "Network/PacketWrappers/InitUIPacket.h" #include "Network/PacketWrappers/PingPacket.h" @@ -664,8 +665,20 @@ void Core::Network::GameConnection::landRenameHandler( const Core::Network::Pack if( !pLand ) return; - // TODO set estate name - //pLand->setLandName( packet.data().landName ); + // todo: check perms for fc houses and shit + if( pLand->getPlayerOwner() != player.getId() ) + return; + + auto pHouse = pLand->getHouse(); + if( pHouse ) + pHouse->setHouseName( packet.data().houseName ); + + // todo: this packet is weird, retail sends it with some unknown shit at the start but it doesn't seem to do anything + auto nameUpdatePacket = makeZonePacket< Server::FFXIVIpcLandUpdateHouseName >( player.getId() ); + memcpy( &nameUpdatePacket->data().houseName, &packet.data().houseName, sizeof( packet.data().houseName ) ); + + // todo: who does this get sent to? just the person who renamed it? + player.queuePacket( nameUpdatePacket ); } void Core::Network::GameConnection::buildPresetHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index ce1f7a87..498a0781 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -155,4 +155,18 @@ const std::string& Core::House::getHouseName() const const std::string& Core::House::getHouseGreeting() const { return m_estateMessage; +} + +void Core::House::setHouseGreeting( const std::string& greeting ) +{ + m_estateMessage = greeting; + + updateHouseDb(); +} + +void Core::House::setHouseName( const std::string& name ) +{ + m_houseName = name; + + updateHouseDb(); } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h index ff2c2af7..ec2d3df4 100644 --- a/src/servers/sapphire_zone/Zone/House.h +++ b/src/servers/sapphire_zone/Zone/House.h @@ -26,10 +26,10 @@ namespace Core uint32_t getHouseId() const; const std::string& getHouseName() const; - void setHouseName( std::string& name ); + void setHouseName( const std::string& name ); const std::string& getHouseGreeting() const; - void setHouseGreeting( std::string& greeting ); + void setHouseGreeting( const std::string& greeting ); //functions void setHousePart( Common::HousePartSlot slot, uint32_t id ); From 855d760382214b3e9a3a9dc02102cb34ec8342c7 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 28 Nov 2018 00:36:45 +1100 Subject: [PATCH 125/385] correctly show edit estate name/greeting windows --- src/common/Network/PacketDef/Ipcs.h | 1 + .../Network/PacketDef/Zone/ServerZoneDef.h | 5 +- .../Network/Handlers/ClientTriggerHandler.cpp | 60 +++++++++++++++---- 3 files changed, 52 insertions(+), 14 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index a8ee1df1..518d1c91 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -304,6 +304,7 @@ namespace Core::Network::Packets LinkshellEventHandler1 = 0x1151, // updated 4.1 ?? LandRenameHandler = 0x0171, // updated 4.4 + LandChangeEstateMessageHandler = 0x0172, // updated 4.4 SetSharedEstateSettings = 0x0177, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index c7c80203..1f603d61 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1730,10 +1730,7 @@ struct FFXIVIpcHousingWardInfo : FFXIVIpcBasePacket< HousingWardInfo > struct FFXIVIpcHousingEstateGreeting : FFXIVIpcBasePacket< HousingEstateGreeting > { - uint8_t plotId; - uint8_t pad[3]; // unsure - uint16_t territoryTypeId; - uint16_t unk; + Common::LandIdent landIdent; char message[200]; }; diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 45d6c568..b81133ba 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -365,28 +365,30 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR } case ClientTriggerType::RequestEstateRename: { - // removed temporarly, there is no such thing as a LandName - auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); + uint16_t territoryTypeId = param11 & 0xFFFF; + uint16_t worldId = param11 >> 16; uint8_t ward = ( param12 & 0xFF00 ) >> 8; uint8_t plot = ( param12 & 0xFF ); - auto zone = player.getCurrentZone(); + auto pHousingMgr = g_fw.get< HousingMgr >(); + if( !pHousingMgr ) + break; - auto hZone = std::dynamic_pointer_cast< HousingZone >( zone ); + auto landSetId = pHousingMgr->toLandSetId( territoryTypeId, ward ); + auto hZone = pHousingMgr->getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + break; auto land = hZone->getLand( plot ); - if( !land ) - { - auto pHousingMgr = g_fw.get< HousingMgr >(); - land = pHousingMgr->getLandByOwnerId( player.getId() ); - } - auto house = land->getHouse(); if( !house ) break; + auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); + landRenamePacket->data().landIdent.landId = land->getLandId(); landRenamePacket->data().landIdent.wardNum = land->getWardNum(); landRenamePacket->data().landIdent.worldId = 67; @@ -397,6 +399,44 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR break; } + case ClientTriggerType::RequestEstateEditGreeting: + { + uint16_t territoryTypeId = param11 & 0xFFFF; + uint16_t worldId = param11 >> 16; + + uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t plot = ( param12 & 0xFF ); + + auto pHousingMgr = g_fw.get< HousingMgr >(); + if( !pHousingMgr ) + break; + + auto landSetId = pHousingMgr->toLandSetId( territoryTypeId, ward ); + auto hZone = pHousingMgr->getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + break; + + auto land = hZone->getLand( plot ); + if( !land ) + break; + + auto house = land->getHouse(); + if( !house ) + break; + + auto estateGreetingPacket = makeZonePacket< Server::FFXIVIpcHousingEstateGreeting >( player.getId() ); + + estateGreetingPacket->data().landIdent.landId = land->getLandId(); + estateGreetingPacket->data().landIdent.wardNum = land->getWardNum(); + estateGreetingPacket->data().landIdent.worldId = 67; + estateGreetingPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + memcpy( &estateGreetingPacket->data().message, house->getHouseGreeting().c_str(), sizeof( estateGreetingPacket->data().message ) ); + + player.queuePacket( estateGreetingPacket ); + + break; + } case ClientTriggerType::RequestHousingItemUI: { uint8_t ward = ( param12 & 0xFF00 ) >> 8; From ebee5e854ab14c34559a0c19272e6b6c9346bf29 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 28 Nov 2018 21:24:00 +1100 Subject: [PATCH 126/385] move more housing logic from client trigger handler to housingmgr --- .../Network/Handlers/ClientTriggerHandler.cpp | 49 +---------------- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 52 +++++++++++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.h | 3 ++ 3 files changed, 57 insertions(+), 47 deletions(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index b81133ba..d855cd98 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -10,10 +10,7 @@ #include "Zone/Zone.h" #include "Zone/ZonePosition.h" -#include "Zone/HousingZone.h" #include "Zone/HousingMgr.h" -#include "Zone/Land.h" -#include "Zone/House.h" #include "Network/GameConnection.h" @@ -375,27 +372,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR if( !pHousingMgr ) break; - auto landSetId = pHousingMgr->toLandSetId( territoryTypeId, ward ); - auto hZone = pHousingMgr->getHousingZoneByLandSetId( landSetId ); - - if( !hZone ) - break; - - auto land = hZone->getLand( plot ); - - auto house = land->getHouse(); - if( !house ) - break; - - auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); - - landRenamePacket->data().landIdent.landId = land->getLandId(); - landRenamePacket->data().landIdent.wardNum = land->getWardNum(); - landRenamePacket->data().landIdent.worldId = 67; - landRenamePacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); - memcpy( &landRenamePacket->data().houseName, house->getHouseName().c_str(), 20 ); - - player.queuePacket( landRenamePacket ); + pHousingMgr->requestEstateRename( player, territoryTypeId, worldId, ward, plot ); break; } @@ -411,29 +388,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR if( !pHousingMgr ) break; - auto landSetId = pHousingMgr->toLandSetId( territoryTypeId, ward ); - auto hZone = pHousingMgr->getHousingZoneByLandSetId( landSetId ); - - if( !hZone ) - break; - - auto land = hZone->getLand( plot ); - if( !land ) - break; - - auto house = land->getHouse(); - if( !house ) - break; - - auto estateGreetingPacket = makeZonePacket< Server::FFXIVIpcHousingEstateGreeting >( player.getId() ); - - estateGreetingPacket->data().landIdent.landId = land->getLandId(); - estateGreetingPacket->data().landIdent.wardNum = land->getWardNum(); - estateGreetingPacket->data().landIdent.worldId = 67; - estateGreetingPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); - memcpy( &estateGreetingPacket->data().message, house->getHouseGreeting().c_str(), sizeof( estateGreetingPacket->data().message ) ); - - player.queuePacket( estateGreetingPacket ); + pHousingMgr->requestEstateEditGreeting( player, territoryTypeId, worldId, ward, plot ); break; } diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 2d2a25fd..bc073f34 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -322,3 +322,55 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu player.setLandFlags( LandStateSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); player.sendLandFlagsSlot( LandStateSlot::Private ); } + +void Core::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +{ + auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto hZone = getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + return; + + auto land = hZone->getLand( plotId ); + + auto house = land->getHouse(); + if( !house ) + return; + + auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); + + landRenamePacket->data().landIdent.landId = land->getLandId(); + landRenamePacket->data().landIdent.wardNum = land->getWardNum(); + landRenamePacket->data().landIdent.worldId = 67; + landRenamePacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + memcpy( &landRenamePacket->data().houseName, house->getHouseName().c_str(), 20 ); + + player.queuePacket( landRenamePacket ); +} + +void Core::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +{ + auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto hZone = getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + return; + + auto land = hZone->getLand( plotId ); + if( !land ) + return; + + auto house = land->getHouse(); + if( !house ) + return; + + auto estateGreetingPacket = makeZonePacket< Server::FFXIVIpcHousingEstateGreeting >( player.getId() ); + + estateGreetingPacket->data().landIdent.landId = land->getLandId(); + estateGreetingPacket->data().landIdent.wardNum = land->getWardNum(); + estateGreetingPacket->data().landIdent.worldId = 67; + estateGreetingPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + memcpy( &estateGreetingPacket->data().message, house->getHouseGreeting().c_str(), sizeof( estateGreetingPacket->data().message ) ); + + player.queuePacket( estateGreetingPacket ); +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index cacaa9c1..a60fc672 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -36,6 +36,9 @@ namespace Core void buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ); + void requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + void requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + private: }; From a271ee6d46dc877327da344fe3ccdeab5f797ccf Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 28 Nov 2018 21:59:28 +1100 Subject: [PATCH 127/385] estate greetings can be updated/set --- src/common/Network/PacketDef/Ipcs.h | 2 +- .../Network/PacketDef/Zone/ClientZoneDef.h | 12 ++++++--- src/servers/sapphire_zone/Actor/Player.cpp | 6 +++++ src/servers/sapphire_zone/Actor/Player.h | 2 ++ .../sapphire_zone/Network/GameConnection.cpp | 5 +++- .../sapphire_zone/Network/GameConnection.h | 4 ++- .../Network/Handlers/PacketHandlers.cpp | 19 ++++++++++++-- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 25 +++++++++++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.h | 2 ++ 9 files changed, 68 insertions(+), 9 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 518d1c91..e7862e6d 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -304,7 +304,7 @@ namespace Core::Network::Packets LinkshellEventHandler1 = 0x1151, // updated 4.1 ?? LandRenameHandler = 0x0171, // updated 4.4 - LandChangeEstateMessageHandler = 0x0172, // updated 4.4 + HousingUpdateHouseGreeting = 0x0172, // updated 4.4 SetSharedEstateSettings = 0x0177, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 3e2ac51b..69ba674c 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -199,14 +199,18 @@ struct FFXIVIpcInventoryModifyHandler : struct FFXIVIpcRenameLandHandler : FFXIVIpcBasePacket< LandRenameHandler > { - /* 0000 */ uint16_t landId; - /* 0002 */ uint16_t wardNum; - /* 0004 */ uint16_t zoneId; - /* 0006 */ uint16_t worldId; + /* 0000 */ Common::LandIdent ident; /* 0008 */ char houseName[20]; /* 0028 */ uint32_t padding; }; +struct FFXIVIpcHousingUpdateHouseGreeting : + FFXIVIpcBasePacket< HousingUpdateHouseGreeting > +{ + /* 0000 */ Common::LandIdent ident; + /* 0008 */ char greeting[200]; +}; + struct FFXIVIpcBuildPresetHandler : FFXIVIpcBasePacket< BuildPresetHandler > { diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 95b5d1af..29c8ad61 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1290,6 +1290,12 @@ void Core::Entity::Player::sendDebug( const std::string& message ) //Grey Text queuePacket( std::make_shared< ChatPacket >( *getAsPlayer(), ChatType::ServerDebug, message ) ); } +void Core::Entity::Player::sendLogMessage( uint32_t messageId, uint32_t param2, uint32_t param3, + uint32_t param4, uint32_t param5, uint32_t param6 ) +{ + queuePacket( makeActorControl144( getId(), ActorControlType::LogMsg, messageId, param2, param3, param4, param5, param6 ) ); +} + void Core::Entity::Player::updateHowtosSeen( uint32_t howToId ) { uint8_t index = howToId / 8; diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 3ca345d2..dfc57e7b 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -757,6 +757,8 @@ namespace Core::Entity void sendDebug( const std::string& message ); + void sendLogMessage( uint32_t messageId, uint32_t param2 = 0, uint32_t param3 = 0, uint32_t param4 = 0, uint32_t param5 = 0, uint32_t param6 = 0 ); + bool isDirectorInitialized() const; void setDirectorInitialized( bool isInitialized ); diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index bfeda82f..71028d7a 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -85,6 +85,9 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, setZoneHandler( ClientZoneIpcType::BuildPresetHandler, "BuildPresetHandler", &GameConnection::buildPresetHandler ); setZoneHandler( ClientZoneIpcType::LandRenameHandler, "LandRenameHandler", &GameConnection::landRenameHandler ); + setZoneHandler( ClientZoneIpcType::HousingUpdateHouseGreeting, "HousingUpdateHouseGreeting", + &GameConnection::housingUpdateGreetingHandler ); + setZoneHandler( ClientZoneIpcType::TalkEventHandler, "EventHandlerTalk", &GameConnection::eventHandlerTalk ); setZoneHandler( ClientZoneIpcType::EmoteEventHandler, "EventHandlerEmote", &GameConnection::eventHandlerEmote ); setZoneHandler( ClientZoneIpcType::WithinRangeEventHandler, "EventHandlerWithinRange", @@ -225,7 +228,7 @@ void Core::Network::GameConnection::handleZonePacket( Core::Network::Packets::FF else { pLog->debug( sessionStr + " Undefined Zone IPC : Unknown ( " + - Util::intToHexString( static_cast< uint32_t >( opcode ), 4 ) + " )" ); + Util::intToHexString( static_cast< uint32_t >( opcode ), 4 ) + " )" ); pLog->debug( "Dump:\n" + Util::binaryToHexDump( const_cast< uint8_t* >( &pPacket.data[ 0 ] ), pPacket.segHdr.size ) ); } diff --git a/src/servers/sapphire_zone/Network/GameConnection.h b/src/servers/sapphire_zone/Network/GameConnection.h index c6ab31ae..9ab043f2 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.h +++ b/src/servers/sapphire_zone/Network/GameConnection.h @@ -152,7 +152,7 @@ namespace Core::Network DECLARE_HANDLER( cfRegisterRoulette ); DECLARE_HANDLER( cfDutyAccepted ); - + DECLARE_HANDLER( actionHandler ); DECLARE_HANDLER( gm1Handler ); @@ -165,6 +165,8 @@ namespace Core::Network DECLARE_HANDLER( landRenameHandler ); + DECLARE_HANDLER( housingUpdateGreetingHandler ); + DECLARE_HANDLER( buildPresetHandler ); DECLARE_HANDLER( tellHandler ); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 16a7d5f0..e6cd8a16 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -658,10 +658,15 @@ void Core::Network::GameConnection::landRenameHandler( const Core::Network::Pack { const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); - uint32_t landSetId = ( static_cast< uint32_t >( packet.data().zoneId ) << 16 ) | packet.data().wardNum; auto pHousingMgr = g_fw.get< HousingMgr >(); - auto pLand = pHousingMgr->getHousingZoneByLandSetId( landSetId )->getLand( packet.data().landId ); + auto landSetId = pHousingMgr->toLandSetId( packet.data().ident.territoryTypeId, packet.data().ident.wardNum ); + + auto pZone = pHousingMgr->getHousingZoneByLandSetId( landSetId ); + if( !pZone ) + return; + + auto pLand = pZone->getLand( packet.data().ident.landId ); if( !pLand ) return; @@ -689,3 +694,13 @@ void Core::Network::GameConnection::buildPresetHandler( const Core::Network::Pac auto pHousingMgr = g_fw.get< HousingMgr >(); pHousingMgr->buildPresetEstate( player, packet.data().plotNum, packet.data().itemId ); } + +void Core::Network::GameConnection::housingUpdateGreetingHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) +{ + const auto packet = ZoneChannelPacket< Client::FFXIVIpcHousingUpdateHouseGreeting >( inPacket ); + + auto pHousingMgr = g_fw.get< HousingMgr >(); + + pHousingMgr->updateEstateGreeting( player, packet.data().ident, std::string( packet.data().greeting ) ); +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index bc073f34..a6dd416e 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -374,3 +374,28 @@ void Core::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16 player.queuePacket( estateGreetingPacket ); } + +void Core::HousingMgr::updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ) +{ + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); + auto zone = getHousingZoneByLandSetId( landSetId ); + + if( !zone ) + return; + + auto land = zone->getLand( ident.landId ); + if( !land ) + return; + + // todo: implement proper permissions checks + if( land->getPlayerOwner() != player.getId() ) + return; + + auto house = land->getHouse(); + if( !house ) + return; + + house->setHouseGreeting( greeting ); + + player.sendLogMessage( 3381 ); +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index a60fc672..fa117cf4 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -37,7 +37,9 @@ namespace Core void buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ); void requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + void requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + void updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ); private: From 392b098a02b1fd9b4cb17fca61aada37883fc41b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 28 Nov 2018 23:29:55 +1100 Subject: [PATCH 128/385] Fix land state being sent incorrectly and consistently name those IPCs --- src/common/Common.h | 2 +- src/common/Network/PacketDef/Ipcs.h | 4 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 6 +- src/servers/sapphire_zone/Actor/Player.cpp | 61 ++++++++++++------- src/servers/sapphire_zone/Actor/Player.h | 4 +- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 13 ++-- 6 files changed, 53 insertions(+), 37 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 17d7055c..b03618ef 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -758,7 +758,7 @@ namespace Core::Common SubTag2 }; - enum LandStateSlot + enum LandFlagsSlot { FreeCompany, Private, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index e7862e6d..a50a5c3e 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -193,8 +193,8 @@ namespace Core::Network::Packets HousingEstateGreeting = 0x0227, // updated 4.4 - LandStateSlot = 0x0228, // updated 4.4 - LandPermission = 0x0229, // updated 4.4 + HousingUpdateLandFlagsSlot = 0x0228, // updated 4.4 + HousingLandFlags = 0x0229, // updated 4.4 LandSetYardInitialize = 0x022C, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 1f603d61..b6cc582f 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1575,14 +1575,14 @@ struct FFXIVIpcPerformNote : FFXIVIpcBasePacket< PerformNote > uint8_t data[32]; }; -struct FFXIVIpcLandStateSlot : FFXIVIpcBasePacket< LandStateSlot > +struct FFXIVIpcHousingUpdateLandFlagsSlot : FFXIVIpcBasePacket< HousingUpdateLandFlagsSlot > { uint32_t type; uint32_t unknown; - Common::LandFlagSet permissionSet; + Common::LandFlagSet flagSet; }; -struct FFXIVIpcLandPermission : FFXIVIpcBasePacket< LandPermission > +struct FFXIVIpcHousingLandFlags : FFXIVIpcBasePacket< HousingLandFlags > { Common::LandFlagSet freeCompanyHouse; // 00 uint64_t unkown1; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 29c8ad61..79f24075 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -94,8 +94,8 @@ Core::Entity::Player::Player() : for ( uint8_t i = 0; i < 5; i++ ) { - memset( &m_landPermission[i], 0xFF, 8 ); - memset( &m_landPermission[i].landFlags, 0, 8 ); + memset( &m_landFlags[i], 0xFF, 8 ); + memset( &m_landFlags[i].landFlags, 0, 8 ); } m_objSpawnIndexAllocator.init( MAX_DISPLAYED_EOBJS ); @@ -1603,7 +1603,7 @@ void Core::Entity::Player::sendZonePackets() state |= ESTATE_HAS_AETHERYTE; } - setLandFlags( LandStateSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + setLandFlags( LandFlagsSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); } sendLandFlags(); @@ -1784,38 +1784,53 @@ bool Core::Entity::Player::isOnEnterEventDone() const return m_onEnterEventDone; } -void Core::Entity::Player::setLandFlags( uint8_t permissionSet, uint32_t landFlags, +void Core::Entity::Player::setLandFlags( uint8_t flagSlot, uint32_t landFlags, int16_t landId, int16_t wardNum, int16_t zoneId ) { - m_landPermission[ permissionSet ].landIdent.landId = landId; - m_landPermission[ permissionSet ].landIdent.wardNum = wardNum; - m_landPermission[ permissionSet ].landIdent.territoryTypeId = zoneId; - m_landPermission[ permissionSet ].landIdent.worldId = 67; - m_landPermission[ permissionSet ].landFlags = landFlags; - m_landPermission[ permissionSet ].unkown1 = 0; + m_landFlags[ flagSlot ].landIdent.landId = landId; + m_landFlags[ flagSlot ].landIdent.wardNum = wardNum; + m_landFlags[ flagSlot ].landIdent.territoryTypeId = zoneId; + m_landFlags[ flagSlot ].landIdent.worldId = 67; + m_landFlags[ flagSlot ].landFlags = landFlags; + m_landFlags[ flagSlot ].unkown1 = 0; } void Core::Entity::Player::sendLandFlags() { - auto landPermissions = makeZonePacket< FFXIVIpcLandPermission >( getId() ); + auto landFlags = makeZonePacket< FFXIVIpcHousingLandFlags >( getId() ); - landPermissions->data().freeCompanyHouse = m_landPermission[ Common::LandStateSlot::FreeCompany ]; - landPermissions->data().privateHouse = m_landPermission[ Common::LandStateSlot::Private ]; - landPermissions->data().apartment = m_landPermission[ Common::LandStateSlot::Apartment ]; - landPermissions->data().sharedHouse[ 0 ] = m_landPermission[ Common::LandStateSlot::SharedHouse1 ]; - landPermissions->data().sharedHouse[ 1 ] = m_landPermission[ Common::LandStateSlot::SharedHouse2 ]; + landFlags->data().freeCompanyHouse = m_landFlags[ Common::LandFlagsSlot::FreeCompany ]; + landFlags->data().privateHouse = m_landFlags[ Common::LandFlagsSlot::Private ]; + landFlags->data().apartment = m_landFlags[ Common::LandFlagsSlot::Apartment ]; + landFlags->data().sharedHouse[ 0 ] = m_landFlags[ Common::LandFlagsSlot::SharedHouse1 ]; + landFlags->data().sharedHouse[ 1 ] = m_landFlags[ Common::LandFlagsSlot::SharedHouse2 ]; - queuePacket( landPermissions ); + queuePacket( landFlags ); } -void Core::Entity::Player::sendLandFlagsSlot( Common::LandStateSlot slot ) +void Core::Entity::Player::sendLandFlagsSlot( Common::LandFlagsSlot slot ) { - auto landPermissions = makeZonePacket< FFXIVIpcLandStateSlot >( getId() ); + auto landFlags = makeZonePacket< FFXIVIpcHousingUpdateLandFlagsSlot >( getId() ); - auto slotId = static_cast< uint8_t >( slot ); + uint32_t type = 0; - landPermissions->data().type = slotId; - landPermissions->data().permissionSet = m_landPermission[ slotId ]; + switch( slot ) + { + case LandFlagsSlot::Private: + type = static_cast< uint32_t >( LandType::Private ); + break; - queuePacket( landPermissions ); + case LandFlagsSlot::FreeCompany: + type = static_cast< uint32_t >( LandType::FreeCompany ); + break; + + default: + // todo: other/unsupported land types + return; + } + + landFlags->data().type = type; + landFlags->data().flagSet = m_landFlags[ slot ]; + + queuePacket( landFlags ); } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index dfc57e7b..9633a618 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -768,7 +768,7 @@ namespace Core::Entity void setLandFlags( uint8_t permissionSet, uint32_t landFlags, int16_t landId, int16_t wardNum, int16_t zoneId ); void sendLandFlags(); - void sendLandFlagsSlot( Common::LandStateSlot slot ); + void sendLandFlagsSlot( Common::LandFlagsSlot slot ); // Player Battle Handling ////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -1027,7 +1027,7 @@ namespace Core::Entity uint8_t m_searchSelectClass; // class selected to show up in profile // housing info - Common::LandFlagSet m_landPermission[5]; + Common::LandFlagSet m_landFlags[5]; Common::ActiveLand m_activeLand; diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index a6dd416e..898a4845 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -167,10 +167,10 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, pLand->setState( HouseState::sold ); pLand->setLandType( Common::LandType::Private ); - player.setLandFlags( LandStateSlot::Private, 0x00, plot, + player.setLandFlags( LandFlagsSlot::Private, 0x00, plot, pHousing->getWardNum(), pHousing->getTerritoryTypeId() ); - player.sendLandFlagsSlot( LandStateSlot::Private ); + player.sendLandFlagsSlot( LandFlagsSlot::Private ); //pLand->setLandName( "Private Estate" + std::to_string( pHousing->getWardNum() ) + "-" + std::to_string( plot ) ); pLand->updateLandDb(); @@ -219,9 +219,9 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) pLand->setLandType( Common::LandType::none ); pLand->updateLandDb(); - player.setLandFlags( LandStateSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); + player.setLandFlags( LandFlagsSlot::Private, 0x00, 0xFF, 0xFF, 0xFF ); - player.sendLandFlagsSlot( LandStateSlot::Private ); + player.sendLandFlagsSlot( LandFlagsSlot::Private ); auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 3351, 0x1AA, pLand->getWardNum() + 1, plot + 1 ); @@ -319,8 +319,8 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu // todo: wtf are these flags player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr ); - player.setLandFlags( LandStateSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); - player.sendLandFlagsSlot( LandStateSlot::Private ); + player.setLandFlags( LandFlagsSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + player.sendLandFlagsSlot( LandFlagsSlot::Private ); } void Core::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) @@ -397,5 +397,6 @@ void Core::HousingMgr::updateEstateGreeting( Entity::Player& player, const Commo house->setHouseGreeting( greeting ); + // Greeting updated. player.sendLogMessage( 3381 ); } From 84d7159e47f5ccb0ace65acc5a3041e3743e2786 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 29 Nov 2018 00:19:37 +1100 Subject: [PATCH 129/385] add estate guest access menu --- src/common/Network/PacketDef/Ipcs.h | 1 + .../Network/PacketDef/Zone/ServerZoneDef.h | 7 +++++ .../Network/Handlers/ClientTriggerHandler.cpp | 16 ++++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.cpp | 26 +++++++++++++++++++ src/servers/sapphire_zone/Zone/HousingMgr.h | 2 ++ 5 files changed, 52 insertions(+) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index a50a5c3e..74b997d1 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -195,6 +195,7 @@ namespace Core::Network::Packets HousingUpdateLandFlagsSlot = 0x0228, // updated 4.4 HousingLandFlags = 0x0229, // updated 4.4 + HousingShowEstateGuestAccess = 0x022A, // updated 4.4 LandSetYardInitialize = 0x022C, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b6cc582f..215a14d0 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1734,6 +1734,13 @@ struct FFXIVIpcHousingEstateGreeting : FFXIVIpcBasePacket< HousingEstateGreeting char message[200]; }; +struct FFXIVIpcHousingShowEstateGuestAccess : + FFXIVIpcBasePacket< HousingShowEstateGuestAccess > +{ + uint32_t unknown[2]; + Common::LandIdent ident; +}; + /** * Structural representation of the packet sent by the server * to show the current shared estate settings diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index d855cd98..444a01dc 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -392,6 +392,22 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR break; } + case ClientTriggerType::RequestEstateEditGuestAccessSettings: + { + uint16_t territoryTypeId = param11 & 0xFFFF; + uint16_t worldId = param11 >> 16; + + uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t plot = ( param12 & 0xFF ); + + auto pHousingMgr = g_fw.get< HousingMgr >(); + if( !pHousingMgr ) + break; + + pHousingMgr->requestEstateEditGuestAccess( player, territoryTypeId, worldId, ward, plot ); + + break; + } case ClientTriggerType::RequestHousingItemUI: { uint8_t ward = ( param12 & 0xFF00 ) >> 8; diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 898a4845..09476248 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -400,3 +400,29 @@ void Core::HousingMgr::updateEstateGreeting( Entity::Player& player, const Commo // Greeting updated. player.sendLogMessage( 3381 ); } + +void Core::HousingMgr::requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +{ + auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto hZone = getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + return; + + auto land = hZone->getLand( plotId ); + if( !land ) + return; + + // todo: add proper permission check + if( land->getPlayerOwner() != player.getId() ) + return; + + auto packet = makeZonePacket< FFXIVIpcHousingShowEstateGuestAccess >( player.getId() ); + + packet->data().ident.landId = plotId; + packet->data().ident.territoryTypeId = territoryTypeId; + packet->data().ident.wardNum = wardId; + packet->data().ident.worldId = worldId; + + player.queuePacket( packet ); +} diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index fa117cf4..bd3c39db 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -41,6 +41,8 @@ namespace Core void requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); void updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ); + void requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + private: }; From 34ad178a3188c1f86d8695c07b209758d2fa6332 Mon Sep 17 00:00:00 2001 From: Mordred Date: Wed, 28 Nov 2018 20:32:05 +0100 Subject: [PATCH 130/385] Fixed error with ward reading during house actions, lower case enum entries --- src/common/Common.h | 4 ++-- src/servers/sapphire_zone/Actor/Player.cpp | 4 ++-- .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 6 +++--- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index b03618ef..dc05310d 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -776,8 +776,8 @@ namespace Core::Common enum LandFlags : uint32_t { - ESTATE_BUILT = 0x1, - ESTATE_HAS_AETHERYTE = 0x2, + EstateBuilt = 0x1, + HasAetheryte = 0x2, UNKNOWN_1 = 0x4, UNKNOWN_2 = 0x8, UNKNOWN_3 = 0x10, diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 79f24075..c286833c 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1597,10 +1597,10 @@ void Core::Entity::Player::sendZonePackets() if( pLand->getHouse() ) { - state |= ESTATE_BUILT; + state |= EstateBuilt; // todo: remove this, debug for now - state |= ESTATE_HAS_AETHERYTE; + state |= HasAetheryte; } setLandFlags( LandFlagsSlot::Private, state, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 444a01dc..7e06e9fa 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -365,7 +365,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR uint16_t territoryTypeId = param11 & 0xFFFF; uint16_t worldId = param11 >> 16; - uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t ward = ( param12 >> 16 ) & 0xFF; uint8_t plot = ( param12 & 0xFF ); auto pHousingMgr = g_fw.get< HousingMgr >(); @@ -381,7 +381,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR uint16_t territoryTypeId = param11 & 0xFFFF; uint16_t worldId = param11 >> 16; - uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t ward = ( param12 >> 16 ) & 0xFF; uint8_t plot = ( param12 & 0xFF ); auto pHousingMgr = g_fw.get< HousingMgr >(); @@ -397,7 +397,7 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR uint16_t territoryTypeId = param11 & 0xFFFF; uint16_t worldId = param11 >> 16; - uint8_t ward = ( param12 & 0xFF00 ) >> 8; + uint8_t ward = ( param12 >> 16 ) & 0xFF; uint8_t plot = ( param12 & 0xFF ); auto pHousingMgr = g_fw.get< HousingMgr >(); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 09476248..868cbd79 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -319,7 +319,7 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu // todo: wtf are these flags player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr ); - player.setLandFlags( LandFlagsSlot::Private, ESTATE_BUILT, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); + player.setLandFlags( LandFlagsSlot::Private, EstateBuilt, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); player.sendLandFlagsSlot( LandFlagsSlot::Private ); } From f7a8f29b16d04ce8ccccf8583dc71af8f00f1b3c Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 29 Nov 2018 16:55:48 +0100 Subject: [PATCH 131/385] No more namespace Core, renamed to Sapphire --- src/common/Common.h | 4 +- src/common/CommonGen.cpp | 2 +- src/common/CommonGen.h | 2 +- src/common/Config/ConfigMgr.cpp | 4 +- src/common/Config/ConfigMgr.h | 2 +- src/common/Crypt/base64.cpp | 4 +- src/common/Crypt/base64.h | 2 +- src/common/Crypt/md5.cpp | 10 +- src/common/Crypt/md5.h | 2 +- src/common/Database/DatabaseDef.h | 2 +- src/common/Database/DbConnection.cpp | 42 +- src/common/Database/DbConnection.h | 4 +- src/common/Database/DbLoader.cpp | 18 +- src/common/Database/DbLoader.h | 2 +- src/common/Database/DbWorker.cpp | 6 +- src/common/Database/DbWorker.h | 2 +- src/common/Database/DbWorkerPool.cpp | 50 +- src/common/Database/DbWorkerPool.h | 4 +- src/common/Database/Operation.h | 2 +- src/common/Database/PreparedStatement.cpp | 28 +- src/common/Database/PreparedStatement.h | 2 +- src/common/Database/StatementTask.cpp | 12 +- src/common/Database/StatementTask.h | 2 +- src/common/Database/ZoneDbConnection.cpp | 8 +- src/common/Database/ZoneDbConnection.h | 4 +- src/common/Exd/ExdDataGenerated.cpp | 908 +++++++++--------- src/common/Exd/ExdDataGenerated.h | 900 ++++++++--------- src/common/Forwards.h | 2 +- src/common/Framework.h | 2 +- src/common/Logging/Logger.cpp | 2 +- src/common/Logging/Logger.h | 2 +- src/common/Network/Acceptor.cpp | 2 +- src/common/Network/Acceptor.h | 2 +- src/common/Network/CommonActorControl.h | 4 +- src/common/Network/CommonNetwork.h | 2 +- src/common/Network/Connection.cpp | 2 +- src/common/Network/Connection.h | 2 +- src/common/Network/GamePacketNew.h | 2 +- src/common/Network/GamePacketParser.cpp | 14 +- src/common/Network/GamePacketParser.h | 2 +- src/common/Network/Hive.cpp | 2 +- src/common/Network/Hive.h | 2 +- src/common/Network/PacketContainer.cpp | 10 +- src/common/Network/PacketContainer.h | 2 +- .../Network/PacketDef/Chat/ServerChatDef.h | 4 +- src/common/Network/PacketDef/Ipcs.h | 2 +- .../Network/PacketDef/Lobby/ServerLobbyDef.h | 2 +- .../Network/PacketDef/Zone/ClientZoneDef.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 4 +- src/common/Util/LockedQueue.h | 2 +- src/common/Util/LockedWaitQueue.h | 2 +- src/common/Util/SpawnIndexAllocator.h | 2 +- src/common/Util/Util.cpp | 20 +- src/common/Util/Util.h | 2 +- src/common/Util/UtilMath.cpp | 18 +- src/common/Util/UtilMath.h | 2 +- src/common/Version.cpp.in | 4 +- src/common/Version.h | 2 +- src/dbm/main.cpp | 2 +- src/servers/Scripts/action/ActionReturn6.cpp | 2 +- src/servers/Scripts/action/ActionSprint3.cpp | 2 +- .../Scripts/common/CmnDefCutSceneReplay.cpp | 2 +- .../Scripts/common/CmnDefHousingSignboard.cpp | 4 +- src/servers/Scripts/common/CmnDefInnBed.cpp | 2 +- .../Scripts/common/CmnDefLinkShell.cpp | 2 +- .../common/CmnDefMarketBoardGridania.cpp | 2 +- .../Scripts/common/CmnDefMogLetter.cpp | 2 +- .../Scripts/common/CmnDefNpcRepair.cpp | 2 +- .../Scripts/common/CmnDefWeatherForeCast.cpp | 2 +- .../Scripts/common/ComDefMobHuntBoard.cpp | 2 +- src/servers/Scripts/common/GilShop.cpp | 2 +- .../Scripts/common/HouFurOrchestrion.cpp | 2 +- src/servers/Scripts/common/WarpTaxi.cpp | 10 +- .../Scripts/common/aethernet/Aetheryte.cpp | 6 +- .../common/aethernet/HousingAethernet.cpp | 6 +- .../ThePalaceoftheDeadFloors101110.cpp | 2 +- .../ThePalaceoftheDeadFloors110.cpp | 2 +- .../ThePalaceoftheDeadFloors111120.cpp | 2 +- .../ThePalaceoftheDeadFloors1120.cpp | 2 +- .../ThePalaceoftheDeadFloors121130.cpp | 2 +- .../ThePalaceoftheDeadFloors131140.cpp | 2 +- .../ThePalaceoftheDeadFloors141150.cpp | 2 +- .../ThePalaceoftheDeadFloors151160.cpp | 2 +- .../ThePalaceoftheDeadFloors161170.cpp | 2 +- .../ThePalaceoftheDeadFloors171180.cpp | 2 +- .../ThePalaceoftheDeadFloors181190.cpp | 2 +- .../ThePalaceoftheDeadFloors191200.cpp | 2 +- .../ThePalaceoftheDeadFloors2130.cpp | 2 +- .../ThePalaceoftheDeadFloors3140.cpp | 2 +- .../ThePalaceoftheDeadFloors4150.cpp | 2 +- .../ThePalaceoftheDeadFloors5160.cpp | 2 +- .../ThePalaceoftheDeadFloors6170.cpp | 2 +- .../ThePalaceoftheDeadFloors7180.cpp | 2 +- .../ThePalaceoftheDeadFloors8190.cpp | 2 +- .../ThePalaceoftheDeadFloors91100.cpp | 2 +- .../Scripts/instances/dungeons/AlaMhigo.cpp | 2 +- .../instances/dungeons/AmdaporKeep.cpp | 2 +- .../instances/dungeons/AmdaporKeepHard.cpp | 2 +- .../instances/dungeons/BaelsarsWall.cpp | 2 +- .../instances/dungeons/BardamsMettle.cpp | 2 +- .../instances/dungeons/BrayfloxsLongstop.cpp | 2 +- .../dungeons/BrayfloxsLongstopHard.cpp | 2 +- .../instances/dungeons/CastrumAbania.cpp | 2 +- .../instances/dungeons/CastrumMeridianum.cpp | 2 +- .../instances/dungeons/CopperbellMines.cpp | 2 +- .../dungeons/CopperbellMinesHard.cpp | 2 +- .../Scripts/instances/dungeons/CuttersCry.cpp | 2 +- .../Scripts/instances/dungeons/DomaCastle.cpp | 2 +- .../instances/dungeons/DzemaelDarkhold.cpp | 2 +- .../Scripts/instances/dungeons/Halatali.cpp | 2 +- .../instances/dungeons/HalataliHard.cpp | 2 +- .../instances/dungeons/HaukkeManor.cpp | 2 +- .../instances/dungeons/HaukkeManorHard.cpp | 2 +- .../Scripts/instances/dungeons/HellsLid.cpp | 2 +- .../instances/dungeons/HullbreakerIsle.cpp | 2 +- .../dungeons/HullbreakerIsleHard.cpp | 2 +- .../instances/dungeons/KuganeCastle.cpp | 2 +- .../Scripts/instances/dungeons/Neverreap.cpp | 2 +- .../instances/dungeons/PharosSirius.cpp | 2 +- .../instances/dungeons/PharosSiriusHard.cpp | 2 +- .../dungeons/SaintMociannesArboretum.cpp | 2 +- .../Scripts/instances/dungeons/Sastasha.cpp | 2 +- .../instances/dungeons/SastashaHard.cpp | 2 +- .../dungeons/ShisuioftheVioletTides.cpp | 2 +- .../Scripts/instances/dungeons/Snowcloak.cpp | 2 +- .../Scripts/instances/dungeons/SohmAl.cpp | 2 +- .../Scripts/instances/dungeons/SohmAlHard.cpp | 2 +- .../Scripts/instances/dungeons/SohrKhai.cpp | 2 +- .../Scripts/instances/dungeons/TheAery.cpp | 2 +- .../TheAetherochemicalResearchFacility.cpp | 2 +- .../instances/dungeons/TheAntitower.cpp | 2 +- .../instances/dungeons/TheAurumVale.cpp | 2 +- .../dungeons/TheDrownedCityofSkalla.cpp | 2 +- .../instances/dungeons/TheDuskVigil.cpp | 2 +- .../dungeons/TheFractalContinuum.cpp | 2 +- .../dungeons/TheFractalContinuumHard.cpp | 2 +- .../dungeons/TheGreatGubalLibrary.cpp | 2 +- .../dungeons/TheGreatGubalLibraryHard.cpp | 2 +- .../instances/dungeons/TheKeeperoftheLake.cpp | 2 +- .../dungeons/TheLostCityofAmdapor.cpp | 2 +- .../dungeons/TheLostCityofAmdaporHard.cpp | 2 +- .../instances/dungeons/ThePraetorium.cpp | 2 +- .../instances/dungeons/TheSirensongSea.cpp | 2 +- .../instances/dungeons/TheStoneVigil.cpp | 2 +- .../instances/dungeons/TheStoneVigilHard.cpp | 2 +- .../dungeons/TheSunkenTempleofQarn.cpp | 2 +- .../dungeons/TheSunkenTempleofQarnHard.cpp | 2 +- .../dungeons/TheTamTaraDeepcroft.cpp | 2 +- .../dungeons/TheTamTaraDeepcroftHard.cpp | 2 +- .../instances/dungeons/TheTempleoftheFist.cpp | 2 +- .../dungeons/TheThousandMawsofTotoRak.cpp | 2 +- .../Scripts/instances/dungeons/TheVault.cpp | 2 +- .../instances/dungeons/TheWanderersPalace.cpp | 2 +- .../dungeons/TheWanderersPalaceHard.cpp | 2 +- .../Scripts/instances/dungeons/Xelphatol.cpp | 2 +- .../instances/events/TheHauntedManor.cpp | 2 +- .../events/TheValentionesCeremony.cpp | 2 +- .../guildhests/AllsWellthatEndsintheWell.cpp | 2 +- .../instances/guildhests/AnnoytheVoid.cpp | 2 +- .../guildhests/BasicTrainingEnemyParties.cpp | 2 +- .../BasicTrainingEnemyStrongholds.cpp | 2 +- .../FlickingSticksandTakingNames.cpp | 2 +- .../guildhests/HeroontheHalfShell.cpp | 2 +- .../instances/guildhests/LongLivetheQueen.cpp | 2 +- .../instances/guildhests/MorethanaFeeler.cpp | 2 +- .../guildhests/PullingPoisonPosies.cpp | 2 +- .../instances/guildhests/ShadowandClaw.cpp | 2 +- .../instances/guildhests/SolemnTrinity.cpp | 2 +- .../instances/guildhests/StingingBack.cpp | 2 +- .../instances/guildhests/UndertheArmor.cpp | 2 +- .../Scripts/instances/guildhests/WardUp.cpp | 2 +- .../AccrueEnmityfromMultipleTargets.cpp | 2 +- .../AssistAlliesinDefeatingaTarget.cpp | 2 +- .../AvoidAreaofEffectAttacks.cpp | 2 +- .../hallofthenovice/AvoidEngagedTargets.cpp | 2 +- .../DefeatanOccupiedTarget.cpp | 2 +- .../EngageEnemyReinforcements.cpp | 2 +- .../hallofthenovice/EngageMultipleTargets.cpp | 2 +- .../hallofthenovice/ExecuteaComboinBattle.cpp | 2 +- .../ExecuteaCombotoIncreaseEnmity.cpp | 2 +- .../ExecuteaRangedAttacktoIncreaseEnmity.cpp | 2 +- .../hallofthenovice/FinalExercise.cpp | 2 +- .../hallofthenovice/HealMultipleAllies.cpp | 2 +- .../instances/hallofthenovice/HealanAlly.cpp | 2 +- .../InteractwiththeBattlefield.cpp | 2 +- .../Scripts/instances/pvp/Astragalos.cpp | 2 +- .../Scripts/instances/pvp/SealRockSeize.cpp | 2 +- .../pvp/TheBorderlandRuinsSecure.cpp | 2 +- .../instances/pvp/TheFeast4on4LightParty.cpp | 2 +- .../instances/pvp/TheFeast4on4Ranked.cpp | 2 +- .../instances/pvp/TheFeast4on4Training.cpp | 2 +- .../pvp/TheFeastCustomMatchCrystalTower.cpp | 2 +- .../TheFeastCustomMatchFeastingGrounds.cpp | 2 +- .../pvp/TheFeastCustomMatchLichenweed.cpp | 2 +- .../Scripts/instances/pvp/TheFeastRanked.cpp | 2 +- .../instances/pvp/TheFeastTeamRanked.cpp | 2 +- .../instances/pvp/TheFeastTraining.cpp | 2 +- .../instances/pvp/TheFieldsofGloryShatter.cpp | 2 +- .../instances/questbattles/ABloodyReunion.cpp | 2 +- .../questbattles/ASpectaclefortheAges.cpp | 2 +- .../instances/questbattles/BloodDragoon.cpp | 2 +- .../instances/questbattles/BloodontheDeck.cpp | 2 +- .../CuriousGorgeMeetsHisMatch.cpp | 2 +- .../instances/questbattles/DarkwingDragon.cpp | 2 +- .../instances/questbattles/InThalsName.cpp | 2 +- .../questbattles/InterdimensionalRift.cpp | 2 +- .../questbattles/ItsProbablyaTrap.cpp | 2 +- .../instances/questbattles/MatsubaMayhem.cpp | 2 +- .../Scripts/instances/questbattles/Naadam.cpp | 2 +- .../questbattles/OneLifeforOneWorld.cpp | 2 +- .../instances/questbattles/OurCompromise.cpp | 2 +- .../questbattles/OurUnsungHeroes.cpp | 2 +- .../questbattles/RaisingtheSword.cpp | 2 +- .../questbattles/ReturnoftheBull.cpp | 2 +- .../questbattles/TheBattleonBekko.cpp | 2 +- .../TheCarteneauFlatsHeliodrome.cpp | 2 +- .../questbattles/TheFaceofTrueEvil.cpp | 2 +- .../questbattles/TheHeartoftheProblem.cpp | 2 +- .../TheOrphansandtheBrokenBlade.cpp | 2 +- .../instances/questbattles/TheResonant.cpp | 2 +- .../questbattles/WhenClansCollide.cpp | 2 +- .../questbattles/WithHeartandSteel.cpp | 2 +- .../raids/AlexanderTheArmoftheFather.cpp | 2 +- .../AlexanderTheArmoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheArmoftheSon.cpp | 2 +- .../raids/AlexanderTheArmoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheBreathoftheCreator.cpp | 2 +- .../AlexanderTheBreathoftheCreatorSavage.cpp | 2 +- .../raids/AlexanderTheBurdenoftheFather.cpp | 2 +- .../AlexanderTheBurdenoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheBurdenoftheSon.cpp | 2 +- .../AlexanderTheBurdenoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheCuffoftheFather.cpp | 2 +- .../AlexanderTheCuffoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheCuffoftheSon.cpp | 2 +- .../raids/AlexanderTheCuffoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheEyesoftheCreator.cpp | 2 +- .../AlexanderTheEyesoftheCreatorSavage.cpp | 2 +- .../raids/AlexanderTheFistoftheFather.cpp | 2 +- .../AlexanderTheFistoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheFistoftheSon.cpp | 2 +- .../raids/AlexanderTheFistoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheHeartoftheCreator.cpp | 2 +- .../AlexanderTheHeartoftheCreatorSavage.cpp | 2 +- .../raids/AlexanderTheSouloftheCreator.cpp | 2 +- .../AlexanderTheSouloftheCreatorSavage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV10.cpp | 2 +- .../instances/raids/DeltascapeV10Savage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV20.cpp | 2 +- .../instances/raids/DeltascapeV20Savage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV30.cpp | 2 +- .../instances/raids/DeltascapeV30Savage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV40.cpp | 2 +- .../instances/raids/DeltascapeV40Savage.cpp | 2 +- .../Scripts/instances/raids/DunScaith.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV10.cpp | 2 +- .../instances/raids/SigmascapeV10Savage.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV20.cpp | 2 +- .../instances/raids/SigmascapeV20Savage.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV30.cpp | 2 +- .../instances/raids/SigmascapeV30Savage.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV40.cpp | 2 +- .../instances/raids/SigmascapeV40Savage.cpp | 2 +- .../Scripts/instances/raids/SyrcusTower.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn1.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn2.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn3.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn4.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn5.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn1.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn2.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn3.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn4.cpp | 2 +- .../raids/TheLabyrinthoftheAncients.cpp | 2 +- .../raids/TheRoyalCityofRabanastre.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn1.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn2.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn3.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn4.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn1.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn2.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn3.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn4.cpp | 2 +- .../TheUnendingCoilofBahamutUltimate.cpp | 2 +- .../Scripts/instances/raids/TheVoidArk.cpp | 2 +- .../raids/TheWeaponsRefrainUltimate.cpp | 2 +- .../instances/raids/TheWeepingCityofMhach.cpp | 2 +- .../instances/raids/TheWorldofDarkness.cpp | 2 +- .../instances/treasurehunt/TheAquapolis.cpp | 2 +- .../treasurehunt/TheHiddenCanalsofUznair.cpp | 2 +- .../treasurehunt/TheLostCanalsofUznair.cpp | 2 +- .../trials/ARelicReborntheChimera.cpp | 2 +- .../instances/trials/ARelicReborntheHydra.cpp | 2 +- .../trials/AkhAfahAmphitheatreExtreme.cpp | 2 +- .../trials/AkhAfahAmphitheatreHard.cpp | 2 +- .../instances/trials/BattleintheBigKeep.cpp | 2 +- .../instances/trials/BattleontheBigBridge.cpp | 2 +- .../Scripts/instances/trials/CapeWestwind.cpp | 2 +- .../instances/trials/ContainmentBayP1T6.cpp | 2 +- .../trials/ContainmentBayP1T6Extreme.cpp | 2 +- .../instances/trials/ContainmentBayS1T7.cpp | 2 +- .../trials/ContainmentBayS1T7Extreme.cpp | 2 +- .../instances/trials/ContainmentBayZ1T9.cpp | 2 +- .../trials/ContainmentBayZ1T9Extreme.cpp | 2 +- .../Scripts/instances/trials/Emanation.cpp | 2 +- .../instances/trials/EmanationExtreme.cpp | 2 +- .../instances/trials/SpecialEventI.cpp | 2 +- .../instances/trials/SpecialEventII.cpp | 2 +- .../instances/trials/SpecialEventIII.cpp | 2 +- .../instances/trials/TheBowlofEmbers.cpp | 2 +- .../trials/TheBowlofEmbersExtreme.cpp | 2 +- .../instances/trials/TheBowlofEmbersHard.cpp | 2 +- .../Scripts/instances/trials/TheChrysalis.cpp | 2 +- .../instances/trials/TheDragonsNeck.cpp | 2 +- .../instances/trials/TheFinalStepsofFaith.cpp | 2 +- .../instances/trials/TheHowlingEye.cpp | 2 +- .../instances/trials/TheHowlingEyeExtreme.cpp | 2 +- .../instances/trials/TheHowlingEyeHard.cpp | 2 +- .../Scripts/instances/trials/TheJadeStoa.cpp | 2 +- .../instances/trials/TheJadeStoaExtreme.cpp | 2 +- .../trials/TheLimitlessBlueExtreme.cpp | 2 +- .../instances/trials/TheLimitlessBlueHard.cpp | 2 +- .../trials/TheMinstrelsBalladNidhoggsRage.cpp | 2 +- .../TheMinstrelsBalladShinryusDomain.cpp | 2 +- .../TheMinstrelsBalladThordansReign.cpp | 2 +- .../trials/TheMinstrelsBalladUltimasBane.cpp | 2 +- .../Scripts/instances/trials/TheNavel.cpp | 2 +- .../instances/trials/TheNavelExtreme.cpp | 2 +- .../Scripts/instances/trials/TheNavelHard.cpp | 2 +- .../instances/trials/ThePoolofTribute.cpp | 2 +- .../trials/ThePoolofTributeExtreme.cpp | 2 +- .../instances/trials/TheRoyalMenagerie.cpp | 2 +- .../trials/TheSingularityReactor.cpp | 2 +- .../instances/trials/TheStepsofFaith.cpp | 2 +- .../trials/TheStrikingTreeExtreme.cpp | 2 +- .../instances/trials/TheStrikingTreeHard.cpp | 2 +- .../instances/trials/TheWhorleaterExtreme.cpp | 2 +- .../instances/trials/TheWhorleaterHard.cpp | 2 +- .../instances/trials/ThokastThokExtreme.cpp | 2 +- .../instances/trials/ThokastThokHard.cpp | 2 +- .../instances/trials/ThornmarchExtreme.cpp | 2 +- .../instances/trials/ThornmarchHard.cpp | 2 +- .../Scripts/instances/trials/UrthsFount.cpp | 2 +- .../Scripts/opening/OpeningGridania.cpp | 2 +- src/servers/Scripts/opening/OpeningLimsa.cpp | 2 +- src/servers/Scripts/opening/OpeningUldah.cpp | 2 +- src/servers/Scripts/quest/ManFst001.cpp | 2 +- src/servers/Scripts/quest/ManFst002.cpp | 2 +- src/servers/Scripts/quest/ManFst003.cpp | 2 +- src/servers/Scripts/quest/ManFst004.cpp | 2 +- src/servers/Scripts/quest/ManSea001.cpp | 2 +- src/servers/Scripts/quest/ManSea002.cpp | 2 +- src/servers/Scripts/quest/ManSea003.cpp | 2 +- src/servers/Scripts/quest/ManWil001.cpp | 2 +- src/servers/Scripts/quest/ManWil002.cpp | 2 +- .../quest/subquest/gridania/SubFst001.cpp | 2 +- .../quest/subquest/gridania/SubFst002.cpp | 2 +- .../quest/subquest/gridania/SubFst003.cpp | 2 +- .../quest/subquest/gridania/SubFst004.cpp | 2 +- .../quest/subquest/gridania/SubFst008.cpp | 2 +- .../quest/subquest/gridania/SubFst009.cpp | 2 +- .../quest/subquest/gridania/SubFst010.cpp | 2 +- .../quest/subquest/gridania/SubFst011.cpp | 2 +- .../quest/subquest/gridania/SubFst013.cpp | 2 +- .../quest/subquest/gridania/SubFst014.cpp | 2 +- .../quest/subquest/gridania/SubFst015.cpp | 2 +- .../quest/subquest/gridania/SubFst019.cpp | 2 +- .../quest/subquest/gridania/SubFst026.cpp | 2 +- .../quest/subquest/gridania/SubFst029.cpp | 2 +- .../quest/subquest/gridania/SubFst030.cpp | 2 +- .../quest/subquest/gridania/SubFst041.cpp | 2 +- .../quest/subquest/limsa/SubSea001.cpp | 2 +- .../quest/subquest/uldah/SubWil000.cpp | 2 +- .../quest/subquest/uldah/SubWil001.cpp | 2 +- .../quest/subquest/uldah/SubWil002.cpp | 2 +- .../quest/subquest/uldah/SubWil004.cpp | 2 +- .../quest/subquest/uldah/SubWil006.cpp | 2 +- .../quest/subquest/uldah/SubWil007.cpp | 2 +- .../quest/subquest/uldah/SubWil018.cpp | 2 +- .../quest/subquest/uldah/SubWil019.cpp | 2 +- .../quest/subquest/uldah/SubWil021.cpp | 2 +- .../quest/subquest/uldah/SubWil022.cpp | 2 +- .../quest/subquest/uldah/SubWil027.cpp | 2 +- .../quest/subquest/uldah/SubWil028.cpp | 2 +- .../quest/subquest/uldah/SubWil029.cpp | 2 +- src/servers/sapphire_api/Forwards.h | 2 +- src/servers/sapphire_api/LoginSession.cpp | 2 +- src/servers/sapphire_api/LoginSession.h | 2 +- src/servers/sapphire_api/PlayerMinimal.cpp | 30 +- src/servers/sapphire_api/PlayerMinimal.h | 2 +- src/servers/sapphire_api/SapphireAPI.cpp | 32 +- src/servers/sapphire_api/SapphireAPI.h | 6 +- src/servers/sapphire_api/Session.cpp | 2 +- src/servers/sapphire_api/Session.h | 2 +- src/servers/sapphire_api/main.cpp | 28 +- src/servers/sapphire_api/server_http.hpp | 6 +- src/servers/sapphire_lobby/Forwards.h | 6 +- src/servers/sapphire_lobby/GameConnection.cpp | 52 +- src/servers/sapphire_lobby/GameConnection.h | 2 +- .../sapphire_lobby/LobbyPacketContainer.cpp | 22 +- .../sapphire_lobby/LobbyPacketContainer.h | 4 +- src/servers/sapphire_lobby/LobbySession.cpp | 2 +- src/servers/sapphire_lobby/LobbySession.h | 2 +- src/servers/sapphire_lobby/RestConnector.cpp | 26 +- src/servers/sapphire_lobby/RestConnector.h | 4 +- src/servers/sapphire_lobby/ServerLobby.cpp | 6 +- src/servers/sapphire_lobby/ServerLobby.h | 2 +- src/servers/sapphire_lobby/client_http.hpp | 4 +- .../sapphire_lobby/mainLobbyServer.cpp | 2 +- src/servers/sapphire_zone/Action/Action.cpp | 26 +- src/servers/sapphire_zone/Action/Action.h | 2 +- .../sapphire_zone/Action/ActionCast.cpp | 26 +- src/servers/sapphire_zone/Action/ActionCast.h | 2 +- .../sapphire_zone/Action/ActionCollision.cpp | 10 +- .../sapphire_zone/Action/ActionCollision.h | 4 +- .../sapphire_zone/Action/ActionMount.cpp | 24 +- .../sapphire_zone/Action/ActionMount.h | 2 +- .../sapphire_zone/Action/ActionTeleport.cpp | 26 +- .../sapphire_zone/Action/ActionTeleport.h | 2 +- .../sapphire_zone/Action/EventAction.cpp | 26 +- .../sapphire_zone/Action/EventAction.h | 2 +- .../sapphire_zone/Action/EventItemAction.cpp | 24 +- .../sapphire_zone/Action/EventItemAction.h | 2 +- src/servers/sapphire_zone/Actor/Actor.cpp | 80 +- src/servers/sapphire_zone/Actor/Actor.h | 4 +- src/servers/sapphire_zone/Actor/BNpc.cpp | 34 +- src/servers/sapphire_zone/Actor/BNpc.h | 2 +- .../sapphire_zone/Actor/BNpcTemplate.cpp | 52 +- .../sapphire_zone/Actor/BNpcTemplate.h | 2 +- src/servers/sapphire_zone/Actor/Chara.cpp | 120 +-- src/servers/sapphire_zone/Actor/Chara.h | 4 +- .../sapphire_zone/Actor/EventObject.cpp | 44 +- src/servers/sapphire_zone/Actor/EventObject.h | 2 +- src/servers/sapphire_zone/Actor/Npc.cpp | 14 +- src/servers/sapphire_zone/Actor/Npc.h | 2 +- src/servers/sapphire_zone/Actor/Player.cpp | 402 ++++---- src/servers/sapphire_zone/Actor/Player.h | 10 +- .../sapphire_zone/Actor/PlayerEvent.cpp | 66 +- .../sapphire_zone/Actor/PlayerInventory.cpp | 96 +- .../sapphire_zone/Actor/PlayerQuest.cpp | 154 +-- src/servers/sapphire_zone/Actor/PlayerSql.cpp | 38 +- .../sapphire_zone/Actor/SpawnPoint.cpp | 18 +- src/servers/sapphire_zone/Actor/SpawnPoint.h | 2 +- .../sapphire_zone/DebugCommand/DebugCommand.h | 2 +- .../DebugCommand/DebugCommandHandler.cpp | 44 +- .../DebugCommand/DebugCommandHandler.h | 2 +- src/servers/sapphire_zone/Event/Director.cpp | 70 +- src/servers/sapphire_zone/Event/Director.h | 2 +- src/servers/sapphire_zone/Event/EventDefs.h | 2 +- .../sapphire_zone/Event/EventHandler.cpp | 34 +- .../sapphire_zone/Event/EventHandler.h | 2 +- .../sapphire_zone/Event/EventHelper.cpp | 24 +- src/servers/sapphire_zone/Event/EventHelper.h | 2 +- src/servers/sapphire_zone/ForwardsZone.h | 2 +- src/servers/sapphire_zone/Inventory/Item.cpp | 56 +- src/servers/sapphire_zone/Inventory/Item.h | 2 +- .../sapphire_zone/Inventory/ItemContainer.cpp | 30 +- .../sapphire_zone/Inventory/ItemContainer.h | 2 +- .../sapphire_zone/Inventory/ItemUtil.cpp | 18 +- .../sapphire_zone/Inventory/ItemUtil.h | 2 +- .../sapphire_zone/Linkshell/Linkshell.cpp | 32 +- .../sapphire_zone/Linkshell/Linkshell.h | 2 +- .../sapphire_zone/Linkshell/LinkshellMgr.cpp | 10 +- .../sapphire_zone/Linkshell/LinkshellMgr.h | 2 +- .../sapphire_zone/Manager/PlayerMgr.cpp | 10 +- src/servers/sapphire_zone/Manager/PlayerMgr.h | 2 +- src/servers/sapphire_zone/Manager/ShopMgr.cpp | 4 +- src/servers/sapphire_zone/Manager/ShopMgr.h | 2 +- src/servers/sapphire_zone/Math/CalcBattle.cpp | 10 +- src/servers/sapphire_zone/Math/CalcBattle.h | 4 +- src/servers/sapphire_zone/Math/CalcStats.cpp | 14 +- src/servers/sapphire_zone/Math/CalcStats.h | 8 +- .../sapphire_zone/Network/GameConnection.cpp | 51 +- .../sapphire_zone/Network/GameConnection.h | 20 +- .../Network/Handlers/ActionHandler.cpp | 20 +- .../Network/Handlers/CFHandlers.cpp | 20 +- .../Network/Handlers/ClientTriggerHandler.cpp | 18 +- .../Network/Handlers/EventHandlers.cpp | 30 +- .../Network/Handlers/GMCommandHandlers.cpp | 20 +- .../Network/Handlers/InventoryHandler.cpp | 12 +- .../Network/Handlers/PacketHandlers.cpp | 108 +-- .../PacketWrappers/ActorControlPacket142.h | 2 +- .../PacketWrappers/ActorControlPacket143.h | 2 +- .../PacketWrappers/ActorControlPacket144.h | 2 +- .../Network/PacketWrappers/ChatPacket.h | 2 +- .../PacketWrappers/DirectorPlayScenePacket.h | 2 +- .../Network/PacketWrappers/EffectPacket.h | 2 +- .../PacketWrappers/EventFinishPacket.h | 2 +- .../Network/PacketWrappers/EventPlayPacket.h | 2 +- .../Network/PacketWrappers/EventStartPacket.h | 2 +- .../Network/PacketWrappers/ExaminePacket.h | 2 +- .../Network/PacketWrappers/InitUIPacket.h | 2 +- .../Network/PacketWrappers/ModelEquipPacket.h | 2 +- .../Network/PacketWrappers/MoveActorPacket.h | 2 +- .../Network/PacketWrappers/NpcSpawnPacket.h | 4 +- .../Network/PacketWrappers/PingPacket.h | 2 +- .../PacketWrappers/PlayerSpawnPacket.h | 12 +- .../PacketWrappers/PlayerStateFlagsPacket.h | 2 +- .../PacketWrappers/QuestMessagePacket.h | 2 +- .../PacketWrappers/ServerNoticePacket.h | 2 +- .../PacketWrappers/UpdateHpMpTpPacket.h | 2 +- .../UpdateInventorySlotPacket.h | 2 +- .../sapphire_zone/Script/NativeScriptApi.cpp | 12 +- .../sapphire_zone/Script/NativeScriptApi.h | 54 +- .../sapphire_zone/Script/NativeScriptMgr.cpp | 200 ++-- .../sapphire_zone/Script/NativeScriptMgr.h | 4 +- src/servers/sapphire_zone/Script/ScriptInfo.h | 2 +- .../sapphire_zone/Script/ScriptLoader.cpp | 20 +- .../sapphire_zone/Script/ScriptLoader.h | 4 +- .../sapphire_zone/Script/ScriptMgr.cpp | 52 +- src/servers/sapphire_zone/Script/ScriptMgr.h | 4 +- src/servers/sapphire_zone/ServerMgr.cpp | 56 +- src/servers/sapphire_zone/ServerMgr.h | 77 +- src/servers/sapphire_zone/Session.cpp | 42 +- src/servers/sapphire_zone/Session.h | 2 +- .../StatusEffect/StatusEffect.cpp | 46 +- .../sapphire_zone/StatusEffect/StatusEffect.h | 2 +- src/servers/sapphire_zone/Zone/Cell.cpp | 26 +- src/servers/sapphire_zone/Zone/Cell.h | 2 +- src/servers/sapphire_zone/Zone/CellHandler.h | 2 +- src/servers/sapphire_zone/Zone/House.cpp | 38 +- src/servers/sapphire_zone/Zone/House.h | 2 +- src/servers/sapphire_zone/Zone/HousingMgr.cpp | 46 +- src/servers/sapphire_zone/Zone/HousingMgr.h | 16 +- .../sapphire_zone/Zone/HousingZone.cpp | 32 +- src/servers/sapphire_zone/Zone/HousingZone.h | 6 +- .../sapphire_zone/Zone/InstanceContent.cpp | 72 +- .../sapphire_zone/Zone/InstanceContent.h | 8 +- src/servers/sapphire_zone/Zone/Land.cpp | 82 +- src/servers/sapphire_zone/Zone/Land.h | 12 +- .../sapphire_zone/Zone/TerritoryMgr.cpp | 70 +- src/servers/sapphire_zone/Zone/TerritoryMgr.h | 4 +- src/servers/sapphire_zone/Zone/Zone.cpp | 90 +- src/servers/sapphire_zone/Zone/Zone.h | 2 +- .../sapphire_zone/Zone/ZonePosition.cpp | 14 +- src/servers/sapphire_zone/Zone/ZonePosition.h | 2 +- src/servers/sapphire_zone/mainGameServer.cpp | 4 +- src/tools/discovery_parser/main.cpp | 4 +- src/tools/event_object_parser/instance.tmpl | 2 +- src/tools/event_object_parser/main.cpp | 6 +- src/tools/exd_common_gen/generated.h | 2 +- src/tools/exd_common_gen/main.cpp | 8 +- src/tools/exd_struct_gen/ExdData.cpp.tmpl | 10 +- src/tools/exd_struct_gen/ExdData.h.tmpl | 2 +- src/tools/exd_struct_gen/main.cpp | 12 +- src/tools/exd_struct_test/ExdData.cpp.tmpl | 8 +- src/tools/exd_struct_test/ExdData.h.tmpl | 2 +- src/tools/exd_struct_test/main.cpp | 10 +- src/tools/mob_parse/main.cpp | 32 +- src/tools/pcb_reader/main.cpp | 2 +- src/tools/quest_parser/main.cpp | 8 +- 551 files changed, 3180 insertions(+), 3180 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index dc05310d..0eaa4b4f 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -8,9 +8,9 @@ // +--------------------------------------------------------------------------- // The following enumerations are structures to require their type be included. -// They are also defined within the Core::Common namespace to avoid collisions. +// They are also defined within the Sapphire::Common namespace to avoid collisions. // +--------------------------------------------------------------------------- -namespace Core::Common +namespace Sapphire::Common { // 99 is the last spawn id that seems to spawn any actor diff --git a/src/common/CommonGen.cpp b/src/common/CommonGen.cpp index 668f8cee..43bce9b2 100644 --- a/src/common/CommonGen.cpp +++ b/src/common/CommonGen.cpp @@ -2,7 +2,7 @@ #include -namespace Core { +namespace Sapphire { namespace Common { bool operator==( const ActionCategory& t, const uint8_t& g ) diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h index 63988bbc..6004cf83 100644 --- a/src/common/CommonGen.h +++ b/src/common/CommonGen.h @@ -6,7 +6,7 @@ /* This file has been automatically generated. Changes will be lost upon regeneration. To change the content edit tools/exd_common_gen */ -namespace Core { +namespace Sapphire { namespace Common { /////////////////////////////////////////////////////////// diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index 8b72bf1a..d4c9cddc 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -10,7 +10,7 @@ namespace fs = std::experimental::filesystem; * @param configName the name of ini file relative to m_configFolderRoot to load alongside global.ini * @return true if loading was successful */ -bool Core::ConfigMgr::loadConfig( const std::string& configName ) +bool Sapphire::ConfigMgr::loadConfig( const std::string& configName ) { // get global config auto configFile = fs::path( fs::path( m_configFolderRoot ) / configName ); @@ -29,7 +29,7 @@ bool Core::ConfigMgr::loadConfig( const std::string& configName ) return true; } -bool Core::ConfigMgr::copyDefaultConfig( const std::string& configName ) +bool Sapphire::ConfigMgr::copyDefaultConfig( const std::string& configName ) { fs::path configPath( m_configFolderRoot ); configPath /= configName; diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index a28b2da4..cf3109e6 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -7,7 +7,7 @@ #include #include -namespace Core +namespace Sapphire { class ConfigMgr { diff --git a/src/common/Crypt/base64.cpp b/src/common/Crypt/base64.cpp index 4f0cb9ba..7d31e39b 100644 --- a/src/common/Crypt/base64.cpp +++ b/src/common/Crypt/base64.cpp @@ -39,7 +39,7 @@ static inline bool is_base64( uint8_t c ) return ( isalnum( c ) || ( c == '+' ) || ( c == '/' ) ); } -std::string Core::Util::base64_encode( uint8_t const* bytes_to_encode, uint32_t in_len ) +std::string Sapphire::Util::base64_encode( uint8_t const* bytes_to_encode, uint32_t in_len ) { std::string ret; int32_t i = 0; @@ -85,7 +85,7 @@ std::string Core::Util::base64_encode( uint8_t const* bytes_to_encode, uint32_t } -std::string Core::Util::base64_decode( std::string const& encoded_string ) +std::string Sapphire::Util::base64_decode( std::string const& encoded_string ) { int32_t in_len = encoded_string.size(); int32_t i = 0; diff --git a/src/common/Crypt/base64.h b/src/common/Crypt/base64.h index b1b9a153..8817ad13 100644 --- a/src/common/Crypt/base64.h +++ b/src/common/Crypt/base64.h @@ -1,6 +1,6 @@ #include -namespace Core::Util +namespace Sapphire::Util { std::string base64_encode( uint8_t const*, uint32_t len ); diff --git a/src/common/Crypt/md5.cpp b/src/common/Crypt/md5.cpp index 64770119..130042e2 100644 --- a/src/common/Crypt/md5.cpp +++ b/src/common/Crypt/md5.cpp @@ -37,7 +37,7 @@ (b)[(i) + 3] = (uint8_t) ( (n) >> 24 ); \ } -void Core::Util::md5_starts( md5_context* ctx ) +void Sapphire::Util::md5_starts( md5_context* ctx ) { ctx->total[ 0 ] = 0; ctx->total[ 1 ] = 0; @@ -48,7 +48,7 @@ void Core::Util::md5_starts( md5_context* ctx ) ctx->state[ 3 ] = 0x10325476; } -void md5_process( Core::Util::md5_context* ctx, uint8_t data[64] ) +void md5_process( Sapphire::Util::md5_context* ctx, uint8_t data[64] ) { uint32_t X[16], A, B, C, D; @@ -171,7 +171,7 @@ void md5_process( Core::Util::md5_context* ctx, uint8_t data[64] ) ctx->state[ 3 ] += D; } -void Core::Util::md5_update( md5_context* ctx, uint8_t* input, uint32_t length ) +void Sapphire::Util::md5_update( md5_context* ctx, uint8_t* input, uint32_t length ) { uint32_t left, fill; @@ -219,7 +219,7 @@ static uint8_t md5_padding[64] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -void Core::Util::md5_finish( md5_context* ctx, uint8_t digest[16] ) +void Sapphire::Util::md5_finish( md5_context* ctx, uint8_t digest[16] ) { uint32_t last, padn; uint32_t high, low; @@ -248,7 +248,7 @@ void Core::Util::md5_finish( md5_context* ctx, uint8_t digest[16] ) * those are the standard RFC 1321 test vectors */ -void Core::Util::md5( uint8_t* text, uint8_t* hash, int32_t size ) +void Sapphire::Util::md5( uint8_t* text, uint8_t* hash, int32_t size ) { md5_context ctx; md5_starts( &ctx ); diff --git a/src/common/Crypt/md5.h b/src/common/Crypt/md5.h index 69bc6274..9d112194 100644 --- a/src/common/Crypt/md5.h +++ b/src/common/Crypt/md5.h @@ -3,7 +3,7 @@ #include -namespace Core::Util +namespace Sapphire::Util { using md5_context = struct { diff --git a/src/common/Database/DatabaseDef.h b/src/common/Database/DatabaseDef.h index bb73957f..02b9d906 100644 --- a/src/common/Database/DatabaseDef.h +++ b/src/common/Database/DatabaseDef.h @@ -7,6 +7,6 @@ #include "Database/DbWorkerPool.h" #include "Database/PreparedStatement.h" -extern Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection > g_charaDb; +extern Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection > g_charaDb; #endif diff --git a/src/common/Database/DbConnection.cpp b/src/common/Database/DbConnection.cpp index 0e6d5101..eb9c920e 100644 --- a/src/common/Database/DbConnection.cpp +++ b/src/common/Database/DbConnection.cpp @@ -6,9 +6,9 @@ #include "PreparedStatement.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::Db::DbConnection::DbConnection( ConnectionInfo& connInfo ) : +Sapphire::Db::DbConnection::DbConnection( ConnectionInfo& connInfo ) : m_reconnecting( false ), m_prepareError( false ), m_queue( nullptr ), @@ -19,8 +19,8 @@ Core::Db::DbConnection::DbConnection( ConnectionInfo& connInfo ) : } -Core::Db::DbConnection::DbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* queue, - Core::Db::ConnectionInfo& connInfo ) : +Sapphire::Db::DbConnection::DbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* queue, + Sapphire::Db::ConnectionInfo& connInfo ) : m_reconnecting( false ), m_prepareError( false ), m_queue( queue ), @@ -31,12 +31,12 @@ Core::Db::DbConnection::DbConnection( Core::LockedWaitQueue< std::shared_ptr< Op m_worker = std::make_shared< DbWorker >( m_queue, this ); } -Core::Db::DbConnection::~DbConnection() +Sapphire::Db::DbConnection::~DbConnection() { close(); } -void Core::Db::DbConnection::close() +void Sapphire::Db::DbConnection::close() { m_worker.reset(); m_stmts.clear(); @@ -50,7 +50,7 @@ void Core::Db::DbConnection::close() } -uint32_t Core::Db::DbConnection::open() +uint32_t Sapphire::Db::DbConnection::open() { std::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() ); Mysql::optionMap options; @@ -73,42 +73,42 @@ uint32_t Core::Db::DbConnection::open() return 0; } -uint32_t Core::Db::DbConnection::getLastError() +uint32_t Sapphire::Db::DbConnection::getLastError() { return m_pConnection->getErrorNo(); } -bool Core::Db::DbConnection::ping() +bool Sapphire::Db::DbConnection::ping() { return m_pConnection->ping(); } -bool Core::Db::DbConnection::lockIfReady() +bool Sapphire::Db::DbConnection::lockIfReady() { return m_mutex.try_lock(); } -void Core::Db::DbConnection::unlock() +void Sapphire::Db::DbConnection::unlock() { m_mutex.unlock(); } -void Core::Db::DbConnection::beginTransaction() +void Sapphire::Db::DbConnection::beginTransaction() { m_pConnection->beginTransaction(); } -void Core::Db::DbConnection::rollbackTransaction() +void Sapphire::Db::DbConnection::rollbackTransaction() { m_pConnection->rollbackTransaction(); } -void Core::Db::DbConnection::commitTransaction() +void Sapphire::Db::DbConnection::commitTransaction() { m_pConnection->commitTransaction(); } -bool Core::Db::DbConnection::execute( const std::string& sql ) +bool Sapphire::Db::DbConnection::execute( const std::string& sql ) { try { @@ -123,7 +123,7 @@ bool Core::Db::DbConnection::execute( const std::string& sql ) } } -std::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std::string& sql ) +std::shared_ptr< Mysql::ResultSet > Sapphire::Db::DbConnection::query( const std::string& sql ) { try { @@ -140,7 +140,7 @@ std::shared_ptr< Mysql::ResultSet > Core::Db::DbConnection::query( const std::st std::shared_ptr< Mysql::ResultSet > -Core::Db::DbConnection::query( std::shared_ptr< Core::Db::PreparedStatement > stmt ) +Sapphire::Db::DbConnection::query( std::shared_ptr< Sapphire::Db::PreparedStatement > stmt ) { std::shared_ptr< Mysql::ResultSet > res( nullptr ); if( !stmt ) @@ -176,7 +176,7 @@ Core::Db::DbConnection::query( std::shared_ptr< Core::Db::PreparedStatement > st } -bool Core::Db::DbConnection::execute( std::shared_ptr< Core::Db::PreparedStatement > stmt ) +bool Sapphire::Db::DbConnection::execute( std::shared_ptr< Sapphire::Db::PreparedStatement > stmt ) { if( !stmt ) return false; @@ -201,7 +201,7 @@ bool Core::Db::DbConnection::execute( std::shared_ptr< Core::Db::PreparedStateme } } -std::shared_ptr< Mysql::PreparedStatement > Core::Db::DbConnection::getPreparedStatement( uint32_t index ) +std::shared_ptr< Mysql::PreparedStatement > Sapphire::Db::DbConnection::getPreparedStatement( uint32_t index ) { assert( index < m_stmts.size() ); auto ret = m_stmts[ index ]; @@ -211,7 +211,7 @@ std::shared_ptr< Mysql::PreparedStatement > Core::Db::DbConnection::getPreparedS return ret; } -void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string& sql, Core::Db::ConnectionFlags flags ) +void Sapphire::Db::DbConnection::prepareStatement( uint32_t index, const std::string& sql, Sapphire::Db::ConnectionFlags flags ) { m_queries.insert( PreparedStatementMap::value_type( index, std::make_pair( sql, flags ) ) ); @@ -240,7 +240,7 @@ void Core::Db::DbConnection::prepareStatement( uint32_t index, const std::string } -bool Core::Db::DbConnection::prepareStatements() +bool Sapphire::Db::DbConnection::prepareStatements() { doPrepareStatements(); return !m_prepareError; diff --git a/src/common/Database/DbConnection.h b/src/common/Database/DbConnection.h index 7d64437c..05bfd793 100644 --- a/src/common/Database/DbConnection.h +++ b/src/common/Database/DbConnection.h @@ -16,7 +16,7 @@ namespace Mysql class PreparedStatement; } -namespace Core::Db +namespace Sapphire::Db { class DatabaseWorker; class PreparedStatement; @@ -52,7 +52,7 @@ namespace Core::Db DbConnection( ConnectionInfo& connInfo ); // Constructor for asynchronous connections. - DbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo ); + DbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo ); virtual ~DbConnection(); diff --git a/src/common/Database/DbLoader.cpp b/src/common/Database/DbLoader.cpp index db3d3f0a..5479874e 100644 --- a/src/common/Database/DbLoader.cpp +++ b/src/common/Database/DbLoader.cpp @@ -5,14 +5,14 @@ #include "Logging/Logger.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::Db::DbLoader::DbLoader() +Sapphire::Db::DbLoader::DbLoader() { } template< class T > -Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool, const ConnectionInfo& info ) +Sapphire::Db::DbLoader& Sapphire::Db::DbLoader::addDb( Sapphire::Db::DbWorkerPool< T >& pool, const ConnectionInfo& info ) { m_open.push( [ this, info, &pool ]()->bool @@ -65,7 +65,7 @@ Core::Db::DbLoader& Core::Db::DbLoader::addDb( Core::Db::DbWorkerPool< T >& pool return *this; } -bool Core::Db::DbLoader::initDbs() +bool Sapphire::Db::DbLoader::initDbs() { if( !openDatabases() ) return false; @@ -76,17 +76,17 @@ bool Core::Db::DbLoader::initDbs() return true; } -bool Core::Db::DbLoader::openDatabases() +bool Sapphire::Db::DbLoader::openDatabases() { return process( m_open ); } -bool Core::Db::DbLoader::prepareStatements() +bool Sapphire::Db::DbLoader::prepareStatements() { return process( m_prepare ); } -bool Core::Db::DbLoader::process( std::queue< Predicate >& queue ) +bool Sapphire::Db::DbLoader::process( std::queue< Predicate >& queue ) { while( !queue.empty() ) { @@ -108,7 +108,7 @@ bool Core::Db::DbLoader::process( std::queue< Predicate >& queue ) } template -Core::Db::DbLoader& -Core::Db::DbLoader::addDb< Core::Db::ZoneDbConnection >( Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection >&, +Sapphire::Db::DbLoader& +Sapphire::Db::DbLoader::addDb< Sapphire::Db::ZoneDbConnection >( Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection >&, const ConnectionInfo& ); diff --git a/src/common/Database/DbLoader.h b/src/common/Database/DbLoader.h index a7b6ff9c..d37cb964 100644 --- a/src/common/Database/DbLoader.h +++ b/src/common/Database/DbLoader.h @@ -8,7 +8,7 @@ #include #include "DbConnection.h" -namespace Core::Db +namespace Sapphire::Db { template< class T > diff --git a/src/common/Database/DbWorker.cpp b/src/common/Database/DbWorker.cpp index 8aa41a95..cd492410 100644 --- a/src/common/Database/DbWorker.cpp +++ b/src/common/Database/DbWorker.cpp @@ -2,7 +2,7 @@ #include "Operation.h" #include "Util/LockedWaitQueue.h" -Core::Db::DbWorker::DbWorker( Core::LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, DbConnection* pConn ) +Sapphire::Db::DbWorker::DbWorker( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, DbConnection* pConn ) { m_pConn = pConn; m_queue = newQueue; @@ -10,14 +10,14 @@ Core::Db::DbWorker::DbWorker( Core::LockedWaitQueue< std::shared_ptr< Operation m_workerThread = std::thread( &DbWorker::workerThread, this ); } -Core::Db::DbWorker::~DbWorker() +Sapphire::Db::DbWorker::~DbWorker() { m_cancelationToken = true; m_queue->cancel(); m_workerThread.join(); } -void Core::Db::DbWorker::workerThread() +void Sapphire::Db::DbWorker::workerThread() { if( !m_queue ) return; diff --git a/src/common/Database/DbWorker.h b/src/common/Database/DbWorker.h index 30b9c1e8..13250c19 100644 --- a/src/common/Database/DbWorker.h +++ b/src/common/Database/DbWorker.h @@ -6,7 +6,7 @@ #include "Util/LockedWaitQueue.h" #include -namespace Core::Db +namespace Sapphire::Db { class DbConnection; class Operation; diff --git a/src/common/Database/DbWorkerPool.cpp b/src/common/Database/DbWorkerPool.cpp index c645700a..9d154967 100644 --- a/src/common/Database/DbWorkerPool.cpp +++ b/src/common/Database/DbWorkerPool.cpp @@ -10,10 +10,10 @@ #include "Logging/Logger.h" #include -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; class PingOperation : - public Core::Db::Operation + public Sapphire::Db::Operation { bool execute() override { @@ -23,22 +23,22 @@ class PingOperation : }; template< class T > -Core::Db::DbWorkerPool< T >::DbWorkerPool() +Sapphire::Db::DbWorkerPool< T >::DbWorkerPool() : - m_queue( new Core::LockedWaitQueue< std::shared_ptr< Operation > >() ), + m_queue( new Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >() ), m_asyncThreads( 0 ), m_synchThreads( 0 ) { } template< class T > -Core::Db::DbWorkerPool< T >::~DbWorkerPool() +Sapphire::Db::DbWorkerPool< T >::~DbWorkerPool() { m_queue->cancel(); } template< class T > -void Core::Db::DbWorkerPool< T >::setConnectionInfo( const ConnectionInfo& info, +void Sapphire::Db::DbWorkerPool< T >::setConnectionInfo( const ConnectionInfo& info, uint8_t asyncThreads, uint8_t synchThreads ) { @@ -48,7 +48,7 @@ void Core::Db::DbWorkerPool< T >::setConnectionInfo( const ConnectionInfo& info, } template< class T > -uint32_t Core::Db::DbWorkerPool< T >::open() +uint32_t Sapphire::Db::DbWorkerPool< T >::open() { auto pLog = g_fw.get< Logger >(); pLog->info( "[DbPool] Opening DatabasePool " + getDatabaseName() + @@ -73,7 +73,7 @@ uint32_t Core::Db::DbWorkerPool< T >::open() } template< class T > -void Core::Db::DbWorkerPool< T >::close() +void Sapphire::Db::DbWorkerPool< T >::close() { auto pLog = g_fw.get< Logger >(); pLog->info( "[DbPool] Closing down DatabasePool " + getDatabaseName() ); @@ -83,7 +83,7 @@ void Core::Db::DbWorkerPool< T >::close() } template< class T > -bool Core::Db::DbWorkerPool< T >::prepareStatements() +bool Sapphire::Db::DbWorkerPool< T >::prepareStatements() { for( auto& connections : m_connections ) for( auto& connection : connections ) @@ -104,7 +104,7 @@ bool Core::Db::DbWorkerPool< T >::prepareStatements() template< class T > std::shared_ptr< Mysql::ResultSet > -Core::Db::DbWorkerPool< T >::query( const std::string& sql, std::shared_ptr< T > connection ) +Sapphire::Db::DbWorkerPool< T >::query( const std::string& sql, std::shared_ptr< T > connection ) { if( !connection ) connection = getFreeConnection(); @@ -117,7 +117,7 @@ Core::Db::DbWorkerPool< T >::query( const std::string& sql, std::shared_ptr< T > template< class T > std::shared_ptr< Mysql::PreparedResultSet > -Core::Db::DbWorkerPool< T >::query( std::shared_ptr< PreparedStatement > stmt ) +Sapphire::Db::DbWorkerPool< T >::query( std::shared_ptr< PreparedStatement > stmt ) { auto connection = getFreeConnection(); auto ret = std::static_pointer_cast< Mysql::PreparedResultSet >( connection->query( stmt ) ); @@ -127,14 +127,14 @@ Core::Db::DbWorkerPool< T >::query( std::shared_ptr< PreparedStatement > stmt ) } template< class T > -std::shared_ptr< Core::Db::PreparedStatement > -Core::Db::DbWorkerPool< T >::getPreparedStatement( PreparedStatementIndex index ) +std::shared_ptr< Sapphire::Db::PreparedStatement > +Sapphire::Db::DbWorkerPool< T >::getPreparedStatement( PreparedStatementIndex index ) { return std::make_shared< PreparedStatement >( index ); } template< class T > -void Core::Db::DbWorkerPool< T >::escapeString( std::string& str ) +void Sapphire::Db::DbWorkerPool< T >::escapeString( std::string& str ) { if( str.empty() ) return; @@ -146,7 +146,7 @@ void Core::Db::DbWorkerPool< T >::escapeString( std::string& str ) } template< class T > -void Core::Db::DbWorkerPool< T >::keepAlive() +void Sapphire::Db::DbWorkerPool< T >::keepAlive() { for( auto& connection : m_connections[ IDX_SYNCH ] ) { @@ -163,7 +163,7 @@ void Core::Db::DbWorkerPool< T >::keepAlive() } template< class T > -uint32_t Core::Db::DbWorkerPool< T >::openConnections( InternalIndex type, uint8_t numConnections ) +uint32_t Sapphire::Db::DbWorkerPool< T >::openConnections( InternalIndex type, uint8_t numConnections ) { for( uint8_t i = 0; i < numConnections; ++i ) { @@ -194,7 +194,7 @@ uint32_t Core::Db::DbWorkerPool< T >::openConnections( InternalIndex type, uint8 } template< class T > -unsigned long Core::Db::DbWorkerPool< T >::escapeString( char* to, const char* from, unsigned long length ) +unsigned long Sapphire::Db::DbWorkerPool< T >::escapeString( char* to, const char* from, unsigned long length ) { if( !to || !from || !length ) return 0; @@ -204,13 +204,13 @@ unsigned long Core::Db::DbWorkerPool< T >::escapeString( char* to, const char* f } template< class T > -void Core::Db::DbWorkerPool< T >::enqueue( std::shared_ptr< Operation > op ) +void Sapphire::Db::DbWorkerPool< T >::enqueue( std::shared_ptr< Operation > op ) { m_queue->push( op ); } template< class T > -std::shared_ptr< T > Core::Db::DbWorkerPool< T >::getFreeConnection() +std::shared_ptr< T > Sapphire::Db::DbWorkerPool< T >::getFreeConnection() { uint8_t i = 0; const auto numCons = m_connections[ IDX_SYNCH ].size(); @@ -228,27 +228,27 @@ std::shared_ptr< T > Core::Db::DbWorkerPool< T >::getFreeConnection() } template< class T > -const std::string& Core::Db::DbWorkerPool< T >::getDatabaseName() const +const std::string& Sapphire::Db::DbWorkerPool< T >::getDatabaseName() const { return m_connectionInfo.database; } template< class T > -void Core::Db::DbWorkerPool< T >::execute( const std::string& sql ) +void Sapphire::Db::DbWorkerPool< T >::execute( const std::string& sql ) { auto task = std::make_shared< StatementTask >( sql ); enqueue( task ); } template< class T > -void Core::Db::DbWorkerPool< T >::execute( std::shared_ptr< PreparedStatement > stmt ) +void Sapphire::Db::DbWorkerPool< T >::execute( std::shared_ptr< PreparedStatement > stmt ) { auto task = std::make_shared< PreparedStatementTask >( stmt ); enqueue( task ); } template< class T > -void Core::Db::DbWorkerPool< T >::directExecute( const std::string& sql ) +void Sapphire::Db::DbWorkerPool< T >::directExecute( const std::string& sql ) { auto connection = getFreeConnection(); connection->execute( sql ); @@ -256,7 +256,7 @@ void Core::Db::DbWorkerPool< T >::directExecute( const std::string& sql ) } template< class T > -void Core::Db::DbWorkerPool< T >::directExecute( std::shared_ptr< PreparedStatement > stmt ) +void Sapphire::Db::DbWorkerPool< T >::directExecute( std::shared_ptr< PreparedStatement > stmt ) { auto connection = getFreeConnection(); connection->execute( stmt ); @@ -284,4 +284,4 @@ void DatabaseWorkerPool::ExecuteOrAppend(SQLTransaction& trans, PreparedState */ template -class Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection >; +class Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection >; diff --git a/src/common/Database/DbWorkerPool.h b/src/common/Database/DbWorkerPool.h index c23bf31f..6ce6b76d 100644 --- a/src/common/Database/DbWorkerPool.h +++ b/src/common/Database/DbWorkerPool.h @@ -8,7 +8,7 @@ #include "Util/LockedWaitQueue.h" #include "DbConnection.h" -namespace Core::Db +namespace Sapphire::Db { template< typename T > @@ -83,7 +83,7 @@ namespace Core::Db const std::string& getDatabaseName() const; - std::unique_ptr< Core::LockedWaitQueue< std::shared_ptr< Operation > > > m_queue; + std::unique_ptr< Sapphire::LockedWaitQueue< std::shared_ptr< Operation > > > m_queue; std::array< std::vector< std::shared_ptr< T > >, IDX_SIZE > m_connections; ConnectionInfo m_connectionInfo; uint8_t m_asyncThreads; diff --git a/src/common/Database/Operation.h b/src/common/Database/Operation.h index 1ce0a0d7..e2a74586 100644 --- a/src/common/Database/Operation.h +++ b/src/common/Database/Operation.h @@ -6,7 +6,7 @@ namespace Mysql class Connection; } -namespace Core::Db +namespace Sapphire::Db { class DbConnection; diff --git a/src/common/Database/PreparedStatement.cpp b/src/common/Database/PreparedStatement.cpp index 2010e5eb..c01c2a0d 100644 --- a/src/common/Database/PreparedStatement.cpp +++ b/src/common/Database/PreparedStatement.cpp @@ -7,17 +7,17 @@ #include #include -Core::Db::PreparedStatement::PreparedStatement( uint32_t index ) : +Sapphire::Db::PreparedStatement::PreparedStatement( uint32_t index ) : m_stmt( nullptr ), m_index( index ) { } -Core::Db::PreparedStatement::~PreparedStatement() +Sapphire::Db::PreparedStatement::~PreparedStatement() { } -void Core::Db::PreparedStatement::bindParameters() +void Sapphire::Db::PreparedStatement::bindParameters() { assert( m_stmt ); @@ -65,7 +65,7 @@ void Core::Db::PreparedStatement::bindParameters() } //- Bind to buffer -void Core::Db::PreparedStatement::setBool( uint8_t index, const bool value ) +void Sapphire::Db::PreparedStatement::setBool( uint8_t index, const bool value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -74,7 +74,7 @@ void Core::Db::PreparedStatement::setBool( uint8_t index, const bool value ) m_statementData[ index ].type = TYPE_BOOL; } -void Core::Db::PreparedStatement::setUInt( uint8_t index, uint32_t value ) +void Sapphire::Db::PreparedStatement::setUInt( uint8_t index, uint32_t value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -83,7 +83,7 @@ void Core::Db::PreparedStatement::setUInt( uint8_t index, uint32_t value ) m_statementData[ index ].type = TYPE_UI; } -void Core::Db::PreparedStatement::setUInt64( uint8_t index, uint64_t value ) +void Sapphire::Db::PreparedStatement::setUInt64( uint8_t index, uint64_t value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -92,7 +92,7 @@ void Core::Db::PreparedStatement::setUInt64( uint8_t index, uint64_t value ) m_statementData[ index ].type = TYPE_UI64; } -void Core::Db::PreparedStatement::setInt( uint8_t index, int32_t value ) +void Sapphire::Db::PreparedStatement::setInt( uint8_t index, int32_t value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -101,7 +101,7 @@ void Core::Db::PreparedStatement::setInt( uint8_t index, int32_t value ) m_statementData[ index ].type = TYPE_I; } -void Core::Db::PreparedStatement::setInt64( uint8_t index, int64_t value ) +void Sapphire::Db::PreparedStatement::setInt64( uint8_t index, int64_t value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -110,7 +110,7 @@ void Core::Db::PreparedStatement::setInt64( uint8_t index, int64_t value ) m_statementData[ index ].type = TYPE_I64; } -void Core::Db::PreparedStatement::setDouble( uint8_t index, double value ) +void Sapphire::Db::PreparedStatement::setDouble( uint8_t index, double value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -119,7 +119,7 @@ void Core::Db::PreparedStatement::setDouble( uint8_t index, double value ) m_statementData[ index ].type = TYPE_DOUBLE; } -void Core::Db::PreparedStatement::setString( uint8_t index, const std::string& value ) +void Sapphire::Db::PreparedStatement::setString( uint8_t index, const std::string& value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -129,7 +129,7 @@ void Core::Db::PreparedStatement::setString( uint8_t index, const std::string& v m_statementData[ index ].type = TYPE_STRING; } -void Core::Db::PreparedStatement::setBinary( uint8_t index, const std::vector< uint8_t >& value ) +void Sapphire::Db::PreparedStatement::setBinary( uint8_t index, const std::vector< uint8_t >& value ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -138,7 +138,7 @@ void Core::Db::PreparedStatement::setBinary( uint8_t index, const std::vector< u m_statementData[ index ].type = TYPE_BINARY; } -void Core::Db::PreparedStatement::setNull( uint8_t index ) +void Sapphire::Db::PreparedStatement::setNull( uint8_t index ) { if( index >= m_statementData.size() ) m_statementData.resize( index + 1 ); @@ -146,12 +146,12 @@ void Core::Db::PreparedStatement::setNull( uint8_t index ) m_statementData[ index ].type = TYPE_NULL; } -uint32_t Core::Db::PreparedStatement::getIndex() const +uint32_t Sapphire::Db::PreparedStatement::getIndex() const { return m_index; } -void Core::Db::PreparedStatement::setMysqlPS( std::shared_ptr< Mysql::PreparedStatement > pStmt ) +void Sapphire::Db::PreparedStatement::setMysqlPS( std::shared_ptr< Mysql::PreparedStatement > pStmt ) { m_stmt = pStmt; } diff --git a/src/common/Database/PreparedStatement.h b/src/common/Database/PreparedStatement.h index 798d90e4..d62c9b9c 100644 --- a/src/common/Database/PreparedStatement.h +++ b/src/common/Database/PreparedStatement.h @@ -12,7 +12,7 @@ namespace Mysql class PreparedStatement; } -namespace Core::Db +namespace Sapphire::Db { union PreparedStatementDataUnion { diff --git a/src/common/Database/StatementTask.cpp b/src/common/Database/StatementTask.cpp index 87bf6e29..d216bce3 100644 --- a/src/common/Database/StatementTask.cpp +++ b/src/common/Database/StatementTask.cpp @@ -4,7 +4,7 @@ #include "DbConnection.h" #include "PreparedStatement.h" -Core::Db::StatementTask::StatementTask( const std::string& sql, bool async ) +Sapphire::Db::StatementTask::StatementTask( const std::string& sql, bool async ) { m_sql = sql; m_hasResult = async; // If the operation is async, then there's a result @@ -12,13 +12,13 @@ Core::Db::StatementTask::StatementTask( const std::string& sql, bool async ) // m_result = new QueryResultPromise(); } -Core::Db::StatementTask::~StatementTask() +Sapphire::Db::StatementTask::~StatementTask() { //if( m_hasResult && m_result != nullptr) // delete m_result; } -bool Core::Db::StatementTask::execute() +bool Sapphire::Db::StatementTask::execute() { if( m_hasResult ) { @@ -38,7 +38,7 @@ bool Core::Db::StatementTask::execute() } -Core::Db::PreparedStatementTask::PreparedStatementTask( std::shared_ptr< Core::Db::PreparedStatement > stmt, +Sapphire::Db::PreparedStatementTask::PreparedStatementTask( std::shared_ptr< Sapphire::Db::PreparedStatement > stmt, bool async ) : m_stmt( stmt ) //, m_result(nullptr) @@ -46,13 +46,13 @@ Core::Db::PreparedStatementTask::PreparedStatementTask( std::shared_ptr< Core::D m_hasResult = async; // If the operation is async, then there's a result } -Core::Db::PreparedStatementTask::~PreparedStatementTask() +Sapphire::Db::PreparedStatementTask::~PreparedStatementTask() { //if (m_has_result && m_result != nullptr) // delete m_result; } -bool Core::Db::PreparedStatementTask::execute() +bool Sapphire::Db::PreparedStatementTask::execute() { //if (m_has_result) //{ diff --git a/src/common/Database/StatementTask.h b/src/common/Database/StatementTask.h index 7054dbb8..1a1e5211 100644 --- a/src/common/Database/StatementTask.h +++ b/src/common/Database/StatementTask.h @@ -5,7 +5,7 @@ #include "Operation.h" #include -namespace Core::Db +namespace Sapphire::Db { class PreparedStatement; diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index bb92489c..0cc56879 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -1,22 +1,22 @@ #include "ZoneDbConnection.h" #include -Core::Db::ZoneDbConnection::ZoneDbConnection( ConnectionInfo& connInfo ) : +Sapphire::Db::ZoneDbConnection::ZoneDbConnection( ConnectionInfo& connInfo ) : DbConnection( connInfo ) { } -Core::Db::ZoneDbConnection::ZoneDbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* q, +Sapphire::Db::ZoneDbConnection::ZoneDbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ) : DbConnection( q, connInfo ) { } -Core::Db::ZoneDbConnection::~ZoneDbConnection() +Sapphire::Db::ZoneDbConnection::~ZoneDbConnection() { } -void Core::Db::ZoneDbConnection::doPrepareStatements() +void Sapphire::Db::ZoneDbConnection::doPrepareStatements() { if( !m_reconnecting ) m_stmts.resize( MAX_STATEMENTS ); diff --git a/src/common/Database/ZoneDbConnection.h b/src/common/Database/ZoneDbConnection.h index aa3cdf0f..df8dfdf1 100644 --- a/src/common/Database/ZoneDbConnection.h +++ b/src/common/Database/ZoneDbConnection.h @@ -3,7 +3,7 @@ #include "DbConnection.h" -namespace Core::Db +namespace Sapphire::Db { class DbConnectionInfo; @@ -96,7 +96,7 @@ namespace Core::Db ZoneDbConnection( ConnectionInfo& connInfo ); - ZoneDbConnection( Core::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ); + ZoneDbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ); ~ZoneDbConnection(); diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index d6585c1a..f73e2013 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -1,7 +1,7 @@ #include "ExdDataGenerated.h" #include -Core::Data::Achievement::Achievement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Achievement::Achievement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AchievementDat.get_row( row_id ); achievementCategory = exdData->getField< uint8_t >( row, 0 ); @@ -25,7 +25,7 @@ Core::Data::Achievement::Achievement( uint32_t row_id, Core::Data::ExdDataGenera initialHide = exdData->getField< bool >( row, 20 ); } -Core::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AchievementCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -33,13 +33,13 @@ Core::Data::AchievementCategory::AchievementCategory( uint32_t row_id, Core::Dat hideCategory = exdData->getField< bool >( row, 3 ); } -Core::Data::AchievementKind::AchievementKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AchievementKind::AchievementKind( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AchievementKindDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Action::Action( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Action::Action( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -80,26 +80,26 @@ Core::Data::Action::Action( uint32_t row_id, Core::Data::ExdDataGenerated* exdDa isPvP = exdData->getField< bool >( row, 50 ); } -Core::Data::ActionCastTimeline::ActionCastTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionCastTimeline::ActionCastTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionCastTimelineDat.get_row( row_id ); name = exdData->getField< uint16_t >( row, 0 ); vFX = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::ActionCastVFX::ActionCastVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionCastVFX::ActionCastVFX( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionCastVFXDat.get_row( row_id ); vFX = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::ActionCategory::ActionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionCategory::ActionCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::ActionComboRoute::ActionComboRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionComboRoute::ActionComboRoute( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionComboRouteDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -109,49 +109,49 @@ Core::Data::ActionComboRoute::ActionComboRoute( uint32_t row_id, Core::Data::Exd action.push_back( exdData->getField< uint16_t >( row, 5 ) ); } -Core::Data::ActionIndirection::ActionIndirection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionIndirection::ActionIndirection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionIndirectionDat.get_row( row_id ); name = exdData->getField< int32_t >( row, 0 ); } -Core::Data::ActionParam::ActionParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionParam::ActionParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionParamDat.get_row( row_id ); name = exdData->getField< int16_t >( row, 0 ); } -Core::Data::ActionProcStatus::ActionProcStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionProcStatus::ActionProcStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionProcStatusDat.get_row( row_id ); status = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::ActionTimeline::ActionTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionTimeline::ActionTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionTimelineDat.get_row( row_id ); key = exdData->getField< std::string >( row, 6 ); } -Core::Data::ActionTimelineMove::ActionTimelineMove( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionTimelineMove::ActionTimelineMove( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionTimelineMoveDat.get_row( row_id ); } -Core::Data::ActionTimelineReplace::ActionTimelineReplace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionTimelineReplace::ActionTimelineReplace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionTimelineReplaceDat.get_row( row_id ); old = exdData->getField< uint16_t >( row, 0 ); New = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::ActionTransient::ActionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActionTransient::ActionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActionTransientDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); } -Core::Data::ActivityFeedButtons::ActivityFeedButtons( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActivityFeedButtons::ActivityFeedButtons( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActivityFeedButtonsDat.get_row( row_id ); bannerURL = exdData->getField< std::string >( row, 1 ); @@ -160,7 +160,7 @@ Core::Data::ActivityFeedButtons::ActivityFeedButtons( uint32_t row_id, Core::Dat pictureURL = exdData->getField< std::string >( row, 4 ); } -Core::Data::ActivityFeedCaptions::ActivityFeedCaptions( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActivityFeedCaptions::ActivityFeedCaptions( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActivityFeedCaptionsDat.get_row( row_id ); jA = exdData->getField< std::string >( row, 0 ); @@ -169,7 +169,7 @@ Core::Data::ActivityFeedCaptions::ActivityFeedCaptions( uint32_t row_id, Core::D fR = exdData->getField< std::string >( row, 3 ); } -Core::Data::ActivityFeedGroupCaptions::ActivityFeedGroupCaptions( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActivityFeedGroupCaptions::ActivityFeedGroupCaptions( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActivityFeedGroupCaptionsDat.get_row( row_id ); jA = exdData->getField< std::string >( row, 0 ); @@ -178,7 +178,7 @@ Core::Data::ActivityFeedGroupCaptions::ActivityFeedGroupCaptions( uint32_t row_i fR = exdData->getField< std::string >( row, 3 ); } -Core::Data::ActivityFeedImages::ActivityFeedImages( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ActivityFeedImages::ActivityFeedImages( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ActivityFeedImagesDat.get_row( row_id ); expansionImage = exdData->getField< std::string >( row, 0 ); @@ -188,13 +188,13 @@ Core::Data::ActivityFeedImages::ActivityFeedImages( uint32_t row_id, Core::Data: activityFeedFR = exdData->getField< std::string >( row, 4 ); } -Core::Data::Addon::Addon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Addon::Addon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AddonDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::AddonHud::AddonHud( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AddonHud::AddonHud( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AddonHudDat.get_row( row_id ); _long = exdData->getField< std::string >( row, 0 ); @@ -202,7 +202,7 @@ Core::Data::AddonHud::AddonHud( uint32_t row_id, Core::Data::ExdDataGenerated* e _function = exdData->getField< std::string >( row, 2 ); } -Core::Data::Adventure::Adventure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Adventure::Adventure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AdventureDat.get_row( row_id ); level = exdData->getField< int32_t >( row, 0 ); @@ -219,7 +219,7 @@ Core::Data::Adventure::Adventure( uint32_t row_id, Core::Data::ExdDataGenerated* isInitial = exdData->getField< bool >( row, 13 ); } -Core::Data::AdventureExPhase::AdventureExPhase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AdventureExPhase::AdventureExPhase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AdventureExPhaseDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 0 ); @@ -227,13 +227,13 @@ Core::Data::AdventureExPhase::AdventureExPhase( uint32_t row_id, Core::Data::Exd adventureEnd = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::AetherCurrent::AetherCurrent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AetherCurrent::AetherCurrent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AetherCurrentDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::AetherCurrentCompFlgSet::AetherCurrentCompFlgSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AetherCurrentCompFlgSet::AetherCurrentCompFlgSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AetherCurrentCompFlgSetDat.get_row( row_id ); territory = exdData->getField< int32_t >( row, 0 ); @@ -254,7 +254,7 @@ Core::Data::AetherCurrentCompFlgSet::AetherCurrentCompFlgSet( uint32_t row_id, C aetherCurrent.push_back( exdData->getField< int32_t >( row, 16 ) ); } -Core::Data::AetherialWheel::AetherialWheel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AetherialWheel::AetherialWheel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AetherialWheelDat.get_row( row_id ); itemUnprimed = exdData->getField< int32_t >( row, 0 ); @@ -263,7 +263,7 @@ Core::Data::AetherialWheel::AetherialWheel( uint32_t row_id, Core::Data::ExdData hoursRequired = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::Aetheryte::Aetheryte( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Aetheryte::Aetheryte( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AetheryteDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -288,31 +288,31 @@ Core::Data::Aetheryte::Aetheryte( uint32_t row_id, Core::Data::ExdDataGenerated* aetherstreamY = exdData->getField< int16_t >( row, 21 ); } -Core::Data::AetheryteSystemDefine::AetheryteSystemDefine( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AetheryteSystemDefine::AetheryteSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AetheryteSystemDefineDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::AirshipExplorationLevel::AirshipExplorationLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AirshipExplorationLevel::AirshipExplorationLevel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AirshipExplorationLevelDat.get_row( row_id ); expToNext = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::AirshipExplorationLog::AirshipExplorationLog( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AirshipExplorationLog::AirshipExplorationLog( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AirshipExplorationLogDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::AirshipExplorationParamType::AirshipExplorationParamType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AirshipExplorationParamType::AirshipExplorationParamType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AirshipExplorationParamTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::AirshipExplorationPart::AirshipExplorationPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AirshipExplorationPart::AirshipExplorationPart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AirshipExplorationPartDat.get_row( row_id ); rank = exdData->getField< uint8_t >( row, 1 ); @@ -325,7 +325,7 @@ Core::Data::AirshipExplorationPart::AirshipExplorationPart( uint32_t row_id, Cor repairMaterials = exdData->getField< uint8_t >( row, 9 ); } -Core::Data::AirshipExplorationPoint::AirshipExplorationPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AirshipExplorationPoint::AirshipExplorationPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AirshipExplorationPointDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -337,7 +337,7 @@ Core::Data::AirshipExplorationPoint::AirshipExplorationPoint( uint32_t row_id, C expReward = exdData->getField< uint32_t >( row, 13 ); } -Core::Data::AnimaWeapon5::AnimaWeapon5( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeapon5::AnimaWeapon5( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeapon5Dat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); @@ -349,33 +349,33 @@ Core::Data::AnimaWeapon5::AnimaWeapon5( uint32_t row_id, Core::Data::ExdDataGene parameter.push_back( exdData->getField< uint8_t >( row, 7 ) ); } -Core::Data::AnimaWeapon5Param::AnimaWeapon5Param( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeapon5Param::AnimaWeapon5Param( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeapon5ParamDat.get_row( row_id ); baseParam = exdData->getField< uint8_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::AnimaWeapon5PatternGroup::AnimaWeapon5PatternGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeapon5PatternGroup::AnimaWeapon5PatternGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeapon5PatternGroupDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::AnimaWeapon5SpiritTalk::AnimaWeapon5SpiritTalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeapon5SpiritTalk::AnimaWeapon5SpiritTalk( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeapon5SpiritTalkDat.get_row( row_id, subRow ); dialogue = exdData->getField< int32_t >( row, 0 ); } -Core::Data::AnimaWeapon5SpiritTalkParam::AnimaWeapon5SpiritTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeapon5SpiritTalkParam::AnimaWeapon5SpiritTalkParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeapon5SpiritTalkParamDat.get_row( row_id ); prologue = exdData->getField< std::string >( row, 0 ); epilogue = exdData->getField< std::string >( row, 1 ); } -Core::Data::AnimaWeapon5TradeItem::AnimaWeapon5TradeItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeapon5TradeItem::AnimaWeapon5TradeItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeapon5TradeItemDat.get_row( row_id ); crystalSand = exdData->getField< uint32_t >( row, 1 ); @@ -383,20 +383,20 @@ Core::Data::AnimaWeapon5TradeItem::AnimaWeapon5TradeItem( uint32_t row_id, Core: category = exdData->getField< uint8_t >( row, 27 ); } -Core::Data::AnimaWeaponFUITalk::AnimaWeaponFUITalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeaponFUITalk::AnimaWeaponFUITalk( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeaponFUITalkDat.get_row( row_id, subRow ); dialogue = exdData->getField< int32_t >( row, 0 ); } -Core::Data::AnimaWeaponFUITalkParam::AnimaWeaponFUITalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeaponFUITalkParam::AnimaWeaponFUITalkParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeaponFUITalkParamDat.get_row( row_id ); prologue = exdData->getField< std::string >( row, 0 ); epilogue = exdData->getField< std::string >( row, 1 ); } -Core::Data::AnimaWeaponIcon::AnimaWeaponIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeaponIcon::AnimaWeaponIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeaponIconDat.get_row( row_id ); hyperconductive = exdData->getField< int32_t >( row, 0 ); @@ -406,7 +406,7 @@ Core::Data::AnimaWeaponIcon::AnimaWeaponIcon( uint32_t row_id, Core::Data::ExdDa zodiacLux = exdData->getField< int32_t >( row, 4 ); } -Core::Data::AnimaWeaponItem::AnimaWeaponItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AnimaWeaponItem::AnimaWeaponItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AnimaWeaponItemDat.get_row( row_id ); item.push_back( exdData->getField< uint32_t >( row, 0 ) ); @@ -425,7 +425,7 @@ Core::Data::AnimaWeaponItem::AnimaWeaponItem( uint32_t row_id, Core::Data::ExdDa item.push_back( exdData->getField< uint32_t >( row, 13 ) ); } -Core::Data::AquariumFish::AquariumFish( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AquariumFish::AquariumFish( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AquariumFishDat.get_row( row_id ); aquariumWater = exdData->getField< uint8_t >( row, 0 ); @@ -433,13 +433,13 @@ Core::Data::AquariumFish::AquariumFish( uint32_t row_id, Core::Data::ExdDataGene item = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::AquariumWater::AquariumWater( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AquariumWater::AquariumWater( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AquariumWaterDat.get_row( row_id ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::ArrayEventHandler::ArrayEventHandler( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ArrayEventHandler::ArrayEventHandler( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ArrayEventHandlerDat.get_row( row_id ); data.push_back( exdData->getField< uint32_t >( row, 0 ) ); @@ -460,25 +460,25 @@ Core::Data::ArrayEventHandler::ArrayEventHandler( uint32_t row_id, Core::Data::E data.push_back( exdData->getField< uint32_t >( row, 15 ) ); } -Core::Data::AttackType::AttackType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::AttackType::AttackType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_AttackTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::BacklightColor::BacklightColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BacklightColor::BacklightColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BacklightColorDat.get_row( row_id ); color = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::Balloon::Balloon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Balloon::Balloon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BalloonDat.get_row( row_id ); dialogue = exdData->getField< std::string >( row, 1 ); } -Core::Data::BaseParam::BaseParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BaseParam::BaseParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BaseParamDat.get_row( row_id ); order = exdData->getField< int8_t >( row, 0 ); @@ -505,7 +505,7 @@ Core::Data::BaseParam::BaseParam( uint32_t row_id, Core::Data::ExdDataGenerated* chestLegsFeet = exdData->getField< uint8_t >( row, 24 ); } -Core::Data::BattleLeve::BattleLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BattleLeve::BattleLeve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BattleLeveDat.get_row( row_id ); enemyLevel.push_back( exdData->getField< uint16_t >( row, 16 ) ); @@ -550,7 +550,7 @@ Core::Data::BattleLeve::BattleLeve( uint32_t row_id, Core::Data::ExdDataGenerate itemDropRate.push_back( exdData->getField< uint8_t >( row, 55 ) ); } -Core::Data::BeastRankBonus::BeastRankBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BeastRankBonus::BeastRankBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BeastRankBonusDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 8 ); @@ -564,14 +564,14 @@ Core::Data::BeastRankBonus::BeastRankBonus( uint32_t row_id, Core::Data::ExdData itemQuantity.push_back( exdData->getField< uint8_t >( row, 16 ) ); } -Core::Data::BeastReputationRank::BeastReputationRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BeastReputationRank::BeastReputationRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BeastReputationRankDat.get_row( row_id ); requiredReputation = exdData->getField< uint16_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::BeastTribe::BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BeastTribe::BeastTribe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BeastTribeDat.get_row( row_id ); minLevel = exdData->getField< uint8_t >( row, 0 ); @@ -588,25 +588,25 @@ Core::Data::BeastTribe::BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerate nameRelation = exdData->getField< std::string >( row, 18 ); } -Core::Data::Behavior::Behavior( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Behavior::Behavior( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BehaviorDat.get_row( row_id, subRow ); balloon = exdData->getField< uint16_t >( row, 6 ); } -Core::Data::BGM::BGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BGM::BGM( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BGMDat.get_row( row_id ); file = exdData->getField< std::string >( row, 0 ); } -Core::Data::BGMFade::BGMFade( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BGMFade::BGMFade( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BGMFadeDat.get_row( row_id ); bGMFadeType = exdData->getField< int32_t >( row, 2 ); } -Core::Data::BGMSituation::BGMSituation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BGMSituation::BGMSituation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BGMSituationDat.get_row( row_id ); bGMDay = exdData->getField< uint16_t >( row, 0 ); @@ -615,26 +615,26 @@ Core::Data::BGMSituation::BGMSituation( uint32_t row_id, Core::Data::ExdDataGene bGMField = exdData->getField< uint16_t >( row, 3 ); } -Core::Data::BGMSwitch::BGMSwitch( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BGMSwitch::BGMSwitch( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BGMSwitchDat.get_row( row_id, subRow ); bGMSystemDefine = exdData->getField< uint8_t >( row, 0 ); quest = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::BGMSystemDefine::BGMSystemDefine( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BGMSystemDefine::BGMSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BGMSystemDefineDat.get_row( row_id ); define = exdData->getField< float >( row, 0 ); } -Core::Data::BNpcAnnounceIcon::BNpcAnnounceIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BNpcAnnounceIcon::BNpcAnnounceIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BNpcAnnounceIconDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::BNpcBase::BNpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BNpcBase::BNpcBase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BNpcBaseDat.get_row( row_id ); behavior = exdData->getField< uint16_t >( row, 0 ); @@ -647,7 +647,7 @@ Core::Data::BNpcBase::BNpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* e bNpcParts = exdData->getField< uint8_t >( row, 12 ); } -Core::Data::BNpcCustomize::BNpcCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BNpcCustomize::BNpcCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BNpcCustomizeDat.get_row( row_id ); race = exdData->getField< uint8_t >( row, 0 ); @@ -678,7 +678,7 @@ Core::Data::BNpcCustomize::BNpcCustomize( uint32_t row_id, Core::Data::ExdDataGe facePaintColor = exdData->getField< uint8_t >( row, 25 ); } -Core::Data::BNpcName::BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BNpcName::BNpcName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BNpcNameDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -690,7 +690,7 @@ Core::Data::BNpcName::BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* e article = exdData->getField< int8_t >( row, 7 ); } -Core::Data::BNpcParts::BNpcParts( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BNpcParts::BNpcParts( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BNpcPartsDat.get_row( row_id ); bNpcBase1 = exdData->getField< uint16_t >( row, 0 ); @@ -725,7 +725,7 @@ Core::Data::BNpcParts::BNpcParts( uint32_t row_id, Core::Data::ExdDataGenerated* scale5 = exdData->getField< float >( row, 54 ); } -Core::Data::Buddy::Buddy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Buddy::Buddy( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BuddyDat.get_row( row_id ); questRequirement2 = exdData->getField< int32_t >( row, 1 ); @@ -736,7 +736,7 @@ Core::Data::Buddy::Buddy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData soundEffect1 = exdData->getField< std::string >( row, 7 ); } -Core::Data::BuddyAction::BuddyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BuddyAction::BuddyAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BuddyActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -745,7 +745,7 @@ Core::Data::BuddyAction::BuddyAction( uint32_t row_id, Core::Data::ExdDataGenera iconStatus = exdData->getField< int32_t >( row, 3 ); } -Core::Data::BuddyEquip::BuddyEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BuddyEquip::BuddyEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BuddyEquipDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -765,19 +765,19 @@ Core::Data::BuddyEquip::BuddyEquip( uint32_t row_id, Core::Data::ExdDataGenerate iconLegs = exdData->getField< uint16_t >( row, 15 ); } -Core::Data::BuddyItem::BuddyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BuddyItem::BuddyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BuddyItemDat.get_row( row_id ); item = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::BuddyRank::BuddyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BuddyRank::BuddyRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BuddyRankDat.get_row( row_id ); expRequired = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::BuddySkill::BuddySkill( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::BuddySkill::BuddySkill( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_BuddySkillDat.get_row( row_id ); buddyLevel = exdData->getField< uint8_t >( row, 0 ); @@ -787,7 +787,7 @@ Core::Data::BuddySkill::BuddySkill( uint32_t row_id, Core::Data::ExdDataGenerate healer = exdData->getField< uint16_t >( row, 4 ); } -Core::Data::Cabinet::Cabinet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Cabinet::Cabinet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CabinetDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); @@ -795,7 +795,7 @@ Core::Data::Cabinet::Cabinet( uint32_t row_id, Core::Data::ExdDataGenerated* exd category = exdData->getField< uint8_t >( row, 2 ); } -Core::Data::CabinetCategory::CabinetCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CabinetCategory::CabinetCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CabinetCategoryDat.get_row( row_id ); menuOrder = exdData->getField< uint8_t >( row, 0 ); @@ -803,7 +803,7 @@ Core::Data::CabinetCategory::CabinetCategory( uint32_t row_id, Core::Data::ExdDa category = exdData->getField< int32_t >( row, 2 ); } -Core::Data::Calendar::Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Calendar::Calendar( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CalendarDat.get_row( row_id ); month.push_back( exdData->getField< uint8_t >( row, 0 ) ); @@ -872,7 +872,7 @@ Core::Data::Calendar::Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* e day.push_back( exdData->getField< uint8_t >( row, 63 ) ); } -Core::Data::CharaMakeCustomize::CharaMakeCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CharaMakeCustomize::CharaMakeCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CharaMakeCustomizeDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 1 ); @@ -880,7 +880,7 @@ Core::Data::CharaMakeCustomize::CharaMakeCustomize( uint32_t row_id, Core::Data: isPurchasable = exdData->getField< bool >( row, 3 ); } -Core::Data::CharaMakeType::CharaMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CharaMakeType::CharaMakeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CharaMakeTypeDat.get_row( row_id ); race = exdData->getField< int32_t >( row, 0 ); @@ -930,14 +930,14 @@ Core::Data::CharaMakeType::CharaMakeType( uint32_t row_id, Core::Data::ExdDataGe facialFeatureIcon.push_back( exdData->getField< int32_t >( row, 3332 ) ); } -Core::Data::ChocoboRace::ChocoboRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRace::ChocoboRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceDat.get_row( row_id ); chocoboRaceRank = exdData->getField< uint8_t >( row, 0 ); chocoboRaceTerritory = exdData->getField< uint8_t >( row, 1 ); } -Core::Data::ChocoboRaceAbility::ChocoboRaceAbility( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceAbility::ChocoboRaceAbility( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceAbilityDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -947,13 +947,13 @@ Core::Data::ChocoboRaceAbility::ChocoboRaceAbility( uint32_t row_id, Core::Data: value = exdData->getField< uint8_t >( row, 4 ); } -Core::Data::ChocoboRaceAbilityType::ChocoboRaceAbilityType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceAbilityType::ChocoboRaceAbilityType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceAbilityTypeDat.get_row( row_id ); isActive = exdData->getField< bool >( row, 0 ); } -Core::Data::ChocoboRaceItem::ChocoboRaceItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceItem::ChocoboRaceItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceItemDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -961,7 +961,7 @@ Core::Data::ChocoboRaceItem::ChocoboRaceItem( uint32_t row_id, Core::Data::ExdDa icon = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::ChocoboRaceRank::ChocoboRaceRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceRank::ChocoboRaceRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceRankDat.get_row( row_id ); ratingMin = exdData->getField< uint16_t >( row, 0 ); @@ -971,20 +971,20 @@ Core::Data::ChocoboRaceRank::ChocoboRaceRank( uint32_t row_id, Core::Data::ExdDa icon = exdData->getField< int32_t >( row, 4 ); } -Core::Data::ChocoboRaceStatus::ChocoboRaceStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceStatus::ChocoboRaceStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceStatusDat.get_row( row_id ); status = exdData->getField< int32_t >( row, 0 ); } -Core::Data::ChocoboRaceTerritory::ChocoboRaceTerritory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceTerritory::ChocoboRaceTerritory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceTerritoryDat.get_row( row_id ); name = exdData->getField< uint16_t >( row, 0 ); icon = exdData->getField< int32_t >( row, 1 ); } -Core::Data::ChocoboRaceTutorial::ChocoboRaceTutorial( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceTutorial::ChocoboRaceTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceTutorialDat.get_row( row_id ); npcYell.push_back( exdData->getField< int32_t >( row, 0 ) ); @@ -997,26 +997,26 @@ Core::Data::ChocoboRaceTutorial::ChocoboRaceTutorial( uint32_t row_id, Core::Dat npcYell.push_back( exdData->getField< int32_t >( row, 7 ) ); } -Core::Data::ChocoboRaceWeather::ChocoboRaceWeather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboRaceWeather::ChocoboRaceWeather( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboRaceWeatherDat.get_row( row_id ); weatherType1 = exdData->getField< int32_t >( row, 0 ); weatherType2 = exdData->getField< int32_t >( row, 1 ); } -Core::Data::ChocoboTaxi::ChocoboTaxi( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboTaxi::ChocoboTaxi( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboTaxiDat.get_row( row_id ); location = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::ChocoboTaxiStand::ChocoboTaxiStand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ChocoboTaxiStand::ChocoboTaxiStand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ChocoboTaxiStandDat.get_row( row_id ); placeName = exdData->getField< std::string >( row, 8 ); } -Core::Data::ClassJob::ClassJob( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ClassJob::ClassJob( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ClassJobDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1044,7 +1044,7 @@ Core::Data::ClassJob::ClassJob( uint32_t row_id, Core::Data::ExdDataGenerated* e startingLevel = exdData->getField< uint8_t >( row, 41 ); } -Core::Data::ClassJobCategory::ClassJobCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ClassJobCategory::ClassJobCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ClassJobCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1086,7 +1086,7 @@ Core::Data::ClassJobCategory::ClassJobCategory( uint32_t row_id, Core::Data::Exd rDM = exdData->getField< bool >( row, 36 ); } -Core::Data::Companion::Companion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Companion::Companion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanionDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -1106,13 +1106,13 @@ Core::Data::Companion::Companion( uint32_t row_id, Core::Data::ExdDataGenerated* minionRace = exdData->getField< uint8_t >( row, 37 ); } -Core::Data::CompanionMove::CompanionMove( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanionMove::CompanionMove( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanionMoveDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::CompanionTransient::CompanionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanionTransient::CompanionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanionTransientDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); @@ -1131,7 +1131,7 @@ Core::Data::CompanionTransient::CompanionTransient( uint32_t row_id, Core::Data: minionSkillType = exdData->getField< uint8_t >( row, 13 ); } -Core::Data::CompanyAction::CompanyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyAction::CompanyAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1143,7 +1143,7 @@ Core::Data::CompanyAction::CompanyAction( uint32_t row_id, Core::Data::ExdDataGe purchasable = exdData->getField< bool >( row, 6 ); } -Core::Data::CompanyCraftDraft::CompanyCraftDraft( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftDraft::CompanyCraftDraft( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftDraftDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1151,19 +1151,19 @@ Core::Data::CompanyCraftDraft::CompanyCraftDraft( uint32_t row_id, Core::Data::E order = exdData->getField< uint32_t >( row, 8 ); } -Core::Data::CompanyCraftDraftCategory::CompanyCraftDraftCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftDraftCategory::CompanyCraftDraftCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftDraftCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::CompanyCraftManufactoryState::CompanyCraftManufactoryState( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftManufactoryState::CompanyCraftManufactoryState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftManufactoryStateDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::CompanyCraftPart::CompanyCraftPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftPart::CompanyCraftPart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftPartDat.get_row( row_id ); companyCraftType = exdData->getField< uint8_t >( row, 1 ); @@ -1172,12 +1172,12 @@ Core::Data::CompanyCraftPart::CompanyCraftPart( uint32_t row_id, Core::Data::Exd companyCraftProcess.push_back( exdData->getField< uint16_t >( row, 4 ) ); } -Core::Data::CompanyCraftProcess::CompanyCraftProcess( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftProcess::CompanyCraftProcess( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftProcessDat.get_row( row_id ); } -Core::Data::CompanyCraftSequence::CompanyCraftSequence( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftSequence::CompanyCraftSequence( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftSequenceDat.get_row( row_id ); resultItem = exdData->getField< int32_t >( row, 0 ); @@ -1194,19 +1194,19 @@ Core::Data::CompanyCraftSequence::CompanyCraftSequence( uint32_t row_id, Core::D companyCraftPart.push_back( exdData->getField< uint16_t >( row, 12 ) ); } -Core::Data::CompanyCraftSupplyItem::CompanyCraftSupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftSupplyItem::CompanyCraftSupplyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftSupplyItemDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::CompanyCraftType::CompanyCraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompanyCraftType::CompanyCraftType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompanyCraftTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::CompleteJournal::CompleteJournal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompleteJournal::CompleteJournal( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompleteJournalDat.get_row( row_id ); requiredLevel = exdData->getField< uint16_t >( row, 1 ); @@ -1238,28 +1238,28 @@ Core::Data::CompleteJournal::CompleteJournal( uint32_t row_id, Core::Data::ExdDa cutscene.push_back( exdData->getField< int32_t >( row, 29 ) ); } -Core::Data::CompleteJournalCategory::CompleteJournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CompleteJournalCategory::CompleteJournalCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CompleteJournalCategoryDat.get_row( row_id ); firstQuest = exdData->getField< uint32_t >( row, 0 ); lastQuest = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::ContentCloseCycle::ContentCloseCycle( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentCloseCycle::ContentCloseCycle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentCloseCycleDat.get_row( row_id ); unixtime = exdData->getField< uint32_t >( row, 0 ); timeSeconds = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::ContentExAction::ContentExAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentExAction::ContentExAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentExActionDat.get_row( row_id ); name = exdData->getField< uint32_t >( row, 0 ); charges = exdData->getField< uint8_t >( row, 2 ); } -Core::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentFinderConditionDat.get_row( row_id ); territoryType = exdData->getField< uint16_t >( row, 1 ); @@ -1279,13 +1279,13 @@ Core::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, Cor image = exdData->getField< uint32_t >( row, 37 ); } -Core::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentFinderConditionTransientDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); } -Core::Data::ContentGauge::ContentGauge( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentGauge::ContentGauge( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentGaugeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1293,7 +1293,7 @@ Core::Data::ContentGauge::ContentGauge( uint32_t row_id, Core::Data::ExdDataGene textString = exdData->getField< std::string >( row, 3 ); } -Core::Data::ContentGaugeColor::ContentGaugeColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentGaugeColor::ContentGaugeColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentGaugeColorDat.get_row( row_id ); androidColor1 = exdData->getField< uint32_t >( row, 0 ); @@ -1301,7 +1301,7 @@ Core::Data::ContentGaugeColor::ContentGaugeColor( uint32_t row_id, Core::Data::E androidColor3 = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentMemberTypeDat.get_row( row_id ); tanksPerParty = exdData->getField< uint8_t >( row, 9 ); @@ -1310,7 +1310,7 @@ Core::Data::ContentMemberType::ContentMemberType( uint32_t row_id, Core::Data::E rangedPerParty = exdData->getField< uint8_t >( row, 12 ); } -Core::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentNpcTalkDat.get_row( row_id ); contentTalk.push_back( exdData->getField< uint32_t >( row, 1 ) ); @@ -1323,7 +1323,7 @@ Core::Data::ContentNpcTalk::ContentNpcTalk( uint32_t row_id, Core::Data::ExdData contentTalk.push_back( exdData->getField< uint32_t >( row, 8 ) ); } -Core::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentRouletteDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1345,20 +1345,20 @@ Core::Data::ContentRoulette::ContentRoulette( uint32_t row_id, Core::Data::ExdDa instanceContent = exdData->getField< uint16_t >( row, 35 ); } -Core::Data::ContentRouletteOpenRule::ContentRouletteOpenRule( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentRouletteOpenRule::ContentRouletteOpenRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentRouletteOpenRuleDat.get_row( row_id ); type = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::ContentRouletteRoleBonus::ContentRouletteRoleBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentRouletteRoleBonus::ContentRouletteRoleBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentRouletteRoleBonusDat.get_row( row_id ); itemRewardType = exdData->getField< uint32_t >( row, 6 ); rewardAmount = exdData->getField< uint8_t >( row, 7 ); } -Core::Data::ContentsNote::ContentsNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentsNote::ContentsNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentsNoteDat.get_row( row_id ); contentType = exdData->getField< uint8_t >( row, 0 ); @@ -1373,21 +1373,21 @@ Core::Data::ContentsNote::ContentsNote( uint32_t row_id, Core::Data::ExdDataGene expCap = exdData->getField< int32_t >( row, 13 ); } -Core::Data::ContentTalk::ContentTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentTalk::ContentTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentTalkDat.get_row( row_id ); contentTalkParam = exdData->getField< uint8_t >( row, 0 ); text = exdData->getField< std::string >( row, 1 ); } -Core::Data::ContentTalkParam::ContentTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentTalkParam::ContentTalkParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentTalkParamDat.get_row( row_id ); param = exdData->getField< bool >( row, 0 ); testAction = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::ContentType::ContentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ContentType::ContentType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ContentTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1395,7 +1395,7 @@ Core::Data::ContentType::ContentType( uint32_t row_id, Core::Data::ExdDataGenera iconDutyFinder = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::CraftAction::CraftAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CraftAction::CraftAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CraftActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1419,7 +1419,7 @@ Core::Data::CraftAction::CraftAction( uint32_t row_id, Core::Data::ExdDataGenera cUL = exdData->getField< int32_t >( row, 19 ); } -Core::Data::CraftLeve::CraftLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CraftLeve::CraftLeve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CraftLeveDat.get_row( row_id ); leve = exdData->getField< int32_t >( row, 0 ); @@ -1427,13 +1427,13 @@ Core::Data::CraftLeve::CraftLeve( uint32_t row_id, Core::Data::ExdDataGenerated* repeats = exdData->getField< uint8_t >( row, 2 ); } -Core::Data::CraftType::CraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CraftType::CraftType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CraftTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 2 ); } -Core::Data::Credit::Credit( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Credit::Credit( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CreditDat.get_row( row_id, subRow ); roles1 = exdData->getField< uint16_t >( row, 1 ); @@ -1448,20 +1448,20 @@ Core::Data::Credit::Credit( uint32_t row_id, uint32_t subRow, Core::Data::ExdDat germanCast2 = exdData->getField< uint16_t >( row, 10 ); } -Core::Data::CreditCast::CreditCast( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CreditCast::CreditCast( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CreditCastDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Currency::Currency( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Currency::Currency( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CurrencyDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 0 ); limit = exdData->getField< uint32_t >( row, 3 ); } -Core::Data::CustomTalk::CustomTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CustomTalk::CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CustomTalkDat.get_row( row_id ); iconActor = exdData->getField< uint32_t >( row, 0 ); @@ -1530,30 +1530,30 @@ Core::Data::CustomTalk::CustomTalk( uint32_t row_id, Core::Data::ExdDataGenerate text = exdData->getField< bool >( row, 66 ); } -Core::Data::Cutscene::Cutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Cutscene::Cutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CutsceneDat.get_row( row_id ); path = exdData->getField< std::string >( row, 0 ); } -Core::Data::CutScreenImage::CutScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::CutScreenImage::CutScreenImage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_CutScreenImageDat.get_row( row_id ); image = exdData->getField< int32_t >( row, 1 ); } -Core::Data::DailySupplyItem::DailySupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DailySupplyItem::DailySupplyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DailySupplyItemDat.get_row( row_id ); } -Core::Data::DeepDungeon::DeepDungeon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeon::DeepDungeon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonDat.get_row( row_id ); name = exdData->getField< std::string >( row, 22 ); } -Core::Data::DeepDungeonBan::DeepDungeonBan( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonBan::DeepDungeonBan( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonBanDat.get_row( row_id ); screenImage = exdData->getField< uint16_t >( row, 0 ); @@ -1561,7 +1561,7 @@ Core::Data::DeepDungeonBan::DeepDungeonBan( uint32_t row_id, Core::Data::ExdData name = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::DeepDungeonDanger::DeepDungeonDanger( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonDanger::DeepDungeonDanger( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonDangerDat.get_row( row_id ); screenImage = exdData->getField< uint16_t >( row, 0 ); @@ -1569,7 +1569,7 @@ Core::Data::DeepDungeonDanger::DeepDungeonDanger( uint32_t row_id, Core::Data::E name = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::DeepDungeonEquipment::DeepDungeonEquipment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonEquipment::DeepDungeonEquipment( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonEquipmentDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); @@ -1584,7 +1584,7 @@ Core::Data::DeepDungeonEquipment::DeepDungeonEquipment( uint32_t row_id, Core::D description = exdData->getField< std::string >( row, 10 ); } -Core::Data::DeepDungeonFloorEffectUI::DeepDungeonFloorEffectUI( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonFloorEffectUI::DeepDungeonFloorEffectUI( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonFloorEffectUIDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); @@ -1592,7 +1592,7 @@ Core::Data::DeepDungeonFloorEffectUI::DeepDungeonFloorEffectUI( uint32_t row_id, description = exdData->getField< std::string >( row, 2 ); } -Core::Data::DeepDungeonItem::DeepDungeonItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonItem::DeepDungeonItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonItemDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); @@ -1608,13 +1608,13 @@ Core::Data::DeepDungeonItem::DeepDungeonItem( uint32_t row_id, Core::Data::ExdDa action = exdData->getField< uint32_t >( row, 11 ); } -Core::Data::DeepDungeonLayer::DeepDungeonLayer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonLayer::DeepDungeonLayer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonLayerDat.get_row( row_id ); deepDungeon = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::DeepDungeonMagicStone::DeepDungeonMagicStone( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonMagicStone::DeepDungeonMagicStone( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonMagicStoneDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); @@ -1629,7 +1629,7 @@ Core::Data::DeepDungeonMagicStone::DeepDungeonMagicStone( uint32_t row_id, Core: tooltip = exdData->getField< std::string >( row, 10 ); } -Core::Data::DeepDungeonMap5X::DeepDungeonMap5X( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonMap5X::DeepDungeonMap5X( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonMap5XDat.get_row( row_id, subRow ); deepDungeonRoom.push_back( exdData->getField< uint16_t >( row, 0 ) ); @@ -1639,7 +1639,7 @@ Core::Data::DeepDungeonMap5X::DeepDungeonMap5X( uint32_t row_id, uint32_t subRow deepDungeonRoom.push_back( exdData->getField< uint16_t >( row, 4 ) ); } -Core::Data::DeepDungeonRoom::DeepDungeonRoom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonRoom::DeepDungeonRoom( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonRoomDat.get_row( row_id ); level.push_back( exdData->getField< uint32_t >( row, 0 ) ); @@ -1649,7 +1649,7 @@ Core::Data::DeepDungeonRoom::DeepDungeonRoom( uint32_t row_id, Core::Data::ExdDa level.push_back( exdData->getField< uint32_t >( row, 4 ) ); } -Core::Data::DeepDungeonStatus::DeepDungeonStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeepDungeonStatus::DeepDungeonStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeepDungeonStatusDat.get_row( row_id ); screenImage = exdData->getField< uint16_t >( row, 0 ); @@ -1657,7 +1657,7 @@ Core::Data::DeepDungeonStatus::DeepDungeonStatus( uint32_t row_id, Core::Data::E name = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::DefaultTalk::DefaultTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DefaultTalk::DefaultTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DefaultTalkDat.get_row( row_id ); actionTimelinePose.push_back( exdData->getField< uint16_t >( row, 5 ) ); @@ -1668,31 +1668,31 @@ Core::Data::DefaultTalk::DefaultTalk( uint32_t row_id, Core::Data::ExdDataGenera text.push_back( exdData->getField< std::string >( row, 22 ) ); } -Core::Data::DefaultTalkLipSyncType::DefaultTalkLipSyncType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DefaultTalkLipSyncType::DefaultTalkLipSyncType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DefaultTalkLipSyncTypeDat.get_row( row_id ); actionTimeline = exdData->getField< int32_t >( row, 0 ); } -Core::Data::DeliveryQuest::DeliveryQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DeliveryQuest::DeliveryQuest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DeliveryQuestDat.get_row( row_id ); quest = exdData->getField< int32_t >( row, 0 ); } -Core::Data::DisposalShop::DisposalShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DisposalShop::DisposalShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DisposalShopDat.get_row( row_id ); shopName = exdData->getField< std::string >( row, 0 ); } -Core::Data::DisposalShopFilterType::DisposalShopFilterType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DisposalShopFilterType::DisposalShopFilterType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DisposalShopFilterTypeDat.get_row( row_id ); category = exdData->getField< std::string >( row, 0 ); } -Core::Data::DisposalShopItem::DisposalShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DisposalShopItem::DisposalShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DisposalShopItemDat.get_row( row_id, subRow ); itemDisposed = exdData->getField< int32_t >( row, 0 ); @@ -1700,7 +1700,7 @@ Core::Data::DisposalShopItem::DisposalShopItem( uint32_t row_id, uint32_t subRow quantityReceived = exdData->getField< uint32_t >( row, 4 ); } -Core::Data::DpsChallenge::DpsChallenge( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DpsChallenge::DpsChallenge( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DpsChallengeDat.get_row( row_id ); playerLevel = exdData->getField< uint16_t >( row, 0 ); @@ -1711,7 +1711,7 @@ Core::Data::DpsChallenge::DpsChallenge( uint32_t row_id, Core::Data::ExdDataGene description = exdData->getField< std::string >( row, 5 ); } -Core::Data::DpsChallengeOfficer::DpsChallengeOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DpsChallengeOfficer::DpsChallengeOfficer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DpsChallengeOfficerDat.get_row( row_id ); unlockQuest = exdData->getField< uint32_t >( row, 0 ); @@ -1742,13 +1742,13 @@ Core::Data::DpsChallengeOfficer::DpsChallengeOfficer( uint32_t row_id, Core::Dat challengeName.push_back( exdData->getField< uint16_t >( row, 25 ) ); } -Core::Data::DpsChallengeTransient::DpsChallengeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::DpsChallengeTransient::DpsChallengeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_DpsChallengeTransientDat.get_row( row_id ); instanceContent = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::Emote::Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Emote::Emote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EmoteDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -1770,13 +1770,13 @@ Core::Data::Emote::Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData unlockLink = exdData->getField< uint32_t >( row, 22 ); } -Core::Data::EmoteCategory::EmoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EmoteCategory::EmoteCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EmoteCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::ENpcBase::ENpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ENpcBase::ENpcBase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ENpcBaseDat.get_row( row_id ); eNpcData.push_back( exdData->getField< uint32_t >( row, 2 ) ); @@ -1867,7 +1867,7 @@ Core::Data::ENpcBase::ENpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* e balloon = exdData->getField< uint16_t >( row, 91 ); } -Core::Data::ENpcResident::ENpcResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ENpcResident::ENpcResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ENpcResidentDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -1881,14 +1881,14 @@ Core::Data::ENpcResident::ENpcResident( uint32_t row_id, Core::Data::ExdDataGene map = exdData->getField< uint8_t >( row, 9 ); } -Core::Data::EObj::EObj( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EObj::EObj( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EObjDat.get_row( row_id ); data = exdData->getField< uint32_t >( row, 9 ); sgbPath = exdData->getField< uint16_t >( row, 11 ); } -Core::Data::EObjName::EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EObjName::EObjName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EObjNameDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -1900,7 +1900,7 @@ Core::Data::EObjName::EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* e article = exdData->getField< int8_t >( row, 7 ); } -Core::Data::EquipRaceCategory::EquipRaceCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EquipRaceCategory::EquipRaceCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EquipRaceCategoryDat.get_row( row_id ); hyur = exdData->getField< bool >( row, 0 ); @@ -1913,7 +1913,7 @@ Core::Data::EquipRaceCategory::EquipRaceCategory( uint32_t row_id, Core::Data::E female = exdData->getField< bool >( row, 7 ); } -Core::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EquipSlotCategoryDat.get_row( row_id ); mainHand = exdData->getField< int8_t >( row, 0 ); @@ -1932,7 +1932,7 @@ Core::Data::EquipSlotCategory::EquipSlotCategory( uint32_t row_id, Core::Data::E soulCrystal = exdData->getField< int8_t >( row, 13 ); } -Core::Data::EurekaAetherItem::EurekaAetherItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaAetherItem::EurekaAetherItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaAetherItemDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -1945,32 +1945,32 @@ Core::Data::EurekaAetherItem::EurekaAetherItem( uint32_t row_id, Core::Data::Exd name = exdData->getField< std::string >( row, 8 ); } -Core::Data::EurekaAethernet::EurekaAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaAethernet::EurekaAethernet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaAethernetDat.get_row( row_id ); location = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::EurekaGrowData::EurekaGrowData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaGrowData::EurekaGrowData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaGrowDataDat.get_row( row_id ); baseResistance = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::EurekaLogosMixerProbability::EurekaLogosMixerProbability( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaLogosMixerProbability::EurekaLogosMixerProbability( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaLogosMixerProbabilityDat.get_row( row_id ); probability = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::EurekaMagiaAction::EurekaMagiaAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaMagiaAction::EurekaMagiaAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaMagiaActionDat.get_row( row_id ); action = exdData->getField< uint32_t >( row, 0 ); maxUses = exdData->getField< uint8_t >( row, 1 ); } -Core::Data::EurekaMagiciteItem::EurekaMagiciteItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaMagiciteItem::EurekaMagiciteItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaMagiciteItemDat.get_row( row_id ); eurekaMagiciteItemType = exdData->getField< uint8_t >( row, 0 ); @@ -1978,19 +1978,19 @@ Core::Data::EurekaMagiciteItem::EurekaMagiciteItem( uint32_t row_id, Core::Data: item = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::EurekaMagiciteItemType::EurekaMagiciteItemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaMagiciteItemType::EurekaMagiciteItemType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaMagiciteItemTypeDat.get_row( row_id ); type = exdData->getField< std::string >( row, 0 ); } -Core::Data::EurekaSphereElementAdjust::EurekaSphereElementAdjust( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EurekaSphereElementAdjust::EurekaSphereElementAdjust( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EurekaSphereElementAdjustDat.get_row( row_id ); powerModifier = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::EventAction::EventAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EventAction::EventAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -2001,7 +2001,7 @@ Core::Data::EventAction::EventAction( uint32_t row_id, Core::Data::ExdDataGenera animation.push_back( exdData->getField< uint16_t >( row, 5 ) ); } -Core::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventIconPriorityDat.get_row( row_id ); icon.push_back( exdData->getField< uint32_t >( row, 0 ) ); @@ -2022,7 +2022,7 @@ Core::Data::EventIconPriority::EventIconPriority( uint32_t row_id, Core::Data::E icon.push_back( exdData->getField< uint32_t >( row, 15 ) ); } -Core::Data::EventIconType::EventIconType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EventIconType::EventIconType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventIconTypeDat.get_row( row_id ); npcIconAvailable = exdData->getField< uint32_t >( row, 0 ); @@ -2032,7 +2032,7 @@ Core::Data::EventIconType::EventIconType( uint32_t row_id, Core::Data::ExdDataGe iconRange = exdData->getField< uint8_t >( row, 4 ); } -Core::Data::EventItem::EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EventItem::EventItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventItemDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2050,37 +2050,37 @@ Core::Data::EventItem::EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* castTime = exdData->getField< uint8_t >( row, 15 ); } -Core::Data::EventItemCastTimeline::EventItemCastTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EventItemCastTimeline::EventItemCastTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventItemCastTimelineDat.get_row( row_id ); actionTimeline = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::EventItemHelp::EventItemHelp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EventItemHelp::EventItemHelp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventItemHelpDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); } -Core::Data::EventItemTimeline::EventItemTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::EventItemTimeline::EventItemTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_EventItemTimelineDat.get_row( row_id ); actionTimeline = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::ExportedSG::ExportedSG( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ExportedSG::ExportedSG( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ExportedSGDat.get_row( row_id ); sgbPath = exdData->getField< std::string >( row, 0 ); } -Core::Data::ExVersion::ExVersion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ExVersion::ExVersion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ExVersionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Fate::Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Fate::Fate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FateDat.get_row( row_id ); eurekaFate = exdData->getField< uint8_t >( row, 0 ); @@ -2101,57 +2101,57 @@ Core::Data::Fate::Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) arrayIndex = exdData->getField< uint32_t >( row, 33 ); } -Core::Data::FCActivity::FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCActivity::FCActivity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCActivityDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); fCActivityCategory = exdData->getField< uint8_t >( row, 4 ); } -Core::Data::FCActivityCategory::FCActivityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCActivityCategory::FCActivityCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCActivityCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::FCAuthority::FCAuthority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCAuthority::FCAuthority( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCAuthorityDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); fCAuthorityCategory = exdData->getField< int32_t >( row, 1 ); } -Core::Data::FCAuthorityCategory::FCAuthorityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCAuthorityCategory::FCAuthorityCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCAuthorityCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::FCChestName::FCChestName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCChestName::FCChestName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCChestNameDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::FccShop::FccShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FccShop::FccShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FccShopDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::FCHierarchy::FCHierarchy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCHierarchy::FCHierarchy( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCHierarchyDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::FCProfile::FCProfile( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCProfile::FCProfile( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCProfileDat.get_row( row_id ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::FCReputation::FCReputation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCReputation::FCReputation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCReputationDat.get_row( row_id ); pointsToNext = exdData->getField< uint32_t >( row, 0 ); @@ -2159,7 +2159,7 @@ Core::Data::FCReputation::FCReputation( uint32_t row_id, Core::Data::ExdDataGene name = exdData->getField< std::string >( row, 4 ); } -Core::Data::FCRights::FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FCRights::FCRights( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FCRightsDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -2168,32 +2168,32 @@ Core::Data::FCRights::FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* e fCRank = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::Festival::Festival( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Festival::Festival( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FestivalDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::FieldMarker::FieldMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FieldMarker::FieldMarker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FieldMarkerDat.get_row( row_id ); vFX = exdData->getField< int32_t >( row, 0 ); icon = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FishingRecordType::FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FishingRecordTypeDat.get_row( row_id ); addon = exdData->getField< int32_t >( row, 0 ); } -Core::Data::FishingRecordTypeTransient::FishingRecordTypeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FishingRecordTypeTransient::FishingRecordTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FishingRecordTypeTransientDat.get_row( row_id ); image = exdData->getField< int32_t >( row, 0 ); } -Core::Data::FishingSpot::FishingSpot( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FishingSpot::FishingSpot( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FishingSpotDat.get_row( row_id ); gatheringLevel = exdData->getField< uint8_t >( row, 0 ); @@ -2217,7 +2217,7 @@ Core::Data::FishingSpot::FishingSpot( uint32_t row_id, Core::Data::ExdDataGenera placeName = exdData->getField< uint16_t >( row, 20 ); } -Core::Data::FishParameter::FishParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::FishParameter::FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_FishParameterDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); @@ -2232,7 +2232,7 @@ Core::Data::FishParameter::FishParameter( uint32_t row_id, Core::Data::ExdDataGe gatheringSubCategory = exdData->getField< uint16_t >( row, 10 ); } -Core::Data::Frontline03::Frontline03( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Frontline03::Frontline03( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_Frontline03Dat.get_row( row_id ); emptyIcon.push_back( exdData->getField< uint32_t >( row, 9 ) ); @@ -2249,7 +2249,7 @@ Core::Data::Frontline03::Frontline03( uint32_t row_id, Core::Data::ExdDataGenera immortalFlamesIcon.push_back( exdData->getField< uint32_t >( row, 20 ) ); } -Core::Data::Frontline04::Frontline04( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Frontline04::Frontline04( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_Frontline04Dat.get_row( row_id ); level1 = exdData->getField< int32_t >( row, 0 ); @@ -2284,26 +2284,26 @@ Core::Data::Frontline04::Frontline04( uint32_t row_id, Core::Data::ExdDataGenera unknownLevel.push_back( exdData->getField< int32_t >( row, 32 ) ); } -Core::Data::GardeningSeed::GardeningSeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GardeningSeed::GardeningSeed( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GardeningSeedDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 0 ); icon = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::GatheringCondition::GatheringCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringCondition::GatheringCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringConditionDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::GatheringExp::GatheringExp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringExp::GatheringExp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringExpDat.get_row( row_id ); exp = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::GatheringItem::GatheringItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringItem::GatheringItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringItemDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); @@ -2311,20 +2311,20 @@ Core::Data::GatheringItem::GatheringItem( uint32_t row_id, Core::Data::ExdDataGe isHidden = exdData->getField< bool >( row, 2 ); } -Core::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringItemLevelConvertTable::GatheringItemLevelConvertTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringItemLevelConvertTableDat.get_row( row_id ); gatheringItemLevel = exdData->getField< uint8_t >( row, 0 ); stars = exdData->getField< uint8_t >( row, 1 ); } -Core::Data::GatheringItemPoint::GatheringItemPoint( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringItemPoint::GatheringItemPoint( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringItemPointDat.get_row( row_id, subRow ); gatheringPoint = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::GatheringLeve::GatheringLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringLeve::GatheringLeve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringLeveDat.get_row( row_id ); requiredItem1 = exdData->getField< int32_t >( row, 4 ); @@ -2332,12 +2332,12 @@ Core::Data::GatheringLeve::GatheringLeve( uint32_t row_id, Core::Data::ExdDataGe requiredItem2 = exdData->getField< int32_t >( row, 6 ); } -Core::Data::GatheringLeveRoute::GatheringLeveRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringLeveRoute::GatheringLeveRoute( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringLeveRouteDat.get_row( row_id ); } -Core::Data::GatheringNotebookList::GatheringNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringNotebookList::GatheringNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringNotebookListDat.get_row( row_id ); gatheringItem.push_back( exdData->getField< int32_t >( row, 1 ) ); @@ -2442,7 +2442,7 @@ Core::Data::GatheringNotebookList::GatheringNotebookList( uint32_t row_id, Core: gatheringItem.push_back( exdData->getField< int32_t >( row, 100 ) ); } -Core::Data::GatheringPoint::GatheringPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringPoint::GatheringPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringPointDat.get_row( row_id ); gatheringPointBase = exdData->getField< int32_t >( row, 1 ); @@ -2453,7 +2453,7 @@ Core::Data::GatheringPoint::GatheringPoint( uint32_t row_id, Core::Data::ExdData gatheringSubCategory = exdData->getField< uint16_t >( row, 7 ); } -Core::Data::GatheringPointBase::GatheringPointBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringPointBase::GatheringPointBase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringPointBaseDat.get_row( row_id ); gatheringType = exdData->getField< int32_t >( row, 0 ); @@ -2469,7 +2469,7 @@ Core::Data::GatheringPointBase::GatheringPointBase( uint32_t row_id, Core::Data: isLimited = exdData->getField< bool >( row, 10 ); } -Core::Data::GatheringPointBonus::GatheringPointBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringPointBonus::GatheringPointBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringPointBonusDat.get_row( row_id ); condition = exdData->getField< uint8_t >( row, 0 ); @@ -2478,13 +2478,13 @@ Core::Data::GatheringPointBonus::GatheringPointBonus( uint32_t row_id, Core::Dat bonusValue = exdData->getField< uint16_t >( row, 4 ); } -Core::Data::GatheringPointBonusType::GatheringPointBonusType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringPointBonusType::GatheringPointBonusType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringPointBonusTypeDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::GatheringPointName::GatheringPointName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringPointName::GatheringPointName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringPointNameDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2496,14 +2496,14 @@ Core::Data::GatheringPointName::GatheringPointName( uint32_t row_id, Core::Data: article = exdData->getField< int8_t >( row, 7 ); } -Core::Data::GatheringSubCategory::GatheringSubCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringSubCategory::GatheringSubCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringSubCategoryDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 4 ); folkloreBook = exdData->getField< std::string >( row, 5 ); } -Core::Data::GatheringType::GatheringType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GatheringType::GatheringType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GatheringTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -2511,7 +2511,7 @@ Core::Data::GatheringType::GatheringType( uint32_t row_id, Core::Data::ExdDataGe iconOff = exdData->getField< int32_t >( row, 2 ); } -Core::Data::GcArmyCaptureTactics::GcArmyCaptureTactics( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GcArmyCaptureTactics::GcArmyCaptureTactics( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GcArmyCaptureTacticsDat.get_row( row_id ); name = exdData->getField< int32_t >( row, 0 ); @@ -2522,7 +2522,7 @@ Core::Data::GcArmyCaptureTactics::GcArmyCaptureTactics( uint32_t row_id, Core::D icon = exdData->getField< uint32_t >( row, 5 ); } -Core::Data::GcArmyExpedition::GcArmyExpedition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GcArmyExpedition::GcArmyExpedition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GcArmyExpeditionDat.get_row( row_id ); requiredFlag = exdData->getField< uint8_t >( row, 0 ); @@ -2536,27 +2536,27 @@ Core::Data::GcArmyExpedition::GcArmyExpedition( uint32_t row_id, Core::Data::Exd description = exdData->getField< std::string >( row, 9 ); } -Core::Data::GcArmyExpeditionMemberBonus::GcArmyExpeditionMemberBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GcArmyExpeditionMemberBonus::GcArmyExpeditionMemberBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GcArmyExpeditionMemberBonusDat.get_row( row_id ); race = exdData->getField< uint8_t >( row, 0 ); classJob = exdData->getField< uint8_t >( row, 1 ); } -Core::Data::GcArmyExpeditionType::GcArmyExpeditionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GcArmyExpeditionType::GcArmyExpeditionType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GcArmyExpeditionTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::GcArmyMemberGrow::GcArmyMemberGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GcArmyMemberGrow::GcArmyMemberGrow( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GcArmyMemberGrowDat.get_row( row_id ); classJob = exdData->getField< uint8_t >( row, 0 ); classBook = exdData->getField< int32_t >( row, 1 ); } -Core::Data::GcArmyTraining::GcArmyTraining( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GcArmyTraining::GcArmyTraining( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GcArmyTrainingDat.get_row( row_id ); physicalBonus = exdData->getField< int8_t >( row, 0 ); @@ -2567,7 +2567,7 @@ Core::Data::GcArmyTraining::GcArmyTraining( uint32_t row_id, Core::Data::ExdData description = exdData->getField< std::string >( row, 5 ); } -Core::Data::GCRankGridaniaFemaleText::GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCRankGridaniaFemaleText::GCRankGridaniaFemaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankGridaniaFemaleTextDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2580,7 +2580,7 @@ Core::Data::GCRankGridaniaFemaleText::GCRankGridaniaFemaleText( uint32_t row_id, nameRank = exdData->getField< std::string >( row, 8 ); } -Core::Data::GCRankGridaniaMaleText::GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCRankGridaniaMaleText::GCRankGridaniaMaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankGridaniaMaleTextDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2593,7 +2593,7 @@ Core::Data::GCRankGridaniaMaleText::GCRankGridaniaMaleText( uint32_t row_id, Cor nameRank = exdData->getField< std::string >( row, 8 ); } -Core::Data::GCRankLimsaFemaleText::GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCRankLimsaFemaleText::GCRankLimsaFemaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankLimsaFemaleTextDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2606,7 +2606,7 @@ Core::Data::GCRankLimsaFemaleText::GCRankLimsaFemaleText( uint32_t row_id, Core: nameRank = exdData->getField< std::string >( row, 8 ); } -Core::Data::GCRankLimsaMaleText::GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCRankLimsaMaleText::GCRankLimsaMaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankLimsaMaleTextDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2619,7 +2619,7 @@ Core::Data::GCRankLimsaMaleText::GCRankLimsaMaleText( uint32_t row_id, Core::Dat nameRank = exdData->getField< std::string >( row, 8 ); } -Core::Data::GCRankUldahFemaleText::GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCRankUldahFemaleText::GCRankUldahFemaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankUldahFemaleTextDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2632,7 +2632,7 @@ Core::Data::GCRankUldahFemaleText::GCRankUldahFemaleText( uint32_t row_id, Core: nameRank = exdData->getField< std::string >( row, 8 ); } -Core::Data::GCRankUldahMaleText::GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCRankUldahMaleText::GCRankUldahMaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCRankUldahMaleTextDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -2645,7 +2645,7 @@ Core::Data::GCRankUldahMaleText::GCRankUldahMaleText( uint32_t row_id, Core::Dat nameRank = exdData->getField< std::string >( row, 8 ); } -Core::Data::GCScripShopCategory::GCScripShopCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCScripShopCategory::GCScripShopCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCScripShopCategoryDat.get_row( row_id ); grandCompany = exdData->getField< int8_t >( row, 0 ); @@ -2653,7 +2653,7 @@ Core::Data::GCScripShopCategory::GCScripShopCategory( uint32_t row_id, Core::Dat subCategory = exdData->getField< int8_t >( row, 2 ); } -Core::Data::GCScripShopItem::GCScripShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCScripShopItem::GCScripShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCScripShopItemDat.get_row( row_id, subRow ); item = exdData->getField< int32_t >( row, 0 ); @@ -2662,24 +2662,24 @@ Core::Data::GCScripShopItem::GCScripShopItem( uint32_t row_id, uint32_t subRow, sortKey = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::GCShop::GCShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCShop::GCShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCShopDat.get_row( row_id ); grandCompany = exdData->getField< int8_t >( row, 0 ); } -Core::Data::GCShopItemCategory::GCShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCShopItemCategory::GCShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCShopItemCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::GCSupplyDuty::GCSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCSupplyDuty::GCSupplyDuty( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCSupplyDutyDat.get_row( row_id ); } -Core::Data::GCSupplyDutyReward::GCSupplyDutyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GCSupplyDutyReward::GCSupplyDutyReward( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GCSupplyDutyRewardDat.get_row( row_id ); experienceSupply = exdData->getField< uint32_t >( row, 0 ); @@ -2689,7 +2689,7 @@ Core::Data::GCSupplyDutyReward::GCSupplyDutyReward( uint32_t row_id, Core::Data: sealsProvisioning = exdData->getField< uint32_t >( row, 4 ); } -Core::Data::GeneralAction::GeneralAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GeneralAction::GeneralAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GeneralActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -2699,7 +2699,7 @@ Core::Data::GeneralAction::GeneralAction( uint32_t row_id, Core::Data::ExdDataGe icon = exdData->getField< int32_t >( row, 7 ); } -Core::Data::GFATE::GFATE( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GFATE::GFATE( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GFATEDat.get_row( row_id ); icon.push_back( exdData->getField< uint32_t >( row, 22 ) ); @@ -2720,25 +2720,25 @@ Core::Data::GFATE::GFATE( uint32_t row_id, Core::Data::ExdDataGenerated* exdData icon.push_back( exdData->getField< uint32_t >( row, 37 ) ); } -Core::Data::GFateClimbing2::GFateClimbing2( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GFateClimbing2::GFateClimbing2( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GFateClimbing2Dat.get_row( row_id ); contentEntry = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::GFateClimbing2Content::GFateClimbing2Content( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GFateClimbing2Content::GFateClimbing2Content( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GFateClimbing2ContentDat.get_row( row_id ); publicContentTextData = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::GFateClimbing2TotemType::GFateClimbing2TotemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GFateClimbing2TotemType::GFateClimbing2TotemType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GFateClimbing2TotemTypeDat.get_row( row_id ); publicContentTextData = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::GilShop::GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GilShop::GilShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GilShopDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -2751,7 +2751,7 @@ Core::Data::GilShop::GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exd failTalk = exdData->getField< int32_t >( row, 7 ); } -Core::Data::GilShopItem::GilShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GilShopItem::GilShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GilShopItemDat.get_row( row_id, subRow ); item = exdData->getField< int32_t >( row, 0 ); @@ -2762,7 +2762,7 @@ Core::Data::GilShopItem::GilShopItem( uint32_t row_id, uint32_t subRow, Core::Da patch = exdData->getField< uint16_t >( row, 8 ); } -Core::Data::GoldSaucerArcadeMachine::GoldSaucerArcadeMachine( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GoldSaucerArcadeMachine::GoldSaucerArcadeMachine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GoldSaucerArcadeMachineDat.get_row( row_id ); failImage = exdData->getField< uint32_t >( row, 6 ); @@ -2772,19 +2772,19 @@ Core::Data::GoldSaucerArcadeMachine::GoldSaucerArcadeMachine( uint32_t row_id, C excellent = exdData->getField< uint32_t >( row, 38 ); } -Core::Data::GoldSaucerTextData::GoldSaucerTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GoldSaucerTextData::GoldSaucerTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GoldSaucerTextDataDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::GrandCompany::GrandCompany( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GrandCompany::GrandCompany( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GrandCompanyDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::GrandCompanyRank::GrandCompanyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GrandCompanyRank::GrandCompanyRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GrandCompanyRankDat.get_row( row_id ); tier = exdData->getField< uint8_t >( row, 0 ); @@ -2799,7 +2799,7 @@ Core::Data::GrandCompanyRank::GrandCompanyRank( uint32_t row_id, Core::Data::Exd questFlames = exdData->getField< int32_t >( row, 9 ); } -Core::Data::GuardianDeity::GuardianDeity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GuardianDeity::GuardianDeity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GuardianDeityDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -2807,7 +2807,7 @@ Core::Data::GuardianDeity::GuardianDeity( uint32_t row_id, Core::Data::ExdDataGe icon = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::GuildleveAssignment::GuildleveAssignment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GuildleveAssignment::GuildleveAssignment( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GuildleveAssignmentDat.get_row( row_id ); assignmentTalk = exdData->getField< uint32_t >( row, 1 ); @@ -2815,7 +2815,7 @@ Core::Data::GuildleveAssignment::GuildleveAssignment( uint32_t row_id, Core::Dat quest.push_back( exdData->getField< uint32_t >( row, 3 ) ); } -Core::Data::GuildleveAssignmentCategory::GuildleveAssignmentCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GuildleveAssignmentCategory::GuildleveAssignmentCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GuildleveAssignmentCategoryDat.get_row( row_id ); category.push_back( exdData->getField< int32_t >( row, 0 ) ); @@ -2828,17 +2828,17 @@ Core::Data::GuildleveAssignmentCategory::GuildleveAssignmentCategory( uint32_t r category.push_back( exdData->getField< int32_t >( row, 7 ) ); } -Core::Data::GuildOrderGuide::GuildOrderGuide( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GuildOrderGuide::GuildOrderGuide( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GuildOrderGuideDat.get_row( row_id ); } -Core::Data::GuildOrderOfficer::GuildOrderOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::GuildOrderOfficer::GuildOrderOfficer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_GuildOrderOfficerDat.get_row( row_id ); } -Core::Data::HairMakeType::HairMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HairMakeType::HairMakeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HairMakeTypeDat.get_row( row_id ); race = exdData->getField< int32_t >( row, 0 ); @@ -2846,13 +2846,13 @@ Core::Data::HairMakeType::HairMakeType( uint32_t row_id, Core::Data::ExdDataGene gender = exdData->getField< int8_t >( row, 2 ); } -Core::Data::HouseRetainerPose::HouseRetainerPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HouseRetainerPose::HouseRetainerPose( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HouseRetainerPoseDat.get_row( row_id ); actionTimeline = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::HousingAethernet::HousingAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingAethernet::HousingAethernet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingAethernetDat.get_row( row_id ); level = exdData->getField< uint32_t >( row, 0 ); @@ -2861,7 +2861,7 @@ Core::Data::HousingAethernet::HousingAethernet( uint32_t row_id, Core::Data::Exd order = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::HousingAppeal::HousingAppeal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingAppeal::HousingAppeal( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingAppealDat.get_row( row_id ); tag = exdData->getField< std::string >( row, 0 ); @@ -2869,7 +2869,7 @@ Core::Data::HousingAppeal::HousingAppeal( uint32_t row_id, Core::Data::ExdDataGe order = exdData->getField< uint8_t >( row, 2 ); } -Core::Data::HousingEmploymentNpcList::HousingEmploymentNpcList( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingEmploymentNpcList::HousingEmploymentNpcList( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingEmploymentNpcListDat.get_row( row_id, subRow ); race = exdData->getField< uint8_t >( row, 0 ); @@ -2877,13 +2877,13 @@ Core::Data::HousingEmploymentNpcList::HousingEmploymentNpcList( uint32_t row_id, eNpcBase.push_back( exdData->getField< uint32_t >( row, 2 ) ); } -Core::Data::HousingEmploymentNpcRace::HousingEmploymentNpcRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingEmploymentNpcRace::HousingEmploymentNpcRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingEmploymentNpcRaceDat.get_row( row_id ); race = exdData->getField< std::string >( row, 0 ); } -Core::Data::HousingExterior::HousingExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingExterior::HousingExterior( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingExteriorDat.get_row( row_id ); placeName = exdData->getField< uint16_t >( row, 2 ); @@ -2891,7 +2891,7 @@ Core::Data::HousingExterior::HousingExterior( uint32_t row_id, Core::Data::ExdDa model = exdData->getField< std::string >( row, 4 ); } -Core::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingFurnitureDat.get_row( row_id ); modelKey = exdData->getField< uint16_t >( row, 0 ); @@ -2906,20 +2906,20 @@ Core::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Core::Data::Exd tooltip = exdData->getField< bool >( row, 9 ); } -Core::Data::HousingMapMarkerInfo::HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingMapMarkerInfo::HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingMapMarkerInfoDat.get_row( row_id, subRow ); map = exdData->getField< uint16_t >( row, 4 ); } -Core::Data::HousingMerchantPose::HousingMerchantPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingMerchantPose::HousingMerchantPose( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingMerchantPoseDat.get_row( row_id ); actionTimeline = exdData->getField< uint16_t >( row, 0 ); pose = exdData->getField< std::string >( row, 1 ); } -Core::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingLandSetDat.get_row( row_id ); plotSize.push_back( exdData->getField< uint8_t >( row, 0 ) ); @@ -3046,13 +3046,13 @@ Core::Data::HousingLandSet::HousingLandSet( uint32_t row_id, Core::Data::ExdData initialPrice.push_back( exdData->getField< uint32_t >( row, 359 ) ); } -Core::Data::HousingPlacement::HousingPlacement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingPlacement::HousingPlacement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingPlacementDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::HousingPreset::HousingPreset( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingPreset::HousingPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingPresetDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -3080,7 +3080,7 @@ Core::Data::HousingPreset::HousingPreset( uint32_t row_id, Core::Data::ExdDataGe mansionLighting = exdData->getField< int32_t >( row, 23 ); } -Core::Data::HousingUnitedExterior::HousingUnitedExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingUnitedExterior::HousingUnitedExterior( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingUnitedExteriorDat.get_row( row_id ); item.push_back( exdData->getField< uint32_t >( row, 1 ) ); @@ -3093,7 +3093,7 @@ Core::Data::HousingUnitedExterior::HousingUnitedExterior( uint32_t row_id, Core: item.push_back( exdData->getField< uint32_t >( row, 8 ) ); } -Core::Data::HousingYardObject::HousingYardObject( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HousingYardObject::HousingYardObject( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingYardObjectDat.get_row( row_id ); modelKey = exdData->getField< uint8_t >( row, 0 ); @@ -3106,7 +3106,7 @@ Core::Data::HousingYardObject::HousingYardObject( uint32_t row_id, Core::Data::E destroyOnRemoval = exdData->getField< bool >( row, 7 ); } -Core::Data::HowTo::HowTo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HowTo::HowTo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HowToDat.get_row( row_id ); images.push_back( exdData->getField< int16_t >( row, 2 ) ); @@ -3122,19 +3122,19 @@ Core::Data::HowTo::HowTo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData category = exdData->getField< int8_t >( row, 12 ); } -Core::Data::HowToCategory::HowToCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HowToCategory::HowToCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HowToCategoryDat.get_row( row_id ); category = exdData->getField< std::string >( row, 0 ); } -Core::Data::HowToPage::HowToPage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::HowToPage::HowToPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HowToPageDat.get_row( row_id ); image = exdData->getField< int32_t >( row, 2 ); } -Core::Data::InstanceContent::InstanceContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::InstanceContent::InstanceContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_InstanceContentDat.get_row( row_id ); instanceContentType = exdData->getField< uint8_t >( row, 0 ); @@ -3163,20 +3163,20 @@ Core::Data::InstanceContent::InstanceContent( uint32_t row_id, Core::Data::ExdDa partyCondition = exdData->getField< uint8_t >( row, 55 ); } -Core::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_InstanceContentBuffDat.get_row( row_id ); echoStart = exdData->getField< uint16_t >( row, 0 ); echoDeath = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::InstanceContentTextData::InstanceContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::InstanceContentTextData::InstanceContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_InstanceContentTextDataDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::Item::Item( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -3239,7 +3239,7 @@ Core::Data::Item::Item( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) isGlamourous = exdData->getField< bool >( row, 87 ); } -Core::Data::ItemAction::ItemAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ItemAction::ItemAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemActionDat.get_row( row_id ); type = exdData->getField< uint16_t >( row, 4 ); @@ -3263,12 +3263,12 @@ Core::Data::ItemAction::ItemAction( uint32_t row_id, Core::Data::ExdDataGenerate dataHQ.push_back( exdData->getField< uint16_t >( row, 22 ) ); } -Core::Data::ItemFood::ItemFood( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ItemFood::ItemFood( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemFoodDat.get_row( row_id ); } -Core::Data::ItemLevel::ItemLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ItemLevel::ItemLevel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemLevelDat.get_row( row_id ); strength = exdData->getField< uint16_t >( row, 0 ); @@ -3346,7 +3346,7 @@ Core::Data::ItemLevel::ItemLevel( uint32_t row_id, Core::Data::ExdDataGenerated* perception = exdData->getField< uint16_t >( row, 72 ); } -Core::Data::ItemSearchCategory::ItemSearchCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ItemSearchCategory::ItemSearchCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemSearchCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -3356,19 +3356,19 @@ Core::Data::ItemSearchCategory::ItemSearchCategory( uint32_t row_id, Core::Data: classJob = exdData->getField< int8_t >( row, 4 ); } -Core::Data::ItemSeries::ItemSeries( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ItemSeries::ItemSeries( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemSeriesDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::ItemSpecialBonus::ItemSpecialBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ItemSpecialBonus::ItemSpecialBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemSpecialBonusDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::ItemUICategory::ItemUICategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ItemUICategory::ItemUICategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ItemUICategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -3377,14 +3377,14 @@ Core::Data::ItemUICategory::ItemUICategory( uint32_t row_id, Core::Data::ExdData orderMajor = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::JournalCategory::JournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::JournalCategory::JournalCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_JournalCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); journalSection = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::JournalGenre::JournalGenre( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::JournalGenre::JournalGenre( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_JournalGenreDat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 0 ); @@ -3392,13 +3392,13 @@ Core::Data::JournalGenre::JournalGenre( uint32_t row_id, Core::Data::ExdDataGene name = exdData->getField< std::string >( row, 2 ); } -Core::Data::JournalSection::JournalSection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::JournalSection::JournalSection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_JournalSectionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Leve::Leve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Leve::Leve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LeveDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -3425,7 +3425,7 @@ Core::Data::Leve::Leve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) bGM = exdData->getField< uint16_t >( row, 30 ); } -Core::Data::LeveAssignmentType::LeveAssignmentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LeveAssignmentType::LeveAssignmentType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LeveAssignmentTypeDat.get_row( row_id ); isFaction = exdData->getField< bool >( row, 0 ); @@ -3433,13 +3433,13 @@ Core::Data::LeveAssignmentType::LeveAssignmentType( uint32_t row_id, Core::Data: name = exdData->getField< std::string >( row, 2 ); } -Core::Data::LeveClient::LeveClient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LeveClient::LeveClient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LeveClientDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Level::Level( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Level::Level( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LevelDat.get_row( row_id ); x = exdData->getField< float >( row, 0 ); @@ -3454,24 +3454,24 @@ Core::Data::Level::Level( uint32_t row_id, Core::Data::ExdDataGenerated* exdData territory = exdData->getField< uint16_t >( row, 9 ); } -Core::Data::LeveRewardItem::LeveRewardItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LeveRewardItem::LeveRewardItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LeveRewardItemDat.get_row( row_id ); } -Core::Data::LeveRewardItemGroup::LeveRewardItemGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LeveRewardItemGroup::LeveRewardItemGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LeveRewardItemGroupDat.get_row( row_id ); } -Core::Data::LeveVfx::LeveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LeveVfx::LeveVfx( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LeveVfxDat.get_row( row_id ); effect = exdData->getField< std::string >( row, 0 ); icon = exdData->getField< int32_t >( row, 1 ); } -Core::Data::LogFilter::LogFilter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LogFilter::LogFilter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LogFilterDat.get_row( row_id ); logKind = exdData->getField< uint8_t >( row, 0 ); @@ -3479,7 +3479,7 @@ Core::Data::LogFilter::LogFilter( uint32_t row_id, Core::Data::ExdDataGenerated* example = exdData->getField< std::string >( row, 7 ); } -Core::Data::LogKind::LogKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LogKind::LogKind( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LogKindDat.get_row( row_id ); format = exdData->getField< std::string >( row, 1 ); @@ -3488,20 +3488,20 @@ Core::Data::LogKind::LogKind( uint32_t row_id, Core::Data::ExdDataGenerated* exd logKindCategoryText = exdData->getField< uint8_t >( row, 4 ); } -Core::Data::LogKindCategoryText::LogKindCategoryText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LogKindCategoryText::LogKindCategoryText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LogKindCategoryTextDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::LogMessage::LogMessage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LogMessage::LogMessage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LogMessageDat.get_row( row_id ); logKind = exdData->getField< uint16_t >( row, 0 ); text = exdData->getField< std::string >( row, 4 ); } -Core::Data::LotteryExchangeShop::LotteryExchangeShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::LotteryExchangeShop::LotteryExchangeShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_LotteryExchangeShopDat.get_row( row_id ); itemAccepted.push_back( exdData->getField< int32_t >( row, 1 ) ); @@ -3538,20 +3538,20 @@ Core::Data::LotteryExchangeShop::LotteryExchangeShop( uint32_t row_id, Core::Dat amountAccepted.push_back( exdData->getField< uint32_t >( row, 32 ) ); } -Core::Data::MacroIcon::MacroIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MacroIcon::MacroIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MacroIconDat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 0 ); } -Core::Data::MacroIconRedirectOld::MacroIconRedirectOld( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MacroIconRedirectOld::MacroIconRedirectOld( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MacroIconRedirectOldDat.get_row( row_id ); iconOld = exdData->getField< uint32_t >( row, 0 ); iconNew = exdData->getField< int32_t >( row, 1 ); } -Core::Data::MainCommand::MainCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MainCommand::MainCommand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MainCommandDat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 0 ); @@ -3560,13 +3560,13 @@ Core::Data::MainCommand::MainCommand( uint32_t row_id, Core::Data::ExdDataGenera description = exdData->getField< std::string >( row, 5 ); } -Core::Data::MainCommandCategory::MainCommandCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MainCommandCategory::MainCommandCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MainCommandCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::ManeuversArmor::ManeuversArmor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ManeuversArmor::ManeuversArmor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ManeuversArmorDat.get_row( row_id ); bNpcBase.push_back( exdData->getField< uint32_t >( row, 1 ) ); @@ -3578,7 +3578,7 @@ Core::Data::ManeuversArmor::ManeuversArmor( uint32_t row_id, Core::Data::ExdData icon.push_back( exdData->getField< uint32_t >( row, 9 ) ); } -Core::Data::Map::Map( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Map::Map( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MapDat.get_row( row_id ); hierarchy = exdData->getField< uint8_t >( row, 3 ); @@ -3595,7 +3595,7 @@ Core::Data::Map::Map( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) discoveryArrayByte = exdData->getField< bool >( row, 15 ); } -Core::Data::MapMarker::MapMarker( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MapMarker::MapMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MapMarkerDat.get_row( row_id, subRow ); x = exdData->getField< int16_t >( row, 0 ); @@ -3609,27 +3609,27 @@ Core::Data::MapMarker::MapMarker( uint32_t row_id, uint32_t subRow, Core::Data:: dataKey = exdData->getField< uint16_t >( row, 8 ); } -Core::Data::MapMarkerRegion::MapMarkerRegion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MapMarkerRegion::MapMarkerRegion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MapMarkerRegionDat.get_row( row_id ); x = exdData->getField< int16_t >( row, 0 ); } -Core::Data::MapSymbol::MapSymbol( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MapSymbol::MapSymbol( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MapSymbolDat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 0 ); placeName = exdData->getField< int32_t >( row, 1 ); } -Core::Data::Marker::Marker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Marker::Marker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MarkerDat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::MasterpieceSupplyDuty::MasterpieceSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MasterpieceSupplyDuty::MasterpieceSupplyDuty( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MasterpieceSupplyDutyDat.get_row( row_id ); classJob = exdData->getField< uint8_t >( row, 0 ); @@ -3637,7 +3637,7 @@ Core::Data::MasterpieceSupplyDuty::MasterpieceSupplyDuty( uint32_t row_id, Core: rewardCurrency = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::MasterpieceSupplyMultiplier::MasterpieceSupplyMultiplier( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MasterpieceSupplyMultiplier::MasterpieceSupplyMultiplier( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MasterpieceSupplyMultiplierDat.get_row( row_id ); xpMultiplier.push_back( exdData->getField< uint16_t >( row, 0 ) ); @@ -3646,7 +3646,7 @@ Core::Data::MasterpieceSupplyMultiplier::MasterpieceSupplyMultiplier( uint32_t r currencyMultiplier.push_back( exdData->getField< uint16_t >( row, 5 ) ); } -Core::Data::Materia::Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Materia::Materia( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MateriaDat.get_row( row_id ); item.push_back( exdData->getField< int32_t >( row, 0 ) ); @@ -3672,40 +3672,40 @@ Core::Data::Materia::Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exd value.push_back( exdData->getField< uint8_t >( row, 20 ) ); } -Core::Data::MiniGameRA::MiniGameRA( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MiniGameRA::MiniGameRA( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MiniGameRADat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 1 ); bGM = exdData->getField< int32_t >( row, 2 ); } -Core::Data::MinionRace::MinionRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MinionRace::MinionRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MinionRaceDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::MinionRules::MinionRules( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MinionRules::MinionRules( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MinionRulesDat.get_row( row_id ); rule = exdData->getField< std::string >( row, 0 ); description = exdData->getField< std::string >( row, 1 ); } -Core::Data::MinionSkillType::MinionSkillType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MinionSkillType::MinionSkillType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MinionSkillTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::MobHuntOrderType::MobHuntOrderType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MobHuntOrderType::MobHuntOrderType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MobHuntOrderTypeDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 1 ); eventItem = exdData->getField< uint32_t >( row, 2 ); } -Core::Data::MobHuntTarget::MobHuntTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MobHuntTarget::MobHuntTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MobHuntTargetDat.get_row( row_id ); name = exdData->getField< uint16_t >( row, 0 ); @@ -3715,7 +3715,7 @@ Core::Data::MobHuntTarget::MobHuntTarget( uint32_t row_id, Core::Data::ExdDataGe placeName = exdData->getField< uint16_t >( row, 4 ); } -Core::Data::ModelChara::ModelChara( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ModelChara::ModelChara( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ModelCharaDat.get_row( row_id ); type = exdData->getField< uint8_t >( row, 0 ); @@ -3724,14 +3724,14 @@ Core::Data::ModelChara::ModelChara( uint32_t row_id, Core::Data::ExdDataGenerate variant = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::ModelState::ModelState( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ModelState::ModelState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ModelStateDat.get_row( row_id ); start = exdData->getField< uint16_t >( row, 0 ); end = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::MonsterNote::MonsterNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MonsterNote::MonsterNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MonsterNoteDat.get_row( row_id ); monsterNoteTarget.push_back( exdData->getField< uint16_t >( row, 0 ) ); @@ -3746,14 +3746,14 @@ Core::Data::MonsterNote::MonsterNote( uint32_t row_id, Core::Data::ExdDataGenera name = exdData->getField< std::string >( row, 9 ); } -Core::Data::MonsterNoteTarget::MonsterNoteTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MonsterNoteTarget::MonsterNoteTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MonsterNoteTargetDat.get_row( row_id ); bNpcName = exdData->getField< uint16_t >( row, 0 ); icon = exdData->getField< int32_t >( row, 1 ); } -Core::Data::Mount::Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Mount::Mount( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MountDat.get_row( row_id ); singular = exdData->getField< std::string >( row, 0 ); @@ -3777,7 +3777,7 @@ Core::Data::Mount::Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData isImmobile = exdData->getField< bool >( row, 42 ); } -Core::Data::MountAction::MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MountAction::MountAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MountActionDat.get_row( row_id ); action.push_back( exdData->getField< uint16_t >( row, 0 ) ); @@ -3788,7 +3788,7 @@ Core::Data::MountAction::MountAction( uint32_t row_id, Core::Data::ExdDataGenera action.push_back( exdData->getField< uint16_t >( row, 5 ) ); } -Core::Data::MountCustomize::MountCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MountCustomize::MountCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MountCustomizeDat.get_row( row_id ); hyurMaleScale = exdData->getField< float >( row, 1 ); @@ -3817,19 +3817,19 @@ Core::Data::MountCustomize::MountCustomize( uint32_t row_id, Core::Data::ExdData auRaFemaleCameraHeight = exdData->getField< uint8_t >( row, 24 ); } -Core::Data::MountFlyingCondition::MountFlyingCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MountFlyingCondition::MountFlyingCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MountFlyingConditionDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::MountSpeed::MountSpeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MountSpeed::MountSpeed( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MountSpeedDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::MountTransient::MountTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MountTransient::MountTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MountTransientDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); @@ -3837,7 +3837,7 @@ Core::Data::MountTransient::MountTransient( uint32_t row_id, Core::Data::ExdData tooltip = exdData->getField< std::string >( row, 2 ); } -Core::Data::MoveTimeline::MoveTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MoveTimeline::MoveTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MoveTimelineDat.get_row( row_id ); idle = exdData->getField< uint16_t >( row, 0 ); @@ -3852,14 +3852,14 @@ Core::Data::MoveTimeline::MoveTimeline( uint32_t row_id, Core::Data::ExdDataGene extra = exdData->getField< uint16_t >( row, 9 ); } -Core::Data::MoveVfx::MoveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::MoveVfx::MoveVfx( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_MoveVfxDat.get_row( row_id ); vFXNormal = exdData->getField< uint16_t >( row, 0 ); vFXWalking = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::NpcEquip::NpcEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::NpcEquip::NpcEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_NpcEquipDat.get_row( row_id ); modelMainHand = exdData->getField< uint64_t >( row, 0 ); @@ -3889,19 +3889,19 @@ Core::Data::NpcEquip::NpcEquip( uint32_t row_id, Core::Data::ExdDataGenerated* e dyeRightRing = exdData->getField< uint8_t >( row, 24 ); } -Core::Data::NpcYell::NpcYell( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::NpcYell::NpcYell( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_NpcYellDat.get_row( row_id ); text = exdData->getField< std::string >( row, 9 ); } -Core::Data::Omen::Omen( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Omen::Omen( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OmenDat.get_row( row_id ); fileName = exdData->getField< std::string >( row, 0 ); } -Core::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OnlineStatusDat.get_row( row_id ); priority = exdData->getField< uint8_t >( row, 2 ); @@ -3909,40 +3909,40 @@ Core::Data::OnlineStatus::OnlineStatus( uint32_t row_id, Core::Data::ExdDataGene icon = exdData->getField< uint32_t >( row, 4 ); } -Core::Data::Opening::Opening( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Opening::Opening( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OpeningDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); quest = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::Orchestrion::Orchestrion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Orchestrion::Orchestrion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OrchestrionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); description = exdData->getField< std::string >( row, 1 ); } -Core::Data::OrchestrionCategory::OrchestrionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::OrchestrionCategory::OrchestrionCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OrchestrionCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::OrchestrionPath::OrchestrionPath( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::OrchestrionPath::OrchestrionPath( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OrchestrionPathDat.get_row( row_id ); file = exdData->getField< std::string >( row, 0 ); } -Core::Data::OrchestrionUiparam::OrchestrionUiparam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::OrchestrionUiparam::OrchestrionUiparam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_OrchestrionUiparamDat.get_row( row_id ); orchestrionCategory = exdData->getField< uint8_t >( row, 0 ); order = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::ParamGrow::ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ParamGrow::ParamGrow( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ParamGrowDat.get_row( row_id ); expToNext = exdData->getField< int32_t >( row, 0 ); @@ -3955,7 +3955,7 @@ Core::Data::ParamGrow::ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* huntingLogExpReward = exdData->getField< int32_t >( row, 9 ); } -Core::Data::PartyContent::PartyContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PartyContent::PartyContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PartyContentDat.get_row( row_id ); key = exdData->getField< uint8_t >( row, 0 ); @@ -3967,19 +3967,19 @@ Core::Data::PartyContent::PartyContent( uint32_t row_id, Core::Data::ExdDataGene image = exdData->getField< uint32_t >( row, 34 ); } -Core::Data::PartyContentCutscene::PartyContentCutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PartyContentCutscene::PartyContentCutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PartyContentCutsceneDat.get_row( row_id ); cutscene = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::PartyContentTextData::PartyContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PartyContentTextData::PartyContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PartyContentTextDataDat.get_row( row_id ); data = exdData->getField< std::string >( row, 0 ); } -Core::Data::Perform::Perform( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Perform::Perform( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PerformDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -3994,19 +3994,19 @@ Core::Data::Perform::Perform( uint32_t row_id, Core::Data::ExdDataGenerated* exd transient = exdData->getField< uint8_t >( row, 11 ); } -Core::Data::PerformTransient::PerformTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PerformTransient::PerformTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PerformTransientDat.get_row( row_id ); text = exdData->getField< std::string >( row, 0 ); } -Core::Data::Pet::Pet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Pet::Pet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PetDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::PetAction::PetAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PetAction::PetAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PetActionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -4016,7 +4016,7 @@ Core::Data::PetAction::PetAction( uint32_t row_id, Core::Data::ExdDataGenerated* pet = exdData->getField< uint8_t >( row, 4 ); } -Core::Data::Picture::Picture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Picture::Picture( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PictureDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); @@ -4024,14 +4024,14 @@ Core::Data::Picture::Picture( uint32_t row_id, Core::Data::ExdDataGenerated* exd signature = exdData->getField< int32_t >( row, 2 ); } -Core::Data::PlaceName::PlaceName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PlaceName::PlaceName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PlaceNameDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); nameNoArticle = exdData->getField< std::string >( row, 2 ); } -Core::Data::PlantPotFlowerSeed::PlantPotFlowerSeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PlantPotFlowerSeed::PlantPotFlowerSeed( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PlantPotFlowerSeedDat.get_row( row_id ); seedIcon.push_back( exdData->getField< uint32_t >( row, 0 ) ); @@ -4045,14 +4045,14 @@ Core::Data::PlantPotFlowerSeed::PlantPotFlowerSeed( uint32_t row_id, Core::Data: seedIcon.push_back( exdData->getField< uint32_t >( row, 8 ) ); } -Core::Data::PreHandler::PreHandler( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PreHandler::PreHandler( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PreHandlerDat.get_row( row_id ); gilShop = exdData->getField< uint32_t >( row, 0 ); actionTimeline = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::PublicContent::PublicContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PublicContent::PublicContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PublicContentDat.get_row( row_id ); type = exdData->getField< uint8_t >( row, 0 ); @@ -4065,39 +4065,39 @@ Core::Data::PublicContent::PublicContent( uint32_t row_id, Core::Data::ExdDataGe additionalData = exdData->getField< uint16_t >( row, 8 ); } -Core::Data::PublicContentCutscene::PublicContentCutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PublicContentCutscene::PublicContentCutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PublicContentCutsceneDat.get_row( row_id ); cutscene = exdData->getField< uint32_t >( row, 0 ); cutscene2 = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::PublicContentTextData::PublicContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PublicContentTextData::PublicContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PublicContentTextDataDat.get_row( row_id ); textData = exdData->getField< std::string >( row, 0 ); } -Core::Data::PvPAction::PvPAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PvPAction::PvPAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PvPActionDat.get_row( row_id ); action = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::PvPActionSort::PvPActionSort( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PvPActionSort::PvPActionSort( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PvPActionSortDat.get_row( row_id, subRow ); name = exdData->getField< uint8_t >( row, 0 ); action = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::PvPRank::PvPRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PvPRank::PvPRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PvPRankDat.get_row( row_id ); expRequired = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::PvPSelectTrait::PvPSelectTrait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PvPSelectTrait::PvPSelectTrait( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PvPSelectTraitDat.get_row( row_id ); effect = exdData->getField< std::string >( row, 0 ); @@ -4105,7 +4105,7 @@ Core::Data::PvPSelectTrait::PvPSelectTrait( uint32_t row_id, Core::Data::ExdData value = exdData->getField< int16_t >( row, 2 ); } -Core::Data::PvPTrait::PvPTrait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::PvPTrait::PvPTrait( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_PvPTraitDat.get_row( row_id ); trait1 = exdData->getField< uint16_t >( row, 0 ); @@ -4113,7 +4113,7 @@ Core::Data::PvPTrait::PvPTrait( uint32_t row_id, Core::Data::ExdDataGenerated* e trait3 = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::Quest::Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Quest::Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -4488,7 +4488,7 @@ Core::Data::Quest::Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData sortKey = exdData->getField< uint16_t >( row, 1514 ); } -Core::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestClassJobRewardDat.get_row( row_id, subRow ); classJobCategory = exdData->getField< uint8_t >( row, 0 ); @@ -4510,7 +4510,7 @@ Core::Data::QuestClassJobReward::QuestClassJobReward( uint32_t row_id, uint32_t requiredAmount.push_back( exdData->getField< uint8_t >( row, 16 ) ); } -Core::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestClassJobSupplyDat.get_row( row_id, subRow ); classJobCategory = exdData->getField< uint8_t >( row, 0 ); @@ -4518,20 +4518,20 @@ Core::Data::QuestClassJobSupply::QuestClassJobSupply( uint32_t row_id, uint32_t item = exdData->getField< uint32_t >( row, 3 ); } -Core::Data::QuestRepeatFlag::QuestRepeatFlag( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::QuestRepeatFlag::QuestRepeatFlag( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestRepeatFlagDat.get_row( row_id ); quest = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::QuestRewardOther::QuestRewardOther( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::QuestRewardOther::QuestRewardOther( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuestRewardOtherDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::QuickChat::QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::QuickChat::QuickChat( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuickChatDat.get_row( row_id ); nameAction = exdData->getField< std::string >( row, 0 ); @@ -4540,13 +4540,13 @@ Core::Data::QuickChat::QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* quickChatTransient = exdData->getField< int8_t >( row, 3 ); } -Core::Data::QuickChatTransient::QuickChatTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::QuickChatTransient::QuickChatTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_QuickChatTransientDat.get_row( row_id ); textOutput = exdData->getField< std::string >( row, 0 ); } -Core::Data::Race::Race( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Race::Race( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RaceDat.get_row( row_id ); masculine = exdData->getField< std::string >( row, 0 ); @@ -4561,7 +4561,7 @@ Core::Data::Race::Race( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) rSEFFeet = exdData->getField< int32_t >( row, 9 ); } -Core::Data::RacingChocoboItem::RacingChocoboItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RacingChocoboItem::RacingChocoboItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RacingChocoboItemDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); @@ -4570,32 +4570,32 @@ Core::Data::RacingChocoboItem::RacingChocoboItem( uint32_t row_id, Core::Data::E param.push_back( exdData->getField< uint8_t >( row, 3 ) ); } -Core::Data::RacingChocoboName::RacingChocoboName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RacingChocoboName::RacingChocoboName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RacingChocoboNameDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::RacingChocoboNameCategory::RacingChocoboNameCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RacingChocoboNameCategory::RacingChocoboNameCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RacingChocoboNameCategoryDat.get_row( row_id ); sortKey = exdData->getField< uint8_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::RacingChocoboNameInfo::RacingChocoboNameInfo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RacingChocoboNameInfo::RacingChocoboNameInfo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RacingChocoboNameInfoDat.get_row( row_id ); racingChocoboNameCategory = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::RacingChocoboParam::RacingChocoboParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RacingChocoboParam::RacingChocoboParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RacingChocoboParamDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Recipe::Recipe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Recipe::Recipe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RecipeDat.get_row( row_id ); craftType = exdData->getField< int32_t >( row, 1 ); @@ -4621,13 +4621,13 @@ Core::Data::Recipe::Recipe( uint32_t row_id, Core::Data::ExdDataGenerated* exdDa patchNumber = exdData->getField< uint16_t >( row, 44 ); } -Core::Data::RecipeElement::RecipeElement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RecipeElement::RecipeElement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RecipeElementDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RecipeLevelTableDat.get_row( row_id ); classJobLevel = exdData->getField< uint8_t >( row, 0 ); @@ -4638,7 +4638,7 @@ Core::Data::RecipeLevelTable::RecipeLevelTable( uint32_t row_id, Core::Data::Exd durability = exdData->getField< uint16_t >( row, 5 ); } -Core::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RecipeNotebookListDat.get_row( row_id ); recipe.push_back( exdData->getField< int32_t >( row, 1 ) ); @@ -4803,13 +4803,13 @@ Core::Data::RecipeNotebookList::RecipeNotebookList( uint32_t row_id, Core::Data: recipe.push_back( exdData->getField< int32_t >( row, 160 ) ); } -Core::Data::RecommendContents::RecommendContents( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RecommendContents::RecommendContents( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RecommendContentsDat.get_row( row_id ); level = exdData->getField< int32_t >( row, 0 ); } -Core::Data::Relic::Relic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Relic::Relic( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RelicDat.get_row( row_id ); itemAtma = exdData->getField< uint32_t >( row, 0 ); @@ -4817,7 +4817,7 @@ Core::Data::Relic::Relic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData icon = exdData->getField< int32_t >( row, 2 ); } -Core::Data::Relic3::Relic3( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Relic3::Relic3( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_Relic3Dat.get_row( row_id ); itemAnimus = exdData->getField< uint32_t >( row, 0 ); @@ -4827,7 +4827,7 @@ Core::Data::Relic3::Relic3( uint32_t row_id, Core::Data::ExdDataGenerated* exdDa icon = exdData->getField< int32_t >( row, 4 ); } -Core::Data::RelicItem::RelicItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RelicItem::RelicItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RelicItemDat.get_row( row_id ); gladiatorItem = exdData->getField< uint32_t >( row, 1 ); @@ -4843,7 +4843,7 @@ Core::Data::RelicItem::RelicItem( uint32_t row_id, Core::Data::ExdDataGenerated* rogueItem = exdData->getField< uint32_t >( row, 11 ); } -Core::Data::RelicNote::RelicNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RelicNote::RelicNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RelicNoteDat.get_row( row_id ); eventItem = exdData->getField< uint32_t >( row, 0 ); @@ -4855,13 +4855,13 @@ Core::Data::RelicNote::RelicNote( uint32_t row_id, Core::Data::ExdDataGenerated* leve.push_back( exdData->getField< uint16_t >( row, 33 ) ); } -Core::Data::RelicNoteCategory::RelicNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RelicNoteCategory::RelicNoteCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RelicNoteCategoryDat.get_row( row_id ); text = exdData->getField< std::string >( row, 1 ); } -Core::Data::Resident::Resident( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Resident::Resident( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ResidentDat.get_row( row_id, subRow ); model = exdData->getField< uint64_t >( row, 1 ); @@ -4869,7 +4869,7 @@ Core::Data::Resident::Resident( uint32_t row_id, uint32_t subRow, Core::Data::Ex residentMotionType = exdData->getField< uint8_t >( row, 3 ); } -Core::Data::RetainerTask::RetainerTask( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RetainerTask::RetainerTask( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RetainerTaskDat.get_row( row_id ); isRandom = exdData->getField< bool >( row, 0 ); @@ -4884,14 +4884,14 @@ Core::Data::RetainerTask::RetainerTask( uint32_t row_id, Core::Data::ExdDataGene task = exdData->getField< uint16_t >( row, 13 ); } -Core::Data::RetainerTaskLvRange::RetainerTaskLvRange( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RetainerTaskLvRange::RetainerTaskLvRange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RetainerTaskLvRangeDat.get_row( row_id ); min = exdData->getField< uint8_t >( row, 0 ); max = exdData->getField< uint8_t >( row, 1 ); } -Core::Data::RetainerTaskNormal::RetainerTaskNormal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RetainerTaskNormal::RetainerTaskNormal( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RetainerTaskNormalDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); @@ -4902,7 +4902,7 @@ Core::Data::RetainerTaskNormal::RetainerTaskNormal( uint32_t row_id, Core::Data: fishingLog = exdData->getField< int16_t >( row, 5 ); } -Core::Data::RetainerTaskParameter::RetainerTaskParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RetainerTaskParameter::RetainerTaskParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RetainerTaskParameterDat.get_row( row_id ); itemLevelDoW.push_back( exdData->getField< int16_t >( row, 0 ) ); @@ -4913,27 +4913,27 @@ Core::Data::RetainerTaskParameter::RetainerTaskParameter( uint32_t row_id, Core: gatheringFSH.push_back( exdData->getField< int16_t >( row, 5 ) ); } -Core::Data::RetainerTaskRandom::RetainerTaskRandom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RetainerTaskRandom::RetainerTaskRandom( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RetainerTaskRandomDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); requirement = exdData->getField< int16_t >( row, 1 ); } -Core::Data::RPParameter::RPParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::RPParameter::RPParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_RPParameterDat.get_row( row_id ); bNpcName = exdData->getField< uint16_t >( row, 0 ); classJob = exdData->getField< uint8_t >( row, 1 ); } -Core::Data::Salvage::Salvage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Salvage::Salvage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SalvageDat.get_row( row_id ); optimalSkill = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::SatisfactionNpc::SatisfactionNpc( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SatisfactionNpc::SatisfactionNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SatisfactionNpcDat.get_row( row_id ); npc = exdData->getField< int32_t >( row, 0 ); @@ -4954,7 +4954,7 @@ Core::Data::SatisfactionNpc::SatisfactionNpc( uint32_t row_id, Core::Data::ExdDa icon = exdData->getField< int32_t >( row, 70 ); } -Core::Data::SatisfactionSupply::SatisfactionSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SatisfactionSupply::SatisfactionSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SatisfactionSupplyDat.get_row( row_id, subRow ); slot = exdData->getField< uint8_t >( row, 0 ); @@ -4966,7 +4966,7 @@ Core::Data::SatisfactionSupply::SatisfactionSupply( uint32_t row_id, uint32_t su reward = exdData->getField< uint16_t >( row, 6 ); } -Core::Data::SatisfactionSupplyReward::SatisfactionSupplyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SatisfactionSupplyReward::SatisfactionSupplyReward( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SatisfactionSupplyRewardDat.get_row( row_id ); satisfactionLow = exdData->getField< uint16_t >( row, 10 ); @@ -4977,21 +4977,21 @@ Core::Data::SatisfactionSupplyReward::SatisfactionSupplyReward( uint32_t row_id, gilHigh = exdData->getField< uint16_t >( row, 15 ); } -Core::Data::ScenarioTree::ScenarioTree( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ScenarioTree::ScenarioTree( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ScenarioTreeDat.get_row( row_id ); type = exdData->getField< uint8_t >( row, 0 ); image = exdData->getField< uint16_t >( row, 1 ); } -Core::Data::ScenarioTreeTips::ScenarioTreeTips( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ScenarioTreeTips::ScenarioTreeTips( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ScenarioTreeTipsDat.get_row( row_id ); tips1 = exdData->getField< uint32_t >( row, 1 ); tips2 = exdData->getField< uint32_t >( row, 3 ); } -Core::Data::ScenarioTreeTipsClassQuest::ScenarioTreeTipsClassQuest( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ScenarioTreeTipsClassQuest::ScenarioTreeTipsClassQuest( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ScenarioTreeTipsClassQuestDat.get_row( row_id, subRow ); quest = exdData->getField< uint32_t >( row, 0 ); @@ -5000,32 +5000,32 @@ Core::Data::ScenarioTreeTipsClassQuest::ScenarioTreeTipsClassQuest( uint32_t row requiredQuest = exdData->getField< uint32_t >( row, 3 ); } -Core::Data::ScenarioTreeTipsQuest::ScenarioTreeTipsQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ScenarioTreeTipsQuest::ScenarioTreeTipsQuest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ScenarioTreeTipsQuestDat.get_row( row_id ); level = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::ScenarioType::ScenarioType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ScenarioType::ScenarioType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ScenarioTypeDat.get_row( row_id ); type = exdData->getField< std::string >( row, 0 ); } -Core::Data::ScreenImage::ScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ScreenImage::ScreenImage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ScreenImageDat.get_row( row_id ); image = exdData->getField< uint32_t >( row, 0 ); } -Core::Data::SecretRecipeBook::SecretRecipeBook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SecretRecipeBook::SecretRecipeBook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SecretRecipeBookDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); name = exdData->getField< std::string >( row, 1 ); } -Core::Data::SkyIsland2Mission::SkyIsland2Mission( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SkyIsland2Mission::SkyIsland2Mission( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SkyIsland2MissionDat.get_row( row_id ); item1 = exdData->getField< uint32_t >( row, 0 ); @@ -5038,7 +5038,7 @@ Core::Data::SkyIsland2Mission::SkyIsland2Mission( uint32_t row_id, Core::Data::E image = exdData->getField< uint32_t >( row, 20 ); } -Core::Data::SkyIsland2MissionDetail::SkyIsland2MissionDetail( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SkyIsland2MissionDetail::SkyIsland2MissionDetail( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SkyIsland2MissionDetailDat.get_row( row_id ); type = exdData->getField< uint8_t >( row, 0 ); @@ -5047,19 +5047,19 @@ Core::Data::SkyIsland2MissionDetail::SkyIsland2MissionDetail( uint32_t row_id, C objective = exdData->getField< std::string >( row, 7 ); } -Core::Data::SkyIsland2MissionType::SkyIsland2MissionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SkyIsland2MissionType::SkyIsland2MissionType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SkyIsland2MissionTypeDat.get_row( row_id ); type = exdData->getField< bool >( row, 0 ); } -Core::Data::SkyIsland2RangeType::SkyIsland2RangeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SkyIsland2RangeType::SkyIsland2RangeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SkyIsland2RangeTypeDat.get_row( row_id ); type = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::SpearfishingItem::SpearfishingItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SpearfishingItem::SpearfishingItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SpearfishingItemDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); @@ -5069,7 +5069,7 @@ Core::Data::SpearfishingItem::SpearfishingItem( uint32_t row_id, Core::Data::Exd isVisible = exdData->getField< bool >( row, 5 ); } -Core::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SpearfishingNotebookDat.get_row( row_id ); gatheringLevel = exdData->getField< uint8_t >( row, 0 ); @@ -5081,14 +5081,14 @@ Core::Data::SpearfishingNotebook::SpearfishingNotebook( uint32_t row_id, Core::D gatheringPointBase = exdData->getField< uint16_t >( row, 9 ); } -Core::Data::SpearfishingRecordPage::SpearfishingRecordPage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SpearfishingRecordPage::SpearfishingRecordPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SpearfishingRecordPageDat.get_row( row_id ); placeName = exdData->getField< int32_t >( row, 3 ); image = exdData->getField< int32_t >( row, 4 ); } -Core::Data::SpecialShop::SpecialShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SpecialShop::SpecialShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SpecialShopDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -5158,13 +5158,13 @@ Core::Data::SpecialShop::SpecialShop( uint32_t row_id, Core::Data::ExdDataGenera completeText = exdData->getField< int32_t >( row, 1865 ); } -Core::Data::SpecialShopItemCategory::SpecialShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SpecialShopItemCategory::SpecialShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SpecialShopItemCategoryDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Stain::Stain( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Stain::Stain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_StainDat.get_row( row_id ); color = exdData->getField< uint32_t >( row, 0 ); @@ -5172,14 +5172,14 @@ Core::Data::Stain::Stain( uint32_t row_id, Core::Data::ExdDataGenerated* exdData name = exdData->getField< std::string >( row, 2 ); } -Core::Data::StainTransient::StainTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::StainTransient::StainTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_StainTransientDat.get_row( row_id ); item1 = exdData->getField< uint32_t >( row, 0 ); item2 = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::Status::Status( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Status::Status( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_StatusDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -5200,13 +5200,13 @@ Core::Data::Status::Status( uint32_t row_id, Core::Data::ExdDataGenerated* exdDa invisibility = exdData->getField< bool >( row, 22 ); } -Core::Data::StatusHitEffect::StatusHitEffect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::StatusHitEffect::StatusHitEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_StatusHitEffectDat.get_row( row_id ); location = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::StatusLoopVFX::StatusLoopVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::StatusLoopVFX::StatusLoopVFX( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_StatusLoopVFXDat.get_row( row_id ); vFX = exdData->getField< uint16_t >( row, 0 ); @@ -5214,12 +5214,12 @@ Core::Data::StatusLoopVFX::StatusLoopVFX( uint32_t row_id, Core::Data::ExdDataGe vFX3 = exdData->getField< uint16_t >( row, 4 ); } -Core::Data::Story::Story( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Story::Story( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_StoryDat.get_row( row_id ); } -Core::Data::SubmarineExploration::SubmarineExploration( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SubmarineExploration::SubmarineExploration( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SubmarineExplorationDat.get_row( row_id ); destination = exdData->getField< std::string >( row, 0 ); @@ -5231,7 +5231,7 @@ Core::Data::SubmarineExploration::SubmarineExploration( uint32_t row_id, Core::D expReward = exdData->getField< uint32_t >( row, 9 ); } -Core::Data::SubmarinePart::SubmarinePart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SubmarinePart::SubmarinePart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SubmarinePartDat.get_row( row_id ); slot = exdData->getField< uint8_t >( row, 0 ); @@ -5245,14 +5245,14 @@ Core::Data::SubmarinePart::SubmarinePart( uint32_t row_id, Core::Data::ExdDataGe repairMaterials = exdData->getField< uint8_t >( row, 9 ); } -Core::Data::SubmarineRank::SubmarineRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SubmarineRank::SubmarineRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SubmarineRankDat.get_row( row_id ); rank = exdData->getField< uint16_t >( row, 0 ); expToNext = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::SwitchTalk::SwitchTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::SwitchTalk::SwitchTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_SwitchTalkDat.get_row( row_id ); quest.push_back( exdData->getField< uint32_t >( row, 2 ) ); @@ -5288,7 +5288,7 @@ Core::Data::SwitchTalk::SwitchTalk( uint32_t row_id, Core::Data::ExdDataGenerate defaultTalk.push_back( exdData->getField< uint32_t >( row, 32 ) ); } -Core::Data::TerritoryType::TerritoryType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TerritoryType::TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TerritoryTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -5303,7 +5303,7 @@ Core::Data::TerritoryType::TerritoryType( uint32_t row_id, Core::Data::ExdDataGe aetheryte = exdData->getField< int32_t >( row, 24 ); } -Core::Data::TextCommand::TextCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TextCommand::TextCommand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TextCommandDat.get_row( row_id ); command = exdData->getField< std::string >( row, 5 ); @@ -5313,7 +5313,7 @@ Core::Data::TextCommand::TextCommand( uint32_t row_id, Core::Data::ExdDataGenera shortAlias = exdData->getField< std::string >( row, 9 ); } -Core::Data::Title::Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Title::Title( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TitleDat.get_row( row_id ); masculine = exdData->getField< std::string >( row, 0 ); @@ -5322,33 +5322,33 @@ Core::Data::Title::Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData order = exdData->getField< uint16_t >( row, 3 ); } -Core::Data::Tomestones::Tomestones( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Tomestones::Tomestones( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TomestonesDat.get_row( row_id ); weeklyLimit = exdData->getField< uint16_t >( row, 0 ); } -Core::Data::TomestonesItem::TomestonesItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TomestonesItem::TomestonesItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TomestonesItemDat.get_row( row_id ); item = exdData->getField< int32_t >( row, 0 ); tomestones = exdData->getField< int32_t >( row, 2 ); } -Core::Data::TopicSelect::TopicSelect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TopicSelect::TopicSelect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TopicSelectDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Town::Town( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Town::Town( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TownDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); icon = exdData->getField< int32_t >( row, 1 ); } -Core::Data::Trait::Trait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Trait::Trait( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TraitDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -5360,7 +5360,7 @@ Core::Data::Trait::Trait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData classJobCategory = exdData->getField< uint8_t >( row, 6 ); } -Core::Data::TraitRecast::TraitRecast( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TraitRecast::TraitRecast( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TraitRecastDat.get_row( row_id ); trait = exdData->getField< uint16_t >( row, 0 ); @@ -5368,13 +5368,13 @@ Core::Data::TraitRecast::TraitRecast( uint32_t row_id, Core::Data::ExdDataGenera timeds = exdData->getField< uint16_t >( row, 2 ); } -Core::Data::TraitTransient::TraitTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TraitTransient::TraitTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TraitTransientDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); } -Core::Data::Transformation::Transformation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Transformation::Transformation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TransformationDat.get_row( row_id ); model = exdData->getField< int16_t >( row, 1 ); @@ -5392,13 +5392,13 @@ Core::Data::Transformation::Transformation( uint32_t row_id, Core::Data::ExdData playerCamera = exdData->getField< bool >( row, 17 ); } -Core::Data::Treasure::Treasure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Treasure::Treasure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TreasureDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 8 ); } -Core::Data::TreasureHuntRank::TreasureHuntRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TreasureHuntRank::TreasureHuntRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TreasureHuntRankDat.get_row( row_id ); icon = exdData->getField< uint32_t >( row, 1 ); @@ -5409,7 +5409,7 @@ Core::Data::TreasureHuntRank::TreasureHuntRank( uint32_t row_id, Core::Data::Exd minPartySize = exdData->getField< uint8_t >( row, 6 ); } -Core::Data::Tribe::Tribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Tribe::Tribe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TribeDat.get_row( row_id ); masculine = exdData->getField< std::string >( row, 0 ); @@ -5422,7 +5422,7 @@ Core::Data::Tribe::Tribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData pIE = exdData->getField< int8_t >( row, 9 ); } -Core::Data::TripleTriad::TripleTriad( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TripleTriad::TripleTriad( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadDat.get_row( row_id ); tripleTriadCardFixed.push_back( exdData->getField< uint16_t >( row, 0 ) ); @@ -5456,7 +5456,7 @@ Core::Data::TripleTriad::TripleTriad( uint32_t row_id, Core::Data::ExdDataGenera itemPossibleReward.push_back( exdData->getField< uint32_t >( row, 29 ) ); } -Core::Data::TripleTriadCard::TripleTriadCard( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TripleTriadCard::TripleTriadCard( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadCardDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -5464,13 +5464,13 @@ Core::Data::TripleTriadCard::TripleTriadCard( uint32_t row_id, Core::Data::ExdDa description = exdData->getField< std::string >( row, 8 ); } -Core::Data::TripleTriadCardRarity::TripleTriadCardRarity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TripleTriadCardRarity::TripleTriadCardRarity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadCardRarityDat.get_row( row_id ); stars = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::TripleTriadCardResident::TripleTriadCardResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TripleTriadCardResident::TripleTriadCardResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadCardResidentDat.get_row( row_id ); top = exdData->getField< uint8_t >( row, 1 ); @@ -5483,25 +5483,25 @@ Core::Data::TripleTriadCardResident::TripleTriadCardResident( uint32_t row_id, C sortKey = exdData->getField< uint8_t >( row, 8 ); } -Core::Data::TripleTriadCardType::TripleTriadCardType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TripleTriadCardType::TripleTriadCardType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadCardTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::TripleTriadCompetition::TripleTriadCompetition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TripleTriadCompetition::TripleTriadCompetition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadCompetitionDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::TripleTriadRule::TripleTriadRule( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TripleTriadRule::TripleTriadRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TripleTriadRuleDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::Tutorial::Tutorial( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Tutorial::Tutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TutorialDat.get_row( row_id ); exp = exdData->getField< uint32_t >( row, 4 ); @@ -5512,44 +5512,44 @@ Core::Data::Tutorial::Tutorial( uint32_t row_id, Core::Data::ExdDataGenerated* e objective = exdData->getField< uint32_t >( row, 9 ); } -Core::Data::TutorialDPS::TutorialDPS( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TutorialDPS::TutorialDPS( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TutorialDPSDat.get_row( row_id ); objective = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::TutorialHealer::TutorialHealer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TutorialHealer::TutorialHealer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TutorialHealerDat.get_row( row_id ); objective = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::TutorialTank::TutorialTank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::TutorialTank::TutorialTank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_TutorialTankDat.get_row( row_id ); objective = exdData->getField< uint8_t >( row, 0 ); } -Core::Data::UIColor::UIColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::UIColor::UIColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_UIColorDat.get_row( row_id ); foreground = exdData->getField< uint32_t >( row, 0 ); background = exdData->getField< uint32_t >( row, 1 ); } -Core::Data::VaseFlower::VaseFlower( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::VaseFlower::VaseFlower( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_VaseFlowerDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 3 ); } -Core::Data::VFX::VFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::VFX::VFX( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_VFXDat.get_row( row_id ); location = exdData->getField< std::string >( row, 0 ); } -Core::Data::Warp::Warp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Warp::Warp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WarpDat.get_row( row_id ); level = exdData->getField< uint32_t >( row, 0 ); @@ -5561,7 +5561,7 @@ Core::Data::Warp::Warp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) warpLogic = exdData->getField< uint16_t >( row, 6 ); } -Core::Data::WarpCondition::WarpCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WarpCondition::WarpCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WarpConditionDat.get_row( row_id ); requiredQuest1 = exdData->getField< uint32_t >( row, 2 ); @@ -5570,7 +5570,7 @@ Core::Data::WarpCondition::WarpCondition( uint32_t row_id, Core::Data::ExdDataGe requiredQuest4 = exdData->getField< uint32_t >( row, 5 ); } -Core::Data::WarpLogic::WarpLogic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WarpLogic::WarpLogic( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WarpLogicDat.get_row( row_id ); warpName = exdData->getField< std::string >( row, 1 ); @@ -5599,7 +5599,7 @@ Core::Data::WarpLogic::WarpLogic( uint32_t row_id, Core::Data::ExdDataGenerated* responseNo = exdData->getField< std::string >( row, 25 ); } -Core::Data::Weather::Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::Weather::Weather( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeatherDat.get_row( row_id ); icon = exdData->getField< int32_t >( row, 0 ); @@ -5607,25 +5607,25 @@ Core::Data::Weather::Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exd description = exdData->getField< std::string >( row, 2 ); } -Core::Data::WeatherGroup::WeatherGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WeatherGroup::WeatherGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeatherGroupDat.get_row( row_id, subRow ); weatherRate = exdData->getField< int32_t >( row, 1 ); } -Core::Data::WeatherRate::WeatherRate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WeatherRate::WeatherRate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeatherRateDat.get_row( row_id ); } -Core::Data::WeddingBGM::WeddingBGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WeddingBGM::WeddingBGM( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeddingBGMDat.get_row( row_id ); song = exdData->getField< uint16_t >( row, 0 ); songName = exdData->getField< std::string >( row, 1 ); } -Core::Data::WeeklyBingoOrderData::WeeklyBingoOrderData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WeeklyBingoOrderData::WeeklyBingoOrderData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeeklyBingoOrderDataDat.get_row( row_id ); type = exdData->getField< uint32_t >( row, 0 ); @@ -5634,7 +5634,7 @@ Core::Data::WeeklyBingoOrderData::WeeklyBingoOrderData( uint32_t row_id, Core::D icon = exdData->getField< uint32_t >( row, 4 ); } -Core::Data::WeeklyBingoRewardData::WeeklyBingoRewardData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WeeklyBingoRewardData::WeeklyBingoRewardData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeeklyBingoRewardDataDat.get_row( row_id ); rewardItem2 = exdData->getField< uint32_t >( row, 10 ); @@ -5642,13 +5642,13 @@ Core::Data::WeeklyBingoRewardData::WeeklyBingoRewardData( uint32_t row_id, Core: rewardQuantity2 = exdData->getField< uint16_t >( row, 12 ); } -Core::Data::WeeklyBingoText::WeeklyBingoText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WeeklyBingoText::WeeklyBingoText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeeklyBingoTextDat.get_row( row_id ); description = exdData->getField< std::string >( row, 0 ); } -Core::Data::WeeklyLotBonus::WeeklyLotBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WeeklyLotBonus::WeeklyLotBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WeeklyLotBonusDat.get_row( row_id ); weeklyLotBonusThreshold.push_back( exdData->getField< uint8_t >( row, 0 ) ); @@ -5684,7 +5684,7 @@ Core::Data::WeeklyLotBonus::WeeklyLotBonus( uint32_t row_id, Core::Data::ExdData weeklyLotBonusThreshold.push_back( exdData->getField< uint8_t >( row, 30 ) ); } -Core::Data::World::World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::World::World( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WorldDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); @@ -5692,13 +5692,13 @@ Core::Data::World::World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData isPublic = exdData->getField< bool >( row, 3 ); } -Core::Data::WorldDCGroupType::WorldDCGroupType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::WorldDCGroupType::WorldDCGroupType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_WorldDCGroupTypeDat.get_row( row_id ); name = exdData->getField< std::string >( row, 0 ); } -Core::Data::YKW::YKW( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::YKW::YKW( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_YKWDat.get_row( row_id ); item = exdData->getField< uint32_t >( row, 1 ); @@ -5707,7 +5707,7 @@ Core::Data::YKW::YKW( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ) location.push_back( exdData->getField< uint16_t >( row, 4 ) ); } -Core::Data::ZoneSharedGroup::ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ) +Sapphire::Data::ZoneSharedGroup::ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_ZoneSharedGroupDat.get_row( row_id, subRow ); quest1 = exdData->getField< uint32_t >( row, 2 ); @@ -5719,22 +5719,22 @@ Core::Data::ZoneSharedGroup::ZoneSharedGroup( uint32_t row_id, uint32_t subRow, } -Core::Data::ExdDataGenerated::ExdDataGenerated() +Sapphire::Data::ExdDataGenerated::ExdDataGenerated() { } -Core::Data::ExdDataGenerated::~ExdDataGenerated() +Sapphire::Data::ExdDataGenerated::~ExdDataGenerated() { } -xiv::exd::Exd Core::Data::ExdDataGenerated::setupDatAccess( const std::string& name, xiv::exd::Language lang ) +xiv::exd::Exd Sapphire::Data::ExdDataGenerated::setupDatAccess( const std::string& name, xiv::exd::Language lang ) { auto& cat = m_exd_data->get_category( name ); return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) ); }; -void Core::Data::ExdDataGenerated::loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList ) +void Sapphire::Data::ExdDataGenerated::loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList ) { auto pDataRows = data.get_rows(); @@ -5745,7 +5745,7 @@ void Core::Data::ExdDataGenerated::loadIdList( xiv::exd::Exd& data, std::set< ui } } -bool Core::Data::ExdDataGenerated::init( const std::string& path ) +bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) { try { diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index af2974ef..2099dc91 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -13,7 +13,7 @@ #include #include -namespace Core { +namespace Sapphire { namespace Data { class ExdDataGenerated; @@ -484,7 +484,7 @@ struct Achievement uint16_t order; bool initialHide; - Achievement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Achievement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AchievementCategory @@ -493,14 +493,14 @@ struct AchievementCategory uint8_t achievementKind; bool hideCategory; - AchievementCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AchievementCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AchievementKind { std::string name; - AchievementKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AchievementKind( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Action @@ -542,7 +542,7 @@ struct Action uint8_t omen; bool isPvP; - Action( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Action( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionCastTimeline @@ -550,21 +550,21 @@ struct ActionCastTimeline uint16_t name; uint16_t vFX; - ActionCastTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionCastTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionCastVFX { uint16_t vFX; - ActionCastVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionCastVFX( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionCategory { std::string name; - ActionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionComboRoute @@ -572,41 +572,41 @@ struct ActionComboRoute std::string name; std::vector< uint16_t > action; - ActionComboRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionComboRoute( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionIndirection { int32_t name; - ActionIndirection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionIndirection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionParam { int16_t name; - ActionParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionProcStatus { uint16_t status; - ActionProcStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionProcStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionTimeline { std::string key; - ActionTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionTimelineMove { - ActionTimelineMove( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionTimelineMove( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionTimelineReplace @@ -614,14 +614,14 @@ struct ActionTimelineReplace uint16_t old; uint16_t New; - ActionTimelineReplace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionTimelineReplace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActionTransient { std::string description; - ActionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActivityFeedButtons @@ -631,7 +631,7 @@ struct ActivityFeedButtons std::string language; std::string pictureURL; - ActivityFeedButtons( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActivityFeedButtons( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActivityFeedCaptions @@ -641,7 +641,7 @@ struct ActivityFeedCaptions std::string dE; std::string fR; - ActivityFeedCaptions( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActivityFeedCaptions( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActivityFeedGroupCaptions @@ -651,7 +651,7 @@ struct ActivityFeedGroupCaptions std::string dE; std::string fR; - ActivityFeedGroupCaptions( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActivityFeedGroupCaptions( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ActivityFeedImages @@ -662,14 +662,14 @@ struct ActivityFeedImages std::string activityFeedDE; std::string activityFeedFR; - ActivityFeedImages( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ActivityFeedImages( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Addon { std::string text; - Addon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Addon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AddonHud @@ -678,7 +678,7 @@ struct AddonHud std::string _short; std::string _function; - AddonHud( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AddonHud( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Adventure @@ -696,7 +696,7 @@ struct Adventure int32_t iconUndiscovered; bool isInitial; - Adventure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Adventure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AdventureExPhase @@ -705,14 +705,14 @@ struct AdventureExPhase uint32_t adventureBegin; uint32_t adventureEnd; - AdventureExPhase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AdventureExPhase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AetherCurrent { uint32_t quest; - AetherCurrent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AetherCurrent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AetherCurrentCompFlgSet @@ -720,7 +720,7 @@ struct AetherCurrentCompFlgSet int32_t territory; std::vector< int32_t > aetherCurrent; - AetherCurrentCompFlgSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AetherCurrentCompFlgSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AetherialWheel @@ -730,7 +730,7 @@ struct AetherialWheel uint8_t grade; uint8_t hoursRequired; - AetherialWheel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AetherialWheel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Aetheryte @@ -753,35 +753,35 @@ struct Aetheryte int16_t aetherstreamX; int16_t aetherstreamY; - Aetheryte( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Aetheryte( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AetheryteSystemDefine { std::string text; - AetheryteSystemDefine( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AetheryteSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AirshipExplorationLevel { uint32_t expToNext; - AirshipExplorationLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AirshipExplorationLevel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AirshipExplorationLog { std::string text; - AirshipExplorationLog( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AirshipExplorationLog( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AirshipExplorationParamType { std::string name; - AirshipExplorationParamType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AirshipExplorationParamType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AirshipExplorationPart @@ -795,7 +795,7 @@ struct AirshipExplorationPart int16_t favor; uint8_t repairMaterials; - AirshipExplorationPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AirshipExplorationPart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AirshipExplorationPoint @@ -808,7 +808,7 @@ struct AirshipExplorationPoint uint8_t requiredSurveillance; uint32_t expReward; - AirshipExplorationPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AirshipExplorationPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeapon5 @@ -817,7 +817,7 @@ struct AnimaWeapon5 uint8_t secondaryStatTotal; std::vector< uint8_t > parameter; - AnimaWeapon5( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeapon5( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeapon5Param @@ -825,21 +825,21 @@ struct AnimaWeapon5Param uint8_t baseParam; std::string name; - AnimaWeapon5Param( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeapon5Param( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeapon5PatternGroup { std::string name; - AnimaWeapon5PatternGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeapon5PatternGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeapon5SpiritTalk { int32_t dialogue; - AnimaWeapon5SpiritTalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + AnimaWeapon5SpiritTalk( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeapon5SpiritTalkParam @@ -847,7 +847,7 @@ struct AnimaWeapon5SpiritTalkParam std::string prologue; std::string epilogue; - AnimaWeapon5SpiritTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeapon5SpiritTalkParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeapon5TradeItem @@ -856,14 +856,14 @@ struct AnimaWeapon5TradeItem uint8_t qty; uint8_t category; - AnimaWeapon5TradeItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeapon5TradeItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeaponFUITalk { int32_t dialogue; - AnimaWeaponFUITalk( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + AnimaWeaponFUITalk( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeaponFUITalkParam @@ -871,7 +871,7 @@ struct AnimaWeaponFUITalkParam std::string prologue; std::string epilogue; - AnimaWeaponFUITalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeaponFUITalkParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeaponIcon @@ -882,14 +882,14 @@ struct AnimaWeaponIcon int32_t zodiac; int32_t zodiacLux; - AnimaWeaponIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeaponIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AnimaWeaponItem { std::vector< uint32_t > item; - AnimaWeaponItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AnimaWeaponItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AquariumFish @@ -898,42 +898,42 @@ struct AquariumFish uint8_t size; uint32_t item; - AquariumFish( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AquariumFish( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AquariumWater { std::string name; - AquariumWater( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AquariumWater( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ArrayEventHandler { std::vector< uint32_t > data; - ArrayEventHandler( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ArrayEventHandler( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct AttackType { std::string name; - AttackType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + AttackType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BacklightColor { uint32_t color; - BacklightColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BacklightColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Balloon { std::string dialogue; - Balloon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Balloon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BaseParam @@ -961,7 +961,7 @@ struct BaseParam uint8_t chestLegsGloves; uint8_t chestLegsFeet; - BaseParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BaseParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BattleLeve @@ -972,7 +972,7 @@ struct BattleLeve std::vector< uint8_t > itemsInvolvedQty; std::vector< uint8_t > itemDropRate; - BattleLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BattleLeve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BeastRankBonus @@ -980,7 +980,7 @@ struct BeastRankBonus uint32_t item; std::vector< uint8_t > itemQuantity; - BeastRankBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BeastRankBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BeastReputationRank @@ -988,7 +988,7 @@ struct BeastReputationRank uint16_t requiredReputation; std::string name; - BeastReputationRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BeastReputationRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BeastTribe @@ -1006,28 +1006,28 @@ struct BeastTribe std::string name; std::string nameRelation; - BeastTribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BeastTribe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Behavior { uint16_t balloon; - Behavior( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + Behavior( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BGM { std::string file; - BGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BGM( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BGMFade { int32_t bGMFadeType; - BGMFade( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BGMFade( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BGMSituation @@ -1037,7 +1037,7 @@ struct BGMSituation uint16_t bGMBattle; uint16_t bGMField; - BGMSituation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BGMSituation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BGMSwitch @@ -1045,21 +1045,21 @@ struct BGMSwitch uint8_t bGMSystemDefine; uint32_t quest; - BGMSwitch( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + BGMSwitch( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BGMSystemDefine { float define; - BGMSystemDefine( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BGMSystemDefine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BNpcAnnounceIcon { uint32_t icon; - BNpcAnnounceIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BNpcAnnounceIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BNpcBase @@ -1073,7 +1073,7 @@ struct BNpcBase int32_t arrayEventHandler; uint8_t bNpcParts; - BNpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BNpcBase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BNpcCustomize @@ -1105,7 +1105,7 @@ struct BNpcCustomize uint8_t facePaint; uint8_t facePaintColor; - BNpcCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BNpcCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BNpcName @@ -1118,7 +1118,7 @@ struct BNpcName int8_t pronoun; int8_t article; - BNpcName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BNpcName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BNpcParts @@ -1154,7 +1154,7 @@ struct BNpcParts float z5; float scale5; - BNpcParts( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BNpcParts( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Buddy @@ -1166,7 +1166,7 @@ struct Buddy std::string soundEffect2; std::string soundEffect1; - Buddy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Buddy( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BuddyAction @@ -1176,7 +1176,7 @@ struct BuddyAction int32_t icon; int32_t iconStatus; - BuddyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BuddyAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BuddyEquip @@ -1197,21 +1197,21 @@ struct BuddyEquip uint16_t iconBody; uint16_t iconLegs; - BuddyEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BuddyEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BuddyItem { uint16_t item; - BuddyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BuddyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BuddyRank { uint32_t expRequired; - BuddyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BuddyRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct BuddySkill @@ -1222,7 +1222,7 @@ struct BuddySkill uint16_t attacker; uint16_t healer; - BuddySkill( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + BuddySkill( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Cabinet @@ -1231,7 +1231,7 @@ struct Cabinet uint16_t order; uint8_t category; - Cabinet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Cabinet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CabinetCategory @@ -1240,7 +1240,7 @@ struct CabinetCategory int32_t icon; int32_t category; - CabinetCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CabinetCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Calendar @@ -1248,7 +1248,7 @@ struct Calendar std::vector< uint8_t > month; std::vector< uint8_t > day; - Calendar( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Calendar( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CharaMakeCustomize @@ -1257,7 +1257,7 @@ struct CharaMakeCustomize uint16_t data; bool isPurchasable; - CharaMakeCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CharaMakeCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CharaMakeType @@ -1267,7 +1267,7 @@ struct CharaMakeType int8_t gender; std::vector< int32_t > facialFeatureIcon; - CharaMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CharaMakeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRace @@ -1275,7 +1275,7 @@ struct ChocoboRace uint8_t chocoboRaceRank; uint8_t chocoboRaceTerritory; - ChocoboRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceAbility @@ -1286,14 +1286,14 @@ struct ChocoboRaceAbility int8_t chocoboRaceAbilityType; uint8_t value; - ChocoboRaceAbility( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceAbility( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceAbilityType { bool isActive; - ChocoboRaceAbilityType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceAbilityType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceItem @@ -1302,7 +1302,7 @@ struct ChocoboRaceItem std::string description; uint32_t icon; - ChocoboRaceItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceRank @@ -1313,14 +1313,14 @@ struct ChocoboRaceRank uint16_t fee; int32_t icon; - ChocoboRaceRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceStatus { int32_t status; - ChocoboRaceStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceTerritory @@ -1328,14 +1328,14 @@ struct ChocoboRaceTerritory uint16_t name; int32_t icon; - ChocoboRaceTerritory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceTerritory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceTutorial { std::vector< int32_t > npcYell; - ChocoboRaceTutorial( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceTutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboRaceWeather @@ -1343,21 +1343,21 @@ struct ChocoboRaceWeather int32_t weatherType1; int32_t weatherType2; - ChocoboRaceWeather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboRaceWeather( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboTaxi { uint32_t location; - ChocoboTaxi( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboTaxi( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ChocoboTaxiStand { std::string placeName; - ChocoboTaxiStand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ChocoboTaxiStand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ClassJob @@ -1386,7 +1386,7 @@ struct ClassJob uint32_t prerequisite; uint8_t startingLevel; - ClassJob( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ClassJob( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ClassJobCategory @@ -1429,7 +1429,7 @@ struct ClassJobCategory bool sAM; bool rDM; - ClassJobCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ClassJobCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Companion @@ -1450,14 +1450,14 @@ struct Companion uint8_t skillCost; uint8_t minionRace; - Companion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Companion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanionMove { std::string name; - CompanionMove( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanionMove( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanionTransient @@ -1477,7 +1477,7 @@ struct CompanionTransient bool strengthArcana; uint8_t minionSkillType; - CompanionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyAction @@ -1490,7 +1490,7 @@ struct CompanyAction uint8_t order; bool purchasable; - CompanyAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftDraft @@ -1499,21 +1499,21 @@ struct CompanyCraftDraft uint8_t companyCraftDraftCategory; uint32_t order; - CompanyCraftDraft( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftDraft( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftDraftCategory { std::string name; - CompanyCraftDraftCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftDraftCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftManufactoryState { std::string name; - CompanyCraftManufactoryState( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftManufactoryState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftPart @@ -1521,13 +1521,13 @@ struct CompanyCraftPart uint8_t companyCraftType; std::vector< uint16_t > companyCraftProcess; - CompanyCraftPart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftPart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftProcess { - CompanyCraftProcess( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftProcess( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftSequence @@ -1538,21 +1538,21 @@ struct CompanyCraftSequence int32_t companyCraftDraft; std::vector< uint16_t > companyCraftPart; - CompanyCraftSequence( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftSequence( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftSupplyItem { uint32_t item; - CompanyCraftSupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftSupplyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompanyCraftType { std::string name; - CompanyCraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompanyCraftType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompleteJournal @@ -1562,7 +1562,7 @@ struct CompleteJournal std::string name; std::vector< int32_t > cutscene; - CompleteJournal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompleteJournal( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CompleteJournalCategory @@ -1570,7 +1570,7 @@ struct CompleteJournalCategory uint32_t firstQuest; uint32_t lastQuest; - CompleteJournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CompleteJournalCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentCloseCycle @@ -1578,7 +1578,7 @@ struct ContentCloseCycle uint32_t unixtime; uint32_t timeSeconds; - ContentCloseCycle( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentCloseCycle( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentExAction @@ -1586,7 +1586,7 @@ struct ContentExAction uint32_t name; uint8_t charges; - ContentExAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentExAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentFinderCondition @@ -1607,14 +1607,14 @@ struct ContentFinderCondition uint8_t transient; uint32_t image; - ContentFinderCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentFinderCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentFinderConditionTransient { std::string description; - ContentFinderConditionTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentGauge @@ -1623,7 +1623,7 @@ struct ContentGauge uint8_t color; std::string textString; - ContentGauge( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentGauge( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentGaugeColor @@ -1632,7 +1632,7 @@ struct ContentGaugeColor uint32_t androidColor2; uint32_t androidColor3; - ContentGaugeColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentGaugeColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentMemberType @@ -1642,14 +1642,14 @@ struct ContentMemberType uint8_t meleesPerParty; uint8_t rangedPerParty; - ContentMemberType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentMemberType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentNpcTalk { std::vector< uint32_t > contentTalk; - ContentNpcTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentNpcTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentRoulette @@ -1672,14 +1672,14 @@ struct ContentRoulette uint8_t contentRouletteOpenRule; uint16_t instanceContent; - ContentRoulette( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentRoulette( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentRouletteOpenRule { uint32_t type; - ContentRouletteOpenRule( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentRouletteOpenRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentRouletteRoleBonus @@ -1687,7 +1687,7 @@ struct ContentRouletteRoleBonus uint32_t itemRewardType; uint8_t rewardAmount; - ContentRouletteRoleBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentRouletteRoleBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentsNote @@ -1703,7 +1703,7 @@ struct ContentsNote std::string description; int32_t expCap; - ContentsNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentsNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentTalk @@ -1711,7 +1711,7 @@ struct ContentTalk uint8_t contentTalkParam; std::string text; - ContentTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentTalkParam @@ -1719,7 +1719,7 @@ struct ContentTalkParam bool param; uint32_t testAction; - ContentTalkParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentTalkParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ContentType @@ -1728,7 +1728,7 @@ struct ContentType uint32_t icon; uint32_t iconDutyFinder; - ContentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ContentType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CraftAction @@ -1753,7 +1753,7 @@ struct CraftAction int32_t aLC; int32_t cUL; - CraftAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CraftAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CraftLeve @@ -1762,14 +1762,14 @@ struct CraftLeve int32_t craftLeveTalk; uint8_t repeats; - CraftLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CraftLeve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CraftType { std::string name; - CraftType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CraftType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Credit @@ -1785,14 +1785,14 @@ struct Credit uint16_t frenchCast2; uint16_t germanCast2; - Credit( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + Credit( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CreditCast { std::string name; - CreditCast( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CreditCast( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Currency @@ -1800,7 +1800,7 @@ struct Currency uint32_t item; uint32_t limit; - Currency( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Currency( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CustomTalk @@ -1812,34 +1812,34 @@ struct CustomTalk std::vector< uint32_t > scriptArg; bool text; - CustomTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CustomTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Cutscene { std::string path; - Cutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Cutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct CutScreenImage { int32_t image; - CutScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + CutScreenImage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DailySupplyItem { - DailySupplyItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DailySupplyItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeon { std::string name; - DeepDungeon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonBan @@ -1848,7 +1848,7 @@ struct DeepDungeonBan uint16_t logMessage; uint16_t name; - DeepDungeonBan( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonBan( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonDanger @@ -1857,7 +1857,7 @@ struct DeepDungeonDanger uint16_t logMessage; uint16_t name; - DeepDungeonDanger( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonDanger( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonEquipment @@ -1873,7 +1873,7 @@ struct DeepDungeonEquipment std::string name; std::string description; - DeepDungeonEquipment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonEquipment( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonFloorEffectUI @@ -1882,7 +1882,7 @@ struct DeepDungeonFloorEffectUI std::string name; std::string description; - DeepDungeonFloorEffectUI( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonFloorEffectUI( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonItem @@ -1899,14 +1899,14 @@ struct DeepDungeonItem std::string tooltip; uint32_t action; - DeepDungeonItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonLayer { uint8_t deepDungeon; - DeepDungeonLayer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonLayer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonMagicStone @@ -1922,21 +1922,21 @@ struct DeepDungeonMagicStone std::string name; std::string tooltip; - DeepDungeonMagicStone( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonMagicStone( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonMap5X { std::vector< uint16_t > deepDungeonRoom; - DeepDungeonMap5X( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonMap5X( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonRoom { std::vector< uint32_t > level; - DeepDungeonRoom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonRoom( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeepDungeonStatus @@ -1945,7 +1945,7 @@ struct DeepDungeonStatus uint16_t logMessage; uint16_t name; - DeepDungeonStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeepDungeonStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DefaultTalk @@ -1953,35 +1953,35 @@ struct DefaultTalk std::vector< uint16_t > actionTimelinePose; std::vector< std::string > text; - DefaultTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DefaultTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DefaultTalkLipSyncType { int32_t actionTimeline; - DefaultTalkLipSyncType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DefaultTalkLipSyncType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DeliveryQuest { int32_t quest; - DeliveryQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DeliveryQuest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DisposalShop { std::string shopName; - DisposalShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DisposalShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DisposalShopFilterType { std::string category; - DisposalShopFilterType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DisposalShopFilterType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DisposalShopItem @@ -1990,7 +1990,7 @@ struct DisposalShopItem int32_t itemReceived; uint32_t quantityReceived; - DisposalShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + DisposalShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DpsChallenge @@ -2002,7 +2002,7 @@ struct DpsChallenge std::string name; std::string description; - DpsChallenge( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DpsChallenge( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DpsChallengeOfficer @@ -2010,14 +2010,14 @@ struct DpsChallengeOfficer uint32_t unlockQuest; std::vector< uint16_t > challengeName; - DpsChallengeOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DpsChallengeOfficer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct DpsChallengeTransient { uint16_t instanceContent; - DpsChallengeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + DpsChallengeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Emote @@ -2034,14 +2034,14 @@ struct Emote uint16_t logMessageUntargeted; uint32_t unlockLink; - Emote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Emote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EmoteCategory { std::string name; - EmoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EmoteCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ENpcBase @@ -2102,7 +2102,7 @@ struct ENpcBase uint8_t dyeRightRing; uint16_t balloon; - ENpcBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ENpcBase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ENpcResident @@ -2117,7 +2117,7 @@ struct ENpcResident std::string title; uint8_t map; - ENpcResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ENpcResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EObj @@ -2125,7 +2125,7 @@ struct EObj uint32_t data; uint16_t sgbPath; - EObj( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EObj( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EObjName @@ -2138,7 +2138,7 @@ struct EObjName int8_t pronoun; int8_t article; - EObjName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EObjName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EquipRaceCategory @@ -2152,7 +2152,7 @@ struct EquipRaceCategory bool male; bool female; - EquipRaceCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EquipRaceCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EquipSlotCategory @@ -2172,7 +2172,7 @@ struct EquipSlotCategory int8_t fingerR; int8_t soulCrystal; - EquipSlotCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EquipSlotCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaAetherItem @@ -2186,28 +2186,28 @@ struct EurekaAetherItem int8_t article; std::string name; - EurekaAetherItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaAetherItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaAethernet { uint16_t location; - EurekaAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaAethernet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaGrowData { uint16_t baseResistance; - EurekaGrowData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaGrowData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaLogosMixerProbability { uint8_t probability; - EurekaLogosMixerProbability( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaLogosMixerProbability( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaMagiaAction @@ -2215,7 +2215,7 @@ struct EurekaMagiaAction uint32_t action; uint8_t maxUses; - EurekaMagiaAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaMagiaAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaMagiciteItem @@ -2224,21 +2224,21 @@ struct EurekaMagiciteItem uint8_t classJobCategory; uint32_t item; - EurekaMagiciteItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaMagiciteItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaMagiciteItemType { std::string type; - EurekaMagiciteItemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaMagiciteItemType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EurekaSphereElementAdjust { uint16_t powerModifier; - EurekaSphereElementAdjust( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EurekaSphereElementAdjust( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EventAction @@ -2248,14 +2248,14 @@ struct EventAction uint8_t castTime; std::vector< uint16_t > animation; - EventAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EventAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EventIconPriority { std::vector< uint32_t > icon; - EventIconPriority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EventIconPriority( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EventIconType @@ -2266,7 +2266,7 @@ struct EventIconType uint32_t mapIconInvalid; uint8_t iconRange; - EventIconType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EventIconType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EventItem @@ -2285,42 +2285,42 @@ struct EventItem uint32_t quest; uint8_t castTime; - EventItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EventItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EventItemCastTimeline { uint32_t actionTimeline; - EventItemCastTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EventItemCastTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EventItemHelp { std::string description; - EventItemHelp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EventItemHelp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct EventItemTimeline { uint32_t actionTimeline; - EventItemTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + EventItemTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ExportedSG { std::string sgbPath; - ExportedSG( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ExportedSG( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ExVersion { std::string name; - ExVersion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ExVersion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Fate @@ -2340,7 +2340,7 @@ struct Fate std::vector< std::string > statusText; uint32_t arrayIndex; - Fate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Fate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCActivity @@ -2348,14 +2348,14 @@ struct FCActivity std::string text; uint8_t fCActivityCategory; - FCActivity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCActivity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCActivityCategory { std::string name; - FCActivityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCActivityCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCAuthority @@ -2363,42 +2363,42 @@ struct FCAuthority std::string name; int32_t fCAuthorityCategory; - FCAuthority( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCAuthority( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCAuthorityCategory { std::string name; - FCAuthorityCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCAuthorityCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCChestName { std::string name; - FCChestName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCChestName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FccShop { std::string name; - FccShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FccShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCHierarchy { std::string name; - FCHierarchy( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCHierarchy( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCProfile { std::string name; - FCProfile( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCProfile( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCReputation @@ -2407,7 +2407,7 @@ struct FCReputation uint32_t requiredPoints; std::string name; - FCReputation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCReputation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FCRights @@ -2417,14 +2417,14 @@ struct FCRights uint16_t icon; uint8_t fCRank; - FCRights( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FCRights( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Festival { std::string name; - Festival( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Festival( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FieldMarker @@ -2432,21 +2432,21 @@ struct FieldMarker int32_t vFX; uint16_t icon; - FieldMarker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FieldMarker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FishingRecordType { int32_t addon; - FishingRecordType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FishingRecordType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FishingRecordTypeTransient { int32_t image; - FishingRecordTypeTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FishingRecordTypeTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FishingSpot @@ -2462,7 +2462,7 @@ struct FishingSpot std::vector< int32_t > item; uint16_t placeName; - FishingSpot( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FishingSpot( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct FishParameter @@ -2478,7 +2478,7 @@ struct FishParameter bool weatherRestricted; uint16_t gatheringSubCategory; - FishParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + FishParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Frontline03 @@ -2488,7 +2488,7 @@ struct Frontline03 std::vector< uint32_t > twinAdderIcon; std::vector< uint32_t > immortalFlamesIcon; - Frontline03( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Frontline03( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Frontline04 @@ -2498,7 +2498,7 @@ struct Frontline04 int32_t level3; std::vector< int32_t > unknownLevel; - Frontline04( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Frontline04( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GardeningSeed @@ -2506,21 +2506,21 @@ struct GardeningSeed uint32_t item; uint32_t icon; - GardeningSeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GardeningSeed( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringCondition { std::string text; - GatheringCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringExp { uint16_t exp; - GatheringExp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringExp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringItem @@ -2529,7 +2529,7 @@ struct GatheringItem uint16_t gatheringItemLevel; bool isHidden; - GatheringItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringItemLevelConvertTable @@ -2537,14 +2537,14 @@ struct GatheringItemLevelConvertTable uint8_t gatheringItemLevel; uint8_t stars; - GatheringItemLevelConvertTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringItemLevelConvertTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringItemPoint { uint32_t gatheringPoint; - GatheringItemPoint( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + GatheringItemPoint( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringLeve @@ -2553,20 +2553,20 @@ struct GatheringLeve uint8_t leveLevel; int32_t requiredItem2; - GatheringLeve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringLeve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringLeveRoute { - GatheringLeveRoute( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringLeveRoute( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringNotebookList { std::vector< int32_t > gatheringItem; - GatheringNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringPoint @@ -2577,7 +2577,7 @@ struct GatheringPoint uint16_t placeName; uint16_t gatheringSubCategory; - GatheringPoint( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringPoint( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringPointBase @@ -2587,7 +2587,7 @@ struct GatheringPointBase std::vector< int32_t > item; bool isLimited; - GatheringPointBase( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringPointBase( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringPointBonus @@ -2597,14 +2597,14 @@ struct GatheringPointBonus uint8_t bonusType; uint16_t bonusValue; - GatheringPointBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringPointBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringPointBonusType { std::string text; - GatheringPointBonusType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringPointBonusType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringPointName @@ -2617,7 +2617,7 @@ struct GatheringPointName int8_t pronoun; int8_t article; - GatheringPointName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringPointName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringSubCategory @@ -2625,7 +2625,7 @@ struct GatheringSubCategory int32_t item; std::string folkloreBook; - GatheringSubCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringSubCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GatheringType @@ -2634,7 +2634,7 @@ struct GatheringType int32_t iconMain; int32_t iconOff; - GatheringType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GatheringType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GcArmyCaptureTactics @@ -2646,7 +2646,7 @@ struct GcArmyCaptureTactics uint32_t tactic; uint32_t icon; - GcArmyCaptureTactics( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GcArmyCaptureTactics( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GcArmyExpedition @@ -2661,7 +2661,7 @@ struct GcArmyExpedition std::string name; std::string description; - GcArmyExpedition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GcArmyExpedition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GcArmyExpeditionMemberBonus @@ -2669,14 +2669,14 @@ struct GcArmyExpeditionMemberBonus uint8_t race; uint8_t classJob; - GcArmyExpeditionMemberBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GcArmyExpeditionMemberBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GcArmyExpeditionType { std::string name; - GcArmyExpeditionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GcArmyExpeditionType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GcArmyMemberGrow @@ -2684,7 +2684,7 @@ struct GcArmyMemberGrow uint8_t classJob; int32_t classBook; - GcArmyMemberGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GcArmyMemberGrow( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GcArmyTraining @@ -2696,7 +2696,7 @@ struct GcArmyTraining std::string name; std::string description; - GcArmyTraining( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GcArmyTraining( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCRankGridaniaFemaleText @@ -2710,7 +2710,7 @@ struct GCRankGridaniaFemaleText int8_t article; std::string nameRank; - GCRankGridaniaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCRankGridaniaFemaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCRankGridaniaMaleText @@ -2724,7 +2724,7 @@ struct GCRankGridaniaMaleText int8_t article; std::string nameRank; - GCRankGridaniaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCRankGridaniaMaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCRankLimsaFemaleText @@ -2738,7 +2738,7 @@ struct GCRankLimsaFemaleText int8_t article; std::string nameRank; - GCRankLimsaFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCRankLimsaFemaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCRankLimsaMaleText @@ -2752,7 +2752,7 @@ struct GCRankLimsaMaleText int8_t article; std::string nameRank; - GCRankLimsaMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCRankLimsaMaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCRankUldahFemaleText @@ -2766,7 +2766,7 @@ struct GCRankUldahFemaleText int8_t article; std::string nameRank; - GCRankUldahFemaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCRankUldahFemaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCRankUldahMaleText @@ -2780,7 +2780,7 @@ struct GCRankUldahMaleText int8_t article; std::string nameRank; - GCRankUldahMaleText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCRankUldahMaleText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCScripShopCategory @@ -2789,7 +2789,7 @@ struct GCScripShopCategory int8_t tier; int8_t subCategory; - GCScripShopCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCScripShopCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCScripShopItem @@ -2799,27 +2799,27 @@ struct GCScripShopItem uint32_t costGCSeals; uint8_t sortKey; - GCScripShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + GCScripShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCShop { int8_t grandCompany; - GCShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCShopItemCategory { std::string name; - GCShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCSupplyDuty { - GCSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCSupplyDuty( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GCSupplyDutyReward @@ -2830,7 +2830,7 @@ struct GCSupplyDutyReward uint32_t sealsSupply; uint32_t sealsProvisioning; - GCSupplyDutyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GCSupplyDutyReward( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GeneralAction @@ -2841,35 +2841,35 @@ struct GeneralAction uint16_t unlockLink; int32_t icon; - GeneralAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GeneralAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GFATE { std::vector< uint32_t > icon; - GFATE( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GFATE( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GFateClimbing2 { uint32_t contentEntry; - GFateClimbing2( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GFateClimbing2( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GFateClimbing2Content { uint32_t publicContentTextData; - GFateClimbing2Content( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GFateClimbing2Content( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GFateClimbing2TotemType { uint32_t publicContentTextData; - GFateClimbing2TotemType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GFateClimbing2TotemType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GilShop @@ -2880,7 +2880,7 @@ struct GilShop int32_t acceptTalk; int32_t failTalk; - GilShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GilShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GilShopItem @@ -2890,7 +2890,7 @@ struct GilShopItem uint16_t stateRequired; uint16_t patch; - GilShopItem( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + GilShopItem( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GoldSaucerArcadeMachine @@ -2901,21 +2901,21 @@ struct GoldSaucerArcadeMachine uint32_t great; uint32_t excellent; - GoldSaucerArcadeMachine( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GoldSaucerArcadeMachine( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GoldSaucerTextData { std::string text; - GoldSaucerTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GoldSaucerTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GrandCompany { std::string name; - GrandCompany( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GrandCompany( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GrandCompanyRank @@ -2931,7 +2931,7 @@ struct GrandCompanyRank int32_t questSerpents; int32_t questFlames; - GrandCompanyRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GrandCompanyRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GuardianDeity @@ -2940,7 +2940,7 @@ struct GuardianDeity std::string description; uint16_t icon; - GuardianDeity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GuardianDeity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GuildleveAssignment @@ -2948,26 +2948,26 @@ struct GuildleveAssignment uint32_t assignmentTalk; std::vector< uint32_t > quest; - GuildleveAssignment( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GuildleveAssignment( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GuildleveAssignmentCategory { std::vector< int32_t > category; - GuildleveAssignmentCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GuildleveAssignmentCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GuildOrderGuide { - GuildOrderGuide( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GuildOrderGuide( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct GuildOrderOfficer { - GuildOrderOfficer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + GuildOrderOfficer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HairMakeType @@ -2976,14 +2976,14 @@ struct HairMakeType int32_t tribe; int8_t gender; - HairMakeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HairMakeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HouseRetainerPose { uint16_t actionTimeline; - HouseRetainerPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HouseRetainerPose( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingAethernet @@ -2993,7 +2993,7 @@ struct HousingAethernet uint16_t placeName; uint8_t order; - HousingAethernet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingAethernet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingAppeal @@ -3002,7 +3002,7 @@ struct HousingAppeal uint32_t icon; uint8_t order; - HousingAppeal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingAppeal( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingEmploymentNpcList @@ -3010,14 +3010,14 @@ struct HousingEmploymentNpcList uint8_t race; std::vector< uint32_t > eNpcBase; - HousingEmploymentNpcList( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + HousingEmploymentNpcList( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingEmploymentNpcRace { std::string race; - HousingEmploymentNpcRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingEmploymentNpcRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingExterior @@ -3026,7 +3026,7 @@ struct HousingExterior uint8_t housingSize; std::string model; - HousingExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingExterior( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingFurniture @@ -3042,14 +3042,14 @@ struct HousingFurniture bool destroyOnRemoval; bool tooltip; - HousingFurniture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingFurniture( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingMapMarkerInfo { uint16_t map; - HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingMerchantPose @@ -3057,7 +3057,7 @@ struct HousingMerchantPose uint16_t actionTimeline; std::string pose; - HousingMerchantPose( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingMerchantPose( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingLandSet @@ -3066,14 +3066,14 @@ struct HousingLandSet std::vector< uint32_t > minPrice; std::vector< uint32_t > initialPrice; - HousingLandSet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingLandSet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingPlacement { std::string text; - HousingPlacement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingPlacement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingPreset @@ -3102,14 +3102,14 @@ struct HousingPreset int32_t basementLighting; int32_t mansionLighting; - HousingPreset( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingPreset( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingUnitedExterior { std::vector< uint32_t > item; - HousingUnitedExterior( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingUnitedExterior( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HousingYardObject @@ -3123,7 +3123,7 @@ struct HousingYardObject uint32_t item; bool destroyOnRemoval; - HousingYardObject( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HousingYardObject( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HowTo @@ -3131,21 +3131,21 @@ struct HowTo std::vector< int16_t > images; int8_t category; - HowTo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HowTo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HowToCategory { std::string category; - HowToCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HowToCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct HowToPage { int32_t image; - HowToPage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + HowToPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct InstanceContent @@ -3175,7 +3175,7 @@ struct InstanceContent uint32_t reqInstance; uint8_t partyCondition; - InstanceContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + InstanceContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct InstanceContentBuff @@ -3183,14 +3183,14 @@ struct InstanceContentBuff uint16_t echoStart; uint16_t echoDeath; - InstanceContentBuff( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + InstanceContentBuff( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct InstanceContentTextData { std::string text; - InstanceContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + InstanceContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Item @@ -3254,7 +3254,7 @@ struct Item bool isPvP; bool isGlamourous; - Item( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ItemAction @@ -3263,13 +3263,13 @@ struct ItemAction std::vector< uint16_t > data; std::vector< uint16_t > dataHQ; - ItemAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ItemAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ItemFood { - ItemFood( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ItemFood( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ItemLevel @@ -3348,7 +3348,7 @@ struct ItemLevel uint16_t gathering; uint16_t perception; - ItemLevel( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ItemLevel( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ItemSearchCategory @@ -3359,21 +3359,21 @@ struct ItemSearchCategory uint8_t order; int8_t classJob; - ItemSearchCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ItemSearchCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ItemSeries { std::string name; - ItemSeries( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ItemSeries( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ItemSpecialBonus { std::string name; - ItemSpecialBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ItemSpecialBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ItemUICategory @@ -3383,7 +3383,7 @@ struct ItemUICategory uint8_t orderMinor; uint8_t orderMajor; - ItemUICategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ItemUICategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct JournalCategory @@ -3391,7 +3391,7 @@ struct JournalCategory std::string name; uint8_t journalSection; - JournalCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + JournalCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct JournalGenre @@ -3400,14 +3400,14 @@ struct JournalGenre uint8_t journalCategory; std::string name; - JournalGenre( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + JournalGenre( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct JournalSection { std::string name; - JournalSection( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + JournalSection( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Leve @@ -3435,7 +3435,7 @@ struct Leve uint32_t levelStart; uint16_t bGM; - Leve( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Leve( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LeveAssignmentType @@ -3444,14 +3444,14 @@ struct LeveAssignmentType int32_t icon; std::string name; - LeveAssignmentType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LeveAssignmentType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LeveClient { std::string name; - LeveClient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LeveClient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Level @@ -3467,19 +3467,19 @@ struct Level uint32_t eventId; uint16_t territory; - Level( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Level( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LeveRewardItem { - LeveRewardItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LeveRewardItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LeveRewardItemGroup { - LeveRewardItemGroup( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LeveRewardItemGroup( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LeveVfx @@ -3487,7 +3487,7 @@ struct LeveVfx std::string effect; int32_t icon; - LeveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LeveVfx( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LogFilter @@ -3496,7 +3496,7 @@ struct LogFilter std::string name; std::string example; - LogFilter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LogFilter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LogKind @@ -3506,14 +3506,14 @@ struct LogKind std::string example; uint8_t logKindCategoryText; - LogKind( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LogKind( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LogKindCategoryText { std::string text; - LogKindCategoryText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LogKindCategoryText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LogMessage @@ -3521,7 +3521,7 @@ struct LogMessage uint16_t logKind; std::string text; - LogMessage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LogMessage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct LotteryExchangeShop @@ -3529,14 +3529,14 @@ struct LotteryExchangeShop std::vector< int32_t > itemAccepted; std::vector< uint32_t > amountAccepted; - LotteryExchangeShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + LotteryExchangeShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MacroIcon { int32_t icon; - MacroIcon( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MacroIcon( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MacroIconRedirectOld @@ -3544,7 +3544,7 @@ struct MacroIconRedirectOld uint32_t iconOld; int32_t iconNew; - MacroIconRedirectOld( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MacroIconRedirectOld( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MainCommand @@ -3554,14 +3554,14 @@ struct MainCommand std::string name; std::string description; - MainCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MainCommand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MainCommandCategory { std::string name; - MainCommandCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MainCommandCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ManeuversArmor @@ -3569,7 +3569,7 @@ struct ManeuversArmor std::vector< uint32_t > bNpcBase; std::vector< uint32_t > icon; - ManeuversArmor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ManeuversArmor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Map @@ -3587,7 +3587,7 @@ struct Map uint16_t territoryType; bool discoveryArrayByte; - Map( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Map( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MapMarker @@ -3602,14 +3602,14 @@ struct MapMarker uint8_t dataType; uint16_t dataKey; - MapMarker( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + MapMarker( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MapMarkerRegion { int16_t x; - MapMarkerRegion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MapMarkerRegion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MapSymbol @@ -3617,7 +3617,7 @@ struct MapSymbol int32_t icon; int32_t placeName; - MapSymbol( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MapSymbol( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Marker @@ -3625,7 +3625,7 @@ struct Marker int32_t icon; std::string name; - Marker( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Marker( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MasterpieceSupplyDuty @@ -3634,7 +3634,7 @@ struct MasterpieceSupplyDuty uint8_t classJobLevel; uint16_t rewardCurrency; - MasterpieceSupplyDuty( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MasterpieceSupplyDuty( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MasterpieceSupplyMultiplier @@ -3642,7 +3642,7 @@ struct MasterpieceSupplyMultiplier std::vector< uint16_t > xpMultiplier; std::vector< uint16_t > currencyMultiplier; - MasterpieceSupplyMultiplier( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MasterpieceSupplyMultiplier( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Materia @@ -3651,7 +3651,7 @@ struct Materia uint8_t baseParam; std::vector< uint8_t > value; - Materia( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Materia( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MiniGameRA @@ -3659,14 +3659,14 @@ struct MiniGameRA int32_t icon; int32_t bGM; - MiniGameRA( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MiniGameRA( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MinionRace { std::string name; - MinionRace( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MinionRace( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MinionRules @@ -3674,14 +3674,14 @@ struct MinionRules std::string rule; std::string description; - MinionRules( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MinionRules( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MinionSkillType { std::string name; - MinionSkillType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MinionSkillType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MobHuntOrderType @@ -3689,7 +3689,7 @@ struct MobHuntOrderType uint32_t quest; uint32_t eventItem; - MobHuntOrderType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MobHuntOrderType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MobHuntTarget @@ -3700,7 +3700,7 @@ struct MobHuntTarget uint16_t territoryType; uint16_t placeName; - MobHuntTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MobHuntTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ModelChara @@ -3710,7 +3710,7 @@ struct ModelChara uint8_t base; uint8_t variant; - ModelChara( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ModelChara( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ModelState @@ -3718,7 +3718,7 @@ struct ModelState uint16_t start; uint16_t end; - ModelState( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ModelState( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MonsterNote @@ -3728,7 +3728,7 @@ struct MonsterNote uint32_t reward; std::string name; - MonsterNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MonsterNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MonsterNoteTarget @@ -3736,7 +3736,7 @@ struct MonsterNoteTarget uint16_t bNpcName; int32_t icon; - MonsterNoteTarget( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MonsterNoteTarget( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Mount @@ -3761,14 +3761,14 @@ struct Mount bool useEP; bool isImmobile; - Mount( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Mount( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MountAction { std::vector< uint16_t > action; - MountAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MountAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MountCustomize @@ -3798,21 +3798,21 @@ struct MountCustomize uint8_t auRaMaleCameraHeight; uint8_t auRaFemaleCameraHeight; - MountCustomize( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MountCustomize( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MountFlyingCondition { uint32_t quest; - MountFlyingCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MountFlyingCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MountSpeed { uint32_t quest; - MountSpeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MountSpeed( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MountTransient @@ -3821,7 +3821,7 @@ struct MountTransient std::string descriptionEnhanced; std::string tooltip; - MountTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MountTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MoveTimeline @@ -3837,7 +3837,7 @@ struct MoveTimeline uint16_t moveTurnRight; uint16_t extra; - MoveTimeline( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MoveTimeline( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct MoveVfx @@ -3845,7 +3845,7 @@ struct MoveVfx uint16_t vFXNormal; uint16_t vFXWalking; - MoveVfx( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + MoveVfx( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct NpcEquip @@ -3876,21 +3876,21 @@ struct NpcEquip uint32_t modelRightRing; uint8_t dyeRightRing; - NpcEquip( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + NpcEquip( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct NpcYell { std::string text; - NpcYell( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + NpcYell( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Omen { std::string fileName; - Omen( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Omen( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct OnlineStatus @@ -3899,7 +3899,7 @@ struct OnlineStatus std::string name; uint32_t icon; - OnlineStatus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + OnlineStatus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Opening @@ -3907,7 +3907,7 @@ struct Opening std::string name; uint32_t quest; - Opening( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Opening( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Orchestrion @@ -3915,21 +3915,21 @@ struct Orchestrion std::string name; std::string description; - Orchestrion( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Orchestrion( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct OrchestrionCategory { std::string name; - OrchestrionCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + OrchestrionCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct OrchestrionPath { std::string file; - OrchestrionPath( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + OrchestrionPath( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct OrchestrionUiparam @@ -3937,7 +3937,7 @@ struct OrchestrionUiparam uint8_t orchestrionCategory; uint16_t order; - OrchestrionUiparam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + OrchestrionUiparam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ParamGrow @@ -3951,7 +3951,7 @@ struct ParamGrow uint16_t hpModifier; int32_t huntingLogExpReward; - ParamGrow( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ParamGrow( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PartyContent @@ -3964,21 +3964,21 @@ struct PartyContent uint16_t contentFinderCondition; uint32_t image; - PartyContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PartyContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PartyContentCutscene { uint32_t cutscene; - PartyContentCutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PartyContentCutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PartyContentTextData { std::string data; - PartyContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PartyContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Perform @@ -3994,21 +3994,21 @@ struct Perform std::string instrument; uint8_t transient; - Perform( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Perform( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PerformTransient { std::string text; - PerformTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PerformTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Pet { std::string name; - Pet( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Pet( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PetAction @@ -4019,7 +4019,7 @@ struct PetAction uint16_t action; uint8_t pet; - PetAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PetAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Picture @@ -4028,7 +4028,7 @@ struct Picture int32_t image; int32_t signature; - Picture( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Picture( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PlaceName @@ -4036,14 +4036,14 @@ struct PlaceName std::string name; std::string nameNoArticle; - PlaceName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PlaceName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PlantPotFlowerSeed { std::vector< uint32_t > seedIcon; - PlantPotFlowerSeed( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PlantPotFlowerSeed( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PreHandler @@ -4051,7 +4051,7 @@ struct PreHandler uint32_t gilShop; uint16_t actionTimeline; - PreHandler( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PreHandler( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PublicContent @@ -4065,7 +4065,7 @@ struct PublicContent uint16_t contentFinderCondition; uint16_t additionalData; - PublicContent( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PublicContent( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PublicContentCutscene @@ -4073,21 +4073,21 @@ struct PublicContentCutscene uint32_t cutscene; uint32_t cutscene2; - PublicContentCutscene( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PublicContentCutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PublicContentTextData { std::string textData; - PublicContentTextData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PublicContentTextData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PvPAction { uint16_t action; - PvPAction( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PvPAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PvPActionSort @@ -4095,14 +4095,14 @@ struct PvPActionSort uint8_t name; uint16_t action; - PvPActionSort( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + PvPActionSort( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PvPRank { uint32_t expRequired; - PvPRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PvPRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PvPSelectTrait @@ -4111,7 +4111,7 @@ struct PvPSelectTrait uint32_t icon; int16_t value; - PvPSelectTrait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PvPSelectTrait( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct PvPTrait @@ -4120,7 +4120,7 @@ struct PvPTrait uint16_t trait2; uint16_t trait3; - PvPTrait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + PvPTrait( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Quest @@ -4189,7 +4189,7 @@ struct Quest uint8_t eventIconType; uint16_t sortKey; - Quest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Quest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct QuestClassJobReward @@ -4200,7 +4200,7 @@ struct QuestClassJobReward std::vector< uint32_t > requiredItem; std::vector< uint8_t > requiredAmount; - QuestClassJobReward( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + QuestClassJobReward( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct QuestClassJobSupply @@ -4209,14 +4209,14 @@ struct QuestClassJobSupply uint32_t eNpcResident; uint32_t item; - QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + QuestClassJobSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct QuestRepeatFlag { uint32_t quest; - QuestRepeatFlag( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + QuestRepeatFlag( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct QuestRewardOther @@ -4224,7 +4224,7 @@ struct QuestRewardOther uint32_t icon; std::string name; - QuestRewardOther( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + QuestRewardOther( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct QuickChat @@ -4234,14 +4234,14 @@ struct QuickChat int32_t addon; int8_t quickChatTransient; - QuickChat( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + QuickChat( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct QuickChatTransient { std::string textOutput; - QuickChatTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + QuickChatTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Race @@ -4257,7 +4257,7 @@ struct Race int32_t rSEFLegs; int32_t rSEFFeet; - Race( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Race( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RacingChocoboItem @@ -4266,14 +4266,14 @@ struct RacingChocoboItem uint8_t category; std::vector< uint8_t > param; - RacingChocoboItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RacingChocoboItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RacingChocoboName { std::string name; - RacingChocoboName( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RacingChocoboName( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RacingChocoboNameCategory @@ -4281,21 +4281,21 @@ struct RacingChocoboNameCategory uint8_t sortKey; std::string name; - RacingChocoboNameCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RacingChocoboNameCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RacingChocoboNameInfo { uint8_t racingChocoboNameCategory; - RacingChocoboNameInfo( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RacingChocoboNameInfo( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RacingChocoboParam { std::string name; - RacingChocoboParam( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RacingChocoboParam( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Recipe @@ -4322,14 +4322,14 @@ struct Recipe bool isSpecializationRequired; uint16_t patchNumber; - Recipe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Recipe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RecipeElement { std::string name; - RecipeElement( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RecipeElement( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RecipeLevelTable @@ -4341,21 +4341,21 @@ struct RecipeLevelTable int16_t quality; uint16_t durability; - RecipeLevelTable( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RecipeLevelTable( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RecipeNotebookList { std::vector< int32_t > recipe; - RecipeNotebookList( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RecipeNotebookList( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RecommendContents { int32_t level; - RecommendContents( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RecommendContents( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Relic @@ -4364,7 +4364,7 @@ struct Relic uint32_t itemAnimus; int32_t icon; - Relic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Relic( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Relic3 @@ -4375,7 +4375,7 @@ struct Relic3 uint32_t itemNovus; int32_t icon; - Relic3( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Relic3( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RelicItem @@ -4392,7 +4392,7 @@ struct RelicItem uint32_t shieldItem; uint32_t rogueItem; - RelicItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RelicItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RelicNote @@ -4401,14 +4401,14 @@ struct RelicNote std::vector< uint16_t > monsterNoteTargetNM; std::vector< uint16_t > leve; - RelicNote( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RelicNote( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RelicNoteCategory { std::string text; - RelicNoteCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RelicNoteCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Resident @@ -4417,7 +4417,7 @@ struct Resident int32_t npcYell; uint8_t residentMotionType; - Resident( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + Resident( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RetainerTask @@ -4433,7 +4433,7 @@ struct RetainerTask uint16_t requiredGathering; uint16_t task; - RetainerTask( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RetainerTask( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RetainerTaskLvRange @@ -4441,7 +4441,7 @@ struct RetainerTaskLvRange uint8_t min; uint8_t max; - RetainerTaskLvRange( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RetainerTaskLvRange( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RetainerTaskNormal @@ -4453,7 +4453,7 @@ struct RetainerTaskNormal int16_t gatheringLog; int16_t fishingLog; - RetainerTaskNormal( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RetainerTaskNormal( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RetainerTaskParameter @@ -4462,7 +4462,7 @@ struct RetainerTaskParameter std::vector< int16_t > gatheringDoL; std::vector< int16_t > gatheringFSH; - RetainerTaskParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RetainerTaskParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RetainerTaskRandom @@ -4470,7 +4470,7 @@ struct RetainerTaskRandom std::string name; int16_t requirement; - RetainerTaskRandom( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RetainerTaskRandom( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct RPParameter @@ -4478,14 +4478,14 @@ struct RPParameter uint16_t bNpcName; uint8_t classJob; - RPParameter( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + RPParameter( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Salvage { uint16_t optimalSkill; - Salvage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Salvage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SatisfactionNpc @@ -4497,7 +4497,7 @@ struct SatisfactionNpc std::vector< uint16_t > satisfactionRequired; int32_t icon; - SatisfactionNpc( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SatisfactionNpc( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SatisfactionSupply @@ -4510,7 +4510,7 @@ struct SatisfactionSupply uint16_t collectabilityHigh; uint16_t reward; - SatisfactionSupply( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + SatisfactionSupply( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SatisfactionSupplyReward @@ -4522,7 +4522,7 @@ struct SatisfactionSupplyReward uint16_t gilMid; uint16_t gilHigh; - SatisfactionSupplyReward( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SatisfactionSupplyReward( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ScenarioTree @@ -4530,7 +4530,7 @@ struct ScenarioTree uint8_t type; uint16_t image; - ScenarioTree( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ScenarioTree( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ScenarioTreeTips @@ -4538,7 +4538,7 @@ struct ScenarioTreeTips uint32_t tips1; uint32_t tips2; - ScenarioTreeTips( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ScenarioTreeTips( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ScenarioTreeTipsClassQuest @@ -4548,28 +4548,28 @@ struct ScenarioTreeTipsClassQuest uint8_t requiredExpansion; uint32_t requiredQuest; - ScenarioTreeTipsClassQuest( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + ScenarioTreeTipsClassQuest( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ScenarioTreeTipsQuest { uint32_t level; - ScenarioTreeTipsQuest( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ScenarioTreeTipsQuest( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ScenarioType { std::string type; - ScenarioType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ScenarioType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ScreenImage { uint32_t image; - ScreenImage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + ScreenImage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SecretRecipeBook @@ -4577,7 +4577,7 @@ struct SecretRecipeBook int32_t item; std::string name; - SecretRecipeBook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SecretRecipeBook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SkyIsland2Mission @@ -4591,7 +4591,7 @@ struct SkyIsland2Mission uint16_t objective3; uint32_t image; - SkyIsland2Mission( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SkyIsland2Mission( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SkyIsland2MissionDetail @@ -4601,21 +4601,21 @@ struct SkyIsland2MissionDetail uint32_t eObj; std::string objective; - SkyIsland2MissionDetail( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SkyIsland2MissionDetail( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SkyIsland2MissionType { bool type; - SkyIsland2MissionType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SkyIsland2MissionType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SkyIsland2RangeType { uint8_t type; - SkyIsland2RangeType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SkyIsland2RangeType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SpearfishingItem @@ -4626,7 +4626,7 @@ struct SpearfishingItem uint16_t territoryType; bool isVisible; - SpearfishingItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SpearfishingItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SpearfishingNotebook @@ -4639,7 +4639,7 @@ struct SpearfishingNotebook uint16_t placeName; uint16_t gatheringPointBase; - SpearfishingNotebook( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SpearfishingNotebook( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SpearfishingRecordPage @@ -4647,7 +4647,7 @@ struct SpearfishingRecordPage int32_t placeName; int32_t image; - SpearfishingRecordPage( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SpearfishingRecordPage( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SpecialShop @@ -4659,14 +4659,14 @@ struct SpecialShop int32_t notCompleteText; int32_t completeText; - SpecialShop( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SpecialShop( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SpecialShopItemCategory { std::string name; - SpecialShopItemCategory( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SpecialShopItemCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Stain @@ -4675,7 +4675,7 @@ struct Stain uint8_t shade; std::string name; - Stain( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Stain( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct StainTransient @@ -4683,7 +4683,7 @@ struct StainTransient uint32_t item1; uint32_t item2; - StainTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + StainTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Status @@ -4705,14 +4705,14 @@ struct Status bool isFcBuff; bool invisibility; - Status( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Status( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct StatusHitEffect { uint16_t location; - StatusHitEffect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + StatusHitEffect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct StatusLoopVFX @@ -4721,13 +4721,13 @@ struct StatusLoopVFX uint16_t vFX2; uint16_t vFX3; - StatusLoopVFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + StatusLoopVFX( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Story { - Story( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Story( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SubmarineExploration @@ -4740,7 +4740,7 @@ struct SubmarineExploration uint8_t distanceForSurvey; uint32_t expReward; - SubmarineExploration( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SubmarineExploration( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SubmarinePart @@ -4755,7 +4755,7 @@ struct SubmarinePart int16_t favor; uint8_t repairMaterials; - SubmarinePart( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SubmarinePart( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SubmarineRank @@ -4763,7 +4763,7 @@ struct SubmarineRank uint16_t rank; uint32_t expToNext; - SubmarineRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SubmarineRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct SwitchTalk @@ -4771,7 +4771,7 @@ struct SwitchTalk std::vector< uint32_t > quest; std::vector< uint32_t > defaultTalk; - SwitchTalk( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + SwitchTalk( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TerritoryType @@ -4787,7 +4787,7 @@ struct TerritoryType uint32_t arrayEventHandler; int32_t aetheryte; - TerritoryType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TerritoryType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TextCommand @@ -4798,7 +4798,7 @@ struct TextCommand std::string alias; std::string shortAlias; - TextCommand( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TextCommand( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Title @@ -4808,14 +4808,14 @@ struct Title bool isPrefix; uint16_t order; - Title( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Title( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Tomestones { uint16_t weeklyLimit; - Tomestones( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Tomestones( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TomestonesItem @@ -4823,14 +4823,14 @@ struct TomestonesItem int32_t item; int32_t tomestones; - TomestonesItem( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TomestonesItem( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TopicSelect { std::string name; - TopicSelect( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TopicSelect( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Town @@ -4838,7 +4838,7 @@ struct Town std::string name; int32_t icon; - Town( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Town( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Trait @@ -4851,7 +4851,7 @@ struct Trait int16_t value; uint8_t classJobCategory; - Trait( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Trait( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TraitRecast @@ -4860,14 +4860,14 @@ struct TraitRecast uint16_t action; uint16_t timeds; - TraitRecast( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TraitRecast( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TraitTransient { std::string description; - TraitTransient( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TraitTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Transformation @@ -4881,14 +4881,14 @@ struct Transformation bool isEvent; bool playerCamera; - Transformation( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Transformation( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Treasure { uint32_t item; - Treasure( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Treasure( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TreasureHuntRank @@ -4900,7 +4900,7 @@ struct TreasureHuntRank uint8_t maxPartySize; uint8_t minPartySize; - TreasureHuntRank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TreasureHuntRank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Tribe @@ -4914,7 +4914,7 @@ struct Tribe int8_t mND; int8_t pIE; - Tribe( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Tribe( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TripleTriad @@ -4935,7 +4935,7 @@ struct TripleTriad uint32_t defaultTalkPCWin; std::vector< uint32_t > itemPossibleReward; - TripleTriad( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TripleTriad( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TripleTriadCard @@ -4944,14 +4944,14 @@ struct TripleTriadCard int8_t startsWithVowel; std::string description; - TripleTriadCard( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TripleTriadCard( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TripleTriadCardRarity { uint8_t stars; - TripleTriadCardRarity( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TripleTriadCardRarity( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TripleTriadCardResident @@ -4965,28 +4965,28 @@ struct TripleTriadCardResident uint16_t saleValue; uint8_t sortKey; - TripleTriadCardResident( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TripleTriadCardResident( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TripleTriadCardType { std::string name; - TripleTriadCardType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TripleTriadCardType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TripleTriadCompetition { std::string name; - TripleTriadCompetition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TripleTriadCompetition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TripleTriadRule { std::string name; - TripleTriadRule( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TripleTriadRule( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Tutorial @@ -4998,28 +4998,28 @@ struct Tutorial uint32_t rewardRanged; uint32_t objective; - Tutorial( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Tutorial( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TutorialDPS { uint8_t objective; - TutorialDPS( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TutorialDPS( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TutorialHealer { uint8_t objective; - TutorialHealer( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TutorialHealer( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct TutorialTank { uint8_t objective; - TutorialTank( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + TutorialTank( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct UIColor @@ -5027,21 +5027,21 @@ struct UIColor uint32_t foreground; uint32_t background; - UIColor( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + UIColor( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct VaseFlower { uint32_t item; - VaseFlower( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + VaseFlower( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct VFX { std::string location; - VFX( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + VFX( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Warp @@ -5054,7 +5054,7 @@ struct Warp uint16_t warpCondition; uint16_t warpLogic; - Warp( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Warp( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WarpCondition @@ -5064,7 +5064,7 @@ struct WarpCondition uint32_t dRequiredQuest3; uint32_t requiredQuest4; - WarpCondition( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WarpCondition( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WarpLogic @@ -5076,7 +5076,7 @@ struct WarpLogic std::string responseYes; std::string responseNo; - WarpLogic( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WarpLogic( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct Weather @@ -5085,20 +5085,20 @@ struct Weather std::string name; std::string description; - Weather( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + Weather( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WeatherGroup { int32_t weatherRate; - WeatherGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + WeatherGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WeatherRate { - WeatherRate( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WeatherRate( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WeddingBGM @@ -5106,7 +5106,7 @@ struct WeddingBGM uint16_t song; std::string songName; - WeddingBGM( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WeddingBGM( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WeeklyBingoOrderData @@ -5116,7 +5116,7 @@ struct WeeklyBingoOrderData uint8_t text; uint32_t icon; - WeeklyBingoOrderData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WeeklyBingoOrderData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WeeklyBingoRewardData @@ -5125,21 +5125,21 @@ struct WeeklyBingoRewardData bool rewardHQ2; uint16_t rewardQuantity2; - WeeklyBingoRewardData( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WeeklyBingoRewardData( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WeeklyBingoText { std::string description; - WeeklyBingoText( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WeeklyBingoText( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WeeklyLotBonus { std::vector< uint8_t > weeklyLotBonusThreshold; - WeeklyLotBonus( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WeeklyLotBonus( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct World @@ -5148,14 +5148,14 @@ struct World uint8_t dataCenter; bool isPublic; - World( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + World( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct WorldDCGroupType { std::string name; - WorldDCGroupType( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + WorldDCGroupType( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct YKW @@ -5163,7 +5163,7 @@ struct YKW uint32_t item; std::vector< uint16_t > location; - YKW( uint32_t row_id, Core::Data::ExdDataGenerated* exdData ); + YKW( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ); }; struct ZoneSharedGroup @@ -5175,7 +5175,7 @@ struct ZoneSharedGroup uint32_t quest5; uint32_t quest6; - ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData ); + ZoneSharedGroup( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; diff --git a/src/common/Forwards.h b/src/common/Forwards.h index 54f11073..797b70fe 100644 --- a/src/common/Forwards.h +++ b/src/common/Forwards.h @@ -3,7 +3,7 @@ #include -namespace Core +namespace Sapphire { class ConfigMgr; diff --git a/src/common/Framework.h b/src/common/Framework.h index e5450129..5714bdb3 100644 --- a/src/common/Framework.h +++ b/src/common/Framework.h @@ -7,7 +7,7 @@ #include #include -namespace Core +namespace Sapphire { class Framework diff --git a/src/common/Logging/Logger.cpp b/src/common/Logging/Logger.cpp index 22534330..2282641f 100644 --- a/src/common/Logging/Logger.cpp +++ b/src/common/Logging/Logger.cpp @@ -10,7 +10,7 @@ namespace fs = std::experimental::filesystem; -namespace Core +namespace Sapphire { Logger::Logger() diff --git a/src/common/Logging/Logger.h b/src/common/Logging/Logger.h index b35f3b9d..8c48aa69 100644 --- a/src/common/Logging/Logger.h +++ b/src/common/Logging/Logger.h @@ -3,7 +3,7 @@ #include -namespace Core +namespace Sapphire { class Logger diff --git a/src/common/Network/Acceptor.cpp b/src/common/Network/Acceptor.cpp index 474fc392..bb09869c 100644 --- a/src/common/Network/Acceptor.cpp +++ b/src/common/Network/Acceptor.cpp @@ -2,7 +2,7 @@ #include "Acceptor.h" #include "Connection.h" -namespace Core { +namespace Sapphire { namespace Network { //----------------------------------------------------------------------------- diff --git a/src/common/Network/Acceptor.h b/src/common/Network/Acceptor.h index 1670d8a2..826a93f3 100644 --- a/src/common/Network/Acceptor.h +++ b/src/common/Network/Acceptor.h @@ -13,7 +13,7 @@ #include -namespace Core::Network +namespace Sapphire::Network { class Connection; diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 496ed69e..357bb54b 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -8,9 +8,9 @@ // +--------------------------------------------------------------------------- // The following enumerations are structures to require their type be included. -// They are also defined within the Core::Common namespace to avoid collisions. +// They are also defined within the Sapphire::Common namespace to avoid collisions. // +--------------------------------------------------------------------------- -namespace Core::Network::ActorControl +namespace Sapphire::Network::ActorControl { enum ActorControlType : uint16_t diff --git a/src/common/Network/CommonNetwork.h b/src/common/Network/CommonNetwork.h index ede5be3f..1a2bd4d6 100644 --- a/src/common/Network/CommonNetwork.h +++ b/src/common/Network/CommonNetwork.h @@ -5,7 +5,7 @@ #include #include "PacketDef/Ipcs.h" -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { /** diff --git a/src/common/Network/Connection.cpp b/src/common/Network/Connection.cpp index d9a86539..357155b6 100644 --- a/src/common/Network/Connection.cpp +++ b/src/common/Network/Connection.cpp @@ -2,7 +2,7 @@ #include "Hive.h" #include -namespace Core { +namespace Sapphire { namespace Network { //----------------------------------------------------------------------------- diff --git a/src/common/Network/Connection.h b/src/common/Network/Connection.h index e4e77381..84aa76c7 100644 --- a/src/common/Network/Connection.h +++ b/src/common/Network/Connection.h @@ -12,7 +12,7 @@ #include "Acceptor.h" #include -namespace Core::Network +namespace Sapphire::Network { class Hive; diff --git a/src/common/Network/GamePacketNew.h b/src/common/Network/GamePacketNew.h index 15ff798d..4da56eca 100644 --- a/src/common/Network/GamePacketNew.h +++ b/src/common/Network/GamePacketNew.h @@ -14,7 +14,7 @@ #include "CommonNetwork.h" #include "PacketDef/Ipcs.h" -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { // Must forward define these in order to enable the compiler to produce the diff --git a/src/common/Network/GamePacketParser.cpp b/src/common/Network/GamePacketParser.cpp index 77add05c..2e806d5f 100644 --- a/src/common/Network/GamePacketParser.cpp +++ b/src/common/Network/GamePacketParser.cpp @@ -3,9 +3,9 @@ #include // memcpy -using namespace Core::Network::Packets; +using namespace Sapphire::Network::Packets; -PacketParseResult Core::Network::Packets::getHeader( const std::vector< uint8_t >& buffer, +PacketParseResult Sapphire::Network::Packets::getHeader( const std::vector< uint8_t >& buffer, const uint32_t offset, FFXIVARR_PACKET_HEADER& header ) { @@ -25,7 +25,7 @@ PacketParseResult Core::Network::Packets::getHeader( const std::vector< uint8_t return Success; } -PacketParseResult Core::Network::Packets::getSegmentHeader( const std::vector< uint8_t >& buffer, +PacketParseResult Sapphire::Network::Packets::getSegmentHeader( const std::vector< uint8_t >& buffer, const uint32_t offset, FFXIVARR_PACKET_SEGMENT_HEADER& header ) { @@ -42,7 +42,7 @@ PacketParseResult Core::Network::Packets::getSegmentHeader( const std::vector< u return Success; } -PacketParseResult Core::Network::Packets::getPackets( const std::vector< uint8_t >& buffer, +PacketParseResult Sapphire::Network::Packets::getPackets( const std::vector< uint8_t >& buffer, const uint32_t offset, const FFXIVARR_PACKET_HEADER& packetHeader, std::vector< FFXIVARR_PACKET_RAW >& packets ) @@ -81,7 +81,7 @@ PacketParseResult Core::Network::Packets::getPackets( const std::vector< uint8_t return Success; } -PacketParseResult Core::Network::Packets::getPacket( const std::vector< uint8_t >& buffer, const uint32_t offset, +PacketParseResult Sapphire::Network::Packets::getPacket( const std::vector< uint8_t >& buffer, const uint32_t offset, FFXIVARR_PACKET_RAW& packet ) { // Copy segment header @@ -103,7 +103,7 @@ PacketParseResult Core::Network::Packets::getPacket( const std::vector< uint8_t return Success; } -bool Core::Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER& header ) +bool Sapphire::Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER& header ) { // Max size of the packet is capped at 1MB for now. if( header.size > 1 * 1024 * 1024 ) @@ -116,7 +116,7 @@ bool Core::Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER& header ) return true; } -bool Core::Network::Packets::checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER& header ) +bool Sapphire::Network::Packets::checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER& header ) { // Max size of individual message is capped at 256KB for now. if( header.size > 256 * 1024 ) diff --git a/src/common/Network/GamePacketParser.h b/src/common/Network/GamePacketParser.h index d90d9396..c50b486a 100644 --- a/src/common/Network/GamePacketParser.h +++ b/src/common/Network/GamePacketParser.h @@ -3,7 +3,7 @@ #include "CommonNetwork.h" -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { enum PacketParseResult diff --git a/src/common/Network/Hive.cpp b/src/common/Network/Hive.cpp index 92259489..af46076a 100644 --- a/src/common/Network/Hive.cpp +++ b/src/common/Network/Hive.cpp @@ -2,7 +2,7 @@ #include #include "Hive.h" -namespace Core { +namespace Sapphire { namespace Network { //----------------------------------------------------------------------------- diff --git a/src/common/Network/Hive.h b/src/common/Network/Hive.h index 40da87ac..3ea94afa 100644 --- a/src/common/Network/Hive.h +++ b/src/common/Network/Hive.h @@ -5,7 +5,7 @@ #include #include -namespace Core:: Network +namespace Sapphire:: Network { class Hive : public std::enable_shared_from_this< Hive > diff --git a/src/common/Network/PacketContainer.cpp b/src/common/Network/PacketContainer.cpp index 30aff769..02a42c93 100644 --- a/src/common/Network/PacketContainer.cpp +++ b/src/common/Network/PacketContainer.cpp @@ -7,7 +7,7 @@ #include #include -Core::Network::Packets::PacketContainer::PacketContainer( uint32_t segmentTargetOverride ) : +Sapphire::Network::Packets::PacketContainer::PacketContainer( uint32_t segmentTargetOverride ) : m_segmentTargetOverride( segmentTargetOverride ) { memset( &m_ipcHdr, 0, sizeof( FFXIVARR_PACKET_HEADER ) ); @@ -15,12 +15,12 @@ Core::Network::Packets::PacketContainer::PacketContainer( uint32_t segmentTarget m_ipcHdr.count = 0; } -Core::Network::Packets::PacketContainer::~PacketContainer() +Sapphire::Network::Packets::PacketContainer::~PacketContainer() { m_entryList.clear(); } -void Core::Network::Packets::PacketContainer::addPacket( Core::Network::Packets::FFXIVPacketBasePtr entry ) +void Sapphire::Network::Packets::PacketContainer::addPacket( Sapphire::Network::Packets::FFXIVPacketBasePtr entry ) { m_entryList.push_back( entry ); @@ -28,7 +28,7 @@ void Core::Network::Packets::PacketContainer::addPacket( Core::Network::Packets: m_ipcHdr.count++; } -void Core::Network::Packets::PacketContainer::fillSendBuffer( std::vector< uint8_t >& sendBuffer ) +void Sapphire::Network::Packets::PacketContainer::fillSendBuffer( std::vector< uint8_t >& sendBuffer ) { std::vector< uint8_t > tempBuffer( m_ipcHdr.size ); memset( &tempBuffer[ 0 ], 0, m_ipcHdr.size ); @@ -67,7 +67,7 @@ void Core::Network::Packets::PacketContainer::fillSendBuffer( std::vector< uint8 } -std::string Core::Network::Packets::PacketContainer::toString() +std::string Sapphire::Network::Packets::PacketContainer::toString() { std::vector< uint8_t > tmpBuffer; diff --git a/src/common/Network/PacketContainer.h b/src/common/Network/PacketContainer.h index 322c808f..2f1bd313 100644 --- a/src/common/Network/PacketContainer.h +++ b/src/common/Network/PacketContainer.h @@ -8,7 +8,7 @@ #include "GamePacketNew.h" #include "Forwards.h" -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { using FFXIVPacketBasePtr = std::shared_ptr< FFXIVPacketBase >; diff --git a/src/common/Network/PacketDef/Chat/ServerChatDef.h b/src/common/Network/PacketDef/Chat/ServerChatDef.h index 50353c32..e2ebe0ba 100644 --- a/src/common/Network/PacketDef/Chat/ServerChatDef.h +++ b/src/common/Network/PacketDef/Chat/ServerChatDef.h @@ -4,7 +4,7 @@ #include #include -namespace Core { +namespace Sapphire { namespace Network { namespace Packets { namespace Server { @@ -39,7 +39,7 @@ struct FFXIVIpcTellErrNotFound : } /* Server */ } /* Packets */ } /* Network */ -} /* Core */ +} /* Sapphire */ diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 74b997d1..089744ce 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -3,7 +3,7 @@ #include -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { //////////////////////////////////////////////////////////////////////////////// diff --git a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h index a135a9cf..57948d4b 100644 --- a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h +++ b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h @@ -4,7 +4,7 @@ #include #include -namespace Core { +namespace Sapphire { namespace Network { namespace Packets { namespace Server { diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 69ba674c..07fc7d88 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -4,7 +4,7 @@ #include #include -namespace Core { +namespace Sapphire { namespace Network { namespace Packets { namespace Client { diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 215a14d0..93afb175 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -10,7 +10,7 @@ #include #include -namespace Core { +namespace Sapphire { namespace Network { namespace Packets { namespace Server { @@ -1824,7 +1824,7 @@ struct FFXIVIpcDuelChallenge : } /* Server */ } /* Packets */ } /* Network */ -} /* Core */ +} /* Sapphire */ diff --git a/src/common/Util/LockedQueue.h b/src/common/Util/LockedQueue.h index d50b14f7..1e73f4ce 100644 --- a/src/common/Util/LockedQueue.h +++ b/src/common/Util/LockedQueue.h @@ -7,7 +7,7 @@ #include #include -namespace Core +namespace Sapphire { template< class T > diff --git a/src/common/Util/LockedWaitQueue.h b/src/common/Util/LockedWaitQueue.h index 22445920..122cfd1c 100644 --- a/src/common/Util/LockedWaitQueue.h +++ b/src/common/Util/LockedWaitQueue.h @@ -8,7 +8,7 @@ #include #include -namespace Core +namespace Sapphire { template< typename T > diff --git a/src/common/Util/SpawnIndexAllocator.h b/src/common/Util/SpawnIndexAllocator.h index b7304fed..4ddfcc79 100644 --- a/src/common/Util/SpawnIndexAllocator.h +++ b/src/common/Util/SpawnIndexAllocator.h @@ -5,7 +5,7 @@ #include #include -namespace Core::Util +namespace Sapphire::Util { template< typename T, typename ActorIdType = uint32_t > diff --git a/src/common/Util/Util.cpp b/src/common/Util/Util.cpp index b8db0b7c..78db7be7 100644 --- a/src/common/Util/Util.cpp +++ b/src/common/Util/Util.cpp @@ -5,7 +5,7 @@ #include #include -std::string Core::Util::binaryToHexString( uint8_t* pBinData, uint16_t size ) +std::string Sapphire::Util::binaryToHexString( uint8_t* pBinData, uint16_t size ) { std::string outStr; @@ -17,26 +17,26 @@ std::string Core::Util::binaryToHexString( uint8_t* pBinData, uint16_t size ) return outStr; } -std::string Core::Util::toLowerCopy( const std::string& inStr ) +std::string Sapphire::Util::toLowerCopy( const std::string& inStr ) { std::string out = inStr; std::transform( inStr.begin(), inStr.end(), out.begin(), [](unsigned char c) -> unsigned char { return ::tolower(c); }); return out; } -void Core::Util::eraseAll( std::string& inOutStr, char remove ) +void Sapphire::Util::eraseAll( std::string& inOutStr, char remove ) { inOutStr.erase( std::remove( inOutStr.begin(), inOutStr.end(), remove ), inOutStr.end() ); } -void Core::Util::eraseAllIn( std::string& inOutStr, std::string& remove ) +void Sapphire::Util::eraseAllIn( std::string& inOutStr, std::string& remove ) { for( auto rem : remove ) inOutStr.erase( std::remove( inOutStr.begin(), inOutStr.end(), rem ), inOutStr.end() ); } -std::string Core::Util::intToHexString( uint64_t intValue, uint8_t width ) +std::string Sapphire::Util::intToHexString( uint64_t intValue, uint8_t width ) { std::string hexStr; @@ -51,7 +51,7 @@ std::string Core::Util::intToHexString( uint64_t intValue, uint8_t width ) return hexStr; } -std::string Core::Util::binaryToHexDump( uint8_t* pBinData, uint16_t size ) +std::string Sapphire::Util::binaryToHexDump( uint8_t* pBinData, uint16_t size ) { int bytesPerLine = 16; constexpr char hexChars[] = "0123456789ABCDEF"; @@ -112,25 +112,25 @@ std::string Core::Util::binaryToHexDump( uint8_t* pBinData, uint16_t size ) } -uint64_t Core::Util::getTimeMs() +uint64_t Sapphire::Util::getTimeMs() { std::chrono::milliseconds epoch = std::chrono::duration_cast< std::chrono::milliseconds > ( std::chrono::system_clock::now().time_since_epoch() ); return epoch.count(); } -int64_t Core::Util::getTimeSeconds() +int64_t Sapphire::Util::getTimeSeconds() { std::chrono::seconds epoch = std::chrono::seconds( std::time( nullptr ) ); return epoch.count(); } -uint64_t Core::Util::getEorzeanTimeStamp() +uint64_t Sapphire::Util::getEorzeanTimeStamp() { return static_cast< uint64_t >( getTimeSeconds() * 20.571428571428573f ); } -void Core::Util::valueToFlagByteIndexValue( uint32_t inVal, uint8_t& outVal, uint16_t& outIndex ) +void Sapphire::Util::valueToFlagByteIndexValue( uint32_t inVal, uint8_t& outVal, uint16_t& outIndex ) { uint32_t id = inVal; outIndex = id / 8; diff --git a/src/common/Util/Util.h b/src/common/Util/Util.h index c76250e7..ab810cef 100644 --- a/src/common/Util/Util.h +++ b/src/common/Util/Util.h @@ -5,7 +5,7 @@ #include #include -namespace Core::Util +namespace Sapphire::Util { std::string binaryToHexString( uint8_t* pBinData, uint16_t size ); diff --git a/src/common/Util/UtilMath.cpp b/src/common/Util/UtilMath.cpp index 890d986c..9f89aea9 100644 --- a/src/common/Util/UtilMath.cpp +++ b/src/common/Util/UtilMath.cpp @@ -1,7 +1,7 @@ #include #include "UtilMath.h" -float Core::Math::Util::distanceSq( float x, float y, float z, float x1, float y1, float z1 ) +float Sapphire::Math::Util::distanceSq( float x, float y, float z, float x1, float y1, float z1 ) { float deltaX = x - x1; float deltaY = y - y1; @@ -10,24 +10,24 @@ float Core::Math::Util::distanceSq( float x, float y, float z, float x1, float y return ( deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ ); } -float Core::Math::Util::distance( float x, float y, float z, float x1, float y1, float z1 ) +float Sapphire::Math::Util::distance( float x, float y, float z, float x1, float y1, float z1 ) { return sqrtf( distanceSq( x, y, z, x1, y1, z1 ) ); } -float Core::Math::Util::distance2DSq( float x, float y, float x1, float y1 ) +float Sapphire::Math::Util::distance2DSq( float x, float y, float x1, float y1 ) { float deltaX = x - x1; float deltaY = y - y1; return ( deltaX * deltaX + deltaY * deltaY ); } -float Core::Math::Util::distance2D( float x, float y, float x1, float y1 ) +float Sapphire::Math::Util::distance2D( float x, float y, float x1, float y1 ) { return sqrtf( distance2DSq( x, y, x1, y1 ) ); } -float Core::Math::Util::calcAngTo( float x, float y, float x1, float y1 ) +float Sapphire::Math::Util::calcAngTo( float x, float y, float x1, float y1 ) { float dx = x - x1; float dy = y - y1; @@ -41,7 +41,7 @@ float Core::Math::Util::calcAngTo( float x, float y, float x1, float y1 ) } } -float Core::Math::Util::calcAngFrom( float x, float y, float x1, float y1 ) +float Sapphire::Math::Util::calcAngFrom( float x, float y, float x1, float y1 ) { float dx = x - x1; float dy = y - y1; @@ -55,17 +55,17 @@ float Core::Math::Util::calcAngFrom( float x, float y, float x1, float y1 ) } } -uint16_t Core::Math::Util::floatToUInt16( float val ) +uint16_t Sapphire::Math::Util::floatToUInt16( float val ) { return static_cast< uint16_t >( 0x8000 + val * 32.767f ); } -uint16_t Core::Math::Util::floatToUInt16Rot( float val ) +uint16_t Sapphire::Math::Util::floatToUInt16Rot( float val ) { return static_cast< uint16_t >( 0x8000 * ( ( val + PI ) ) / PI ); } -uint8_t Core::Math::Util::floatToUInt8Rot( float val ) +uint8_t Sapphire::Math::Util::floatToUInt8Rot( float val ) { return static_cast< uint8_t >( 0x80 * ( ( val + PI ) ) / PI ); } \ No newline at end of file diff --git a/src/common/Util/UtilMath.h b/src/common/Util/UtilMath.h index b6f3340d..1fcf95d4 100644 --- a/src/common/Util/UtilMath.h +++ b/src/common/Util/UtilMath.h @@ -5,7 +5,7 @@ #define PI 3.14159265358979323846f -namespace Core::Math::Util +namespace Sapphire::Math::Util { float distanceSq( float x, float y, float z, float x1, float y1, float z1 ); diff --git a/src/common/Version.cpp.in b/src/common/Version.cpp.in index b2de470a..9f973861 100644 --- a/src/common/Version.cpp.in +++ b/src/common/Version.cpp.in @@ -1,10 +1,10 @@ #include "Version.h" -namespace Core { +namespace Sapphire { namespace Version { const std::string GIT_HASH = "@GIT_SHA1@"; const std::string VERSION = "@VERSION@"; } /* Version */ -} /* Core */ +} /* Sapphire */ diff --git a/src/common/Version.h b/src/common/Version.h index 9f3b481b..20642265 100644 --- a/src/common/Version.h +++ b/src/common/Version.h @@ -3,7 +3,7 @@ #include -namespace Core::Version +namespace Sapphire::Version { extern const std::string GIT_HASH; extern const std::string VERSION; diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index 3c1f8d14..c8f20207 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -16,7 +16,7 @@ namespace filesys = std::experimental::filesystem; #include "DbManager.h" -Core::Logger g_log; +Sapphire::Logger g_log; std::vector< std::string > getAllFilesInDir( const std::string& dirPath, const std::vector< std::string > dirSkipList = {} ) diff --git a/src/servers/Scripts/action/ActionReturn6.cpp b/src/servers/Scripts/action/ActionReturn6.cpp index 82580430..3734a060 100644 --- a/src/servers/Scripts/action/ActionReturn6.cpp +++ b/src/servers/Scripts/action/ActionReturn6.cpp @@ -11,7 +11,7 @@ public: { } - void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ) override + void onCastFinish( Sapphire::Entity::Player& player, Sapphire::Entity::Chara& targetActor ) override { player.returnToHomepoint(); } diff --git a/src/servers/Scripts/action/ActionSprint3.cpp b/src/servers/Scripts/action/ActionSprint3.cpp index 31767e03..bf725e63 100644 --- a/src/servers/Scripts/action/ActionSprint3.cpp +++ b/src/servers/Scripts/action/ActionSprint3.cpp @@ -10,7 +10,7 @@ public: { } - void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ) override + void onCastFinish( Sapphire::Entity::Player& player, Sapphire::Entity::Chara& targetActor ) override { player.addStatusEffectByIdIfNotExist( 50, 20000, player, 30 ); } diff --git a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp index 51d94663..590f7bf2 100644 --- a/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp +++ b/src/servers/Scripts/common/CmnDefCutSceneReplay.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CmnDefCutSceneReplay : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index ae9c8c5e..a037349e 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -8,7 +8,7 @@ #include "Framework.h" -using namespace Core; +using namespace Sapphire; using namespace Network; using namespace Packets; using namespace Server; @@ -35,7 +35,7 @@ public: auto pTerritory = player.getCurrentZone(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); - auto pHouMgr = pFw->get< Core::HousingMgr >(); + auto pHouMgr = pFw->get< Sapphire::HousingMgr >(); LandPurchaseResult res = pHouMgr->purchaseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); diff --git a/src/servers/Scripts/common/CmnDefInnBed.cpp b/src/servers/Scripts/common/CmnDefInnBed.cpp index 4d89e93e..2d8171fa 100644 --- a/src/servers/Scripts/common/CmnDefInnBed.cpp +++ b/src/servers/Scripts/common/CmnDefInnBed.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CmnDefInnBed : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/CmnDefLinkShell.cpp b/src/servers/Scripts/common/CmnDefLinkShell.cpp index b340a4b7..42476cda 100644 --- a/src/servers/Scripts/common/CmnDefLinkShell.cpp +++ b/src/servers/Scripts/common/CmnDefLinkShell.cpp @@ -5,7 +5,7 @@ #define ACTION_RENAME 3 #define ACTION_REMOVE 4 -using namespace Core; +using namespace Sapphire; class CmnDefLinkShell : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp b/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp index 4429c393..4c2ce359 100644 --- a/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp +++ b/src/servers/Scripts/common/CmnDefMarketBoardGridania.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CmnDefMarketBoardGridania : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/CmnDefMogLetter.cpp b/src/servers/Scripts/common/CmnDefMogLetter.cpp index 03de2ba0..9aa7e676 100644 --- a/src/servers/Scripts/common/CmnDefMogLetter.cpp +++ b/src/servers/Scripts/common/CmnDefMogLetter.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CmnDefMogLetter : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/CmnDefNpcRepair.cpp b/src/servers/Scripts/common/CmnDefNpcRepair.cpp index 5629d97c..857b45ed 100644 --- a/src/servers/Scripts/common/CmnDefNpcRepair.cpp +++ b/src/servers/Scripts/common/CmnDefNpcRepair.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CmnDefNpcRepair : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp b/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp index 69d565ac..42ee359c 100644 --- a/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp +++ b/src/servers/Scripts/common/CmnDefWeatherForeCast.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CmnDefWeatherForeCast : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/ComDefMobHuntBoard.cpp b/src/servers/Scripts/common/ComDefMobHuntBoard.cpp index 732b88b9..0efe6358 100644 --- a/src/servers/Scripts/common/ComDefMobHuntBoard.cpp +++ b/src/servers/Scripts/common/ComDefMobHuntBoard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ComDefMobHuntBoard : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/GilShop.cpp b/src/servers/Scripts/common/GilShop.cpp index d2d8cd5b..bb8d7f9f 100644 --- a/src/servers/Scripts/common/GilShop.cpp +++ b/src/servers/Scripts/common/GilShop.cpp @@ -4,7 +4,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class GilShop : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/HouFurOrchestrion.cpp b/src/servers/Scripts/common/HouFurOrchestrion.cpp index 196a7d77..56e33d71 100644 --- a/src/servers/Scripts/common/HouFurOrchestrion.cpp +++ b/src/servers/Scripts/common/HouFurOrchestrion.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HouFurOrchestrion : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/common/WarpTaxi.cpp b/src/servers/Scripts/common/WarpTaxi.cpp index b36763e7..4a2ba1a7 100644 --- a/src/servers/Scripts/common/WarpTaxi.cpp +++ b/src/servers/Scripts/common/WarpTaxi.cpp @@ -5,7 +5,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class WarpTaxi : public Sapphire::ScriptAPI::EventScript { @@ -27,8 +27,8 @@ public: player.eventFinish( 1310721, 0 ); player.eventFinish( getId(), 1 ); - auto exdData = getFramework()->get< Core::Data::ExdDataGenerated >(); - auto warp = exdData->get< Core::Data::Warp >( getId() ); + auto exdData = getFramework()->get< Sapphire::Data::ExdDataGenerated >(); + auto warp = exdData->get< Sapphire::Data::Warp >( getId() ); if( !warp ) return; @@ -53,11 +53,11 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto exdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + auto exdData = getFramework()->get< Sapphire::Data::ExdDataGenerated >(); if( !exdData ) return; - auto warp = exdData->get< Core::Data::Warp >( eventId ); + auto warp = exdData->get< Sapphire::Data::Warp >( eventId ); if( !warp ) return; diff --git a/src/servers/Scripts/common/aethernet/Aetheryte.cpp b/src/servers/Scripts/common/aethernet/Aetheryte.cpp index 44e7fccf..f5403d7b 100644 --- a/src/servers/Scripts/common/aethernet/Aetheryte.cpp +++ b/src/servers/Scripts/common/aethernet/Aetheryte.cpp @@ -6,7 +6,7 @@ -using namespace Core; +using namespace Sapphire; class Aetheryte : public Sapphire::ScriptAPI::EventScript @@ -108,11 +108,11 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override { - auto pExdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + auto pExdData = getFramework()->get< Sapphire::Data::ExdDataGenerated >(); if( !pExdData ) return; - auto aetherInfo = pExdData->get< Core::Data::Aetheryte >( eventId & 0xFFFF ); + auto aetherInfo = pExdData->get< Sapphire::Data::Aetheryte >( eventId & 0xFFFF ); if( !aetherInfo ) return; diff --git a/src/servers/Scripts/common/aethernet/HousingAethernet.cpp b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp index e6854980..9a159349 100644 --- a/src/servers/Scripts/common/aethernet/HousingAethernet.cpp +++ b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp @@ -5,7 +5,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HousingAethernet : public Sapphire::ScriptAPI::EventScript @@ -20,7 +20,7 @@ public: { player.playScene( eventId, 0, HIDE_HOTBAR | NO_DEFAULT_CAMERA, [this, eventId]( Entity::Player& player, const Event::SceneResult& result ) { - auto pExdData = getFramework()->get< Core::Data::ExdDataGenerated >(); + auto pExdData = getFramework()->get< Sapphire::Data::ExdDataGenerated >(); if( !pExdData ) return; @@ -28,7 +28,7 @@ public: auto terrritoryTypeId = player.getCurrentZone()->getTerritoryTypeId(); // param2 is the index starting from 0 inside housingaethernet.exd, but the ID column starts at 0x001E0000........ wtf - auto pHousingAethernet = pExdData->get< Core::Data::HousingAethernet >( getId() + result.param2 ); + auto pHousingAethernet = pExdData->get< Sapphire::Data::HousingAethernet >( getId() + result.param2 ); if( !pHousingAethernet ) return; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp index c6830f72..6e5e34d9 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors101110 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp index 60e1f2c2..d2c95441 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors110 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp index dd7b48ea..01c56163 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors111120 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp index 0193c863..a60180f3 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors1120 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp index 61744f2a..a410a7c2 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors121130 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp index ff6f6202..0bfa21ab 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors131140 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp index 08b2c657..ef73f13c 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors141150 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp index 0324fc13..87d560f5 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors151160 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp index 8523dfaa..3cdb5c17 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors161170 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp index b4dd9b78..e047273b 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors171180 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp index bc197672..e62879cb 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors181190 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp index eb877fd3..ad581254 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors191200 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp index 1bf1d276..51a293b0 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors2130 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp index 5e122192..75b07a30 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors3140 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp index ead27865..b1232eaa 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors4150 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp index e9391c05..d3acd3ef 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors5160 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp index 8fac7b93..def4bd97 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors6170 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp index 08e3d1f9..0a4d6ca8 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors7180 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp index 7457e2a3..46127f4d 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors8190 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp index ef06aa30..867c7b45 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePalaceoftheDeadFloors91100 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp index 3fb7fc32..eaeab694 100644 --- a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp +++ b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlaMhigo : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp index db538952..79c21ecb 100644 --- a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp +++ b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AmdaporKeep : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp index c820bdb6..07ddb36d 100644 --- a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp +++ b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AmdaporKeepHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp index f99202bf..cc058d0a 100644 --- a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp +++ b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BaelsarsWall : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp index 728d4788..384f2c3d 100644 --- a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp +++ b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BardamsMettle : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp index 961003e2..e8cc5ae4 100644 --- a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp +++ b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BrayfloxsLongstop : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp index 89e575ca..4dde97ef 100644 --- a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp +++ b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BrayfloxsLongstopHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp b/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp index afcac3f1..8b2ee8b3 100644 --- a/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp +++ b/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CastrumAbania : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp b/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp index 8528f003..2d80787f 100644 --- a/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp +++ b/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CastrumMeridianum : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp b/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp index 5e055cb3..f14d71bb 100644 --- a/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp +++ b/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CopperbellMines : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp b/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp index 531bedfc..fd052be4 100644 --- a/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp +++ b/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CopperbellMinesHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/CuttersCry.cpp b/src/servers/Scripts/instances/dungeons/CuttersCry.cpp index 0b97079a..507b4ca8 100644 --- a/src/servers/Scripts/instances/dungeons/CuttersCry.cpp +++ b/src/servers/Scripts/instances/dungeons/CuttersCry.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CuttersCry : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/DomaCastle.cpp b/src/servers/Scripts/instances/dungeons/DomaCastle.cpp index 258433a9..4554ce07 100644 --- a/src/servers/Scripts/instances/dungeons/DomaCastle.cpp +++ b/src/servers/Scripts/instances/dungeons/DomaCastle.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DomaCastle : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp b/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp index d80fcda8..ba8f1642 100644 --- a/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp +++ b/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DzemaelDarkhold : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/Halatali.cpp b/src/servers/Scripts/instances/dungeons/Halatali.cpp index f4a3f351..667c110f 100644 --- a/src/servers/Scripts/instances/dungeons/Halatali.cpp +++ b/src/servers/Scripts/instances/dungeons/Halatali.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Halatali : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/HalataliHard.cpp b/src/servers/Scripts/instances/dungeons/HalataliHard.cpp index 6c94f120..012e9c3d 100644 --- a/src/servers/Scripts/instances/dungeons/HalataliHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HalataliHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HalataliHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp b/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp index d971a867..05bf63aa 100644 --- a/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp +++ b/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HaukkeManor : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp b/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp index 6453acfa..aa1071ec 100644 --- a/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HaukkeManorHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/HellsLid.cpp b/src/servers/Scripts/instances/dungeons/HellsLid.cpp index 2a13194a..faa38b51 100644 --- a/src/servers/Scripts/instances/dungeons/HellsLid.cpp +++ b/src/servers/Scripts/instances/dungeons/HellsLid.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HellsLid : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp b/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp index 4928ea5e..f38db5e4 100644 --- a/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp +++ b/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HullbreakerIsle : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp b/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp index be755127..13cd76c0 100644 --- a/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HullbreakerIsleHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp b/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp index 3ebf2d44..a1e0b73e 100644 --- a/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp +++ b/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class KuganeCastle : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/Neverreap.cpp b/src/servers/Scripts/instances/dungeons/Neverreap.cpp index 0ab7bd05..7152ce44 100644 --- a/src/servers/Scripts/instances/dungeons/Neverreap.cpp +++ b/src/servers/Scripts/instances/dungeons/Neverreap.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Neverreap : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/PharosSirius.cpp b/src/servers/Scripts/instances/dungeons/PharosSirius.cpp index 7fefad30..a30dd45a 100644 --- a/src/servers/Scripts/instances/dungeons/PharosSirius.cpp +++ b/src/servers/Scripts/instances/dungeons/PharosSirius.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class PharosSirius : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp b/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp index 3fc88190..86901f72 100644 --- a/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp +++ b/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class PharosSiriusHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp b/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp index d71a5f7a..150954f7 100644 --- a/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp +++ b/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SaintMociannesArboretum : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/Sastasha.cpp b/src/servers/Scripts/instances/dungeons/Sastasha.cpp index 2590119c..fd466b95 100644 --- a/src/servers/Scripts/instances/dungeons/Sastasha.cpp +++ b/src/servers/Scripts/instances/dungeons/Sastasha.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Sastasha : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/SastashaHard.cpp b/src/servers/Scripts/instances/dungeons/SastashaHard.cpp index 52e059b0..73129e05 100644 --- a/src/servers/Scripts/instances/dungeons/SastashaHard.cpp +++ b/src/servers/Scripts/instances/dungeons/SastashaHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SastashaHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp b/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp index 05ae83b9..4ca48f1a 100644 --- a/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp +++ b/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ShisuioftheVioletTides : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/Snowcloak.cpp b/src/servers/Scripts/instances/dungeons/Snowcloak.cpp index 192c2a60..f71bf4bb 100644 --- a/src/servers/Scripts/instances/dungeons/Snowcloak.cpp +++ b/src/servers/Scripts/instances/dungeons/Snowcloak.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Snowcloak : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/SohmAl.cpp b/src/servers/Scripts/instances/dungeons/SohmAl.cpp index 7398b1db..c3775916 100644 --- a/src/servers/Scripts/instances/dungeons/SohmAl.cpp +++ b/src/servers/Scripts/instances/dungeons/SohmAl.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SohmAl : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp b/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp index 203f43a4..27f27cad 100644 --- a/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp +++ b/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SohmAlHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/SohrKhai.cpp b/src/servers/Scripts/instances/dungeons/SohrKhai.cpp index 2f53ea94..0649f1a6 100644 --- a/src/servers/Scripts/instances/dungeons/SohrKhai.cpp +++ b/src/servers/Scripts/instances/dungeons/SohrKhai.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SohrKhai : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheAery.cpp b/src/servers/Scripts/instances/dungeons/TheAery.cpp index 3fdc271d..1f3ddd71 100644 --- a/src/servers/Scripts/instances/dungeons/TheAery.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAery.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheAery : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp b/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp index bb4a0d0d..aa6baeb3 100644 --- a/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheAetherochemicalResearchFacility : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheAntitower.cpp b/src/servers/Scripts/instances/dungeons/TheAntitower.cpp index 49c5d8fe..6e64d73d 100644 --- a/src/servers/Scripts/instances/dungeons/TheAntitower.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAntitower.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheAntitower : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp b/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp index 58a0160a..4d44c343 100644 --- a/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheAurumVale : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp b/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp index a121d8c6..cfa8f269 100644 --- a/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp +++ b/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheDrownedCityofSkalla : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp b/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp index 2bc1de12..594b7dd7 100644 --- a/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp +++ b/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheDuskVigil : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp b/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp index 3381682f..fb407215 100644 --- a/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp +++ b/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFractalContinuum : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp b/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp index 09d7b2bb..cc5284d0 100644 --- a/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFractalContinuumHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp index c8109e07..43aeb7b0 100644 --- a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp +++ b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheGreatGubalLibrary : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp index d0eb3528..857b46c5 100644 --- a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheGreatGubalLibraryHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp b/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp index 1fb32b2d..42f86b90 100644 --- a/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp +++ b/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheKeeperoftheLake : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp index 4a393373..db82d09f 100644 --- a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp +++ b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheLostCityofAmdapor : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp index c62e4e95..dbff517b 100644 --- a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheLostCityofAmdaporHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp b/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp index a491c95d..8c84d685 100644 --- a/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp +++ b/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePraetorium : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp b/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp index ba97b9ca..c7ddd5d7 100644 --- a/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSirensongSea : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp b/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp index 2111b994..6185305f 100644 --- a/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp +++ b/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheStoneVigil : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp b/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp index 856c7453..b90fa464 100644 --- a/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheStoneVigilHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp index a7788b52..30c0fdba 100644 --- a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSunkenTempleofQarn : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp index 31a593fc..4c8e4336 100644 --- a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSunkenTempleofQarnHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp index 44311393..efffdfac 100644 --- a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheTamTaraDeepcroft : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp index f3198b1d..d6fb7640 100644 --- a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheTamTaraDeepcroftHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp b/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp index 2bc27a7a..170c179c 100644 --- a/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheTempleoftheFist : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp b/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp index 0d7910f3..c57651b2 100644 --- a/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp +++ b/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheThousandMawsofTotoRak : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheVault.cpp b/src/servers/Scripts/instances/dungeons/TheVault.cpp index 583a64e2..80848fec 100644 --- a/src/servers/Scripts/instances/dungeons/TheVault.cpp +++ b/src/servers/Scripts/instances/dungeons/TheVault.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheVault : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp b/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp index 61f515eb..23bd854f 100644 --- a/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp +++ b/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheWanderersPalace : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp b/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp index cef7b8cf..87649edf 100644 --- a/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheWanderersPalaceHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/dungeons/Xelphatol.cpp b/src/servers/Scripts/instances/dungeons/Xelphatol.cpp index 6b5e980a..50800ec9 100644 --- a/src/servers/Scripts/instances/dungeons/Xelphatol.cpp +++ b/src/servers/Scripts/instances/dungeons/Xelphatol.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Xelphatol : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/events/TheHauntedManor.cpp b/src/servers/Scripts/instances/events/TheHauntedManor.cpp index 320f2b36..36ceea06 100644 --- a/src/servers/Scripts/instances/events/TheHauntedManor.cpp +++ b/src/servers/Scripts/instances/events/TheHauntedManor.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheHauntedManor : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp b/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp index 44cea731..662bba88 100644 --- a/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp +++ b/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheValentionesCeremony : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp b/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp index 9930fcdd..6372860c 100644 --- a/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp +++ b/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AllsWellthatEndsintheWell : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp b/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp index 302ef4e9..eba6136b 100644 --- a/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp +++ b/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AnnoytheVoid : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp index 47f76d71..2b628bb9 100644 --- a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp +++ b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BasicTrainingEnemyParties : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp index 8af49bb0..4fd6cecc 100644 --- a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp +++ b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BasicTrainingEnemyStrongholds : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp b/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp index b8f371e9..808b7c80 100644 --- a/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp +++ b/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class FlickingSticksandTakingNames : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp b/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp index 4adf9750..cff97d5f 100644 --- a/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp +++ b/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HeroontheHalfShell : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp b/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp index f461543c..d5b03c71 100644 --- a/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp +++ b/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class LongLivetheQueen : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp b/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp index 25bec36c..f9e30f97 100644 --- a/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp +++ b/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class MorethanaFeeler : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp b/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp index 251059ff..e48bfcd4 100644 --- a/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp +++ b/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class PullingPoisonPosies : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp b/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp index 950f7b5a..4cc2d298 100644 --- a/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp +++ b/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ShadowandClaw : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp b/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp index 119386d5..432b5e23 100644 --- a/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp +++ b/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SolemnTrinity : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/StingingBack.cpp b/src/servers/Scripts/instances/guildhests/StingingBack.cpp index ac2b1808..906c2c95 100644 --- a/src/servers/Scripts/instances/guildhests/StingingBack.cpp +++ b/src/servers/Scripts/instances/guildhests/StingingBack.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class StingingBack : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp b/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp index e2393955..5379f9bc 100644 --- a/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp +++ b/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class UndertheArmor : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/guildhests/WardUp.cpp b/src/servers/Scripts/instances/guildhests/WardUp.cpp index 889dd4a5..970e54c8 100644 --- a/src/servers/Scripts/instances/guildhests/WardUp.cpp +++ b/src/servers/Scripts/instances/guildhests/WardUp.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class WardUp : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp index acd22554..5ac0b32c 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AccrueEnmityfromMultipleTargets : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp b/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp index 33e488a3..dc64211e 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AssistAlliesinDefeatingaTarget : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp b/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp index 59cf12a4..97537b97 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AvoidAreaofEffectAttacks : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp index e6c698d0..7f95e54e 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AvoidEngagedTargets : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp b/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp index 061f6983..b100decf 100644 --- a/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DefeatanOccupiedTarget : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp b/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp index f47d47a6..eb8aa38a 100644 --- a/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class EngageEnemyReinforcements : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp index a6f89615..0f0925fa 100644 --- a/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class EngageMultipleTargets : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp index d4308f8f..94ff639d 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ExecuteaComboinBattle : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp index 10db2adb..ec52f532 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ExecuteaCombotoIncreaseEnmity : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp index a8915102..16cda58d 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ExecuteaRangedAttacktoIncreaseEnmity : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp b/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp index 623f41d0..106e95b2 100644 --- a/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class FinalExercise : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp b/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp index 56342715..b5fcd5d9 100644 --- a/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HealMultipleAllies : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp b/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp index 3eb502ce..87f2a97d 100644 --- a/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class HealanAlly : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp b/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp index ba568c68..eea766d9 100644 --- a/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class InteractwiththeBattlefield : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/Astragalos.cpp b/src/servers/Scripts/instances/pvp/Astragalos.cpp index 9bd97972..8c4d8de1 100644 --- a/src/servers/Scripts/instances/pvp/Astragalos.cpp +++ b/src/servers/Scripts/instances/pvp/Astragalos.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Astragalos : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/SealRockSeize.cpp b/src/servers/Scripts/instances/pvp/SealRockSeize.cpp index 957c9f22..b1efa7dd 100644 --- a/src/servers/Scripts/instances/pvp/SealRockSeize.cpp +++ b/src/servers/Scripts/instances/pvp/SealRockSeize.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SealRockSeize : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp b/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp index 767b3a51..a6ec9ac8 100644 --- a/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp +++ b/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBorderlandRuinsSecure : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp index a697210f..519aac3c 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeast4on4LightParty : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp index d9a0c6d4..a71516b9 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeast4on4Ranked : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp index 5b08c17b..34043bc3 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeast4on4Training : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp index ab00a81f..100ba852 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeastCustomMatchCrystalTower : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp index c62ebafa..161e2b6c 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeastCustomMatchFeastingGrounds : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp index 1b3e00a5..1d9e491a 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeastCustomMatchLichenweed : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp b/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp index 2614c52d..be0348ff 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeastRanked : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp b/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp index 86a1d7a2..6e1dbffb 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeastTeamRanked : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp b/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp index 109fa8c3..a3aac623 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFeastTraining : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp b/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp index ffa05e9a..c3dc287d 100644 --- a/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp +++ b/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFieldsofGloryShatter : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp b/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp index 5156924c..fe15d51d 100644 --- a/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp +++ b/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ABloodyReunion : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp b/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp index 812ca933..66a74b21 100644 --- a/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp +++ b/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ASpectaclefortheAges : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp b/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp index 213ea2a3..170f689a 100644 --- a/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp +++ b/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BloodDragoon : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp b/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp index 7d7a7904..6c7e665a 100644 --- a/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp +++ b/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BloodontheDeck : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp b/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp index 9d11e0d9..1ee71fde 100644 --- a/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp +++ b/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CuriousGorgeMeetsHisMatch : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp b/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp index dbb22306..29d57183 100644 --- a/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp +++ b/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DarkwingDragon : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/InThalsName.cpp b/src/servers/Scripts/instances/questbattles/InThalsName.cpp index 30651049..ac4d87c3 100644 --- a/src/servers/Scripts/instances/questbattles/InThalsName.cpp +++ b/src/servers/Scripts/instances/questbattles/InThalsName.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class InThalsName : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp b/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp index 3d59bb98..324e6162 100644 --- a/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp +++ b/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class InterdimensionalRift : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp b/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp index e66d6988..808a9ad2 100644 --- a/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp +++ b/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ItsProbablyaTrap : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp b/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp index b300c2a0..4b535e4b 100644 --- a/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp +++ b/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class MatsubaMayhem : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/Naadam.cpp b/src/servers/Scripts/instances/questbattles/Naadam.cpp index 24d86f58..57c3bfb6 100644 --- a/src/servers/Scripts/instances/questbattles/Naadam.cpp +++ b/src/servers/Scripts/instances/questbattles/Naadam.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Naadam : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp b/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp index 04e19bcc..f1299596 100644 --- a/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp +++ b/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class OneLifeforOneWorld : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/OurCompromise.cpp b/src/servers/Scripts/instances/questbattles/OurCompromise.cpp index d1a86fb4..0a8e24f7 100644 --- a/src/servers/Scripts/instances/questbattles/OurCompromise.cpp +++ b/src/servers/Scripts/instances/questbattles/OurCompromise.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class OurCompromise : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp b/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp index 1e8eead9..8af495da 100644 --- a/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp +++ b/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class OurUnsungHeroes : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp b/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp index ece6cfa3..a93ce442 100644 --- a/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp +++ b/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class RaisingtheSword : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp b/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp index ce800b13..3b78b442 100644 --- a/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp +++ b/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ReturnoftheBull : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp b/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp index 96279282..b722dbca 100644 --- a/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp +++ b/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBattleonBekko : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp b/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp index 6c5deaaf..0d9ca6a7 100644 --- a/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp +++ b/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheCarteneauFlatsHeliodrome : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp b/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp index 66caf3cd..f1343594 100644 --- a/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp +++ b/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFaceofTrueEvil : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp b/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp index 9524aa55..c68ef053 100644 --- a/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp +++ b/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheHeartoftheProblem : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp b/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp index 7fbc59da..ac159b51 100644 --- a/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp +++ b/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheOrphansandtheBrokenBlade : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/TheResonant.cpp b/src/servers/Scripts/instances/questbattles/TheResonant.cpp index c09b35d1..6c9358a5 100644 --- a/src/servers/Scripts/instances/questbattles/TheResonant.cpp +++ b/src/servers/Scripts/instances/questbattles/TheResonant.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheResonant : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp b/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp index 78fae391..6a8e7791 100644 --- a/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp +++ b/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class WhenClansCollide : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp b/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp index 8c0c3923..16bae070 100644 --- a/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp +++ b/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class WithHeartandSteel : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp index b5161204..b3124ca8 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheArmoftheFather : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp index 02a980f8..ca4e6eee 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheArmoftheFatherSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp index b6c952b2..952bfa8e 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheArmoftheSon : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp index 9164e297..b6f677ad 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheArmoftheSonSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp index 6d0c95e9..92f71afb 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheBreathoftheCreator : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp index 858e3c06..86e2e353 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheBreathoftheCreatorSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp index 282e906b..36779b87 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheBurdenoftheFather : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp index 9a90cb11..49416462 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheBurdenoftheFatherSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp index 55e43cf9..bcb0e0a1 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheBurdenoftheSon : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp index c4590c74..0958d702 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheBurdenoftheSonSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp index 8dd80f5c..83d7a3d7 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheCuffoftheFather : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp index b84bbe49..ce4d8868 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheCuffoftheFatherSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp index 2f54eeae..e0009b2b 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheCuffoftheSon : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp index 7c90efa7..6d895dab 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheCuffoftheSonSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp index 00aeb92c..5aeaee83 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheEyesoftheCreator : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp index 7793d5b1..662e11cc 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheEyesoftheCreatorSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp index f9debc0a..fb984a7a 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheFistoftheFather : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp index 2428de47..9c67e0e0 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheFistoftheFatherSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp index 3701bf2a..df385fe0 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheFistoftheSon : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp index ecf691c2..177cfe71 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheFistoftheSonSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp index b11bea73..de5114be 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheHeartoftheCreator : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp index b75875f4..c448dd00 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheHeartoftheCreatorSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp index 452d046c..4de86a8a 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheSouloftheCreator : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp index 2ec67e1f..e28013da 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AlexanderTheSouloftheCreatorSavage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV10.cpp b/src/servers/Scripts/instances/raids/DeltascapeV10.cpp index 68d9ba14..6ce0bbd0 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV10.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV10.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV10 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp index 52bf199e..90355626 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV10Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV20.cpp b/src/servers/Scripts/instances/raids/DeltascapeV20.cpp index 910c47e2..091b80ae 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV20.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV20.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV20 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp index a65efc62..4bdb703b 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV20Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV30.cpp b/src/servers/Scripts/instances/raids/DeltascapeV30.cpp index 56dae699..359a5006 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV30.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV30.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV30 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp index ed6487f1..15da8045 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV30Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV40.cpp b/src/servers/Scripts/instances/raids/DeltascapeV40.cpp index be9f64b9..cb8bba6b 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV40.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV40.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV40 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp index bd3f4d5b..feb2bea5 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DeltascapeV40Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/DunScaith.cpp b/src/servers/Scripts/instances/raids/DunScaith.cpp index 06c8e9aa..3f35df35 100644 --- a/src/servers/Scripts/instances/raids/DunScaith.cpp +++ b/src/servers/Scripts/instances/raids/DunScaith.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class DunScaith : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV10.cpp b/src/servers/Scripts/instances/raids/SigmascapeV10.cpp index d9608496..f0fe4820 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV10.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV10.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV10 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp index 1e57ffcc..25648e9c 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV10Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV20.cpp b/src/servers/Scripts/instances/raids/SigmascapeV20.cpp index 605c83a0..e9a2474d 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV20.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV20.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV20 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp index 9ee27657..ae51396f 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV20Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV30.cpp b/src/servers/Scripts/instances/raids/SigmascapeV30.cpp index 898e409f..9e27d9dd 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV30.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV30.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV30 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp index 48e0c000..2a8c9f30 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV30Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV40.cpp b/src/servers/Scripts/instances/raids/SigmascapeV40.cpp index 303b1cb2..3dab868b 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV40.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV40.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV40 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp index 4f78764e..121cb8f6 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SigmascapeV40Savage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/SyrcusTower.cpp b/src/servers/Scripts/instances/raids/SyrcusTower.cpp index e70e9634..8765ecd4 100644 --- a/src/servers/Scripts/instances/raids/SyrcusTower.cpp +++ b/src/servers/Scripts/instances/raids/SyrcusTower.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SyrcusTower : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp index 235b388f..913242d0 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBindingCoilofBahamutTurn1 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp index a46be3e8..1857a95a 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBindingCoilofBahamutTurn2 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp index 250b23bf..9627dea1 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBindingCoilofBahamutTurn3 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp index 3d71d330..1d25869f 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBindingCoilofBahamutTurn4 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp index ef292f8e..fda3a6a1 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBindingCoilofBahamutTurn5 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp index 0b3389da..adf01465 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFinalCoilofBahamutTurn1 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp index 9d92d87b..d20322c2 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFinalCoilofBahamutTurn2 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp index 3e5c1293..e97e6e9c 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFinalCoilofBahamutTurn3 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp index bb4a3fa2..a75576d2 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFinalCoilofBahamutTurn4 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp b/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp index 4d5e5c5e..5c180590 100644 --- a/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp +++ b/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheLabyrinthoftheAncients : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp b/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp index a10c2ffb..b2cf9842 100644 --- a/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp +++ b/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheRoyalCityofRabanastre : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp index fae2b3fe..c46e1bff 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutSavageTurn1 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp index f7b175c4..37ab7ff6 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutSavageTurn2 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp index cb88270b..f5f6ae38 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutSavageTurn3 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp index 610f265d..0f03e032 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutSavageTurn4 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp index 4b4fed34..2283673f 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutTurn1 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp index 4fb47af4..13e6481e 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutTurn2 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp index c94efd60..e29ba451 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutTurn3 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp index 8974b720..a853df26 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSecondCoilofBahamutTurn4 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp b/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp index ec389f1f..dda7c9b8 100644 --- a/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp +++ b/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheUnendingCoilofBahamutUltimate : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheVoidArk.cpp b/src/servers/Scripts/instances/raids/TheVoidArk.cpp index 86a6a9e7..c1eff79b 100644 --- a/src/servers/Scripts/instances/raids/TheVoidArk.cpp +++ b/src/servers/Scripts/instances/raids/TheVoidArk.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheVoidArk : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp b/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp index 67bd9aeb..7a3a6a88 100644 --- a/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp +++ b/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheWeaponsRefrainUltimate : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp b/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp index 46a057e7..f335841f 100644 --- a/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp +++ b/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheWeepingCityofMhach : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp b/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp index fbc4df00..43abeaf4 100644 --- a/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp +++ b/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheWorldofDarkness : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp b/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp index bc94deb6..c298bbc9 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheAquapolis : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp b/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp index 64f769bd..34783087 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheHiddenCanalsofUznair : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp b/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp index 3005ce36..73c2eb16 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheLostCanalsofUznair : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp b/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp index 4b5c2d2f..e723ce21 100644 --- a/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp +++ b/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ARelicReborntheChimera : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp b/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp index fe590f66..943dc3bd 100644 --- a/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp +++ b/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ARelicReborntheHydra : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp index 0fcac9c1..113102bd 100644 --- a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp +++ b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AkhAfahAmphitheatreExtreme : public Sapphire::ScriptAPI::InstanceContentScript { diff --git a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp index 7147090a..0369c236 100644 --- a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp +++ b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class AkhAfahAmphitheatreHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp b/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp index 3e283f09..e7664c65 100644 --- a/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp +++ b/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BattleintheBigKeep : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp b/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp index 26fb633b..d45d1660 100644 --- a/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp +++ b/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class BattleontheBigBridge : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/CapeWestwind.cpp b/src/servers/Scripts/instances/trials/CapeWestwind.cpp index d67714e2..031c54d9 100644 --- a/src/servers/Scripts/instances/trials/CapeWestwind.cpp +++ b/src/servers/Scripts/instances/trials/CapeWestwind.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class CapeWestwind : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp b/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp index 931f5d90..50a6a203 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ContainmentBayP1T6 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp index 2595a99f..5f25e2d6 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ContainmentBayP1T6Extreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp b/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp index b0ec25d9..6b68e282 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ContainmentBayS1T7 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp index 846bb7bc..2b5985a5 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ContainmentBayS1T7Extreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp index d7d6f352..14b73206 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ContainmentBayZ1T9 : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp index 2ecd9f20..ec54c2c2 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ContainmentBayZ1T9Extreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/Emanation.cpp b/src/servers/Scripts/instances/trials/Emanation.cpp index 6860ffcb..c5789df5 100644 --- a/src/servers/Scripts/instances/trials/Emanation.cpp +++ b/src/servers/Scripts/instances/trials/Emanation.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class Emanation : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/EmanationExtreme.cpp b/src/servers/Scripts/instances/trials/EmanationExtreme.cpp index 8bfefb1e..359e9302 100644 --- a/src/servers/Scripts/instances/trials/EmanationExtreme.cpp +++ b/src/servers/Scripts/instances/trials/EmanationExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class EmanationExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/SpecialEventI.cpp b/src/servers/Scripts/instances/trials/SpecialEventI.cpp index 8945086d..943212d2 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventI.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventI.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SpecialEventI : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/SpecialEventII.cpp b/src/servers/Scripts/instances/trials/SpecialEventII.cpp index 450976b7..f1ffca66 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventII.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventII.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SpecialEventII : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/SpecialEventIII.cpp b/src/servers/Scripts/instances/trials/SpecialEventIII.cpp index d0a8a2ca..9b5e370f 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventIII.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventIII.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class SpecialEventIII : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp index 6f8c70b0..e802a901 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBowlofEmbers : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp index 22b137ee..496d6d47 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBowlofEmbersExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp index 6b9408cf..d6743f4d 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheBowlofEmbersHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheChrysalis.cpp b/src/servers/Scripts/instances/trials/TheChrysalis.cpp index 57adf3ca..c986cf1c 100644 --- a/src/servers/Scripts/instances/trials/TheChrysalis.cpp +++ b/src/servers/Scripts/instances/trials/TheChrysalis.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheChrysalis : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp b/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp index bd9762ec..a07a73e6 100644 --- a/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp +++ b/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheDragonsNeck : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp b/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp index 0900ff1f..1fb8d69f 100644 --- a/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp +++ b/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheFinalStepsofFaith : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheHowlingEye.cpp b/src/servers/Scripts/instances/trials/TheHowlingEye.cpp index 5fc19232..3daf3251 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEye.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEye.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheHowlingEye : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp b/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp index fbeead31..3f6d66d8 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheHowlingEyeExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp b/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp index 1f301b38..7dd4dbeb 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheHowlingEyeHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheJadeStoa.cpp b/src/servers/Scripts/instances/trials/TheJadeStoa.cpp index 52d2ed64..99436ffc 100644 --- a/src/servers/Scripts/instances/trials/TheJadeStoa.cpp +++ b/src/servers/Scripts/instances/trials/TheJadeStoa.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheJadeStoa : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp b/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp index 8b4f1857..f43329d5 100644 --- a/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheJadeStoaExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp b/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp index 4d869a19..4b4eb5ee 100644 --- a/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheLimitlessBlueExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp b/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp index c1bf0dd8..bcb090e0 100644 --- a/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp +++ b/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheLimitlessBlueHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp index 7600ef70..b28494b4 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheMinstrelsBalladNidhoggsRage : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp index 1cde1c30..74b8c11e 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheMinstrelsBalladShinryusDomain : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp index bd67a04f..966bd77f 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheMinstrelsBalladThordansReign : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp index 9b2a0c87..79fa4e89 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheMinstrelsBalladUltimasBane : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheNavel.cpp b/src/servers/Scripts/instances/trials/TheNavel.cpp index 6daf15f3..cab03b0c 100644 --- a/src/servers/Scripts/instances/trials/TheNavel.cpp +++ b/src/servers/Scripts/instances/trials/TheNavel.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheNavel : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp b/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp index 145dc1cf..191aa768 100644 --- a/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheNavelExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheNavelHard.cpp b/src/servers/Scripts/instances/trials/TheNavelHard.cpp index 2f7f601a..22ae7441 100644 --- a/src/servers/Scripts/instances/trials/TheNavelHard.cpp +++ b/src/servers/Scripts/instances/trials/TheNavelHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheNavelHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp b/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp index cba40367..203a34b7 100644 --- a/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp +++ b/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePoolofTribute : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp b/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp index 8b65f471..e9141ff0 100644 --- a/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThePoolofTributeExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp b/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp index c16d50b4..e7581de5 100644 --- a/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp +++ b/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheRoyalMenagerie : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp b/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp index 910219c4..23afa8e6 100644 --- a/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp +++ b/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheSingularityReactor : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp b/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp index a0253e07..4c394631 100644 --- a/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp +++ b/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheStepsofFaith : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp b/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp index b0a48eb0..a8977105 100644 --- a/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheStrikingTreeExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp b/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp index fe3245ee..794d6ffe 100644 --- a/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp +++ b/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheStrikingTreeHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp b/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp index 450da17f..30008db5 100644 --- a/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheWhorleaterExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp b/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp index cb73810f..d7e5c897 100644 --- a/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp +++ b/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class TheWhorleaterHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp b/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp index 89003f45..badfd17f 100644 --- a/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThokastThokExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ThokastThokHard.cpp b/src/servers/Scripts/instances/trials/ThokastThokHard.cpp index ee25d9db..370e7186 100644 --- a/src/servers/Scripts/instances/trials/ThokastThokHard.cpp +++ b/src/servers/Scripts/instances/trials/ThokastThokHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThokastThokHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp b/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp index df1edf14..20bf9a9d 100644 --- a/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThornmarchExtreme : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/ThornmarchHard.cpp b/src/servers/Scripts/instances/trials/ThornmarchHard.cpp index b6f02b7e..bf3706e5 100644 --- a/src/servers/Scripts/instances/trials/ThornmarchHard.cpp +++ b/src/servers/Scripts/instances/trials/ThornmarchHard.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class ThornmarchHard : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/instances/trials/UrthsFount.cpp b/src/servers/Scripts/instances/trials/UrthsFount.cpp index adefd618..f206105b 100644 --- a/src/servers/Scripts/instances/trials/UrthsFount.cpp +++ b/src/servers/Scripts/instances/trials/UrthsFount.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class UrthsFount : public Sapphire::ScriptAPI::InstanceContentScript diff --git a/src/servers/Scripts/opening/OpeningGridania.cpp b/src/servers/Scripts/opening/OpeningGridania.cpp index 069625cd..0623890a 100644 --- a/src/servers/Scripts/opening/OpeningGridania.cpp +++ b/src/servers/Scripts/opening/OpeningGridania.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class OpeningGridania : public Sapphire::ScriptAPI::EventScript { diff --git a/src/servers/Scripts/opening/OpeningLimsa.cpp b/src/servers/Scripts/opening/OpeningLimsa.cpp index 2401ccc6..73f9af52 100644 --- a/src/servers/Scripts/opening/OpeningLimsa.cpp +++ b/src/servers/Scripts/opening/OpeningLimsa.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Opening Script: OpeningLimsaLominsa // Quest Name: OpeningLimsaLominsa diff --git a/src/servers/Scripts/opening/OpeningUldah.cpp b/src/servers/Scripts/opening/OpeningUldah.cpp index 42e9fada..256d3b34 100644 --- a/src/servers/Scripts/opening/OpeningUldah.cpp +++ b/src/servers/Scripts/opening/OpeningUldah.cpp @@ -1,7 +1,7 @@ #include #include -using namespace Core; +using namespace Sapphire; class OpeningUldah : public Sapphire::ScriptAPI::EventScript { diff --git a/src/servers/Scripts/quest/ManFst001.cpp b/src/servers/Scripts/quest/ManFst001.cpp index 8aceb25b..8b5b7e95 100644 --- a/src/servers/Scripts/quest/ManFst001.cpp +++ b/src/servers/Scripts/quest/ManFst001.cpp @@ -9,7 +9,7 @@ // Start NPC: 1001148 // End NPC: 1001140 -using namespace Core; +using namespace Sapphire; class ManFst001 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/ManFst002.cpp b/src/servers/Scripts/quest/ManFst002.cpp index cd72400c..7f892de4 100644 --- a/src/servers/Scripts/quest/ManFst002.cpp +++ b/src/servers/Scripts/quest/ManFst002.cpp @@ -9,7 +9,7 @@ // Start NPC: 1001140 // End NPC: 1000100 -using namespace Core; +using namespace Sapphire; class ManFst002 : public Sapphire::ScriptAPI::EventScript { diff --git a/src/servers/Scripts/quest/ManFst003.cpp b/src/servers/Scripts/quest/ManFst003.cpp index b0c5f26e..640b6107 100644 --- a/src/servers/Scripts/quest/ManFst003.cpp +++ b/src/servers/Scripts/quest/ManFst003.cpp @@ -8,7 +8,7 @@ // Start NPC: 1001140 // End NPC: 1000100 -using namespace Core; +using namespace Sapphire; class ManFst003 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/ManFst004.cpp b/src/servers/Scripts/quest/ManFst004.cpp index 4231a30e..6d64b301 100644 --- a/src/servers/Scripts/quest/ManFst004.cpp +++ b/src/servers/Scripts/quest/ManFst004.cpp @@ -8,7 +8,7 @@ // Start NPC: 1001140 // End NPC: 1000100 -using namespace Core; +using namespace Sapphire; class ManFst004 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/ManSea001.cpp b/src/servers/Scripts/quest/ManSea001.cpp index 61899a69..27db50f1 100644 --- a/src/servers/Scripts/quest/ManSea001.cpp +++ b/src/servers/Scripts/quest/ManSea001.cpp @@ -8,7 +8,7 @@ // Start NPC: 1001028 // End NPC: 1002697 -using namespace Core; +using namespace Sapphire; class ManSea001 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/ManSea002.cpp b/src/servers/Scripts/quest/ManSea002.cpp index 088a9153..c2fd2f37 100644 --- a/src/servers/Scripts/quest/ManSea002.cpp +++ b/src/servers/Scripts/quest/ManSea002.cpp @@ -8,7 +8,7 @@ // Start NPC: 1002697 // End NPC: 1000972 -using namespace Core; +using namespace Sapphire; class ManSea002 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/ManSea003.cpp b/src/servers/Scripts/quest/ManSea003.cpp index e4904ba4..f340937c 100644 --- a/src/servers/Scripts/quest/ManSea003.cpp +++ b/src/servers/Scripts/quest/ManSea003.cpp @@ -8,7 +8,7 @@ // Start NPC: 1002697 // End NPC: 1000972 -using namespace Core; +using namespace Sapphire; class ManSea003 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/ManWil001.cpp b/src/servers/Scripts/quest/ManWil001.cpp index 03602e5f..d497b08f 100644 --- a/src/servers/Scripts/quest/ManWil001.cpp +++ b/src/servers/Scripts/quest/ManWil001.cpp @@ -8,7 +8,7 @@ // Start NPC: 1003987 // End NPC: 1003988 -using namespace Core; +using namespace Sapphire; class ManWil001 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/ManWil002.cpp b/src/servers/Scripts/quest/ManWil002.cpp index 0412de3b..b2dd4db6 100644 --- a/src/servers/Scripts/quest/ManWil002.cpp +++ b/src/servers/Scripts/quest/ManWil002.cpp @@ -8,7 +8,7 @@ // Start NPC: 1003988 // End NPC: 1001353 -using namespace Core; +using namespace Sapphire; class ManWil002 : public Sapphire::ScriptAPI::EventScript diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp index c71fadce..45c2bbf6 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst001.cpp @@ -2,7 +2,7 @@ #include "Event/EventHelper.h" #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst001_00024 // Quest Name: Coarse Correspondence diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp index 481e3610..85722cde 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst002.cpp @@ -2,7 +2,7 @@ #include "Event/EventHelper.h" #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst002_00025 // Quest Name: Quarrels with Squirrels diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp index c019ea1f..e5d0aca7 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst003.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst003_00026 // Quest Name: Once Bitten, Twice Shy diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp index 155db5ca..7cf1a84d 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst004.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst004_00027 // Quest Name: Preserving the Past diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp index 641ec07e..c0193abc 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst008.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst008_00032 // Quest Name: A Hard Nut to Crack diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp index e9cee5ee..0542f689 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst009.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst009_00034 // Quest Name: Derision of Labor diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp index d1339fb8..a8a2defe 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst010.cpp @@ -2,7 +2,7 @@ #include "Event/EventHelper.h" #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst010_00001 // Quest Name: A Good Adventurer Is Hard to Find diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp index e9839111..ceadb3d4 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst011.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst011_00037 // Quest Name: Population Control diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp index 740da9b7..e813acab 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst013.cpp @@ -2,7 +2,7 @@ #include #include "Event/EventHelper.h" -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst013_00040 // Quest Name: For Friendship diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp index abea218c..735f54a0 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst014.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst014_00041 // Quest Name: Covered in Roses diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp index a574dc7b..bd0aa913 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst015.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst015_00042 // Quest Name: Sylphic Gratitude diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp index 3e793627..51701057 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst019.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst019_00049 // Quest Name: I Am Millicent, Hear Me Roar diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp index 6c1710ad..e5136621 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst026.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst026_00170 // Quest Name: Jumping at Shadows diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp index 90e5862f..d2d6d65a 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst029.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst029_00172 // Quest Name: More than a Flesh Wound diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp index 2ba2eb3b..9f7dedfe 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst030.cpp @@ -3,7 +3,7 @@ #include "Event/EventHelper.h" #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst030_00173 // Quest Name: The Nose Knows diff --git a/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp b/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp index 6ab413f2..720b0cd9 100644 --- a/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp +++ b/src/servers/Scripts/quest/subquest/gridania/SubFst041.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubFst041_00197 // Quest Name: Splitting Shells diff --git a/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp b/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp index 1c947ed9..2edf9e7c 100644 --- a/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp +++ b/src/servers/Scripts/quest/subquest/limsa/SubSea001.cpp @@ -3,7 +3,7 @@ #include "Event/EventHelper.h" #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubSea001_00111 // Quest Name: Making a Name diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp index 760db8ac..fe3f4488 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil000.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil000_00149 // Quest Name: Due Diligence diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp index fdd6ef2f..ddce1461 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil001.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil001_00150 // Quest Name: Motivational Speaking diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp index 20f65c02..b5843361 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil002.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil002_00151 // Quest Name: Gil for Gold diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp index 6d857111..b066055c 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil004.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil004_00153 // Quest Name: Unholy Matrimony diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp index 0cf698ea..a5bc3fdf 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil006.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil006_00165 // Quest Name: The Great Gladiator diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp index 9d2f2200..bc6e90be 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil007.cpp @@ -3,7 +3,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil007_00167 // Quest Name: With Open Arms diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp index 097320d5..ba2745a9 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil018.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil018_00396 // Quest Name: No Lady Is an Island diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp index 550d359f..7eb1716a 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil019.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil019_00392 // Quest Name: Decisions, Decisions diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp index 0920de6a..850f8ae4 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil021.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil021_00394 // Quest Name: A Luxury Long Lost diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp index 1d090eb0..7cd0c32a 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil022.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil022_00395 // Quest Name: The Wealth of Nations diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp index 11097fc0..dbca92e8 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil027.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil027_00595 // Quest Name: We Must Rebuild diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp index 1fcef78e..3a7793df 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil028.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil028_00389 // Quest Name: Fantastic Voyage diff --git a/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp b/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp index eddeabad..fee8e96a 100644 --- a/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp +++ b/src/servers/Scripts/quest/subquest/uldah/SubWil029.cpp @@ -2,7 +2,7 @@ #include #include -using namespace Core; +using namespace Sapphire; // Quest Script: SubWil029_00390 // Quest Name: Catch Your Breath diff --git a/src/servers/sapphire_api/Forwards.h b/src/servers/sapphire_api/Forwards.h index cf8c0a4c..8c50d1ff 100644 --- a/src/servers/sapphire_api/Forwards.h +++ b/src/servers/sapphire_api/Forwards.h @@ -3,7 +3,7 @@ #include -namespace Core +namespace Sapphire { class Cell; class Zone; diff --git a/src/servers/sapphire_api/LoginSession.cpp b/src/servers/sapphire_api/LoginSession.cpp index ed9dcf5a..8e202d4c 100644 --- a/src/servers/sapphire_api/LoginSession.cpp +++ b/src/servers/sapphire_api/LoginSession.cpp @@ -1,6 +1,6 @@ #include "LoginSession.h" -namespace Core { +namespace Sapphire { LoginSession::LoginSession( void ) { //setSocket(NULL); diff --git a/src/servers/sapphire_api/LoginSession.h b/src/servers/sapphire_api/LoginSession.h index e5493c7a..66fc1f4f 100644 --- a/src/servers/sapphire_api/LoginSession.h +++ b/src/servers/sapphire_api/LoginSession.h @@ -7,7 +7,7 @@ #include #include -namespace Core +namespace Sapphire { class LoginSession diff --git a/src/servers/sapphire_api/PlayerMinimal.cpp b/src/servers/sapphire_api/PlayerMinimal.cpp index 9829ae1c..31e84818 100644 --- a/src/servers/sapphire_api/PlayerMinimal.cpp +++ b/src/servers/sapphire_api/PlayerMinimal.cpp @@ -6,9 +6,9 @@ #include -extern Core::Data::ExdDataGenerated g_exdDataGen; +extern Sapphire::Data::ExdDataGenerated g_exdDataGen; -namespace Core { +namespace Sapphire { using namespace Common; @@ -146,7 +146,7 @@ std::string PlayerMinimal::getInfoJson() uint8_t PlayerMinimal::getClassLevel() { - uint8_t classJobIndex = g_exdDataGen.get< Core::Data::ClassJob >( static_cast< uint8_t >( m_class ) )->expArrayIndex; + uint8_t classJobIndex = g_exdDataGen.get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( m_class ) )->expArrayIndex; return static_cast< uint8_t >( m_classMap[ classJobIndex ] ); } @@ -206,11 +206,11 @@ void PlayerMinimal::saveAsNew() float x, y, z, o; int32_t startTown = 0; - switch( static_cast< Core::Common::ClassJob >( m_class ) ) + switch( static_cast< Sapphire::Common::ClassJob >( m_class ) ) { - case Core::Common::ClassJob::Conjurer: - case Core::Common::ClassJob::Lancer: - case Core::Common::ClassJob::Archer: + case Sapphire::Common::ClassJob::Conjurer: + case Sapphire::Common::ClassJob::Lancer: + case Sapphire::Common::ClassJob::Archer: x = 127.0f; y = -13.0f; z = 147.0f; @@ -219,8 +219,8 @@ void PlayerMinimal::saveAsNew() startTown = 2; break; - case Core::Common::ClassJob::Marauder: - case Core::Common::ClassJob::Arcanist: + case Sapphire::Common::ClassJob::Marauder: + case Sapphire::Common::ClassJob::Arcanist: x = -53.0f; y = 18.0f; z = 0.0f; @@ -229,9 +229,9 @@ void PlayerMinimal::saveAsNew() startZone = 181; break; - case Core::Common::ClassJob::Thaumaturge: - case Core::Common::ClassJob::Pugilist: - case Core::Common::ClassJob::Gladiator: + case Sapphire::Common::ClassJob::Thaumaturge: + case Sapphire::Common::ClassJob::Pugilist: + case Sapphire::Common::ClassJob::Gladiator: x = 42.0f; y = 4.0f; z = -157.6f; @@ -253,7 +253,7 @@ void PlayerMinimal::saveAsNew() // CharacterId, ClassIdx, Exp, Lvl auto stmtClass = g_charaDb.getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_INS ); stmtClass->setInt( 1, m_id ); - stmtClass->setInt( 2, g_exdDataGen.get< Core::Data::ClassJob >( m_class )->expArrayIndex ); + stmtClass->setInt( 2, g_exdDataGen.get< Sapphire::Data::ClassJob >( m_class )->expArrayIndex ); stmtClass->setInt( 3, 0 ); stmtClass->setInt( 4, 1 ); g_charaDb.directExecute( stmtClass ); @@ -326,14 +326,14 @@ void PlayerMinimal::saveAsNew() /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /// SETUP EQUIPMENT / STARTING GEAR - auto classJobInfo = g_exdDataGen.get< Core::Data::ClassJob >( m_class ); + auto classJobInfo = g_exdDataGen.get< Sapphire::Data::ClassJob >( m_class ); uint32_t weaponId = classJobInfo->itemStartingWeapon; uint64_t uniqueId = getNextUId64(); uint8_t race = customize[ CharaLook::Race ]; uint8_t gender = customize[ CharaLook::Gender ]; - auto raceInfo = g_exdDataGen.get< Core::Data::Race >( race ); + auto raceInfo = g_exdDataGen.get< Sapphire::Data::Race >( race ); uint32_t body; uint32_t hands; diff --git a/src/servers/sapphire_api/PlayerMinimal.h b/src/servers/sapphire_api/PlayerMinimal.h index df8efd7c..7cbaade8 100644 --- a/src/servers/sapphire_api/PlayerMinimal.h +++ b/src/servers/sapphire_api/PlayerMinimal.h @@ -5,7 +5,7 @@ #include #include -namespace Core +namespace Sapphire { class PlayerMinimal diff --git a/src/servers/sapphire_api/SapphireAPI.cpp b/src/servers/sapphire_api/SapphireAPI.cpp index 1f981514..d6b0065d 100644 --- a/src/servers/sapphire_api/SapphireAPI.cpp +++ b/src/servers/sapphire_api/SapphireAPI.cpp @@ -10,17 +10,17 @@ #include -Core::Network::SapphireAPI::SapphireAPI() +Sapphire::Network::SapphireAPI::SapphireAPI() { } -Core::Network::SapphireAPI::~SapphireAPI() +Sapphire::Network::SapphireAPI::~SapphireAPI() { } -bool Core::Network::SapphireAPI::login( const std::string& username, const std::string& pass, std::string& sId ) +bool Sapphire::Network::SapphireAPI::login( const std::string& username, const std::string& pass, std::string& sId ) { std::string query = "SELECT account_id FROM accounts WHERE account_name = '" + username + "' AND account_pass = '" + pass + "';"; @@ -63,7 +63,7 @@ bool Core::Network::SapphireAPI::login( const std::string& username, const std:: } -bool Core::Network::SapphireAPI::insertSession( const uint32_t& accountId, std::string& sId ) +bool Sapphire::Network::SapphireAPI::insertSession( const uint32_t& accountId, std::string& sId ) { // create session for the new sessionid and store to sessionlist auto pSession = std::make_shared< Session >(); @@ -76,7 +76,7 @@ bool Core::Network::SapphireAPI::insertSession( const uint32_t& accountId, std:: } -bool Core::Network::SapphireAPI::createAccount( const std::string& username, const std::string& pass, std::string& sId ) +bool Sapphire::Network::SapphireAPI::createAccount( const std::string& username, const std::string& pass, std::string& sId ) { // get account from login name auto pQR = g_charaDb.query( "SELECT account_id FROM accounts WHERE account_name = '" + username + "';" ); @@ -107,10 +107,10 @@ bool Core::Network::SapphireAPI::createAccount( const std::string& username, con } int -Core::Network::SapphireAPI::createCharacter( const int& accountId, const std::string& name, const std::string& infoJson, +Sapphire::Network::SapphireAPI::createCharacter( const int& accountId, const std::string& name, const std::string& infoJson, const int& gmRank ) { - Core::PlayerMinimal newPlayer; + Sapphire::PlayerMinimal newPlayer; newPlayer.setAccountId( accountId ); newPlayer.setId( getNextCharId() ); @@ -179,7 +179,7 @@ Core::Network::SapphireAPI::createCharacter( const int& accountId, const std::st return newPlayer.getAccountId(); } -void Core::Network::SapphireAPI::deleteCharacter( std::string name, uint32_t accountId ) +void Sapphire::Network::SapphireAPI::deleteCharacter( std::string name, uint32_t accountId ) { PlayerMinimal deletePlayer; auto charList = getCharList( accountId ); @@ -209,17 +209,17 @@ void Core::Network::SapphireAPI::deleteCharacter( std::string name, uint32_t acc g_charaDb.execute( "DELETE FROM charaquestnew WHERE CharacterId LIKE '" + std::to_string( id ) + "';" ); } -std::vector< Core::PlayerMinimal > Core::Network::SapphireAPI::getCharList( uint32_t accountId ) +std::vector< Sapphire::PlayerMinimal > Sapphire::Network::SapphireAPI::getCharList( uint32_t accountId ) { - std::vector< Core::PlayerMinimal > charList; + std::vector< Sapphire::PlayerMinimal > charList; auto pQR = g_charaDb.query( "SELECT CharacterId, ContentId FROM charainfo WHERE AccountId = " + std::to_string( accountId ) + ";" ); while( pQR->next() ) { - Core::PlayerMinimal player; + Sapphire::PlayerMinimal player; uint32_t charId = pQR->getUInt( 1 ); @@ -230,7 +230,7 @@ std::vector< Core::PlayerMinimal > Core::Network::SapphireAPI::getCharList( uint return charList; } -bool Core::Network::SapphireAPI::checkNameTaken( std::string name ) +bool Sapphire::Network::SapphireAPI::checkNameTaken( std::string name ) { g_charaDb.escapeString( name ); @@ -244,7 +244,7 @@ bool Core::Network::SapphireAPI::checkNameTaken( std::string name ) return true; } -uint32_t Core::Network::SapphireAPI::getNextCharId() +uint32_t Sapphire::Network::SapphireAPI::getNextCharId() { uint32_t charId = 0; @@ -260,7 +260,7 @@ uint32_t Core::Network::SapphireAPI::getNextCharId() return charId; } -uint64_t Core::Network::SapphireAPI::getNextContentId() +uint64_t Sapphire::Network::SapphireAPI::getNextContentId() { uint64_t contentId = 0; @@ -276,7 +276,7 @@ uint64_t Core::Network::SapphireAPI::getNextContentId() return contentId; } -int Core::Network::SapphireAPI::checkSession( const std::string& sId ) +int Sapphire::Network::SapphireAPI::checkSession( const std::string& sId ) { auto it = m_sessionMap.find( sId ); @@ -287,7 +287,7 @@ int Core::Network::SapphireAPI::checkSession( const std::string& sId ) } -bool Core::Network::SapphireAPI::removeSession( const std::string& sId ) +bool Sapphire::Network::SapphireAPI::removeSession( const std::string& sId ) { auto it = m_sessionMap.find( sId ); diff --git a/src/servers/sapphire_api/SapphireAPI.h b/src/servers/sapphire_api/SapphireAPI.h index be9df44c..ca064968 100644 --- a/src/servers/sapphire_api/SapphireAPI.h +++ b/src/servers/sapphire_api/SapphireAPI.h @@ -7,12 +7,12 @@ #include #include "PlayerMinimal.h" -namespace Core +namespace Sapphire { class Session; } -namespace Core::Network +namespace Sapphire::Network { class SapphireAPI @@ -35,7 +35,7 @@ namespace Core::Network bool insertSession( const uint32_t& accountId, std::string& sId ); - std::vector< Core::PlayerMinimal > getCharList( uint32_t accountId ); + std::vector< Sapphire::PlayerMinimal > getCharList( uint32_t accountId ); bool checkNameTaken( std::string name ); diff --git a/src/servers/sapphire_api/Session.cpp b/src/servers/sapphire_api/Session.cpp index f3523a04..fc40d265 100644 --- a/src/servers/sapphire_api/Session.cpp +++ b/src/servers/sapphire_api/Session.cpp @@ -1,6 +1,6 @@ #include "Session.h" -namespace Core { +namespace Sapphire { Session::Session() { diff --git a/src/servers/sapphire_api/Session.h b/src/servers/sapphire_api/Session.h index 66c44578..5d9efc41 100644 --- a/src/servers/sapphire_api/Session.h +++ b/src/servers/sapphire_api/Session.h @@ -5,7 +5,7 @@ #include #include -namespace Core +namespace Sapphire { class Session diff --git a/src/servers/sapphire_api/main.cpp b/src/servers/sapphire_api/main.cpp index 90edbd05..e8641c50 100644 --- a/src/servers/sapphire_api/main.cpp +++ b/src/servers/sapphire_api/main.cpp @@ -32,11 +32,11 @@ #include "SapphireAPI.h" -Core::Framework g_fw; -Core::Logger g_log; -Core::Db::DbWorkerPool< Core::Db::ZoneDbConnection > g_charaDb; -Core::Data::ExdDataGenerated g_exdDataGen; -Core::Network::SapphireAPI g_sapphireAPI; +Sapphire::Framework g_fw; +Sapphire::Logger g_log; +Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection > g_charaDb; +Sapphire::Data::ExdDataGenerated g_exdDataGen; +Sapphire::Network::SapphireAPI g_sapphireAPI; namespace fs = std::experimental::filesystem; @@ -50,13 +50,13 @@ void default_resource_send( const HttpServer& server, const shared_ptr< HttpServ const shared_ptr< ifstream >& ifs ); -auto m_pConfig = std::make_shared< Core::ConfigMgr >(); +auto m_pConfig = std::make_shared< Sapphire::ConfigMgr >(); HttpServer server; std::string configPath( "config.ini" ); void reloadConfig() { - m_pConfig = std::make_shared< Core::ConfigMgr >(); + m_pConfig = std::make_shared< Sapphire::ConfigMgr >(); if( !m_pConfig->loadConfig( configPath ) ) throw "Error loading config "; @@ -85,7 +85,7 @@ bool loadSettings( int32_t argc, char* argv[] ) try { - arg = Core::Util::toLowerCopy( std::string( args[ i ] ) ); + arg = Sapphire::Util::toLowerCopy( std::string( args[ i ] ) ); val = std::string( args[ i + 1 ] ); // trim '-' from start of arg @@ -146,9 +146,9 @@ bool loadSettings( int32_t argc, char* argv[] ) return false; } - Core::Db::DbLoader loader; + Sapphire::Db::DbLoader loader; - Core::Db::ConnectionInfo info; + Sapphire::Db::ConnectionInfo info; info.password = m_pConfig->getValue< std::string >( "Database", "Password", "" ); info.host = m_pConfig->getValue< std::string >( "Database", "Host", "127.0.0.1" ); info.database = m_pConfig->getValue< std::string >( "Database", "Database", "sapphire" ); @@ -241,7 +241,7 @@ std::string buildHttpResponse( uint16_t rCode, const std::string& content = "", void getZoneName( shared_ptr< HttpServer::Response > response, shared_ptr< HttpServer::Request > request ) { string number = request->path_match[ 1 ]; - auto info = g_exdDataGen.get< Core::Data::TerritoryType >( atoi( number.c_str() ) ); + auto info = g_exdDataGen.get< Sapphire::Data::TerritoryType >( atoi( number.c_str() ) ); std::string responseStr = "Not found!"; if( info ) responseStr = info->name + ", " + info->bg; @@ -362,7 +362,7 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H std::string name = json["name"]; std::string infoJson = json["infoJson"]; - std::string finalJson = Core::Util::base64_decode( infoJson ); + std::string finalJson = Sapphire::Util::base64_decode( infoJson ); // reloadConfig(); @@ -732,8 +732,8 @@ void defaultGet( shared_ptr< HttpServer::Response > response, shared_ptr< HttpSe int main( int argc, char* argv[] ) { - auto pLog = std::shared_ptr< Core::Logger >( new Core::Logger() ); - g_fw.set< Core::Logger >( pLog ); + auto pLog = std::shared_ptr< Sapphire::Logger >( new Sapphire::Logger() ); + g_fw.set< Sapphire::Logger >( pLog ); g_log.setLogPath( "log/SapphireAPI" ); g_log.init(); diff --git a/src/servers/sapphire_api/server_http.hpp b/src/servers/sapphire_api/server_http.hpp index 5b6659fb..7c831e69 100644 --- a/src/servers/sapphire_api/server_http.hpp +++ b/src/servers/sapphire_api/server_http.hpp @@ -18,7 +18,7 @@ class case_insensitive_equals { public: bool operator()(const std::string &key1, const std::string &key2) const { - return Core::Util::toLowerCopy( key1 ) == Core::Util::toLowerCopy( key2 ); + return Sapphire::Util::toLowerCopy( key1 ) == Sapphire::Util::toLowerCopy( key2 ); } }; class case_insensitive_hash { @@ -27,7 +27,7 @@ public: { std::size_t seed=0; for( auto &c : key ) - Core::Util::hashCombine< char >( seed, std::tolower( c ) ); + Sapphire::Util::hashCombine< char >( seed, std::tolower( c ) ); return seed; } }; @@ -388,7 +388,7 @@ namespace SimpleWeb { auto range=request->header.equal_range("Connection"); for(auto it=range.first;it!=range.second;it++) { - if( Core::Util::toLowerCopy( it->second ) == "close" ) + if( Sapphire::Util::toLowerCopy( it->second ) == "close" ) return; } if(http_version>1.05) diff --git a/src/servers/sapphire_lobby/Forwards.h b/src/servers/sapphire_lobby/Forwards.h index 38fef5f3..9cc3ac76 100644 --- a/src/servers/sapphire_lobby/Forwards.h +++ b/src/servers/sapphire_lobby/Forwards.h @@ -12,12 +12,12 @@ x ## Ptr make_ ## x( Args &&...args ) { \ return std::make_shared< x >( std::forward< Args >( args ) ... ); }\ typedef std::vector< x > x ## PtrList; -namespace Core +namespace Sapphire { TYPE_FORWARD( LobbySession ); } -namespace Core::Network +namespace Sapphire::Network { TYPE_FORWARD( Hive ); TYPE_FORWARD( Acceptor ); @@ -25,7 +25,7 @@ namespace Core::Network TYPE_FORWARD( GameConnection ); } -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { TYPE_FORWARD( GamePacket ); TYPE_FORWARD( FFXIVPacketBase ); diff --git a/src/servers/sapphire_lobby/GameConnection.cpp b/src/servers/sapphire_lobby/GameConnection.cpp index c56850ce..3f5e861e 100644 --- a/src/servers/sapphire_lobby/GameConnection.cpp +++ b/src/servers/sapphire_lobby/GameConnection.cpp @@ -15,29 +15,29 @@ #include "RestConnector.h" #include "LobbySession.h" -extern Core::Logger g_log; -extern Core::ServerLobby g_serverLobby; -extern Core::Network::RestConnector g_restConnector; +extern Sapphire::Logger g_log; +extern Sapphire::ServerLobby g_serverLobby; +extern Sapphire::Network::RestConnector g_restConnector; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, - Core::Network::AcceptorPtr pAcceptor ) +Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pHive, + Sapphire::Network::AcceptorPtr pAcceptor ) : Connection( pHive ), m_pAcceptor( pAcceptor ), m_bEncryptionInitialized( false ) { } -Core::Network::GameConnection::~GameConnection() +Sapphire::Network::GameConnection::~GameConnection() { } // overwrite the parents onConnect for our game socket needs -void Core::Network::GameConnection::OnAccept( const std::string& host, uint16_t port ) +void Sapphire::Network::GameConnection::OnAccept( const std::string& host, uint16_t port ) { auto connection = make_GameConnection( m_hive, m_pAcceptor ); m_pAcceptor->Accept( connection ); @@ -46,12 +46,12 @@ void Core::Network::GameConnection::OnAccept( const std::string& host, uint16_t } -void Core::Network::GameConnection::OnDisconnect() +void Sapphire::Network::GameConnection::OnDisconnect() { g_log.debug( "DISCONNECT" ); } -void Core::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) +void Sapphire::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) { Packets::FFXIVARR_PACKET_HEADER packetHeader; const auto headerResult = Packets::getHeader( buffer, 0, packetHeader ); @@ -96,13 +96,13 @@ void Core::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) } -void Core::Network::GameConnection::OnError( const asio::error_code& error ) +void Sapphire::Network::GameConnection::OnError( const asio::error_code& error ) { g_log.info( "GameConnection closed: " + error.message() ); } void -Core::Network::GameConnection::sendError( uint64_t sequence, uint32_t errorcode, uint16_t messageId, uint32_t tmpId ) +Sapphire::Network::GameConnection::sendError( uint64_t sequence, uint32_t errorcode, uint16_t messageId, uint32_t tmpId ) { auto errorPacket = makeLobbyPacket< FFXIVIpcLobbyError >( tmpId ); errorPacket->data().seq = sequence; @@ -114,7 +114,7 @@ Core::Network::GameConnection::sendError( uint64_t sequence, uint32_t errorcode, sendPacket( pRP ); } -void Core::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); g_log.info( "Sequence [" + std::to_string( sequence ) + "]" ); @@ -199,7 +199,7 @@ void Core::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, ui } } -void Core::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); g_log.info( "Sequence [" + std::to_string( sequence ) + "]" ); @@ -243,7 +243,7 @@ void Core::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, uin sendPacket( pRP ); } -bool Core::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { LobbySessionPtr pSession = g_serverLobby.getSession( ( char* ) &packet.data[ 0 ] + 0x20 ); @@ -282,7 +282,7 @@ bool Core::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_RAW& return false; } -bool Core::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); uint8_t type = *reinterpret_cast< uint8_t* >( &packet.data[ 0 ] + 0x29 ); @@ -395,7 +395,7 @@ bool Core::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& pac return false; } -void Core::Network::GameConnection::handleGamePacket( Packets::FFXIVARR_PACKET_RAW& packet ) +void Sapphire::Network::GameConnection::handleGamePacket( Packets::FFXIVARR_PACKET_RAW& packet ) { uint32_t tmpId = packet.segHdr.target_actor; @@ -433,7 +433,7 @@ void Core::Network::GameConnection::handleGamePacket( Packets::FFXIVARR_PACKET_R } -void Core::Network::GameConnection::sendPacket( Packets::LobbyPacketContainer& pLpc ) +void Sapphire::Network::GameConnection::sendPacket( Packets::LobbyPacketContainer& pLpc ) { uint16_t size = pLpc.getSize(); uint8_t* dataPtr = pLpc.getRawData( false ); @@ -442,7 +442,7 @@ void Core::Network::GameConnection::sendPacket( Packets::LobbyPacketContainer& p Send( sendBuffer ); } -void Core::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket ) +void Sapphire::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket ) { //g_log.Log(LoggingSeverity::info, pPacket->toString()); std::vector< uint8_t > sendBuffer; @@ -451,14 +451,14 @@ void Core::Network::GameConnection::sendPackets( Packets::PacketContainer* pPack Send( sendBuffer ); } -void Core::Network::GameConnection::sendSinglePacket( FFXIVPacketBasePtr pPacket ) +void Sapphire::Network::GameConnection::sendSinglePacket( FFXIVPacketBasePtr pPacket ) { PacketContainer pRP = PacketContainer(); pRP.addPacket( pPacket ); sendPackets( &pRP ); } -void Core::Network::GameConnection::generateEncryptionKey( uint32_t key, const std::string& keyPhrase ) +void Sapphire::Network::GameConnection::generateEncryptionKey( uint32_t key, const std::string& keyPhrase ) { memset( m_baseKey, 0, 0x2C ); m_baseKey[ 0 ] = 0x78; @@ -469,11 +469,11 @@ void Core::Network::GameConnection::generateEncryptionKey( uint32_t key, const s m_baseKey[ 8 ] = 0x30; m_baseKey[ 9 ] = 0x11; memcpy( ( char* ) m_baseKey + 0x0C, keyPhrase.c_str(), keyPhrase.size() ); - Core::Util::md5( m_baseKey, m_encKey, 0x2C ); + Sapphire::Util::md5( m_baseKey, m_encKey, 0x2C ); } -void Core::Network::GameConnection::handlePackets( const Core::Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, - const std::vector< Core::Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) +void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, + const std::vector< Sapphire::Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) { for( auto inPacket : packetData ) diff --git a/src/servers/sapphire_lobby/GameConnection.h b/src/servers/sapphire_lobby/GameConnection.h index 1778cb91..d4626407 100644 --- a/src/servers/sapphire_lobby/GameConnection.h +++ b/src/servers/sapphire_lobby/GameConnection.h @@ -16,7 +16,7 @@ #define DECLARE_HANDLER( x ) void x( Packets::GamePacketPtr pInPacket, Entity::PlayerPtr pPlayer ) -namespace Core::Network +namespace Sapphire::Network { class GameConnection : public Connection diff --git a/src/servers/sapphire_lobby/LobbyPacketContainer.cpp b/src/servers/sapphire_lobby/LobbyPacketContainer.cpp index 0927056a..5f4c9a99 100644 --- a/src/servers/sapphire_lobby/LobbyPacketContainer.cpp +++ b/src/servers/sapphire_lobby/LobbyPacketContainer.cpp @@ -4,25 +4,25 @@ #include #include -using namespace Core::Common; -using namespace Core::Network::Packets; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; -Core::Network::Packets::LobbyPacketContainer::LobbyPacketContainer( uint8_t* encKey ) +Sapphire::Network::Packets::LobbyPacketContainer::LobbyPacketContainer( uint8_t* encKey ) { - memset( &m_header, 0, sizeof( Core::Network::Packets::FFXIVARR_PACKET_HEADER ) ); - m_header.size = sizeof( Core::Network::Packets::FFXIVARR_PACKET_HEADER ); + memset( &m_header, 0, sizeof( Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER ) ); + m_header.size = sizeof( Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER ); m_encKey = encKey; memset( m_dataBuf, 0, 0x1570 ); } -Core::Network::Packets::LobbyPacketContainer::~LobbyPacketContainer() +Sapphire::Network::Packets::LobbyPacketContainer::~LobbyPacketContainer() { m_entryList.clear(); } -void Core::Network::Packets::LobbyPacketContainer::addPacket( FFXIVPacketBasePtr pEntry ) +void Sapphire::Network::Packets::LobbyPacketContainer::addPacket( FFXIVPacketBasePtr pEntry ) { memcpy( m_dataBuf + m_header.size, &pEntry->getData()[ 0 ], pEntry->getSize() ); @@ -38,18 +38,18 @@ void Core::Network::Packets::LobbyPacketContainer::addPacket( FFXIVPacketBasePtr m_header.count++; } -uint16_t Core::Network::Packets::LobbyPacketContainer::getSize() const +uint16_t Sapphire::Network::Packets::LobbyPacketContainer::getSize() const { return m_header.size; } -uint8_t* Core::Network::Packets::LobbyPacketContainer::getRawData( bool addstuff ) +uint8_t* Sapphire::Network::Packets::LobbyPacketContainer::getRawData( bool addstuff ) { if( addstuff ) { m_header.unknown_0 = 0xff41a05252; - m_header.timestamp = Core::Util::getTimeMs(); + m_header.timestamp = Sapphire::Util::getTimeMs(); } - memcpy( m_dataBuf, &m_header, sizeof( Core::Network::Packets::FFXIVARR_PACKET_HEADER ) ); + memcpy( m_dataBuf, &m_header, sizeof( Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER ) ); return m_dataBuf; } diff --git a/src/servers/sapphire_lobby/LobbyPacketContainer.h b/src/servers/sapphire_lobby/LobbyPacketContainer.h index 45bd2fee..9f40ef93 100644 --- a/src/servers/sapphire_lobby/LobbyPacketContainer.h +++ b/src/servers/sapphire_lobby/LobbyPacketContainer.h @@ -9,7 +9,7 @@ #include "Forwards.h" -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { using FFXIVPacketBasePtr = std::shared_ptr< FFXIVPacketBase >; @@ -28,7 +28,7 @@ namespace Core::Network::Packets uint8_t* getRawData( bool addstuff = true ); private: - Core::Network::Packets::FFXIVARR_PACKET_HEADER m_header; + Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER m_header; uint8_t* m_encKey; diff --git a/src/servers/sapphire_lobby/LobbySession.cpp b/src/servers/sapphire_lobby/LobbySession.cpp index 3a20dfd4..4cdd58b8 100644 --- a/src/servers/sapphire_lobby/LobbySession.cpp +++ b/src/servers/sapphire_lobby/LobbySession.cpp @@ -1,6 +1,6 @@ #include "LobbySession.h" -namespace Core { +namespace Sapphire { LobbySession::LobbySession( void ) { //setSocket(NULL); diff --git a/src/servers/sapphire_lobby/LobbySession.h b/src/servers/sapphire_lobby/LobbySession.h index 43226269..95eeb5f8 100644 --- a/src/servers/sapphire_lobby/LobbySession.h +++ b/src/servers/sapphire_lobby/LobbySession.h @@ -7,7 +7,7 @@ #include #include -namespace Core +namespace Sapphire { class LobbySession diff --git a/src/servers/sapphire_lobby/RestConnector.cpp b/src/servers/sapphire_lobby/RestConnector.cpp index 96ac9c6f..54a78236 100644 --- a/src/servers/sapphire_lobby/RestConnector.cpp +++ b/src/servers/sapphire_lobby/RestConnector.cpp @@ -8,21 +8,21 @@ #include -extern Core::Logger g_log; +extern Sapphire::Logger g_log; typedef std::vector< std::tuple< std::string, uint32_t, uint64_t, std::string > > CharList; -Core::Network::RestConnector::RestConnector() +Sapphire::Network::RestConnector::RestConnector() { } -Core::Network::RestConnector::~RestConnector() +Sapphire::Network::RestConnector::~RestConnector() { } -HttpResponse Core::Network::RestConnector::requestApi( std::string endpoint, std::string data ) +HttpResponse Sapphire::Network::RestConnector::requestApi( std::string endpoint, std::string data ) { HttpClient client( restHost ); @@ -41,7 +41,7 @@ HttpResponse Core::Network::RestConnector::requestApi( std::string endpoint, std return r; } -Core::LobbySessionPtr Core::Network::RestConnector::getSession( char* sId ) +Sapphire::LobbySessionPtr Sapphire::Network::RestConnector::getSession( char* sId ) { std::string json_string = "{\"sId\": \"" + std::string( sId ) + "\",\"secret\": \"" + serverSecret + "\"}"; @@ -67,7 +67,7 @@ Core::LobbySessionPtr Core::Network::RestConnector::getSession( char* sId ) if( content.find( "invalid" ) == std::string::npos ) { - LobbySessionPtr pSession( new Core::LobbySession() ); + LobbySessionPtr pSession( new Sapphire::LobbySession() ); pSession->setAccountID( json["result"].get< uint32_t >() ); pSession->setSessionId( ( uint8_t* ) sId ); return pSession; @@ -83,7 +83,7 @@ Core::LobbySessionPtr Core::Network::RestConnector::getSession( char* sId ) } } -bool Core::Network::RestConnector::checkNameTaken( std::string name ) +bool Sapphire::Network::RestConnector::checkNameTaken( std::string name ) { std::string json_string = "{\"name\": \"" + name + "\",\"secret\": \"" + serverSecret + "\"}"; @@ -117,7 +117,7 @@ bool Core::Network::RestConnector::checkNameTaken( std::string name ) } } -uint32_t Core::Network::RestConnector::getNextCharId() +uint32_t Sapphire::Network::RestConnector::getNextCharId() { std::string json_string = "{\"secret\": \"" + serverSecret + "\"}"; @@ -156,7 +156,7 @@ uint32_t Core::Network::RestConnector::getNextCharId() } } -uint64_t Core::Network::RestConnector::getNextContentId() +uint64_t Sapphire::Network::RestConnector::getNextContentId() { std::string json_string = "{\"secret\": \"" + serverSecret + "\"}"; @@ -195,7 +195,7 @@ uint64_t Core::Network::RestConnector::getNextContentId() } } -CharList Core::Network::RestConnector::getCharList( char* sId ) +CharList Sapphire::Network::RestConnector::getCharList( char* sId ) { std::string json_string = "{\"sId\": \"" + std::string( sId, 56 ) + "\",\"secret\": \"" + serverSecret + "\"}"; @@ -251,7 +251,7 @@ CharList Core::Network::RestConnector::getCharList( char* sId ) } } -bool Core::Network::RestConnector::deleteCharacter( char* sId, std::string name ) +bool Sapphire::Network::RestConnector::deleteCharacter( char* sId, std::string name ) { std::string json_string = "{\"sId\": \"" + std::string( sId, 56 ) + "\",\"secret\": \"" + serverSecret + "\",\"name\": \"" + name + "\"}"; @@ -285,11 +285,11 @@ bool Core::Network::RestConnector::deleteCharacter( char* sId, std::string name } } -int Core::Network::RestConnector::createCharacter( char* sId, std::string name, std::string infoJson ) +int Sapphire::Network::RestConnector::createCharacter( char* sId, std::string name, std::string infoJson ) { std::string json_string = "{\"sId\": \"" + std::string( sId, 56 ) + "\",\"secret\": \"" + serverSecret + "\",\"name\": \"" + name + - "\",\"infoJson\": \"" + Core::Util::base64_encode( ( uint8_t* ) infoJson.c_str(), infoJson.length() ) + "\"}"; + "\",\"infoJson\": \"" + Sapphire::Util::base64_encode( ( uint8_t* ) infoJson.c_str(), infoJson.length() ) + "\"}"; HttpResponse r = requestApi( "createCharacter", json_string ); diff --git a/src/servers/sapphire_lobby/RestConnector.h b/src/servers/sapphire_lobby/RestConnector.h index e56bdd32..b8c2935c 100644 --- a/src/servers/sapphire_lobby/RestConnector.h +++ b/src/servers/sapphire_lobby/RestConnector.h @@ -10,12 +10,12 @@ using HttpClient = SimpleWeb::Client< SimpleWeb::HTTP >; using HttpResponse = std::shared_ptr< SimpleWeb::ClientBase< SimpleWeb::HTTP >::Response >; -namespace Core +namespace Sapphire { class Session; } -namespace Core::Network +namespace Sapphire::Network { class LobbySession; diff --git a/src/servers/sapphire_lobby/ServerLobby.cpp b/src/servers/sapphire_lobby/ServerLobby.cpp index 64f552af..bfaaeb53 100644 --- a/src/servers/sapphire_lobby/ServerLobby.cpp +++ b/src/servers/sapphire_lobby/ServerLobby.cpp @@ -21,10 +21,10 @@ #include -Core::Logger g_log; -Core::Network::RestConnector g_restConnector; +Sapphire::Logger g_log; +Sapphire::Network::RestConnector g_restConnector; -namespace Core { +namespace Sapphire { ServerLobby::ServerLobby( const std::string& configPath ) : diff --git a/src/servers/sapphire_lobby/ServerLobby.h b/src/servers/sapphire_lobby/ServerLobby.h index f927fc78..e0907682 100644 --- a/src/servers/sapphire_lobby/ServerLobby.h +++ b/src/servers/sapphire_lobby/ServerLobby.h @@ -8,7 +8,7 @@ const std::string LOBBY_VERSION = "0.0.5"; -namespace Core +namespace Sapphire { class LobbySession; class ConfigMgr; diff --git a/src/servers/sapphire_lobby/client_http.hpp b/src/servers/sapphire_lobby/client_http.hpp index dfca7326..fc30d950 100644 --- a/src/servers/sapphire_lobby/client_http.hpp +++ b/src/servers/sapphire_lobby/client_http.hpp @@ -17,7 +17,7 @@ class case_insensitive_equals { public: bool operator()(const std::string &key1, const std::string &key2) const { - return Core::Util::toLowerCopy( key1 ) == Core::Util::toLowerCopy( key2 ); + return Sapphire::Util::toLowerCopy( key1 ) == Sapphire::Util::toLowerCopy( key2 ); } }; class case_insensitive_hash { @@ -26,7 +26,7 @@ public: { std::size_t seed=0; for( auto &c : key ) - Core::Util::hashCombine< char >( seed, std::tolower( c ) ); + Sapphire::Util::hashCombine< char >( seed, std::tolower( c ) ); return seed; } }; diff --git a/src/servers/sapphire_lobby/mainLobbyServer.cpp b/src/servers/sapphire_lobby/mainLobbyServer.cpp index 16abe4d6..2ef742e4 100644 --- a/src/servers/sapphire_lobby/mainLobbyServer.cpp +++ b/src/servers/sapphire_lobby/mainLobbyServer.cpp @@ -1,6 +1,6 @@ #include "ServerLobby.h" -Core::ServerLobby g_serverLobby( "config.ini" ); +Sapphire::ServerLobby g_serverLobby( "config.ini" ); int main( int32_t argc, char* argv[] ) { diff --git a/src/servers/sapphire_zone/Action/Action.cpp b/src/servers/sapphire_zone/Action/Action.cpp index b1a0c0df..d6ae040a 100644 --- a/src/servers/sapphire_zone/Action/Action.cpp +++ b/src/servers/sapphire_zone/Action/Action.cpp @@ -3,66 +3,66 @@ #include -Core::Action::Action::Action() +Sapphire::Action::Action::Action() { } -Core::Action::Action::~Action() +Sapphire::Action::Action::~Action() { } -uint16_t Core::Action::Action::getId() const +uint16_t Sapphire::Action::Action::getId() const { return m_id; } -Core::Common::HandleActionType Core::Action::Action::getHandleActionType() const +Sapphire::Common::HandleActionType Sapphire::Action::Action::getHandleActionType() const { return m_handleActionType; } -Core::Entity::CharaPtr Core::Action::Action::getTargetChara() const +Sapphire::Entity::CharaPtr Sapphire::Action::Action::getTargetChara() const { return m_pTarget; } -bool Core::Action::Action::isInterrupted() const +bool Sapphire::Action::Action::isInterrupted() const { return m_bInterrupt; } -void Core::Action::Action::setInterrupted() +void Sapphire::Action::Action::setInterrupted() { m_bInterrupt = true; } -uint64_t Core::Action::Action::getStartTime() const +uint64_t Sapphire::Action::Action::getStartTime() const { return m_startTime; } -void Core::Action::Action::setStartTime( uint64_t startTime ) +void Sapphire::Action::Action::setStartTime( uint64_t startTime ) { m_startTime = startTime; } -uint32_t Core::Action::Action::getCastTime() const +uint32_t Sapphire::Action::Action::getCastTime() const { return m_castTime; } -void Core::Action::Action::setCastTime( uint32_t castTime ) +void Sapphire::Action::Action::setCastTime( uint32_t castTime ) { m_castTime = castTime; } -Core::Entity::CharaPtr Core::Action::Action::getActionSource() const +Sapphire::Entity::CharaPtr Sapphire::Action::Action::getActionSource() const { return m_pSource; } -bool Core::Action::Action::update() +bool Sapphire::Action::Action::update() { // action has not been started yet if( m_startTime == 0 ) diff --git a/src/servers/sapphire_zone/Action/Action.h b/src/servers/sapphire_zone/Action/Action.h index 1c559507..7d75d0a3 100644 --- a/src/servers/sapphire_zone/Action/Action.h +++ b/src/servers/sapphire_zone/Action/Action.h @@ -4,7 +4,7 @@ #include #include "ForwardsZone.h" -namespace Core::Action +namespace Sapphire::Action { class Action diff --git a/src/servers/sapphire_zone/Action/ActionCast.cpp b/src/servers/sapphire_zone/Action/ActionCast.cpp index 91aa9667..98c24bf0 100644 --- a/src/servers/sapphire_zone/Action/ActionCast.cpp +++ b/src/servers/sapphire_zone/Action/ActionCast.cpp @@ -16,34 +16,34 @@ #include "ActionCast.h" #include "Framework.h" -using namespace Core::Common; -using namespace Core::Network; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::Action::ActionCast::ActionCast() +Sapphire::Action::ActionCast::ActionCast() { m_handleActionType = Common::HandleActionType::Event; } -Core::Action::ActionCast::ActionCast( Entity::CharaPtr pActor, Entity::CharaPtr pTarget, uint16_t actionId ) +Sapphire::Action::ActionCast::ActionCast( Entity::CharaPtr pActor, Entity::CharaPtr pTarget, uint16_t actionId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); m_startTime = 0; m_id = actionId; m_handleActionType = HandleActionType::Spell; - m_castTime = pExdData->get< Core::Data::Action >( actionId )->cast100ms * 100; // TODO: Add security checks. + m_castTime = pExdData->get< Sapphire::Data::Action >( actionId )->cast100ms * 100; // TODO: Add security checks. m_pSource = pActor; m_pTarget = pTarget; m_bInterrupt = false; } -Core::Action::ActionCast::~ActionCast() = default; +Sapphire::Action::ActionCast::~ActionCast() = default; -void Core::Action::ActionCast::onStart() +void Sapphire::Action::ActionCast::onStart() { if( !m_pSource ) return; @@ -65,7 +65,7 @@ void Core::Action::ActionCast::onStart() } -void Core::Action::ActionCast::onFinish() +void Sapphire::Action::ActionCast::onFinish() { if( !m_pSource ) return; @@ -84,7 +84,7 @@ void Core::Action::ActionCast::onFinish() pScriptMgr->onCastFinish( *pPlayer, m_pTarget, m_id ); } -void Core::Action::ActionCast::onInterrupt() +void Sapphire::Action::ActionCast::onInterrupt() { if( !m_pSource ) return; diff --git a/src/servers/sapphire_zone/Action/ActionCast.h b/src/servers/sapphire_zone/Action/ActionCast.h index 3ec9ce01..c5a03689 100644 --- a/src/servers/sapphire_zone/Action/ActionCast.h +++ b/src/servers/sapphire_zone/Action/ActionCast.h @@ -4,7 +4,7 @@ #include "ForwardsZone.h" #include "Action.h" -namespace Core::Action +namespace Sapphire::Action { class ActionCast : public Action diff --git a/src/servers/sapphire_zone/Action/ActionCollision.cpp b/src/servers/sapphire_zone/Action/ActionCollision.cpp index b3169afb..92666c73 100644 --- a/src/servers/sapphire_zone/Action/ActionCollision.cpp +++ b/src/servers/sapphire_zone/Action/ActionCollision.cpp @@ -11,8 +11,8 @@ #include #include -using namespace Core::Entity; -using namespace Core::Common; +using namespace Sapphire::Entity; +using namespace Sapphire::Common; // todo: add AoE actor limits (16, 32) @@ -53,9 +53,9 @@ bool ActionCollision::isActorApplicable( Actor& actor, TargetFilter targetFilter return ( actorApplicable && actor.getAsChara()->isAlive() ); } -std::set< Core::Entity::ActorPtr > ActionCollision::getActorsHitFromAction( FFXIVARR_POSITION3 aoePosition, +std::set< Sapphire::Entity::ActorPtr > ActionCollision::getActorsHitFromAction( FFXIVARR_POSITION3 aoePosition, std::set< ActorPtr > actorsInRange, - std::shared_ptr< Core::Data::Action > actionInfo, + std::shared_ptr< Sapphire::Data::Action > actionInfo, TargetFilter targetFilter ) { std::set< ActorPtr > actorsCollided; @@ -129,7 +129,7 @@ std::set< Core::Entity::ActorPtr > ActionCollision::getActorsHitFromAction( FFXI bool ActionCollision::radiusCollision( FFXIVARR_POSITION3 actorPosition, FFXIVARR_POSITION3 aoePosition, uint16_t radius ) { - return Core::Math::Util::distance( actorPosition.x, actorPosition.y, actorPosition.z, + return Sapphire::Math::Util::distance( actorPosition.x, actorPosition.y, actorPosition.z, aoePosition.x, aoePosition.y, aoePosition.z ) <= radius; } diff --git a/src/servers/sapphire_zone/Action/ActionCollision.h b/src/servers/sapphire_zone/Action/ActionCollision.h index f16f9be2..9c9f5e18 100644 --- a/src/servers/sapphire_zone/Action/ActionCollision.h +++ b/src/servers/sapphire_zone/Action/ActionCollision.h @@ -4,12 +4,12 @@ #include #include "ForwardsZone.h" -namespace Core::Data +namespace Sapphire::Data { struct Action; } -namespace Core::Entity +namespace Sapphire::Entity { enum class TargetFilter diff --git a/src/servers/sapphire_zone/Action/ActionMount.cpp b/src/servers/sapphire_zone/Action/ActionMount.cpp index 2b86f592..c8ec1afb 100644 --- a/src/servers/sapphire_zone/Action/ActionMount.cpp +++ b/src/servers/sapphire_zone/Action/ActionMount.cpp @@ -15,20 +15,20 @@ #include "ActionMount.h" #include "Framework.h" -using namespace Core::Common; -using namespace Core::Network; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -extern Core::Framework g_framework; +extern Sapphire::Framework g_framework; -Core::Action::ActionMount::ActionMount() +Sapphire::Action::ActionMount::ActionMount() { m_handleActionType = HandleActionType::Event; } -Core::Action::ActionMount::ActionMount( Entity::CharaPtr pActor, uint16_t mountId ) +Sapphire::Action::ActionMount::ActionMount( Entity::CharaPtr pActor, uint16_t mountId ) { m_startTime = 0; m_id = mountId; @@ -38,12 +38,12 @@ Core::Action::ActionMount::ActionMount( Entity::CharaPtr pActor, uint16_t mountI m_bInterrupt = false; } -Core::Action::ActionMount::~ActionMount() +Sapphire::Action::ActionMount::~ActionMount() { } -void Core::Action::ActionMount::onStart() +void Sapphire::Action::ActionMount::onStart() { if( !m_pSource ) return; @@ -64,7 +64,7 @@ void Core::Action::ActionMount::onStart() } -void Core::Action::ActionMount::onFinish() +void Sapphire::Action::ActionMount::onFinish() { if( !m_pSource ) return; @@ -89,7 +89,7 @@ void Core::Action::ActionMount::onFinish() pPlayer->mount( m_id ); } -void Core::Action::ActionMount::onInterrupt() +void Sapphire::Action::ActionMount::onInterrupt() { if( !m_pSource ) return; diff --git a/src/servers/sapphire_zone/Action/ActionMount.h b/src/servers/sapphire_zone/Action/ActionMount.h index 689832ce..3fbcb96e 100644 --- a/src/servers/sapphire_zone/Action/ActionMount.h +++ b/src/servers/sapphire_zone/Action/ActionMount.h @@ -4,7 +4,7 @@ #include "ForwardsZone.h" #include "Action.h" -namespace Core::Action +namespace Sapphire::Action { class ActionMount : public Action diff --git a/src/servers/sapphire_zone/Action/ActionTeleport.cpp b/src/servers/sapphire_zone/Action/ActionTeleport.cpp index 012107c4..27c3cf84 100644 --- a/src/servers/sapphire_zone/Action/ActionTeleport.cpp +++ b/src/servers/sapphire_zone/Action/ActionTeleport.cpp @@ -13,38 +13,38 @@ #include "ActionTeleport.h" #include "Framework.h" -using namespace Core::Common; -using namespace Core::Network; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::Action::ActionTeleport::ActionTeleport() +Sapphire::Action::ActionTeleport::ActionTeleport() { m_handleActionType = HandleActionType::Event; } -Core::Action::ActionTeleport::ActionTeleport( Entity::CharaPtr pActor, uint16_t targetZone, uint16_t cost ) +Sapphire::Action::ActionTeleport::ActionTeleport( Entity::CharaPtr pActor, uint16_t targetZone, uint16_t cost ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); m_startTime = 0; m_id = 5; m_handleActionType = HandleActionType::Teleport; - m_castTime = pExdData->get< Core::Data::Action >( 5 )->cast100ms * 100; // TODO: Add security checks. + m_castTime = pExdData->get< Sapphire::Data::Action >( 5 )->cast100ms * 100; // TODO: Add security checks. m_pSource = pActor; m_bInterrupt = false; m_targetAetheryte = targetZone; m_cost = cost; } -Core::Action::ActionTeleport::~ActionTeleport() +Sapphire::Action::ActionTeleport::~ActionTeleport() { } -void Core::Action::ActionTeleport::onStart() +void Sapphire::Action::ActionTeleport::onStart() { if( !m_pSource ) return; @@ -62,7 +62,7 @@ void Core::Action::ActionTeleport::onStart() } -void Core::Action::ActionTeleport::onFinish() +void Sapphire::Action::ActionTeleport::onFinish() { if( !m_pSource ) return; @@ -94,7 +94,7 @@ void Core::Action::ActionTeleport::onFinish() pPlayer->teleport( m_targetAetheryte ); } -void Core::Action::ActionTeleport::onInterrupt() +void Sapphire::Action::ActionTeleport::onInterrupt() { if( !m_pSource ) return; diff --git a/src/servers/sapphire_zone/Action/ActionTeleport.h b/src/servers/sapphire_zone/Action/ActionTeleport.h index 21c9fb7b..33595b87 100644 --- a/src/servers/sapphire_zone/Action/ActionTeleport.h +++ b/src/servers/sapphire_zone/Action/ActionTeleport.h @@ -4,7 +4,7 @@ #include "ForwardsZone.h" #include "Action.h" -namespace Core::Action +namespace Sapphire::Action { class ActionTeleport : public Action diff --git a/src/servers/sapphire_zone/Action/EventAction.cpp b/src/servers/sapphire_zone/Action/EventAction.cpp index c8730296..abe398f2 100644 --- a/src/servers/sapphire_zone/Action/EventAction.cpp +++ b/src/servers/sapphire_zone/Action/EventAction.cpp @@ -11,20 +11,20 @@ #include "EventAction.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -Core::Action::EventAction::EventAction() +Sapphire::Action::EventAction::EventAction() { m_handleActionType = HandleActionType::Event; } -Core::Action::EventAction::EventAction( Entity::CharaPtr pActor, uint32_t eventId, uint16_t action, +Sapphire::Action::EventAction::EventAction( Entity::CharaPtr pActor, uint32_t eventId, uint16_t action, ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -33,19 +33,19 @@ Core::Action::EventAction::EventAction( Entity::CharaPtr pActor, uint32_t eventI m_handleActionType = HandleActionType::Event; m_eventId = eventId; m_id = action; - m_castTime = pExdData->get< Core::Data::EventAction >( action )->castTime * 1000; // TODO: Add security checks. + m_castTime = pExdData->get< Sapphire::Data::EventAction >( action )->castTime * 1000; // TODO: Add security checks. m_onActionFinishClb = finishRef; m_onActionInterruptClb = interruptRef; m_pSource = pActor; m_bInterrupt = false; } -Core::Action::EventAction::~EventAction() +Sapphire::Action::EventAction::~EventAction() { } -void Core::Action::EventAction::onStart() +void Sapphire::Action::EventAction::onStart() { if( !m_pSource ) return; @@ -64,7 +64,7 @@ void Core::Action::EventAction::onStart() m_pSource->sendToInRangeSet( control ); } -void Core::Action::EventAction::onFinish() +void Sapphire::Action::EventAction::onFinish() { if( !m_pSource ) return; @@ -101,7 +101,7 @@ void Core::Action::EventAction::onFinish() } -void Core::Action::EventAction::onInterrupt() +void Sapphire::Action::EventAction::onInterrupt() { if( !m_pSource ) return; diff --git a/src/servers/sapphire_zone/Action/EventAction.h b/src/servers/sapphire_zone/Action/EventAction.h index 728231d0..1d10c8b1 100644 --- a/src/servers/sapphire_zone/Action/EventAction.h +++ b/src/servers/sapphire_zone/Action/EventAction.h @@ -6,7 +6,7 @@ #include "ForwardsZone.h" #include "Action.h" -namespace Core::Action +namespace Sapphire::Action { class EventAction : public Action diff --git a/src/servers/sapphire_zone/Action/EventItemAction.cpp b/src/servers/sapphire_zone/Action/EventItemAction.cpp index 4c4d96e7..926af056 100644 --- a/src/servers/sapphire_zone/Action/EventItemAction.cpp +++ b/src/servers/sapphire_zone/Action/EventItemAction.cpp @@ -14,20 +14,20 @@ #include "EventItemAction.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -Core::Action::EventItemAction::EventItemAction() +Sapphire::Action::EventItemAction::EventItemAction() { m_handleActionType = HandleActionType::Event; } -Core::Action::EventItemAction::EventItemAction( Entity::CharaPtr pActor, uint32_t eventId, uint16_t action, +Sapphire::Action::EventItemAction::EventItemAction( Entity::CharaPtr pActor, uint32_t eventId, uint16_t action, ActionCallback finishRef, ActionCallback interruptRef, uint64_t additional ) { @@ -43,9 +43,9 @@ Core::Action::EventItemAction::EventItemAction( Entity::CharaPtr pActor, uint32_ m_bInterrupt = false; } -Core::Action::EventItemAction::~EventItemAction() = default; +Sapphire::Action::EventItemAction::~EventItemAction() = default; -void Core::Action::EventItemAction::onStart() +void Sapphire::Action::EventItemAction::onStart() { if( !m_pSource ) return; @@ -64,7 +64,7 @@ void Core::Action::EventItemAction::onStart() } -void Core::Action::EventItemAction::onFinish() +void Sapphire::Action::EventItemAction::onFinish() { if( !m_pSource ) return; @@ -89,7 +89,7 @@ void Core::Action::EventItemAction::onFinish() } -void Core::Action::EventItemAction::onInterrupt() +void Sapphire::Action::EventItemAction::onInterrupt() { if( !m_pSource ) return; diff --git a/src/servers/sapphire_zone/Action/EventItemAction.h b/src/servers/sapphire_zone/Action/EventItemAction.h index cdf29aca..323a41f2 100644 --- a/src/servers/sapphire_zone/Action/EventItemAction.h +++ b/src/servers/sapphire_zone/Action/EventItemAction.h @@ -4,7 +4,7 @@ #include "ForwardsZone.h" #include "Action.h" -namespace Core::Action +namespace Sapphire::Action { class EventItemAction : public Action diff --git a/src/servers/sapphire_zone/Actor/Actor.cpp b/src/servers/sapphire_zone/Actor/Actor.cpp index fdb174b7..62664869 100644 --- a/src/servers/sapphire_zone/Actor/Actor.cpp +++ b/src/servers/sapphire_zone/Actor/Actor.cpp @@ -29,39 +29,39 @@ #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -//using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +//using namespace Sapphire::Network::Packets::Server; -Core::Entity::Actor::Actor( ObjKind type ) : +Sapphire::Entity::Actor::Actor( ObjKind type ) : m_objKind( type ) { } -uint32_t Core::Entity::Actor::getId() const +uint32_t Sapphire::Entity::Actor::getId() const { return m_id; } -void Core::Entity::Actor::setId( uint32_t id ) +void Sapphire::Entity::Actor::setId( uint32_t id ) { m_id = id; } -Core::Common::ObjKind Core::Entity::Actor::getObjKind() const +Sapphire::Common::ObjKind Sapphire::Entity::Actor::getObjKind() const { return m_objKind; } -Core::Common::FFXIVARR_POSITION3& Core::Entity::Actor::getPos() +Sapphire::Common::FFXIVARR_POSITION3& Sapphire::Entity::Actor::getPos() { return m_pos; } -void Core::Entity::Actor::setPos( float x, float y, float z ) +void Sapphire::Entity::Actor::setPos( float x, float y, float z ) { m_pos.x = x; m_pos.y = y; @@ -69,70 +69,70 @@ void Core::Entity::Actor::setPos( float x, float y, float z ) m_pCurrentZone->updateActorPosition( *this ); } -void Core::Entity::Actor::setPos( const Core::Common::FFXIVARR_POSITION3& pos ) +void Sapphire::Entity::Actor::setPos( const Sapphire::Common::FFXIVARR_POSITION3& pos ) { m_pos = pos; m_pCurrentZone->updateActorPosition( *this ); } -float Core::Entity::Actor::getRot() const +float Sapphire::Entity::Actor::getRot() const { return m_rot; } -void Core::Entity::Actor::setRot( float rot ) +void Sapphire::Entity::Actor::setRot( float rot ) { m_rot = rot; } -bool Core::Entity::Actor::isChara() const +bool Sapphire::Entity::Actor::isChara() const { return isPlayer() || isBattleNpc() || isEventNpc() || isRetainer() || isCompanion(); } -bool Core::Entity::Actor::isPlayer() const +bool Sapphire::Entity::Actor::isPlayer() const { return m_objKind == ObjKind::Player; } -bool Core::Entity::Actor::isEventNpc() const +bool Sapphire::Entity::Actor::isEventNpc() const { return m_objKind == ObjKind::EventNpc; } -bool Core::Entity::Actor::isBattleNpc() const +bool Sapphire::Entity::Actor::isBattleNpc() const { return m_objKind == ObjKind::BattleNpc; } -bool Core::Entity::Actor::isRetainer() const +bool Sapphire::Entity::Actor::isRetainer() const { return m_objKind == ObjKind::Retainer; } -bool Core::Entity::Actor::isCompanion() const +bool Sapphire::Entity::Actor::isCompanion() const { return m_objKind == ObjKind::Companion; } -bool Core::Entity::Actor::isEventObj() const +bool Sapphire::Entity::Actor::isEventObj() const { return m_objKind == ObjKind::EventObj; } -bool Core::Entity::Actor::isHousingEventObj() const +bool Sapphire::Entity::Actor::isHousingEventObj() const { return m_objKind == ObjKind::Housing; } -bool Core::Entity::Actor::isAetheryte() const +bool Sapphire::Entity::Actor::isAetheryte() const { return m_objKind == ObjKind::Aetheryte; } /*! \return pointer to this instance as ActorPtr */ -Core::Entity::CharaPtr Core::Entity::Actor::getAsChara() +Sapphire::Entity::CharaPtr Sapphire::Entity::Actor::getAsChara() { if( !isChara() ) return nullptr; @@ -140,7 +140,7 @@ Core::Entity::CharaPtr Core::Entity::Actor::getAsChara() } /*! \return pointer to this instance as PlayerPtr */ -Core::Entity::PlayerPtr Core::Entity::Actor::getAsPlayer() +Sapphire::Entity::PlayerPtr Sapphire::Entity::Actor::getAsPlayer() { if( !isPlayer() ) return nullptr; @@ -148,7 +148,7 @@ Core::Entity::PlayerPtr Core::Entity::Actor::getAsPlayer() } /*! \return pointer to this instance as EventObjPtr */ -Core::Entity::EventObjectPtr Core::Entity::Actor::getAsEventObj() +Sapphire::Entity::EventObjectPtr Sapphire::Entity::Actor::getAsEventObj() { if( !isEventObj() ) return nullptr; @@ -156,7 +156,7 @@ Core::Entity::EventObjectPtr Core::Entity::Actor::getAsEventObj() } /*! \return pointer to this instance as BNpcPtr */ -Core::Entity::BNpcPtr Core::Entity::Actor::getAsBNpc() +Sapphire::Entity::BNpcPtr Sapphire::Entity::Actor::getAsBNpc() { if( !isBattleNpc() ) return nullptr; @@ -169,7 +169,7 @@ but also to the global actor map \param ActorPtr to add */ -void Core::Entity::Actor::addInRangeActor( ActorPtr pActor ) +void Sapphire::Entity::Actor::addInRangeActor( ActorPtr pActor ) { // if this is null, something went wrong @@ -202,7 +202,7 @@ but also to the global actor map \param ActorPtr to remove */ -void Core::Entity::Actor::removeInRangeActor( Actor& actor ) +void Sapphire::Entity::Actor::removeInRangeActor( Actor& actor ) { // call virtual event onRemoveInRangeActor( actor ); @@ -223,12 +223,12 @@ void Core::Entity::Actor::removeInRangeActor( Actor& actor ) } /*! \return true if there is at least one actor in the in range set */ -bool Core::Entity::Actor::hasInRangeActor() const +bool Sapphire::Entity::Actor::hasInRangeActor() const { return ( m_inRangeActor.size() > 0 ); } -void Core::Entity::Actor::removeFromInRange() +void Sapphire::Entity::Actor::removeFromInRange() { if( !hasInRangeActor() ) return; @@ -248,14 +248,14 @@ check if a given actor is in the actors in range set \param ActorPtr to be checked for \return true if the actor was found */ -bool Core::Entity::Actor::isInRangeSet( ActorPtr pActor ) const +bool Sapphire::Entity::Actor::isInRangeSet( ActorPtr pActor ) const { return !( m_inRangeActor.find( pActor ) == m_inRangeActor.end() ); } /*! \return ActorPtr of the closest actor in range, if none, nullptr */ -Core::Entity::ActorPtr Core::Entity::Actor::getClosestActor() +Sapphire::Entity::ActorPtr Sapphire::Entity::Actor::getClosestActor() { if( m_inRangeActor.empty() ) // no actors in range, don't bother @@ -286,7 +286,7 @@ Core::Entity::ActorPtr Core::Entity::Actor::getClosestActor() } /*! Clear the whole in range set, this does no cleanup */ -void Core::Entity::Actor::clearInRangeSet() +void Sapphire::Entity::Actor::clearInRangeSet() { m_inRangeActor.clear(); m_inRangePlayers.clear(); @@ -299,7 +299,7 @@ Send a packet to all players in range, potentially to self if set and is player \param GamePacketPtr to send \param bool should be send to self? */ -void Core::Entity::Actor::sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr pPacket, bool bToSelf ) +void Sapphire::Entity::Actor::sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr pPacket, bool bToSelf ) { auto pServerZone = g_fw.get< ServerMgr >(); if( bToSelf && isPlayer() ) @@ -328,7 +328,7 @@ void Core::Entity::Actor::sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr } /*! \return list of actors currently in range */ -std::set< Core::Entity::ActorPtr > Core::Entity::Actor::getInRangeActors( bool includeSelf ) +std::set< Sapphire::Entity::ActorPtr > Sapphire::Entity::Actor::getInRangeActors( bool includeSelf ) { auto tempInRange = m_inRangeActor; @@ -339,19 +339,19 @@ std::set< Core::Entity::ActorPtr > Core::Entity::Actor::getInRangeActors( bool i } /*! \return ZonePtr to the current zone, nullptr if not set */ -Core::ZonePtr Core::Entity::Actor::getCurrentZone() const +Sapphire::ZonePtr Sapphire::Entity::Actor::getCurrentZone() const { return m_pCurrentZone; } /*! \param ZonePtr to the zone to be set as current */ -void Core::Entity::Actor::setCurrentZone( ZonePtr currZone ) +void Sapphire::Entity::Actor::setCurrentZone( ZonePtr currZone ) { m_pCurrentZone = currZone; } /*! \return InstanceContentPtr to the current instance, nullptr if not an instance or not set */ -Core::InstanceContentPtr Core::Entity::Actor::getCurrentInstance() const +Sapphire::InstanceContentPtr Sapphire::Entity::Actor::getCurrentInstance() const { if( m_pCurrentZone ) return m_pCurrentZone->getAsInstanceContent(); @@ -364,7 +364,7 @@ Get the current cell of a region the actor is in \return Cell* */ -Core::Cell* Core::Entity::Actor::getCellPtr() +Sapphire::Cell* Sapphire::Entity::Actor::getCellPtr() { return m_pCell; } @@ -374,7 +374,7 @@ Set the current cell the actor is in \param Cell* for the cell to be set */ -void Core::Entity::Actor::setCell( Cell* pCell ) +void Sapphire::Entity::Actor::setCell( Cell* pCell ) { m_pCell = pCell; } diff --git a/src/servers/sapphire_zone/Actor/Actor.h b/src/servers/sapphire_zone/Actor/Actor.h index c5f3eb5a..bacb63e0 100644 --- a/src/servers/sapphire_zone/Actor/Actor.h +++ b/src/servers/sapphire_zone/Actor/Actor.h @@ -9,7 +9,7 @@ #include #include -namespace Core::Entity +namespace Sapphire::Entity { /*! @@ -40,7 +40,7 @@ namespace Core::Entity std::set< BNpcPtr > m_inRangeBNpc; /*! Parent cell in the zone */ - Core::Cell* m_pCell; + Sapphire::Cell* m_pCell; public: explicit Actor( Common::ObjKind type ); diff --git a/src/servers/sapphire_zone/Actor/BNpc.cpp b/src/servers/sapphire_zone/Actor/BNpc.cpp index baad273a..125235b3 100644 --- a/src/servers/sapphire_zone/Actor/BNpc.cpp +++ b/src/servers/sapphire_zone/Actor/BNpc.cpp @@ -31,18 +31,18 @@ #include "Framework.h" #include "Common.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -Core::Entity::BNpc::BNpc() : Npc( ObjKind::BattleNpc ) +Sapphire::Entity::BNpc::BNpc() : Npc( ObjKind::BattleNpc ) { } -Core::Entity::BNpc::BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, uint8_t level ) : Npc( ObjKind::BattleNpc ) +Sapphire::Entity::BNpc::BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, uint8_t level ) : Npc( ObjKind::BattleNpc ) { m_modelChara = pTemplate->getModelChara(); m_displayFlags = pTemplate->getDisplayFlags(); @@ -71,51 +71,51 @@ Core::Entity::BNpc::BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, flo } -Core::Entity::BNpc::~BNpc() +Sapphire::Entity::BNpc::~BNpc() { } -uint8_t Core::Entity::BNpc::getAggressionMode() const +uint8_t Sapphire::Entity::BNpc::getAggressionMode() const { return m_aggressionMode; } -uint8_t Core::Entity::BNpc::getEnemyType() const +uint8_t Sapphire::Entity::BNpc::getEnemyType() const { return m_enemyType; } -uint64_t Core::Entity::BNpc::getWeaponMain() const +uint64_t Sapphire::Entity::BNpc::getWeaponMain() const { return m_weaponMain; } -uint64_t Core::Entity::BNpc::getWeaponSub() const +uint64_t Sapphire::Entity::BNpc::getWeaponSub() const { return m_weaponSub; } -uint16_t Core::Entity::BNpc::getModelChara() const +uint16_t Sapphire::Entity::BNpc::getModelChara() const { return m_modelChara; } -uint8_t Core::Entity::BNpc::getLevel() const +uint8_t Sapphire::Entity::BNpc::getLevel() const { return m_level; } -uint32_t Core::Entity::BNpc::getBNpcBaseId() const +uint32_t Sapphire::Entity::BNpc::getBNpcBaseId() const { return m_bNpcBaseId; } -uint32_t Core::Entity::BNpc::getBNpcNameId() const +uint32_t Sapphire::Entity::BNpc::getBNpcNameId() const { return m_bNpcNameId; } -void Core::Entity::BNpc::spawn( PlayerPtr pTarget ) +void Sapphire::Entity::BNpc::spawn( PlayerPtr pTarget ) { pTarget->queuePacket( std::make_shared< NpcSpawnPacket >( *getAsBNpc(), *pTarget ) ); } diff --git a/src/servers/sapphire_zone/Actor/BNpc.h b/src/servers/sapphire_zone/Actor/BNpc.h index 674a4313..220ec5cd 100644 --- a/src/servers/sapphire_zone/Actor/BNpc.h +++ b/src/servers/sapphire_zone/Actor/BNpc.h @@ -10,7 +10,7 @@ #include #include -namespace Core::Entity +namespace Sapphire::Entity { /*! diff --git a/src/servers/sapphire_zone/Actor/BNpcTemplate.cpp b/src/servers/sapphire_zone/Actor/BNpcTemplate.cpp index c313ac13..5646c9c4 100644 --- a/src/servers/sapphire_zone/Actor/BNpcTemplate.cpp +++ b/src/servers/sapphire_zone/Actor/BNpcTemplate.cpp @@ -2,7 +2,7 @@ #include #include -Core::Entity::BNpcTemplate::BNpcTemplate( uint32_t id, uint32_t baseId, uint32_t nameId, uint64_t weaponMain, uint64_t weaponSub, +Sapphire::Entity::BNpcTemplate::BNpcTemplate( uint32_t id, uint32_t baseId, uint32_t nameId, uint64_t weaponMain, uint64_t weaponSub, uint8_t aggressionMode, uint8_t enemyType, uint8_t onlineStatus, uint8_t pose, uint16_t modelChara, uint32_t displayFlags, uint32_t* modelEquip, uint8_t* customize ) : @@ -27,127 +27,127 @@ Core::Entity::BNpcTemplate::BNpcTemplate( uint32_t id, uint32_t baseId, uint32_t } -Core::Entity::BNpcTemplate::~BNpcTemplate() +Sapphire::Entity::BNpcTemplate::~BNpcTemplate() { } -uint32_t Core::Entity::BNpcTemplate::getId() const +uint32_t Sapphire::Entity::BNpcTemplate::getId() const { return m_id; } -void Core::Entity::BNpcTemplate::setId( uint32_t id ) +void Sapphire::Entity::BNpcTemplate::setId( uint32_t id ) { m_id = id; } -uint32_t Core::Entity::BNpcTemplate::getBNpcBaseId() const +uint32_t Sapphire::Entity::BNpcTemplate::getBNpcBaseId() const { return m_bNpcBaseId; } -void Core::Entity::BNpcTemplate::setBNpcBaseId( uint32_t bNpcBaseId ) +void Sapphire::Entity::BNpcTemplate::setBNpcBaseId( uint32_t bNpcBaseId ) { m_bNpcBaseId = bNpcBaseId; } -uint32_t Core::Entity::BNpcTemplate::getBNpcNameId() const +uint32_t Sapphire::Entity::BNpcTemplate::getBNpcNameId() const { return m_bNpcNameId; } -void Core::Entity::BNpcTemplate::setBNpcNameId( uint32_t bNpcNameId ) +void Sapphire::Entity::BNpcTemplate::setBNpcNameId( uint32_t bNpcNameId ) { m_bNpcNameId = bNpcNameId; } -uint64_t Core::Entity::BNpcTemplate::getWeaponMain() const +uint64_t Sapphire::Entity::BNpcTemplate::getWeaponMain() const { return m_weaponMain; } -void Core::Entity::BNpcTemplate::setWeaponMain( uint64_t weaponMain ) +void Sapphire::Entity::BNpcTemplate::setWeaponMain( uint64_t weaponMain ) { m_weaponMain = weaponMain; } -uint64_t Core::Entity::BNpcTemplate::getWeaponSub() const +uint64_t Sapphire::Entity::BNpcTemplate::getWeaponSub() const { return m_weaponSub; } -void Core::Entity::BNpcTemplate::setWeaponSub( uint64_t weaponSub ) +void Sapphire::Entity::BNpcTemplate::setWeaponSub( uint64_t weaponSub ) { m_weaponSub = weaponSub; } -uint8_t Core::Entity::BNpcTemplate::getAggressionMode() const +uint8_t Sapphire::Entity::BNpcTemplate::getAggressionMode() const { return m_aggressionMode; } -void Core::Entity::BNpcTemplate::setAggressionMode( uint8_t aggressionMode ) +void Sapphire::Entity::BNpcTemplate::setAggressionMode( uint8_t aggressionMode ) { m_aggressionMode = aggressionMode; } -uint8_t Core::Entity::BNpcTemplate::getEnemyType() const +uint8_t Sapphire::Entity::BNpcTemplate::getEnemyType() const { return m_enemyType; } -void Core::Entity::BNpcTemplate::setEnemyType( uint8_t enemyType ) +void Sapphire::Entity::BNpcTemplate::setEnemyType( uint8_t enemyType ) { m_enemyType = enemyType; } -uint8_t Core::Entity::BNpcTemplate::getOnlineStatus() const +uint8_t Sapphire::Entity::BNpcTemplate::getOnlineStatus() const { return m_onlineStatus; } -void Core::Entity::BNpcTemplate::setOnlineStatus( uint8_t onlineStatus ) +void Sapphire::Entity::BNpcTemplate::setOnlineStatus( uint8_t onlineStatus ) { m_onlineStatus = onlineStatus; } -uint8_t Core::Entity::BNpcTemplate::getPose() const +uint8_t Sapphire::Entity::BNpcTemplate::getPose() const { return m_pose; } -void Core::Entity::BNpcTemplate::setPose( uint8_t pose ) +void Sapphire::Entity::BNpcTemplate::setPose( uint8_t pose ) { m_pose = pose; } -uint16_t Core::Entity::BNpcTemplate::getModelChara() const +uint16_t Sapphire::Entity::BNpcTemplate::getModelChara() const { return m_modelChara; } -void Core::Entity::BNpcTemplate::setModelChara( uint16_t modelChara ) +void Sapphire::Entity::BNpcTemplate::setModelChara( uint16_t modelChara ) { m_modelChara = modelChara; } -uint32_t Core::Entity::BNpcTemplate::getDisplayFlags() const +uint32_t Sapphire::Entity::BNpcTemplate::getDisplayFlags() const { return m_displayFlags; } -void Core::Entity::BNpcTemplate::setDisplayFlags( uint32_t displayFlags ) +void Sapphire::Entity::BNpcTemplate::setDisplayFlags( uint32_t displayFlags ) { m_displayFlags = displayFlags; } -const uint32_t* Core::Entity::BNpcTemplate::getModelEquip() const +const uint32_t* Sapphire::Entity::BNpcTemplate::getModelEquip() const { return m_modelEquip; } -const uint8_t* Core::Entity::BNpcTemplate::getCustomize() const +const uint8_t* Sapphire::Entity::BNpcTemplate::getCustomize() const { return m_customize; } diff --git a/src/servers/sapphire_zone/Actor/BNpcTemplate.h b/src/servers/sapphire_zone/Actor/BNpcTemplate.h index b8558a3c..953398d3 100644 --- a/src/servers/sapphire_zone/Actor/BNpcTemplate.h +++ b/src/servers/sapphire_zone/Actor/BNpcTemplate.h @@ -3,7 +3,7 @@ #include -namespace Core::Entity +namespace Sapphire::Entity { class BNpcTemplate diff --git a/src/servers/sapphire_zone/Actor/Chara.cpp b/src/servers/sapphire_zone/Actor/Chara.cpp index 302a590f..92495e14 100644 --- a/src/servers/sapphire_zone/Actor/Chara.cpp +++ b/src/servers/sapphire_zone/Actor/Chara.cpp @@ -29,14 +29,14 @@ #include "Framework.h" #include "Common.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -Core::Entity::Chara::Chara( ObjKind type ) : +Sapphire::Entity::Chara::Chara( ObjKind type ) : Actor( type ), m_pose( 0 ), m_targetId( INVALID_GAME_OBJECT_ID ) @@ -48,156 +48,156 @@ Core::Entity::Chara::Chara( ObjKind type ) : } } -Core::Entity::Chara::~Chara() +Sapphire::Entity::Chara::~Chara() { } /*! \return the actors name */ -std::string Core::Entity::Chara::getName() const +std::string Sapphire::Entity::Chara::getName() const { return std::string( m_name ); } /*! \return current stance of the actors */ -Core::Common::Stance Core::Entity::Chara::getStance() const +Sapphire::Common::Stance Sapphire::Entity::Chara::getStance() const { return m_currentStance; } /*! \return actor stats */ -Core::Entity::Chara::ActorStats Core::Entity::Chara::getStats() const +Sapphire::Entity::Chara::ActorStats Sapphire::Entity::Chara::getStats() const { return m_baseStats; } /*! \return current HP */ -uint32_t Core::Entity::Chara::getHp() const +uint32_t Sapphire::Entity::Chara::getHp() const { return m_hp; } /*! \return current MP */ -uint32_t Core::Entity::Chara::getMp() const +uint32_t Sapphire::Entity::Chara::getMp() const { return m_mp; } /*! \return current TP */ -uint16_t Core::Entity::Chara::getTp() const +uint16_t Sapphire::Entity::Chara::getTp() const { return m_tp; } /*! \return current GP */ -uint16_t Core::Entity::Chara::getGp() const +uint16_t Sapphire::Entity::Chara::getGp() const { return m_gp; } /*! \return current invincibility type */ -InvincibilityType Core::Entity::Chara::getInvincibilityType() const +InvincibilityType Sapphire::Entity::Chara::getInvincibilityType() const { return m_invincibilityType; } /*! \return current class or job */ -Core::Common::ClassJob Core::Entity::Chara::getClass() const +Sapphire::Common::ClassJob Sapphire::Entity::Chara::getClass() const { return m_class; } /*! \return current class or job as int32_t ( this feels pointless ) */ -uint8_t Core::Entity::Chara::getClassAsInt() const +uint8_t Sapphire::Entity::Chara::getClassAsInt() const { return static_cast< uint8_t >( m_class ); } /*! \param ClassJob to set */ -void Core::Entity::Chara::setClass( Common::ClassJob classJob ) +void Sapphire::Entity::Chara::setClass( Common::ClassJob classJob ) { m_class = classJob; } /*! \param Id of the target to set */ -void Core::Entity::Chara::setTargetId( uint64_t targetId ) +void Sapphire::Entity::Chara::setTargetId( uint64_t targetId ) { m_targetId = targetId; } /*! \return Id of the current target */ -uint64_t Core::Entity::Chara::getTargetId() const +uint64_t Sapphire::Entity::Chara::getTargetId() const { return m_targetId; } /*! \return True if the actor is alive */ -bool Core::Entity::Chara::isAlive() const +bool Sapphire::Entity::Chara::isAlive() const { return ( m_hp > 0 ); } /*! \return max hp for the actor */ -uint32_t Core::Entity::Chara::getMaxHp() const +uint32_t Sapphire::Entity::Chara::getMaxHp() const { return m_baseStats.max_hp; } /*! \return max mp for the actor */ -uint32_t Core::Entity::Chara::getMaxMp() const +uint32_t Sapphire::Entity::Chara::getMaxMp() const { return m_baseStats.max_mp; } /*! \return reset hp to current max hp */ -void Core::Entity::Chara::resetHp() +void Sapphire::Entity::Chara::resetHp() { m_hp = getMaxHp(); sendStatusUpdate( true ); } /*! \return reset mp to current max mp */ -void Core::Entity::Chara::resetMp() +void Sapphire::Entity::Chara::resetMp() { m_mp = getMaxMp(); sendStatusUpdate( true ); } /*! \param hp amount to set ( caps to maxHp ) */ -void Core::Entity::Chara::setHp( uint32_t hp ) +void Sapphire::Entity::Chara::setHp( uint32_t hp ) { m_hp = hp < getMaxHp() ? hp : getMaxHp(); sendStatusUpdate( true ); } /*! \param mp amount to set ( caps to maxMp ) */ -void Core::Entity::Chara::setMp( uint32_t mp ) +void Sapphire::Entity::Chara::setMp( uint32_t mp ) { m_mp = mp < getMaxMp() ? mp : getMaxMp(); sendStatusUpdate( true ); } /*! \param gp amount to set*/ -void Core::Entity::Chara::setGp( uint32_t gp ) +void Sapphire::Entity::Chara::setGp( uint32_t gp ) { m_gp = gp; sendStatusUpdate( true ); } /*! \param type invincibility type to set */ -void Core::Entity::Chara::setInvincibilityType( Common::InvincibilityType type ) +void Sapphire::Entity::Chara::setInvincibilityType( Common::InvincibilityType type ) { m_invincibilityType = type; } /*! \return current status of the actor */ -Core::Common::ActorStatus Core::Entity::Chara::getStatus() const +Sapphire::Common::ActorStatus Sapphire::Entity::Chara::getStatus() const { return m_status; } /*! \param status to set */ -void Core::Entity::Chara::setStatus( ActorStatus status ) +void Sapphire::Entity::Chara::setStatus( ActorStatus status ) { m_status = status; } @@ -206,7 +206,7 @@ void Core::Entity::Chara::setStatus( ActorStatus status ) Performs necessary steps to mark an actor dead. Sets hp/mp/tp, sets status, plays animation and fires onDeath event */ -void Core::Entity::Chara::die() +void Sapphire::Entity::Chara::die() { m_status = ActorStatus::Dead; m_hp = 0; @@ -236,7 +236,7 @@ position \param Position to look towards */ -bool Core::Entity::Chara::face( const Common::FFXIVARR_POSITION3& p ) +bool Sapphire::Entity::Chara::face( const Common::FFXIVARR_POSITION3& p ) { float oldRot = getRot(); float rot = Math::Util::calcAngFrom( getPos().x, getPos().z, p.x, p.z ); @@ -255,7 +255,7 @@ Set and propagate the actor stance to in range players \param stance to set */ -void Core::Entity::Chara::setStance( Stance stance ) +void Sapphire::Entity::Chara::setStance( Stance stance ) { m_currentStance = stance; @@ -269,7 +269,7 @@ and if fully performed, clean up again. \return true if a queued action has been updated */ -bool Core::Entity::Chara::checkAction() +bool Sapphire::Entity::Chara::checkAction() { if( m_pCurrentAction == nullptr ) @@ -287,7 +287,7 @@ Change the current target and propagate to in range players \param target actor id */ -void Core::Entity::Chara::changeTarget( uint64_t targetId ) +void Sapphire::Entity::Chara::changeTarget( uint64_t targetId ) { setTargetId( targetId ); FFXIVPacketBasePtr packet = makeActorControl144( m_id, SetTarget, 0, 0, 0, 0, targetId ); @@ -297,7 +297,7 @@ void Core::Entity::Chara::changeTarget( uint64_t targetId ) /*! Dummy function \return 0 */ -uint8_t Core::Entity::Chara::getLevel() const +uint8_t Sapphire::Entity::Chara::getLevel() const { return 0; } @@ -311,7 +311,7 @@ magical dmg and take status effects into account \param amount of damage to be taken */ -void Core::Entity::Chara::takeDamage( uint32_t damage ) +void Sapphire::Entity::Chara::takeDamage( uint32_t damage ) { if( damage >= m_hp ) { @@ -342,7 +342,7 @@ in range \param amount of hp to be healed */ -void Core::Entity::Chara::heal( uint32_t amount ) +void Sapphire::Entity::Chara::heal( uint32_t amount ) { if( ( m_hp + amount ) > getMaxHp() ) { @@ -361,20 +361,20 @@ so players can have their own version and we can abolish the param. \param true if the update should also be sent to the actor ( player ) himself */ -void Core::Entity::Chara::sendStatusUpdate( bool toSelf ) +void Sapphire::Entity::Chara::sendStatusUpdate( bool toSelf ) { FFXIVPacketBasePtr packet = std::make_shared< UpdateHpMpTpPacket >( *this ); sendToInRangeSet( packet ); } /*! \return ActionPtr of the currently registered action, or nullptr */ -Core::Action::ActionPtr Core::Entity::Chara::getCurrentAction() const +Sapphire::Action::ActionPtr Sapphire::Entity::Chara::getCurrentAction() const { return m_pCurrentAction; } /*! \param ActionPtr of the action to be registered */ -void Core::Entity::Chara::setCurrentAction( Core::Action::ActionPtr pAction ) +void Sapphire::Entity::Chara::setCurrentAction( Sapphire::Action::ActionPtr pAction ) { m_pCurrentAction = pAction; } @@ -388,7 +388,7 @@ Will have to be extended for ranged attacks. \param ActorPtr the autoAttack is performed on */ -void Core::Entity::Chara::autoAttack( CharaPtr pTarget ) +void Sapphire::Entity::Chara::autoAttack( CharaPtr pTarget ) { uint64_t tick = Util::getTimeMs(); @@ -427,7 +427,7 @@ ChaiScript Skill Handler. \param GamePacketPtr to send \param bool should be send to self? */ -void Core::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionId, uint64_t param1, +void Sapphire::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionId, uint64_t param1, uint64_t param2, Entity::Chara& target ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -437,7 +437,7 @@ void Core::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionId, u getAsPlayer()->sendDebug( "Handle script skill type: " + std::to_string( type ) ); } - auto actionInfoPtr = pExdData->get< Core::Data::Action >( actionId ); + auto actionInfoPtr = pExdData->get< Sapphire::Data::Action >( actionId ); // Todo: Effect packet generator. 90% of this is basically setting params and it's basically unreadable. // Prepare packet. This is seemingly common for all packets in the action handler. @@ -562,7 +562,7 @@ void Core::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionId, u } /*! \param StatusEffectPtr to be applied to the actor */ -void Core::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEffect ) +void Sapphire::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEffect ) { int8_t nextSlot = getStatusEffectFreeSlot(); // if there is no slot left, do not add the effect @@ -592,7 +592,7 @@ void Core::Entity::Chara::addStatusEffect( StatusEffect::StatusEffectPtr pEffect } /*! \param StatusEffectPtr to be applied to the actor */ -void Core::Entity::Chara::addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param ) +void Sapphire::Entity::Chara::addStatusEffectById( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param ) { auto effect = StatusEffect::make_StatusEffect( id, source.getAsChara(), getAsChara(), duration, 3000 ); effect->setParam( param ); @@ -600,7 +600,7 @@ void Core::Entity::Chara::addStatusEffectById( uint32_t id, int32_t duration, En } /*! \param StatusEffectPtr to be applied to the actor */ -void Core::Entity::Chara::addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source, +void Sapphire::Entity::Chara::addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source, uint16_t param ) { if( hasStatusEffect( id ) ) @@ -612,7 +612,7 @@ void Core::Entity::Chara::addStatusEffectByIdIfNotExist( uint32_t id, int32_t du } -int8_t Core::Entity::Chara::getStatusEffectFreeSlot() +int8_t Sapphire::Entity::Chara::getStatusEffectFreeSlot() { int8_t freeEffectSlot = -1; @@ -625,12 +625,12 @@ int8_t Core::Entity::Chara::getStatusEffectFreeSlot() return freeEffectSlot; } -void Core::Entity::Chara::statusEffectFreeSlot( uint8_t slotId ) +void Sapphire::Entity::Chara::statusEffectFreeSlot( uint8_t slotId ) { m_statusEffectFreeSlotQueue.push( slotId ); } -void Core::Entity::Chara::removeSingleStatusEffectById( uint32_t id ) +void Sapphire::Entity::Chara::removeSingleStatusEffectById( uint32_t id ) { for( auto effectIt : m_statusEffectMap ) { @@ -642,7 +642,7 @@ void Core::Entity::Chara::removeSingleStatusEffectById( uint32_t id ) } } -void Core::Entity::Chara::removeStatusEffect( uint8_t effectSlotId ) +void Sapphire::Entity::Chara::removeStatusEffect( uint8_t effectSlotId ) { auto pEffectIt = m_statusEffectMap.find( effectSlotId ); if( pEffectIt == m_statusEffectMap.end() ) @@ -660,32 +660,32 @@ void Core::Entity::Chara::removeStatusEffect( uint8_t effectSlotId ) sendStatusEffectUpdate(); } -std::map< uint8_t, Core::StatusEffect::StatusEffectPtr > Core::Entity::Chara::getStatusEffectMap() const +std::map< uint8_t, Sapphire::StatusEffect::StatusEffectPtr > Sapphire::Entity::Chara::getStatusEffectMap() const { return m_statusEffectMap; } -const uint8_t* Core::Entity::Chara::getLookArray() const +const uint8_t* Sapphire::Entity::Chara::getLookArray() const { return m_customize; } -const uint32_t* Core::Entity::Chara::getModelArray() const +const uint32_t* Sapphire::Entity::Chara::getModelArray() const { return m_modelEquip; } -uint8_t Core::Entity::Chara::getPose() const +uint8_t Sapphire::Entity::Chara::getPose() const { return m_pose; } -void Core::Entity::Chara::setPose( uint8_t pose ) +void Sapphire::Entity::Chara::setPose( uint8_t pose ) { m_pose = pose; } -void Core::Entity::Chara::sendStatusEffectUpdate() +void Sapphire::Entity::Chara::sendStatusEffectUpdate() { uint64_t currentTimeMs = Util::getTimeMs(); @@ -714,7 +714,7 @@ void Core::Entity::Chara::sendStatusEffectUpdate() } -void Core::Entity::Chara::updateStatusEffects() +void Sapphire::Entity::Chara::updateStatusEffects() { uint64_t currentTimeMs = Util::getTimeMs(); @@ -781,7 +781,7 @@ void Core::Entity::Chara::updateStatusEffects() } } -bool Core::Entity::Chara::hasStatusEffect( uint32_t id ) +bool Sapphire::Entity::Chara::hasStatusEffect( uint32_t id ) { if( m_statusEffectMap.find( id ) != m_statusEffectMap.end() ) return true; diff --git a/src/servers/sapphire_zone/Actor/Chara.h b/src/servers/sapphire_zone/Actor/Chara.h index c07c7758..1bb9fe69 100644 --- a/src/servers/sapphire_zone/Actor/Chara.h +++ b/src/servers/sapphire_zone/Actor/Chara.h @@ -9,7 +9,7 @@ #include #include -namespace Core::Entity +namespace Sapphire::Entity { /*! @@ -136,7 +136,7 @@ namespace Core::Entity void setPose( uint8_t pose ); - std::map< uint8_t, Core::StatusEffect::StatusEffectPtr > getStatusEffectMap() const; + std::map< uint8_t, Sapphire::StatusEffect::StatusEffectPtr > getStatusEffectMap() const; void sendStatusEffectUpdate(); diff --git a/src/servers/sapphire_zone/Actor/EventObject.cpp b/src/servers/sapphire_zone/Actor/EventObject.cpp index 5e191703..5dea822f 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.cpp +++ b/src/servers/sapphire_zone/Actor/EventObject.cpp @@ -13,19 +13,19 @@ #include #include -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uint32_t gimmickId, +Sapphire::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uint32_t gimmickId, uint8_t initialState, Common::FFXIVARR_POSITION3 pos, float rotation, const std::string& givenName ) : - Core::Entity::Actor( ObjKind::EventObj ), + Sapphire::Entity::Actor( ObjKind::EventObj ), m_gimmickId( gimmickId ), m_state( initialState ), m_objectId( objectId ), @@ -38,47 +38,47 @@ Core::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uin m_rot = rotation; } -uint32_t Core::Entity::EventObject::getGimmickId() const +uint32_t Sapphire::Entity::EventObject::getGimmickId() const { return m_gimmickId; } -uint32_t Core::Entity::EventObject::getObjectId() const +uint32_t Sapphire::Entity::EventObject::getObjectId() const { return m_objectId; } -float Core::Entity::EventObject::getScale() const +float Sapphire::Entity::EventObject::getScale() const { return m_scale; } -void Core::Entity::EventObject::setScale( float scale ) +void Sapphire::Entity::EventObject::setScale( float scale ) { m_scale = scale; } -Core::Entity::EventObject::OnTalkEventHandler Core::Entity::EventObject::getOnTalkHandler() const +Sapphire::Entity::EventObject::OnTalkEventHandler Sapphire::Entity::EventObject::getOnTalkHandler() const { return m_onTalkEventHandler; } -void Core::Entity::EventObject::setOnTalkHandler( Core::Entity::EventObject::OnTalkEventHandler handler ) +void Sapphire::Entity::EventObject::setOnTalkHandler( Sapphire::Entity::EventObject::OnTalkEventHandler handler ) { m_onTalkEventHandler = handler; } -void Core::Entity::EventObject::setGimmickId( uint32_t gimmickId ) +void Sapphire::Entity::EventObject::setGimmickId( uint32_t gimmickId ) { m_gimmickId = gimmickId; } -uint8_t Core::Entity::EventObject::getState() const +uint8_t Sapphire::Entity::EventObject::getState() const { return m_state; } -void Core::Entity::EventObject::setState( uint8_t state ) +void Sapphire::Entity::EventObject::setState( uint8_t state ) { m_state = state; @@ -88,7 +88,7 @@ void Core::Entity::EventObject::setState( uint8_t state ) } } -void Core::Entity::EventObject::setAnimationFlag( uint32_t flag, uint32_t animationFlag ) +void Sapphire::Entity::EventObject::setAnimationFlag( uint32_t flag, uint32_t animationFlag ) { for( const auto& player : m_inRangePlayers ) { @@ -96,17 +96,17 @@ void Core::Entity::EventObject::setAnimationFlag( uint32_t flag, uint32_t animat } } -void Core::Entity::EventObject::setParentInstance( Core::InstanceContentPtr instance ) +void Sapphire::Entity::EventObject::setParentInstance( Sapphire::InstanceContentPtr instance ) { m_parentInstance = instance; } -Core::InstanceContentPtr Core::Entity::EventObject::getParentInstance() const +Sapphire::InstanceContentPtr Sapphire::Entity::EventObject::getParentInstance() const { return m_parentInstance; } -void Core::Entity::EventObject::spawn( Core::Entity::PlayerPtr pTarget ) +void Sapphire::Entity::EventObject::spawn( Sapphire::Entity::PlayerPtr pTarget ) { auto spawnIndex = pTarget->getNextObjSpawnIndexForActorId( getId() ); if( !pTarget->isObjSpawnIndexValid( spawnIndex ) ) @@ -130,7 +130,7 @@ void Core::Entity::EventObject::spawn( Core::Entity::PlayerPtr pTarget ) } -void Core::Entity::EventObject::despawn( Core::Entity::PlayerPtr pTarget ) +void Sapphire::Entity::EventObject::despawn( Sapphire::Entity::PlayerPtr pTarget ) { auto pLog = g_fw.get< Logger >(); pLog->debug( "despawn eobj: " + std::to_string( getId() ) ); @@ -138,7 +138,7 @@ void Core::Entity::EventObject::despawn( Core::Entity::PlayerPtr pTarget ) pTarget->freeObjSpawnIndexForActorId( getId() ); } -const std::string& Core::Entity::EventObject::getName() const +const std::string& Sapphire::Entity::EventObject::getName() const { return m_name; } diff --git a/src/servers/sapphire_zone/Actor/EventObject.h b/src/servers/sapphire_zone/Actor/EventObject.h index 5ce5de54..ad7382ce 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.h +++ b/src/servers/sapphire_zone/Actor/EventObject.h @@ -3,7 +3,7 @@ #include "Actor.h" -namespace Core::Entity +namespace Sapphire::Entity { class EventObject : public Actor diff --git a/src/servers/sapphire_zone/Actor/Npc.cpp b/src/servers/sapphire_zone/Actor/Npc.cpp index ef4cf4e6..cd79d2c7 100644 --- a/src/servers/sapphire_zone/Actor/Npc.cpp +++ b/src/servers/sapphire_zone/Actor/Npc.cpp @@ -30,19 +30,19 @@ #include "Framework.h" #include "Common.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -Core::Entity::Npc::Npc( ObjKind type ) : +Sapphire::Entity::Npc::Npc( ObjKind type ) : Chara( type ) { } -Core::Entity::Npc::~Npc() +Sapphire::Entity::Npc::~Npc() { } diff --git a/src/servers/sapphire_zone/Actor/Npc.h b/src/servers/sapphire_zone/Actor/Npc.h index aef2e75c..bf7cb4f2 100644 --- a/src/servers/sapphire_zone/Actor/Npc.h +++ b/src/servers/sapphire_zone/Actor/Npc.h @@ -9,7 +9,7 @@ #include #include -namespace Core::Entity +namespace Sapphire::Entity { /*! diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index c286833c..3d7010c5 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -43,19 +43,19 @@ #include "ServerMgr.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -using InventoryMap = std::map< uint16_t, Core::ItemContainerPtr >; +using InventoryMap = std::map< uint16_t, Sapphire::ItemContainerPtr >; using InvSlotPair = std::pair< uint16_t, int8_t >; using InvSlotPairVec = std::vector< InvSlotPair >; // player constructor -Core::Entity::Player::Player() : +Sapphire::Entity::Player::Player() : Chara( ObjKind::Player ), m_lastWrite( 0 ), m_lastPing( 0 ), @@ -102,11 +102,11 @@ Core::Entity::Player::Player() : m_actorSpawnIndexAllocator.init( MAX_DISPLAYED_ACTORS, true ); } -Core::Entity::Player::~Player() +Sapphire::Entity::Player::~Player() { } -void Core::Entity::Player::injectPacket( const std::string& path ) +void Sapphire::Entity::Player::injectPacket( const std::string& path ) { auto pServerZone = g_fw.get< ServerMgr >(); auto session = pServerZone->getSession( getId() ); @@ -115,84 +115,84 @@ void Core::Entity::Player::injectPacket( const std::string& path ) } // TODO: add a proper calculation based on race / job / level / gear -uint32_t Core::Entity::Player::getMaxHp() +uint32_t Sapphire::Entity::Player::getMaxHp() { return m_baseStats.max_hp; } -uint32_t Core::Entity::Player::getMaxMp() +uint32_t Sapphire::Entity::Player::getMaxMp() { return m_baseStats.max_mp; } -uint16_t Core::Entity::Player::getZoneId() const +uint16_t Sapphire::Entity::Player::getZoneId() const { return m_zoneId; } -uint32_t Core::Entity::Player::getTerritoryId() const +uint32_t Sapphire::Entity::Player::getTerritoryId() const { return m_territoryId; } -void Core::Entity::Player::setTerritoryId( uint32_t territoryId ) +void Sapphire::Entity::Player::setTerritoryId( uint32_t territoryId ) { m_territoryId = territoryId; } -uint8_t Core::Entity::Player::getGmRank() const +uint8_t Sapphire::Entity::Player::getGmRank() const { return m_gmRank; } -void Core::Entity::Player::setGmRank( uint8_t rank ) +void Sapphire::Entity::Player::setGmRank( uint8_t rank ) { m_gmRank = rank; } -bool Core::Entity::Player::getGmInvis() const +bool Sapphire::Entity::Player::getGmInvis() const { return m_gmInvis; } -void Core::Entity::Player::setGmInvis( bool invis ) +void Sapphire::Entity::Player::setGmInvis( bool invis ) { m_gmInvis = invis; } -bool Core::Entity::Player::isActingAsGm() const +bool Sapphire::Entity::Player::isActingAsGm() const { auto status = getOnlineStatus(); return status == OnlineStatus::GameMaster || status == OnlineStatus::GameMaster1 || status == OnlineStatus::GameMaster2; } -uint8_t Core::Entity::Player::getMode() const +uint8_t Sapphire::Entity::Player::getMode() const { return m_mode; } -void Core::Entity::Player::setMode( uint8_t mode ) +void Sapphire::Entity::Player::setMode( uint8_t mode ) { m_mode = mode; } -uint8_t Core::Entity::Player::getStartTown() const +uint8_t Sapphire::Entity::Player::getStartTown() const { return m_startTown; } -void Core::Entity::Player::setMarkedForRemoval() +void Sapphire::Entity::Player::setMarkedForRemoval() { m_markedForRemoval = true; } -bool Core::Entity::Player::isMarkedForRemoval() const +bool Sapphire::Entity::Player::isMarkedForRemoval() const { return m_markedForRemoval; } -Core::Common::OnlineStatus Core::Entity::Player::getOnlineStatus() const +Sapphire::Common::OnlineStatus Sapphire::Entity::Player::getOnlineStatus() const { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); if( !pExdData ) @@ -223,17 +223,17 @@ Core::Common::OnlineStatus Core::Entity::Player::getOnlineStatus() const return static_cast< OnlineStatus >( applicableStatus ); } -void Core::Entity::Player::setOnlineStatusMask( uint64_t status ) +void Sapphire::Entity::Player::setOnlineStatusMask( uint64_t status ) { m_onlineStatus = status; } -uint64_t Core::Entity::Player::getOnlineStatusMask() const +uint64_t Sapphire::Entity::Player::getOnlineStatusMask() const { return m_onlineStatus; } -void Core::Entity::Player::prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadeOutTime, uint16_t animation ) +void Sapphire::Entity::Player::prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadeOutTime, uint16_t animation ) { auto preparePacket = makeZonePacket< FFXIVIpcPrepareZoning >( getId() ); preparePacket->data().targetZone = targetZone; @@ -243,7 +243,7 @@ void Core::Entity::Player::prepareZoning( uint16_t targetZone, bool fadeOut, uin queuePacket( preparePacket ); } -void Core::Entity::Player::calculateStats() +void Sapphire::Entity::Player::calculateStats() { uint8_t tribe = getLookAt( Common::CharaLook::Tribe ); uint8_t level = getLevel(); @@ -251,9 +251,9 @@ void Core::Entity::Player::calculateStats() auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto classInfo = pExdData->get< Core::Data::ClassJob >( job ); - auto tribeInfo = pExdData->get< Core::Data::Tribe >( tribe ); - auto paramGrowthInfo = pExdData->get< Core::Data::ParamGrow >( level ); + auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( job ); + auto tribeInfo = pExdData->get< Sapphire::Data::Tribe >( tribe ); + auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( level ); // TODO: put formula somewhere else... float base = Math::CalcStats::calculateBaseStat( getAsPlayer() ); @@ -295,18 +295,18 @@ void Core::Entity::Player::calculateStats() } -void Core::Entity::Player::setAutoattack( bool mode ) +void Sapphire::Entity::Player::setAutoattack( bool mode ) { m_bAutoattack = mode; m_lastAttack = Util::getTimeMs(); } -bool Core::Entity::Player::isAutoattackOn() const +bool Sapphire::Entity::Player::isAutoattackOn() const { return m_bAutoattack; } -void Core::Entity::Player::sendStats() +void Sapphire::Entity::Player::sendStats() { auto statPacket = makeZonePacket< FFXIVIpcPlayerStats >( getId() ); @@ -336,12 +336,12 @@ void Core::Entity::Player::sendStats() queuePacket( statPacket ); } -void Core::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type ) +void Sapphire::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto pTeriMgr = g_fw.get< TerritoryMgr >(); - auto data = pExdData->get< Core::Data::Aetheryte >( aetheryteId ); + auto data = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId ); if( data == nullptr ) { @@ -363,8 +363,8 @@ void Core::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type ) rot = targetPos->getTargetRotation(); } - sendDebug( "Teleport: " + pExdData->get< Core::Data::PlaceName >( data->placeName )->name + " " + - pExdData->get< Core::Data::PlaceName >( data->aethernetName )->name + + sendDebug( "Teleport: " + pExdData->get< Sapphire::Data::PlaceName >( data->placeName )->name + " " + + pExdData->get< Sapphire::Data::PlaceName >( data->aethernetName )->name + "(" + std::to_string( data->territory ) + ")" ); // TODO: this should be simplified and a type created in server_common/common.h. @@ -392,19 +392,19 @@ void Core::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type ) } -void Core::Entity::Player::forceZoneing( uint32_t zoneId ) +void Sapphire::Entity::Player::forceZoneing( uint32_t zoneId ) { m_queuedZoneing = std::make_shared< QueuedZoning >( zoneId, getPos(), Util::getTimeMs(), 0.f ); //performZoning( zoneId, Common::ZoneingType::None, getPos() ); } -void Core::Entity::Player::returnToHomepoint() +void Sapphire::Entity::Player::returnToHomepoint() { setZoningType( Common::ZoneingType::Return ); teleport( getHomepoint(), 3 ); } -void Core::Entity::Player::setZone( uint32_t zoneId ) +void Sapphire::Entity::Player::setZone( uint32_t zoneId ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); m_onEnterEventDone = false; @@ -422,7 +422,7 @@ void Core::Entity::Player::setZone( uint32_t zoneId ) sendZonePackets(); } -bool Core::Entity::Player::setInstance( uint32_t instanceContentId ) +bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); m_onEnterEventDone = false; @@ -433,7 +433,7 @@ bool Core::Entity::Player::setInstance( uint32_t instanceContentId ) return setInstance( instance ); } -bool Core::Entity::Player::setInstance( ZonePtr instance ) +bool Sapphire::Entity::Player::setInstance( ZonePtr instance ) { m_onEnterEventDone = false; if( !instance ) @@ -457,7 +457,7 @@ bool Core::Entity::Player::setInstance( ZonePtr instance ) return true; } -bool Core::Entity::Player::exitInstance() +bool Sapphire::Entity::Player::exitInstance() { auto pTeriMgr = g_fw.get< TerritoryMgr >(); if( !pTeriMgr->movePlayer( m_prevZoneId, getAsPlayer() ) ) @@ -472,37 +472,37 @@ bool Core::Entity::Player::exitInstance() return true; } -uint32_t Core::Entity::Player::getPlayTime() const +uint32_t Sapphire::Entity::Player::getPlayTime() const { return m_playTime; } -uint8_t Core::Entity::Player::getRace() const +uint8_t Sapphire::Entity::Player::getRace() const { return getLookAt( CharaLook::Race ); } -uint8_t Core::Entity::Player::getGender() const +uint8_t Sapphire::Entity::Player::getGender() const { return getLookAt( CharaLook::Gender ); } -void Core::Entity::Player::initSpawnIdQueue() +void Sapphire::Entity::Player::initSpawnIdQueue() { m_actorSpawnIndexAllocator.freeAllSpawnIndexes(); } -uint8_t Core::Entity::Player::getSpawnIdForActorId( uint32_t actorId ) +uint8_t Sapphire::Entity::Player::getSpawnIdForActorId( uint32_t actorId ) { return m_actorSpawnIndexAllocator.getNextFreeSpawnIndex( actorId ); } -bool Core::Entity::Player::isActorSpawnIdValid( uint8_t spawnIndex ) +bool Sapphire::Entity::Player::isActorSpawnIdValid( uint8_t spawnIndex ) { return m_actorSpawnIndexAllocator.isSpawnIndexValid( spawnIndex ); } -void Core::Entity::Player::registerAetheryte( uint8_t aetheryteId ) +void Sapphire::Entity::Player::registerAetheryte( uint8_t aetheryteId ) { uint16_t index; uint8_t value; @@ -512,7 +512,7 @@ void Core::Entity::Player::registerAetheryte( uint8_t aetheryteId ) queuePacket( makeActorControl143( getId(), LearnTeleport, aetheryteId, 1 ) ); } -bool Core::Entity::Player::isAetheryteRegistered( uint8_t aetheryteId ) const +bool Sapphire::Entity::Player::isAetheryteRegistered( uint8_t aetheryteId ) const { uint16_t index; uint8_t value; @@ -521,12 +521,12 @@ bool Core::Entity::Player::isAetheryteRegistered( uint8_t aetheryteId ) const return ( m_aetheryte[ index ] & value ) != 0; } -uint8_t* Core::Entity::Player::getDiscoveryBitmask() +uint8_t* Sapphire::Entity::Player::getDiscoveryBitmask() { return m_discovery; } -void Core::Entity::Player::discover( int16_t map_id, int16_t sub_id ) +void Sapphire::Entity::Player::discover( int16_t map_id, int16_t sub_id ) { // map.exd field 12 -> index in one of the two discovery sections, if field 15 is false, need to use 2nd section // section 1 starts at 4 - 2 bytes each @@ -537,8 +537,8 @@ void Core::Entity::Player::discover( int16_t map_id, int16_t sub_id ) int32_t offset = 4; - auto info = pExdData->get< Core::Data::Map >( - pExdData->get< Core::Data::TerritoryType >( getCurrentZone()->getTerritoryTypeId() )->map ); + auto info = pExdData->get< Sapphire::Data::Map >( + pExdData->get< Sapphire::Data::TerritoryType >( getCurrentZone()->getTerritoryTypeId() )->map ); if( info->discoveryArrayByte ) offset = 5 + 2 * info->discoveryIndex; else @@ -553,19 +553,19 @@ void Core::Entity::Player::discover( int16_t map_id, int16_t sub_id ) uint16_t level = getLevel(); - uint32_t exp = ( pExdData->get< Core::Data::ParamGrow >( level )->expToNext * 5 / 100 ); + uint32_t exp = ( pExdData->get< Sapphire::Data::ParamGrow >( level )->expToNext * 5 / 100 ); gainExp( exp ); } -bool Core::Entity::Player::isNewAdventurer() const +bool Sapphire::Entity::Player::isNewAdventurer() const { return m_bNewAdventurer; } -void Core::Entity::Player::setNewAdventurer( bool state ) +void Sapphire::Entity::Player::setNewAdventurer( bool state ) { //if( !state ) //{ @@ -578,12 +578,12 @@ void Core::Entity::Player::setNewAdventurer( bool state ) m_bNewAdventurer = state; } -void Core::Entity::Player::resetDiscovery() +void Sapphire::Entity::Player::resetDiscovery() { memset( m_discovery, 0, sizeof( m_discovery ) ); } -void Core::Entity::Player::changePosition( float x, float y, float z, float o ) +void Sapphire::Entity::Player::changePosition( float x, float y, float z, float o ) { Common::FFXIVARR_POSITION3 pos; pos.x = x; @@ -592,7 +592,7 @@ void Core::Entity::Player::changePosition( float x, float y, float z, float o ) m_queuedZoneing = std::make_shared< QueuedZoning >( getZoneId(), pos, Util::getTimeMs(), o ); } -void Core::Entity::Player::learnAction( uint16_t actionId ) +void Sapphire::Entity::Player::learnAction( uint16_t actionId ) { uint16_t index; uint8_t value; @@ -603,7 +603,7 @@ void Core::Entity::Player::learnAction( uint16_t actionId ) queuePacket( makeActorControl143( getId(), ToggleActionUnlock, actionId, 1 ) ); } -void Core::Entity::Player::learnSong( uint8_t songId, uint32_t itemId ) +void Sapphire::Entity::Player::learnSong( uint8_t songId, uint32_t itemId ) { uint16_t index; uint8_t value; @@ -614,7 +614,7 @@ void Core::Entity::Player::learnSong( uint8_t songId, uint32_t itemId ) queuePacket( makeActorControl143( getId(), ToggleOrchestrionUnlock, songId, 1, itemId ) ); } -bool Core::Entity::Player::isActionLearned( uint8_t actionId ) const +bool Sapphire::Entity::Player::isActionLearned( uint8_t actionId ) const { uint16_t index; uint8_t value; @@ -623,7 +623,7 @@ bool Core::Entity::Player::isActionLearned( uint8_t actionId ) const return ( m_unlocks[ index ] & value ) != 0; } -void Core::Entity::Player::gainExp( uint32_t amount ) +void Sapphire::Entity::Player::gainExp( uint32_t amount ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -631,9 +631,9 @@ void Core::Entity::Player::gainExp( uint32_t amount ) uint16_t level = getLevel(); - uint32_t neededExpToLevel = pExdData->get< Core::Data::ParamGrow >( level )->expToNext; + uint32_t neededExpToLevel = pExdData->get< Sapphire::Data::ParamGrow >( level )->expToNext; - uint32_t neededExpToLevelplus1 = pExdData->get< Core::Data::ParamGrow >( level + 1 )->expToNext; + uint32_t neededExpToLevelplus1 = pExdData->get< Sapphire::Data::ParamGrow >( level + 1 )->expToNext; queuePacket( makeActorControl143( getId(), GainExpMsg, static_cast< uint8_t >( getClass() ), amount ) ); @@ -664,7 +664,7 @@ void Core::Entity::Player::gainExp( uint32_t amount ) sendStatusUpdate(); } -void Core::Entity::Player::gainLevel() +void Sapphire::Entity::Player::gainLevel() { setLevel( getLevel() + 1 ); @@ -699,57 +699,57 @@ void Core::Entity::Player::gainLevel() } -void Core::Entity::Player::sendStatusUpdate( bool toSelf ) +void Sapphire::Entity::Player::sendStatusUpdate( bool toSelf ) { sendToInRangeSet( std::make_shared< UpdateHpMpTpPacket >( *this ), true ); } -uint8_t Core::Entity::Player::getLevel() const +uint8_t Sapphire::Entity::Player::getLevel() const { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; return static_cast< uint8_t >( m_classArray[ classJobIndex ] ); } -uint8_t Core::Entity::Player::getLevelForClass( Common::ClassJob pClass ) const +uint8_t Sapphire::Entity::Player::getLevelForClass( Common::ClassJob pClass ) const { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( pClass ) )->expArrayIndex; + uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pClass ) )->expArrayIndex; return static_cast< uint8_t >( m_classArray[ classJobIndex ] ); } -bool Core::Entity::Player::isClassJobUnlocked( Common::ClassJob classJob ) const +bool Sapphire::Entity::Player::isClassJobUnlocked( Common::ClassJob classJob ) const { // todo: need to properly check if a job is unlocked, at the moment we just check the class array which will return true for every job if the base class is unlocked return getLevelForClass( classJob ) != 0; } -uint32_t Core::Entity::Player::getExp() const +uint32_t Sapphire::Entity::Player::getExp() const { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; return m_expArray[ classJobIndex ]; } -void Core::Entity::Player::setExp( uint32_t amount ) +void Sapphire::Entity::Player::setExp( uint32_t amount ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; m_expArray[ classJobIndex ] = amount; } -bool Core::Entity::Player::isInCombat() const +bool Sapphire::Entity::Player::isInCombat() const { return m_bInCombat; } -void Core::Entity::Player::setInCombat( bool mode ) +void Sapphire::Entity::Player::setInCombat( bool mode ) { //m_lastAttack = GetTickCount(); m_bInCombat = mode; } -void Core::Entity::Player::setClassJob( Common::ClassJob classJob ) +void Sapphire::Entity::Player::setClassJob( Common::ClassJob classJob ) { m_class = classJob; uint8_t level = getLevel(); @@ -773,17 +773,17 @@ void Core::Entity::Player::setClassJob( Common::ClassJob classJob ) sendStatusUpdate( true ); } -void Core::Entity::Player::setLevel( uint8_t level ) +void Sapphire::Entity::Player::setLevel( uint8_t level ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; + uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( getClass() ) )->expArrayIndex; m_classArray[ classJobIndex ] = level; } -void Core::Entity::Player::setLevelForClass( uint8_t level, Common::ClassJob classjob ) +void Sapphire::Entity::Player::setLevelForClass( uint8_t level, Common::ClassJob classjob ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( classjob ) )->expArrayIndex; + uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( classjob ) )->expArrayIndex; if( m_classArray[ classJobIndex ] == 0 ) insertDbClass( classJobIndex ); @@ -791,65 +791,65 @@ void Core::Entity::Player::setLevelForClass( uint8_t level, Common::ClassJob cla m_classArray[ classJobIndex ] = level; } -void Core::Entity::Player::sendModel() +void Sapphire::Entity::Player::sendModel() { sendToInRangeSet( std::make_shared< ModelEquipPacket >( *getAsPlayer() ), true ); } -uint32_t Core::Entity::Player::getModelForSlot( Common::GearModelSlot slot ) +uint32_t Sapphire::Entity::Player::getModelForSlot( Common::GearModelSlot slot ) { return m_modelEquip[ slot ]; } -uint64_t Core::Entity::Player::getModelMainWeapon() const +uint64_t Sapphire::Entity::Player::getModelMainWeapon() const { return m_modelMainWeapon; } -uint64_t Core::Entity::Player::getModelSubWeapon() const +uint64_t Sapphire::Entity::Player::getModelSubWeapon() const { return m_modelSubWeapon; } -uint64_t Core::Entity::Player::getModelSystemWeapon() const +uint64_t Sapphire::Entity::Player::getModelSystemWeapon() const { return m_modelSystemWeapon; } -int8_t Core::Entity::Player::getAetheryteMaskAt( uint8_t index ) const +int8_t Sapphire::Entity::Player::getAetheryteMaskAt( uint8_t index ) const { if( index > sizeof( m_aetheryte ) ) return 0; return m_aetheryte[ index ]; } -uint8_t Core::Entity::Player::getBirthDay() const +uint8_t Sapphire::Entity::Player::getBirthDay() const { return m_birthDay; } -uint8_t Core::Entity::Player::getBirthMonth() const +uint8_t Sapphire::Entity::Player::getBirthMonth() const { return m_birthMonth; } -uint8_t Core::Entity::Player::getGuardianDeity() const +uint8_t Sapphire::Entity::Player::getGuardianDeity() const { return m_guardianDeity; } -uint8_t Core::Entity::Player::getLookAt( uint8_t index ) const +uint8_t Sapphire::Entity::Player::getLookAt( uint8_t index ) const { return m_customize[ index ]; } -void Core::Entity::Player::setLookAt( uint8_t index, uint8_t value ) +void Sapphire::Entity::Player::setLookAt( uint8_t index, uint8_t value ) { m_customize[ index ] = value; } // spawn this player for pTarget -void Core::Entity::Player::spawn( Entity::PlayerPtr pTarget ) +void Sapphire::Entity::Player::spawn( Entity::PlayerPtr pTarget ) { auto pLog = g_fw.get< Logger >(); pLog->debug( "[" + std::to_string( pTarget->getId() ) + "] Spawning " + @@ -860,7 +860,7 @@ void Core::Entity::Player::spawn( Entity::PlayerPtr pTarget ) } // despawn -void Core::Entity::Player::despawn( Entity::PlayerPtr pTarget ) +void Sapphire::Entity::Player::despawn( Entity::PlayerPtr pTarget ) { auto pPlayer = pTarget; auto pLog = g_fw.get< Logger >(); @@ -871,7 +871,7 @@ void Core::Entity::Player::despawn( Entity::PlayerPtr pTarget ) pPlayer->queuePacket( makeActorControl143( getId(), DespawnZoneScreenMsg, 0x04, getId(), 0x01 ) ); } -Core::Entity::ActorPtr Core::Entity::Player::lookupTargetById( uint64_t targetId ) +Sapphire::Entity::ActorPtr Sapphire::Entity::Player::lookupTargetById( uint64_t targetId ) { ActorPtr targetActor; auto inRange = getInRangeActors( true ); @@ -883,22 +883,22 @@ Core::Entity::ActorPtr Core::Entity::Player::lookupTargetById( uint64_t targetId return targetActor; } -void Core::Entity::Player::setLastPing( uint32_t ping ) +void Sapphire::Entity::Player::setLastPing( uint32_t ping ) { m_lastPing = ping; } -uint32_t Core::Entity::Player::getLastPing() const +uint32_t Sapphire::Entity::Player::getLastPing() const { return m_lastPing; } -void Core::Entity::Player::setVoiceId( uint8_t voiceId ) +void Sapphire::Entity::Player::setVoiceId( uint8_t voiceId ) { m_voice = voiceId; } -void Core::Entity::Player::setGc( uint8_t gc ) +void Sapphire::Entity::Player::setGc( uint8_t gc ) { m_gc = gc; @@ -910,7 +910,7 @@ void Core::Entity::Player::setGc( uint8_t gc ) queuePacket( gcAffPacket ); } -void Core::Entity::Player::setGcRankAt( uint8_t index, uint8_t rank ) +void Sapphire::Entity::Player::setGcRankAt( uint8_t index, uint8_t rank ) { m_gcRank[ index ] = rank; @@ -922,15 +922,15 @@ void Core::Entity::Player::setGcRankAt( uint8_t index, uint8_t rank ) queuePacket( gcAffPacket ); } -const uint8_t* Core::Entity::Player::getStateFlags() const +const uint8_t* Sapphire::Entity::Player::getStateFlags() const { return m_stateFlags; } -bool Core::Entity::Player::actionHasCastTime( uint32_t actionId ) //TODO: Add logic for special cases +bool Sapphire::Entity::Player::actionHasCastTime( uint32_t actionId ) //TODO: Add logic for special cases { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto actionInfoPtr = pExdData->get< Core::Data::Action >( actionId ); + auto actionInfoPtr = pExdData->get< Sapphire::Data::Action >( actionId ); if( actionInfoPtr->preservesCombo ) return false; @@ -938,7 +938,7 @@ bool Core::Entity::Player::actionHasCastTime( uint32_t actionId ) //TODO: Add lo } -bool Core::Entity::Player::hasStateFlag( Common::PlayerStateFlag flag ) const +bool Sapphire::Entity::Player::hasStateFlag( Common::PlayerStateFlag flag ) const { int32_t iFlag = static_cast< uint32_t >( flag ); @@ -949,7 +949,7 @@ bool Core::Entity::Player::hasStateFlag( Common::PlayerStateFlag flag ) const return ( m_stateFlags[ index ] & value ) != 0; } -void Core::Entity::Player::setStateFlag( Common::PlayerStateFlag flag ) +void Sapphire::Entity::Player::setStateFlag( Common::PlayerStateFlag flag ) { auto prevOnlineStatus = getOnlineStatus(); int32_t iFlag = static_cast< uint32_t >( flag ); @@ -969,7 +969,7 @@ void Core::Entity::Player::setStateFlag( Common::PlayerStateFlag flag ) } -void Core::Entity::Player::setStateFlags( std::vector< Common::PlayerStateFlag > flags ) +void Sapphire::Entity::Player::setStateFlags( std::vector< Common::PlayerStateFlag > flags ) { for( const auto& flag : flags ) { @@ -977,12 +977,12 @@ void Core::Entity::Player::setStateFlags( std::vector< Common::PlayerStateFlag > } } -void Core::Entity::Player::sendStateFlags() +void Sapphire::Entity::Player::sendStateFlags() { queuePacket( std::make_shared< PlayerStateFlagsPacket >( *getAsPlayer() ) ); } -void Core::Entity::Player::unsetStateFlag( Common::PlayerStateFlag flag ) +void Sapphire::Entity::Player::unsetStateFlag( Common::PlayerStateFlag flag ) { if( !hasStateFlag( flag ) ) return; @@ -1005,7 +1005,7 @@ void Core::Entity::Player::unsetStateFlag( Common::PlayerStateFlag flag ) true ); } -void Core::Entity::Player::update( int64_t currTime ) +void Sapphire::Entity::Player::update( int64_t currTime ) { // a zoning is pending, lets do it @@ -1088,13 +1088,13 @@ void Core::Entity::Player::update( int64_t currTime ) } } -void Core::Entity::Player::onMobKill( uint16_t nameId ) +void Sapphire::Entity::Player::onMobKill( uint16_t nameId ) { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); pScriptMgr->onMobKill( *getAsPlayer(), nameId ); } -void Core::Entity::Player::freePlayerSpawnId( uint32_t actorId ) +void Sapphire::Entity::Player::freePlayerSpawnId( uint32_t actorId ) { auto spawnId = m_actorSpawnIndexAllocator.freeUsedSpawnIndex( actorId ); @@ -1105,13 +1105,13 @@ void Core::Entity::Player::freePlayerSpawnId( uint32_t actorId ) } -uint8_t* Core::Entity::Player::getAetheryteArray() +uint8_t* Sapphire::Entity::Player::getAetheryteArray() { return m_aetheryte; } /*! set homepoint */ -void Core::Entity::Player::setHomepoint( uint8_t aetheryteId ) +void Sapphire::Entity::Player::setHomepoint( uint8_t aetheryteId ) { m_homePoint = aetheryteId; @@ -1119,77 +1119,77 @@ void Core::Entity::Player::setHomepoint( uint8_t aetheryteId ) } /*! get homepoint */ -uint8_t Core::Entity::Player::getHomepoint() const +uint8_t Sapphire::Entity::Player::getHomepoint() const { return m_homePoint; } -uint16_t* Core::Entity::Player::getClassArray() +uint16_t* Sapphire::Entity::Player::getClassArray() { return m_classArray; } -const uint16_t* Core::Entity::Player::getClassArray() const +const uint16_t* Sapphire::Entity::Player::getClassArray() const { return m_classArray; } -uint32_t* Core::Entity::Player::getExpArray() +uint32_t* Sapphire::Entity::Player::getExpArray() { return m_expArray; } -const uint32_t* Core::Entity::Player::getExpArray() const +const uint32_t* Sapphire::Entity::Player::getExpArray() const { return m_expArray; } -uint8_t* Core::Entity::Player::getHowToArray() +uint8_t* Sapphire::Entity::Player::getHowToArray() { return m_howTo; } -const uint8_t* Core::Entity::Player::getHowToArray() const +const uint8_t* Sapphire::Entity::Player::getHowToArray() const { return m_howTo; } -const uint8_t* Core::Entity::Player::getUnlockBitmask() const +const uint8_t* Sapphire::Entity::Player::getUnlockBitmask() const { return m_unlocks; } -const uint8_t* Core::Entity::Player::getOrchestrionBitmask() const +const uint8_t* Sapphire::Entity::Player::getOrchestrionBitmask() const { return m_orchestrion; } -const uint8_t* Core::Entity::Player::getMountGuideBitmask() const +const uint8_t* Sapphire::Entity::Player::getMountGuideBitmask() const { return m_mountGuide; } -uint64_t Core::Entity::Player::getContentId() const +uint64_t Sapphire::Entity::Player::getContentId() const { return m_contentId; } -uint8_t Core::Entity::Player::getVoiceId() const +uint8_t Sapphire::Entity::Player::getVoiceId() const { return m_voice; } -uint8_t Core::Entity::Player::getGc() const +uint8_t Sapphire::Entity::Player::getGc() const { return m_gc; } -const uint8_t* Core::Entity::Player::getGcRankArray() const +const uint8_t* Sapphire::Entity::Player::getGcRankArray() const { return m_gcRank; } -void Core::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPacket ) +void Sapphire::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPacket ) { auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( m_id ); @@ -1204,7 +1204,7 @@ void Core::Entity::Player::queuePacket( Network::Packets::FFXIVPacketBasePtr pPa } -void Core::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pPacket ) +void Sapphire::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pPacket ) { auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( m_id ); @@ -1218,17 +1218,17 @@ void Core::Entity::Player::queueChatPacket( Network::Packets::FFXIVPacketBasePtr pChatCon->queueOutPacket( pPacket ); } -bool Core::Entity::Player::isLoadingComplete() const +bool Sapphire::Entity::Player::isLoadingComplete() const { return m_bLoadingComplete; } -void Core::Entity::Player::setLoadingComplete( bool bComplete ) +void Sapphire::Entity::Player::setLoadingComplete( bool bComplete ) { m_bLoadingComplete = bComplete; } -void Core::Entity::Player::performZoning( uint16_t zoneId, const Common::FFXIVARR_POSITION3& pos, float rotation ) +void Sapphire::Entity::Player::performZoning( uint16_t zoneId, const Common::FFXIVARR_POSITION3& pos, float rotation ) { m_pos = pos; m_zoneId = zoneId; @@ -1237,22 +1237,22 @@ void Core::Entity::Player::performZoning( uint16_t zoneId, const Common::FFXIVAR setZone( zoneId ); } -bool Core::Entity::Player::isMarkedForZoning() const +bool Sapphire::Entity::Player::isMarkedForZoning() const { return m_bMarkedForZoning; } -ZoneingType Core::Entity::Player::getZoningType() const +ZoneingType Sapphire::Entity::Player::getZoningType() const { return m_zoningType; } -void Core::Entity::Player::setZoningType( Common::ZoneingType zoneingType ) +void Sapphire::Entity::Player::setZoningType( Common::ZoneingType zoneingType ) { m_zoningType = zoneingType; } -void Core::Entity::Player::setSearchInfo( uint8_t selectRegion, uint8_t selectClass, const char* searchMessage ) +void Sapphire::Entity::Player::setSearchInfo( uint8_t selectRegion, uint8_t selectClass, const char* searchMessage ) { m_searchSelectRegion = selectRegion; m_searchSelectClass = selectClass; @@ -1260,43 +1260,43 @@ void Core::Entity::Player::setSearchInfo( uint8_t selectRegion, uint8_t selectCl strcpy( &m_searchMessage[ 0 ], searchMessage ); } -const char* Core::Entity::Player::getSearchMessage() const +const char* Sapphire::Entity::Player::getSearchMessage() const { return &m_searchMessage[ 0 ]; } -uint8_t Core::Entity::Player::getSearchSelectRegion() const +uint8_t Sapphire::Entity::Player::getSearchSelectRegion() const { return m_searchSelectRegion; } -uint8_t Core::Entity::Player::getSearchSelectClass() const +uint8_t Sapphire::Entity::Player::getSearchSelectClass() const { return m_searchSelectClass; } -void Core::Entity::Player::sendNotice( const std::string& message ) //Purple Text +void Sapphire::Entity::Player::sendNotice( const std::string& message ) //Purple Text { queuePacket( std::make_shared< ServerNoticePacket >( getId(), message ) ); } -void Core::Entity::Player::sendUrgent( const std::string& message ) //Red Text +void Sapphire::Entity::Player::sendUrgent( const std::string& message ) //Red Text { queuePacket( std::make_shared< ChatPacket >( *getAsPlayer(), ChatType::ServerUrgent, message ) ); } -void Core::Entity::Player::sendDebug( const std::string& message ) //Grey Text +void Sapphire::Entity::Player::sendDebug( const std::string& message ) //Grey Text { queuePacket( std::make_shared< ChatPacket >( *getAsPlayer(), ChatType::ServerDebug, message ) ); } -void Core::Entity::Player::sendLogMessage( uint32_t messageId, uint32_t param2, uint32_t param3, +void Sapphire::Entity::Player::sendLogMessage( uint32_t messageId, uint32_t param2, uint32_t param3, uint32_t param4, uint32_t param5, uint32_t param6 ) { queuePacket( makeActorControl144( getId(), ActorControlType::LogMsg, messageId, param2, param3, param4, param5, param6 ) ); } -void Core::Entity::Player::updateHowtosSeen( uint32_t howToId ) +void Sapphire::Entity::Player::updateHowtosSeen( uint32_t howToId ) { uint8_t index = howToId / 8; uint8_t bitIndex = howToId % 8; @@ -1306,14 +1306,14 @@ void Core::Entity::Player::updateHowtosSeen( uint32_t howToId ) m_howTo[ index ] |= value; } -void Core::Entity::Player::initHateSlotQueue() +void Sapphire::Entity::Player::initHateSlotQueue() { m_freeHateSlotQueue = std::queue< uint8_t >(); for( int32_t i = 1; i < 26; i++ ) m_freeHateSlotQueue.push( i ); } -void Core::Entity::Player::sendHateList() +void Sapphire::Entity::Player::sendHateList() { auto hateListPacket = makeZonePacket< FFXIVIpcHateList >( getId() ); hateListPacket->data().numEntries = m_actorIdTohateSlotMap.size(); @@ -1326,32 +1326,32 @@ void Core::Entity::Player::sendHateList() queuePacket( hateListPacket ); } -bool Core::Entity::Player::isLogin() const +bool Sapphire::Entity::Player::isLogin() const { return m_bIsLogin; } -void Core::Entity::Player::setIsLogin( bool bIsLogin ) +void Sapphire::Entity::Player::setIsLogin( bool bIsLogin ) { m_bIsLogin = bIsLogin; } -uint8_t* Core::Entity::Player::getTitleList() +uint8_t* Sapphire::Entity::Player::getTitleList() { return m_titleList; } -const uint8_t* Core::Entity::Player::getTitleList() const +const uint8_t* Sapphire::Entity::Player::getTitleList() const { return m_titleList; } -uint16_t Core::Entity::Player::getTitle() const +uint16_t Sapphire::Entity::Player::getTitle() const { return m_activeTitle; } -void Core::Entity::Player::addTitle( uint16_t titleId ) +void Sapphire::Entity::Player::addTitle( uint16_t titleId ) { uint16_t index; uint8_t value; @@ -1360,7 +1360,7 @@ void Core::Entity::Player::addTitle( uint16_t titleId ) m_titleList[ index ] |= value; } -void Core::Entity::Player::setTitle( uint16_t titleId ) +void Sapphire::Entity::Player::setTitle( uint16_t titleId ) { uint16_t index; uint8_t value; @@ -1374,7 +1374,7 @@ void Core::Entity::Player::setTitle( uint16_t titleId ) sendToInRangeSet( makeActorControl142( getId(), SetTitle, titleId ), true ); } -void Core::Entity::Player::setEquipDisplayFlags( uint8_t state ) +void Sapphire::Entity::Player::setEquipDisplayFlags( uint8_t state ) { m_equipDisplayFlags = state; auto paramPacket = makeZonePacket< FFXIVIpcEquipDisplayFlags >( getId() ); @@ -1382,12 +1382,12 @@ void Core::Entity::Player::setEquipDisplayFlags( uint8_t state ) sendToInRangeSet( paramPacket, true ); } -uint8_t Core::Entity::Player::getEquipDisplayFlags() const +uint8_t Sapphire::Entity::Player::getEquipDisplayFlags() const { return m_equipDisplayFlags; } -void Core::Entity::Player::mount( uint32_t id ) +void Sapphire::Entity::Player::mount( uint32_t id ) { m_mount = id; sendToInRangeSet( makeActorControl142( getId(), ActorControlType::SetStatus, @@ -1399,7 +1399,7 @@ void Core::Entity::Player::mount( uint32_t id ) sendToInRangeSet( mountPacket, true ); } -void Core::Entity::Player::dismount() +void Sapphire::Entity::Player::dismount() { sendToInRangeSet( makeActorControl142( getId(), ActorControlType::SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) ), true ); @@ -1407,22 +1407,22 @@ void Core::Entity::Player::dismount() m_mount = 0; } -uint8_t Core::Entity::Player::getCurrentMount() const +uint8_t Sapphire::Entity::Player::getCurrentMount() const { return m_mount; } -void Core::Entity::Player::setPersistentEmote( uint32_t emoteId ) +void Sapphire::Entity::Player::setPersistentEmote( uint32_t emoteId ) { m_emoteMode = emoteId; } -uint32_t Core::Entity::Player::getPersistentEmote() const +uint32_t Sapphire::Entity::Player::getPersistentEmote() const { return m_emoteMode; } -void Core::Entity::Player::autoAttack( CharaPtr pTarget ) +void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget ) { auto mainWeap = getItemAt( Common::GearSet0, Common::GearSetSlot::MainHand ); @@ -1472,19 +1472,19 @@ void Core::Entity::Player::autoAttack( CharaPtr pTarget ) ///////////////////////////// // Content Finder ///////////////////////////// -uint32_t Core::Entity::Player::getCFPenaltyTimestamp() const +uint32_t Sapphire::Entity::Player::getCFPenaltyTimestamp() const { return m_cfPenaltyUntil; } -void Core::Entity::Player::setCFPenaltyTimestamp( uint32_t timestamp ) +void Sapphire::Entity::Player::setCFPenaltyTimestamp( uint32_t timestamp ) { m_cfPenaltyUntil = timestamp; } -uint32_t Core::Entity::Player::getCFPenaltyMinutes() const +uint32_t Sapphire::Entity::Player::getCFPenaltyMinutes() const { - auto currentTimestamp = Core::Util::getTimeSeconds(); + auto currentTimestamp = Sapphire::Util::getTimeSeconds(); auto endTimestamp = getCFPenaltyTimestamp(); // check if penalty timestamp already passed current time @@ -1495,29 +1495,29 @@ uint32_t Core::Entity::Player::getCFPenaltyMinutes() const return static_cast< uint32_t > ( std::ceil( static_cast< float > (deltaTime) / 60 ) ); } -void Core::Entity::Player::setCFPenaltyMinutes( uint32_t minutes ) +void Sapphire::Entity::Player::setCFPenaltyMinutes( uint32_t minutes ) { - auto currentTimestamp = Core::Util::getTimeSeconds(); + auto currentTimestamp = Sapphire::Util::getTimeSeconds(); setCFPenaltyTimestamp( static_cast< uint32_t >( currentTimestamp + minutes * 60 ) ); } -uint8_t Core::Entity::Player::getOpeningSequence() const +uint8_t Sapphire::Entity::Player::getOpeningSequence() const { return m_openingSequence; } -void Core::Entity::Player::setOpeningSequence( uint8_t seq ) +void Sapphire::Entity::Player::setOpeningSequence( uint8_t seq ) { m_openingSequence = seq; } -uint16_t Core::Entity::Player::getItemLevel() const +uint16_t Sapphire::Entity::Player::getItemLevel() const { return m_itemLevel; } /// Tells client to offset their eorzean time by given timestamp. -void Core::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp ) +void Sapphire::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp ) { // TODO: maybe change to persistent? auto packet = makeZonePacket< FFXIVIpcEorzeaTimeOffset >( getId() ); @@ -1527,22 +1527,22 @@ void Core::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp ) queuePacket( packet ); } -void Core::Entity::Player::setTerritoryTypeId( uint32_t territoryTypeId ) +void Sapphire::Entity::Player::setTerritoryTypeId( uint32_t territoryTypeId ) { m_zoneId = territoryTypeId; } -uint32_t Core::Entity::Player::getTerritoryTypeId() const +uint32_t Sapphire::Entity::Player::getTerritoryTypeId() const { return m_zoneId; } -void Core::Entity::Player::sendZonePackets() +void Sapphire::Entity::Player::sendZonePackets() { if( isLogin() ) { //Update player map in servermgr - in case player name has been changed - auto pServerMgr = g_fw.get< Core::ServerMgr >(); + auto pServerMgr = g_fw.get< Sapphire::ServerMgr >(); pServerMgr->updatePlayerName( getId(), getName() ); } @@ -1591,7 +1591,7 @@ void Core::Entity::Player::sendZonePackets() } auto pHousingMgr = g_fw.get< HousingMgr >(); - if( Core::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) + if( Sapphire::LandPtr pLand = pHousingMgr->getLandByOwnerId( getId() ) ) { uint32_t state = 0; @@ -1637,17 +1637,17 @@ void Core::Entity::Player::sendZonePackets() m_bMarkedForZoning = false; } -void Core::Entity::Player::setDirectorInitialized( bool isInitialized ) +void Sapphire::Entity::Player::setDirectorInitialized( bool isInitialized ) { m_directorInitialized = isInitialized; } -bool Core::Entity::Player::isDirectorInitialized() const +bool Sapphire::Entity::Player::isDirectorInitialized() const { return m_directorInitialized; } -void Core::Entity::Player::sendTitleList() +void Sapphire::Entity::Player::sendTitleList() { auto titleListPacket = makeZonePacket< FFXIVIpcPlayerTitleList >( getId() ); memcpy( titleListPacket->data().titleList, getTitleList(), sizeof( titleListPacket->data().titleList ) ); @@ -1656,7 +1656,7 @@ void Core::Entity::Player::sendTitleList() } void -Core::Entity::Player::sendZoneInPackets( uint32_t param1, uint32_t param2 = 0, uint32_t param3 = 0, uint32_t param4 = 0, +Sapphire::Entity::Player::sendZoneInPackets( uint32_t param1, uint32_t param2 = 0, uint32_t param3 = 0, uint32_t param4 = 0, bool shouldSetStatus = false ) { auto zoneInPacket = makeActorControl143( getId(), ZoneIn, param1, param2, param3, param4 ); @@ -1675,7 +1675,7 @@ Core::Entity::Player::sendZoneInPackets( uint32_t param1, uint32_t param2 = 0, u unsetStateFlag( PlayerStateFlag::BetweenAreas ); } -void Core::Entity::Player::finishZoning() +void Sapphire::Entity::Player::finishZoning() { switch( getZoningType() ) { @@ -1707,27 +1707,27 @@ void Core::Entity::Player::finishZoning() } } -void Core::Entity::Player::emote( uint32_t emoteId, uint64_t targetId, bool isSilent ) +void Sapphire::Entity::Player::emote( uint32_t emoteId, uint64_t targetId, bool isSilent ) { sendToInRangeSet( makeActorControl144( getId(), ActorControlType::Emote, emoteId, 0, isSilent ? 1 : 0, 0, targetId ) ); } -void Core::Entity::Player::emoteInterrupt() +void Sapphire::Entity::Player::emoteInterrupt() { sendToInRangeSet( makeActorControl142( getId(), ActorControlType::EmoteInterrupt ) ); } -void Core::Entity::Player::teleportQuery( uint16_t aetheryteId ) +void Sapphire::Entity::Player::teleportQuery( uint16_t aetheryteId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); // TODO: only register this action if enough gil is in possession - auto targetAetheryte = pExdData->get< Core::Data::Aetheryte >( aetheryteId ); + auto targetAetheryte = pExdData->get< Sapphire::Data::Aetheryte >( aetheryteId ); if( targetAetheryte ) { - auto fromAetheryte = pExdData->get< Core::Data::Aetheryte >( - pExdData->get< Core::Data::TerritoryType >( getZoneId() )->aetheryte ); + auto fromAetheryte = pExdData->get< Sapphire::Data::Aetheryte >( + pExdData->get< Sapphire::Data::TerritoryType >( getZoneId() )->aetheryte ); // calculate cost - does not apply for favorite points or homepoints neither checks for aether tickets auto cost = static_cast< uint16_t > ( @@ -1750,17 +1750,17 @@ void Core::Entity::Player::teleportQuery( uint16_t aetheryteId ) } } -uint8_t Core::Entity::Player::getNextObjSpawnIndexForActorId( uint32_t actorId ) +uint8_t Sapphire::Entity::Player::getNextObjSpawnIndexForActorId( uint32_t actorId ) { return m_objSpawnIndexAllocator.getNextFreeSpawnIndex( actorId ); } -void Core::Entity::Player::resetObjSpawnIndex() +void Sapphire::Entity::Player::resetObjSpawnIndex() { m_objSpawnIndexAllocator.freeAllSpawnIndexes(); } -void Core::Entity::Player::freeObjSpawnIndexForActorId( uint32_t actorId ) +void Sapphire::Entity::Player::freeObjSpawnIndexForActorId( uint32_t actorId ) { auto spawnId = m_objSpawnIndexAllocator.freeUsedSpawnIndex( actorId ); @@ -1769,22 +1769,22 @@ void Core::Entity::Player::freeObjSpawnIndexForActorId( uint32_t actorId ) queuePacket( freeObjectSpawnPacket ); } -bool Core::Entity::Player::isObjSpawnIndexValid( uint8_t index ) +bool Sapphire::Entity::Player::isObjSpawnIndexValid( uint8_t index ) { return m_objSpawnIndexAllocator.isSpawnIndexValid( index ); } -void Core::Entity::Player::setOnEnterEventDone( bool isDone ) +void Sapphire::Entity::Player::setOnEnterEventDone( bool isDone ) { m_onEnterEventDone = isDone; } -bool Core::Entity::Player::isOnEnterEventDone() const +bool Sapphire::Entity::Player::isOnEnterEventDone() const { return m_onEnterEventDone; } -void Core::Entity::Player::setLandFlags( uint8_t flagSlot, uint32_t landFlags, +void Sapphire::Entity::Player::setLandFlags( uint8_t flagSlot, uint32_t landFlags, int16_t landId, int16_t wardNum, int16_t zoneId ) { m_landFlags[ flagSlot ].landIdent.landId = landId; @@ -1795,7 +1795,7 @@ void Core::Entity::Player::setLandFlags( uint8_t flagSlot, uint32_t landFlags, m_landFlags[ flagSlot ].unkown1 = 0; } -void Core::Entity::Player::sendLandFlags() +void Sapphire::Entity::Player::sendLandFlags() { auto landFlags = makeZonePacket< FFXIVIpcHousingLandFlags >( getId() ); @@ -1808,7 +1808,7 @@ void Core::Entity::Player::sendLandFlags() queuePacket( landFlags ); } -void Core::Entity::Player::sendLandFlagsSlot( Common::LandFlagsSlot slot ) +void Sapphire::Entity::Player::sendLandFlagsSlot( Common::LandFlagsSlot slot ) { auto landFlags = makeZonePacket< FFXIVIpcHousingUpdateLandFlagsSlot >( getId() ); diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index 9633a618..a80cdc6f 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -11,7 +11,7 @@ #include #include -namespace Core::Entity +namespace Sapphire::Entity { struct QueuedZoning @@ -361,7 +361,7 @@ namespace Core::Entity /*! return the current amount of crystals of type */ uint32_t getCrystal( uint8_t type ) const; - void updateModels( Common::GearSetSlot equipSlotId, const Core::ItemPtr& pItem, bool updateClass ); + void updateModels( Common::GearSetSlot equipSlotId, const Sapphire::ItemPtr& pItem, bool updateClass ); Common::GearModelSlot equipSlotToModelSlot( Common::GearSetSlot slot ); @@ -778,7 +778,7 @@ namespace Core::Entity bool actionHasCastTime( uint32_t actionId ); - Core::Entity::ActorPtr lookupTargetById( uint64_t targetId ); + Sapphire::Entity::ActorPtr lookupTargetById( uint64_t targetId ); bool isLogin() const; @@ -870,7 +870,7 @@ namespace Core::Entity InvSlotPair getFreeBagSlot(); - Core::ItemPtr addItem( uint32_t catalogId, uint32_t quantity = 1, bool isHq = false, bool slient = false ); + Sapphire::ItemPtr addItem( uint32_t catalogId, uint32_t quantity = 1, bool isHq = false, bool slient = false ); void moveItem( uint16_t fromInventoryId, uint8_t fromSlotId, uint16_t toInventoryId, uint8_t toSlot ); @@ -940,7 +940,7 @@ namespace Core::Entity bool m_onEnterEventDone; private: - using InventoryMap = std::map< uint16_t, Core::ItemContainerPtr >; + using InventoryMap = std::map< uint16_t, Sapphire::ItemContainerPtr >; InventoryMap m_storageMap; diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 80d8210d..013b6824 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -19,23 +19,23 @@ #include "ServerMgr.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -void Core::Entity::Player::addEvent( Event::EventHandlerPtr pEvent ) +void Sapphire::Entity::Player::addEvent( Event::EventHandlerPtr pEvent ) { m_eventHandlerMap[ pEvent->getId() ] = pEvent; } -std::map< uint32_t, Core::Event::EventHandlerPtr >& Core::Entity::Player::eventList() +std::map< uint32_t, Sapphire::Event::EventHandlerPtr >& Sapphire::Entity::Player::eventList() { return m_eventHandlerMap; } -Core::Event::EventHandlerPtr Core::Entity::Player::getEvent( uint32_t eventId ) +Sapphire::Event::EventHandlerPtr Sapphire::Entity::Player::getEvent( uint32_t eventId ) { auto it = m_eventHandlerMap.find( eventId ); if( it != m_eventHandlerMap.end() ) @@ -44,12 +44,12 @@ Core::Event::EventHandlerPtr Core::Entity::Player::getEvent( uint32_t eventId ) return Event::EventHandlerPtr( nullptr ); } -size_t Core::Entity::Player::getEventCount() +size_t Sapphire::Entity::Player::getEventCount() { return m_eventHandlerMap.size(); } -void Core::Entity::Player::removeEvent( uint32_t eventId ) +void Sapphire::Entity::Player::removeEvent( uint32_t eventId ) { auto it = m_eventHandlerMap.find( eventId ); if( it != m_eventHandlerMap.end() ) @@ -59,7 +59,7 @@ void Core::Entity::Player::removeEvent( uint32_t eventId ) } } -void Core::Entity::Player::checkEvent( uint32_t eventId ) +void Sapphire::Entity::Player::checkEvent( uint32_t eventId ) { auto pEvent = getEvent( eventId ); @@ -68,7 +68,7 @@ void Core::Entity::Player::checkEvent( uint32_t eventId ) } -void Core::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam3, +void Sapphire::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam3, uint32_t eventParam4, uint32_t eventParam5 ) { if( flags & 0x02 ) @@ -90,7 +90,7 @@ void Core::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t scene, queuePacket( eventPlay ); } -void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId, +void Sapphire::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId, Event::EventHandler::EventType eventType, uint8_t eventParam1, uint32_t eventParam2, Event::EventHandler::EventFinishCallback callback ) { @@ -110,32 +110,32 @@ void Core::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId, } -void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, +void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3 ) { playScene( eventId, scene, flags, eventParam2, eventParam3, nullptr ); } -void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, +void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, uint32_t flags, Event::EventHandler::SceneReturnCallback eventCallback ) { playScene( eventId, scene, flags, 0, 0, eventCallback ); } -void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, uint32_t flags ) +void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, uint32_t flags ) { playScene( eventId, scene, flags, 0, 0, nullptr ); } -void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, +void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3, Event::EventHandler::SceneReturnCallback eventCallback ) { playScene( eventId, scene, flags, eventParam2, eventParam3, 0, eventCallback ); } -void Core::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, +void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, Event::EventHandler::SceneReturnCallback eventCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); @@ -156,7 +156,7 @@ void Core::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, queuePacket( openGilShopPacket ); } -Core::Event::EventHandlerPtr Core::Entity::Player::bootstrapSceneEvent( uint32_t eventId, uint32_t flags ) +Sapphire::Event::EventHandlerPtr Sapphire::Entity::Player::bootstrapSceneEvent( uint32_t eventId, uint32_t flags ) { auto pEvent = getEvent( eventId ); @@ -173,7 +173,7 @@ Core::Event::EventHandlerPtr Core::Entity::Player::bootstrapSceneEvent( uint32_t return pEvent; } -void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, +void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3, uint32_t eventParam4, Event::EventHandler::SceneReturnCallback eventCallback ) @@ -201,9 +201,9 @@ void Core::Entity::Player::playScene( uint32_t eventId, uint32_t scene, queuePacket( eventPlay ); } -void Core::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, +void Sapphire::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3, uint32_t eventParam4, - Core::Event::EventHandler::SceneChainCallback sceneChainCallback ) + Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); if( !pEvent ) @@ -218,20 +218,20 @@ void Core::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uin queuePacket( eventPlay ); } -void Core::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, +void Sapphire::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam2, uint32_t eventParam3, - Core::Event::EventHandler::SceneChainCallback sceneChainCallback ) + Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) { playSceneChain( eventId, scene, flags, eventParam2, eventParam3, 0, sceneChainCallback ); } -void Core::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, - Core::Event::EventHandler::SceneChainCallback sceneChainCallback ) +void Sapphire::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, + Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) { playSceneChain( eventId, scene, flags, 0, 0, 0, sceneChainCallback ); } -void Core::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlayer ) +void Sapphire::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlayer ) { auto pEvent = getEvent( eventId ); @@ -280,7 +280,7 @@ void Core::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlayer ) unsetStateFlag( PlayerStateFlag::InNpcEvent ); } -void Core::Entity::Player::eventActionStart( uint32_t eventId, +void Sapphire::Entity::Player::eventActionStart( uint32_t eventId, uint32_t action, ActionCallback finishCallback, ActionCallback interruptCallback, @@ -311,7 +311,7 @@ void Core::Entity::Player::eventActionStart( uint32_t eventId, } -void Core::Entity::Player::eventItemActionStart( uint32_t eventId, +void Sapphire::Entity::Player::eventItemActionStart( uint32_t eventId, uint32_t action, ActionCallback finishCallback, ActionCallback interruptCallback, @@ -327,7 +327,7 @@ void Core::Entity::Player::eventItemActionStart( uint32_t eventId, ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -void Core::Entity::Player::onLogin() +void Sapphire::Entity::Player::onLogin() { auto pConfig = g_fw.get< ConfigMgr >(); auto motd = pConfig->getValue< std::string >( "General", "MotD", "" ); @@ -340,23 +340,23 @@ void Core::Entity::Player::onLogin() } } -void Core::Entity::Player::onZoneStart() +void Sapphire::Entity::Player::onZoneStart() { } -void Core::Entity::Player::onZoneDone() +void Sapphire::Entity::Player::onZoneDone() { } -void Core::Entity::Player::onDeath() +void Sapphire::Entity::Player::onDeath() { } // TODO: slightly ugly here and way too static. Needs too be done properly -void Core::Entity::Player::onTick() +void Sapphire::Entity::Player::onTick() { bool sendUpdate = false; diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 11fa3f08..2c37e108 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -31,15 +31,15 @@ #include "Framework.h" #include -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -void Core::Entity::Player::initInventory() +void Sapphire::Entity::Player::initInventory() { auto setupContainer = [ this ]( InventoryType type, uint8_t maxSize, const std::string& tableName, bool isMultiStorage, bool isPersistentStorage = true ) @@ -107,20 +107,20 @@ void Core::Entity::Player::initInventory() } -void Core::Entity::Player::sendItemLevel() +void Sapphire::Entity::Player::sendItemLevel() { queuePacket( makeActorControl142( getId(), SetItemLevel, getItemLevel(), 0 ) ); } -void Core::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) +void Sapphire::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) { - auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); + auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >(); if( !exdData ) return; - auto itemInfo = exdData->get< Core::Data::Item >( pItem->getId() ); + auto itemInfo = exdData->get< Sapphire::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; - auto classJobInfo = exdData->get< Core::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); + auto classJobInfo = exdData->get< Sapphire::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); auto currentParentClass = static_cast< ClassJob >( classJobInfo->classJobParent ); auto newClassJob = static_cast< ClassJob >( itemClassJob ); @@ -133,13 +133,13 @@ void Core::Entity::Player::equipWeapon( ItemPtr pItem, bool updateClass ) } } -void Core::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob ) +void Sapphire::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob ) { - auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); + auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >(); if ( !exdData ) return; - auto itemInfo = exdData->get< Core::Data::Item >( pItem->getId() ); + auto itemInfo = exdData->get< Sapphire::Data::Item >( pItem->getId() ); auto itemClassJob = itemInfo->classJobUse; auto newClassJob = static_cast< ClassJob >( itemClassJob ); @@ -148,7 +148,7 @@ void Core::Entity::Player::equipSoulCrystal( ItemPtr pItem, bool updateJob ) } // equip an item -void Core::Entity::Player::equipItem( Common::GearSetSlot equipSlotId, ItemPtr pItem, bool sendUpdate ) +void Sapphire::Entity::Player::equipItem( Common::GearSetSlot equipSlotId, ItemPtr pItem, bool sendUpdate ) { //g_framework.getLogger().debug( "Equipping into slot " + std::to_string( equipSlotId ) ); @@ -163,7 +163,7 @@ void Core::Entity::Player::equipItem( Common::GearSetSlot equipSlotId, ItemPtr p updateModels( equipSlotId, pItem, false ); } -void Core::Entity::Player::updateModels( GearSetSlot equipSlotId, const Core::ItemPtr& pItem, bool updateClass ) +void Sapphire::Entity::Player::updateModels( GearSetSlot equipSlotId, const Sapphire::ItemPtr& pItem, bool updateClass ) { uint64_t model = pItem->getModelId1(); uint64_t model2 = pItem->getModelId2(); @@ -197,7 +197,7 @@ void Core::Entity::Player::updateModels( GearSetSlot equipSlotId, const Core::It } } -Core::Common::GearModelSlot Core::Entity::Player::equipSlotToModelSlot( Common::GearSetSlot slot ) +Sapphire::Common::GearModelSlot Sapphire::Entity::Player::equipSlotToModelSlot( Common::GearSetSlot slot ) { switch( slot ) { @@ -230,7 +230,7 @@ Core::Common::GearModelSlot Core::Entity::Player::equipSlotToModelSlot( Common:: } } -void Core::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, ItemPtr pItem ) +void Sapphire::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, ItemPtr pItem ) { auto modelSlot = equipSlotToModelSlot( equipSlotId ); if( modelSlot != GearModelSlot::ModelInvalid ) @@ -244,19 +244,19 @@ void Core::Entity::Player::unequipItem( Common::GearSetSlot equipSlotId, ItemPtr unequipSoulCrystal( pItem ); } -void Core::Entity::Player::unequipSoulCrystal( ItemPtr pItem ) +void Sapphire::Entity::Player::unequipSoulCrystal( ItemPtr pItem ) { - auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); + auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >(); if ( !exdData ) return; - auto currentClassJob = exdData->get< Core::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); + auto currentClassJob = exdData->get< Sapphire::Data::ClassJob >( static_cast< uint32_t >( getClass() ) ); auto parentClass = static_cast< ClassJob >( currentClassJob->classJobParent ); setClassJob( parentClass ); } // TODO: these next functions are so similar that they could likely be simplified -void Core::Entity::Player::addCurrency( CurrencyType type, uint32_t amount ) +void Sapphire::Entity::Player::addCurrency( CurrencyType type, uint32_t amount ) { auto slot = static_cast< uint8_t >( static_cast< uint8_t >( type ) - 1 ); auto currItem = m_storageMap[ Currency ]->getItem( slot ); @@ -281,7 +281,7 @@ void Core::Entity::Player::addCurrency( CurrencyType type, uint32_t amount ) queuePacket( invUpdate ); } -void Core::Entity::Player::removeCurrency( Common::CurrencyType type, uint32_t amount ) +void Sapphire::Entity::Player::removeCurrency( Common::CurrencyType type, uint32_t amount ) { auto currItem = m_storageMap[ Currency ]->getItem( static_cast< uint8_t >( type ) - 1 ); @@ -304,7 +304,7 @@ void Core::Entity::Player::removeCurrency( Common::CurrencyType type, uint32_t a } -void Core::Entity::Player::addCrystal( Common::CrystalType type, uint32_t amount ) +void Sapphire::Entity::Player::addCrystal( Common::CrystalType type, uint32_t amount ) { auto currItem = m_storageMap[ Crystal ]->getItem( static_cast< uint8_t >( type ) - 1 ); @@ -332,7 +332,7 @@ void Core::Entity::Player::addCrystal( Common::CrystalType type, uint32_t amount queuePacket( makeActorControl143( getId(), ItemObtainIcon, static_cast< uint8_t >( type ) + 1, amount ) ); } -void Core::Entity::Player::removeCrystal( Common::CrystalType type, uint32_t amount ) +void Sapphire::Entity::Player::removeCrystal( Common::CrystalType type, uint32_t amount ) { auto currItem = m_storageMap[ Crystal ]->getItem( static_cast< uint8_t >( type ) - 1 ); @@ -354,7 +354,7 @@ void Core::Entity::Player::removeCrystal( Common::CrystalType type, uint32_t amo queuePacket( invUpdate ); } -void Core::Entity::Player::sendInventory() +void Sapphire::Entity::Player::sendInventory() { InventoryMap::iterator it; @@ -408,7 +408,7 @@ void Core::Entity::Player::sendInventory() } -Core::Entity::Player::InvSlotPairVec Core::Entity::Player::getSlotsOfItemsInInventory( uint32_t catalogId ) +Sapphire::Entity::Player::InvSlotPairVec Sapphire::Entity::Player::getSlotsOfItemsInInventory( uint32_t catalogId ) { InvSlotPairVec outVec; for( auto i : { Bag0, Bag1, Bag2, Bag3 } ) @@ -423,7 +423,7 @@ Core::Entity::Player::InvSlotPairVec Core::Entity::Player::getSlotsOfItemsInInve return outVec; } -Core::Entity::Player::InvSlotPair Core::Entity::Player::getFreeBagSlot() +Sapphire::Entity::Player::InvSlotPair Sapphire::Entity::Player::getFreeBagSlot() { for( auto i : { Bag0, Bag1, Bag2, Bag3 } ) { @@ -436,13 +436,13 @@ Core::Entity::Player::InvSlotPair Core::Entity::Player::getFreeBagSlot() return std::make_pair( 0, -1 ); } -Core::ItemPtr Core::Entity::Player::getItemAt( uint16_t containerId, uint8_t slotId ) +Sapphire::ItemPtr Sapphire::Entity::Player::getItemAt( uint16_t containerId, uint8_t slotId ) { return m_storageMap[ containerId ]->getItem( slotId ); } -uint32_t Core::Entity::Player::getCurrency( CurrencyType type ) +uint32_t Sapphire::Entity::Player::getCurrency( CurrencyType type ) { auto currItem = m_storageMap[ Currency ]->getItem( static_cast< uint8_t >( type ) - 1 ); @@ -454,7 +454,7 @@ uint32_t Core::Entity::Player::getCurrency( CurrencyType type ) } -uint32_t Core::Entity::Player::getCrystal( CrystalType type ) +uint32_t Sapphire::Entity::Player::getCrystal( CrystalType type ) { auto currItem = m_storageMap[ Crystal ]->getItem( static_cast< uint8_t >( type ) - 1 ); @@ -466,7 +466,7 @@ uint32_t Core::Entity::Player::getCrystal( CrystalType type ) } -void Core::Entity::Player::writeInventory( InventoryType type ) +void Sapphire::Entity::Player::writeInventory( InventoryType type ) { auto pLog = g_fw.get< Logger >(); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -497,7 +497,7 @@ void Core::Entity::Player::writeInventory( InventoryType type ) pDb->execute( query ); } -void Core::Entity::Player::writeItem( Core::ItemPtr pItem ) const +void Sapphire::Entity::Player::writeItem( Sapphire::ItemPtr pItem ) const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_UP ); @@ -512,7 +512,7 @@ void Core::Entity::Player::writeItem( Core::ItemPtr pItem ) const pDb->directExecute( stmt ); } -void Core::Entity::Player::deleteItemDb( Core::ItemPtr item ) const +void Sapphire::Entity::Player::deleteItemDb( Sapphire::ItemPtr item ) const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmt = pDb->getPreparedStatement( Db::CHARA_ITEMGLOBAL_DELETE ); @@ -523,18 +523,18 @@ void Core::Entity::Player::deleteItemDb( Core::ItemPtr item ) const } -bool Core::Entity::Player::isObtainable( uint32_t catalogId, uint8_t quantity ) +bool Sapphire::Entity::Player::isObtainable( uint32_t catalogId, uint8_t quantity ) { return true; } -Core::ItemPtr Core::Entity::Player::addItem( uint32_t catalogId, uint32_t quantity, bool isHq, bool silent ) +Sapphire::ItemPtr Sapphire::Entity::Player::addItem( uint32_t catalogId, uint32_t quantity, bool isHq, bool silent ) { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto itemInfo = pExdData->get< Core::Data::Item >( catalogId ); + auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId ); // if item data doesn't exist or it's a blank field if( !itemInfo || itemInfo->levelItem == 0 ) @@ -638,7 +638,7 @@ Core::ItemPtr Core::Entity::Player::addItem( uint32_t catalogId, uint32_t quanti } void -Core::Entity::Player::moveItem( uint16_t fromInventoryId, uint8_t fromSlotId, uint16_t toInventoryId, uint8_t toSlot ) +Sapphire::Entity::Player::moveItem( uint16_t fromInventoryId, uint8_t fromSlotId, uint16_t toInventoryId, uint8_t toSlot ) { auto tmpItem = m_storageMap[ fromInventoryId ]->getItem( fromSlotId ); @@ -665,7 +665,7 @@ Core::Entity::Player::moveItem( uint16_t fromInventoryId, uint8_t fromSlotId, ui } -bool Core::Entity::Player::updateContainer( uint16_t storageId, uint8_t slotId, ItemPtr pItem ) +bool Sapphire::Entity::Player::updateContainer( uint16_t storageId, uint8_t slotId, ItemPtr pItem ) { auto containerType = Items::Util::getContainerType( storageId ); @@ -698,7 +698,7 @@ bool Core::Entity::Player::updateContainer( uint16_t storageId, uint8_t slotId, return true; } -void Core::Entity::Player::splitItem( uint16_t fromInventoryId, uint8_t fromSlotId, +void Sapphire::Entity::Player::splitItem( uint16_t fromInventoryId, uint8_t fromSlotId, uint16_t toInventoryId, uint8_t toSlot, uint16_t itemCount ) { if( itemCount == 0 ) @@ -731,7 +731,7 @@ void Core::Entity::Player::splitItem( uint16_t fromInventoryId, uint8_t fromSlot writeItem( fromItem ); } -void Core::Entity::Player::mergeItem( uint16_t fromInventoryId, uint8_t fromSlotId, +void Sapphire::Entity::Player::mergeItem( uint16_t fromInventoryId, uint8_t fromSlotId, uint16_t toInventoryId, uint8_t toSlot ) { auto fromItem = m_storageMap[ fromInventoryId ]->getItem( fromSlotId ); @@ -766,7 +766,7 @@ void Core::Entity::Player::mergeItem( uint16_t fromInventoryId, uint8_t fromSlot updateContainer( toInventoryId, toSlot, toItem ); } -void Core::Entity::Player::swapItem( uint16_t fromInventoryId, uint8_t fromSlotId, +void Sapphire::Entity::Player::swapItem( uint16_t fromInventoryId, uint8_t fromSlotId, uint16_t toInventoryId, uint8_t toSlot ) { auto fromItem = m_storageMap[ fromInventoryId ]->getItem( fromSlotId ); @@ -794,7 +794,7 @@ void Core::Entity::Player::swapItem( uint16_t fromInventoryId, uint8_t fromSlotI updateContainer( fromInventoryId, fromSlotId, toItem ); } -void Core::Entity::Player::discardItem( uint16_t fromInventoryId, uint8_t fromSlotId ) +void Sapphire::Entity::Player::discardItem( uint16_t fromInventoryId, uint8_t fromSlotId ) { // i am not entirely sure how this should be generated or if it even is important for us... uint32_t transactionId = 1; @@ -822,18 +822,18 @@ void Core::Entity::Player::discardItem( uint16_t fromInventoryId, uint8_t fromSl queuePacket( invTransFinPacket ); } -void Core::Entity::Player::setActiveLand( uint8_t land, uint8_t ward ) +void Sapphire::Entity::Player::setActiveLand( uint8_t land, uint8_t ward ) { m_activeLand.plot = land; m_activeLand.ward = ward; } -Core::Common::ActiveLand Core::Entity::Player::getActiveLand() const +Sapphire::Common::ActiveLand Sapphire::Entity::Player::getActiveLand() const { return m_activeLand; } -uint16_t Core::Entity::Player::calculateEquippedGearItemLevel() +uint16_t Sapphire::Entity::Player::calculateEquippedGearItemLevel() { uint32_t iLvlResult = 0; @@ -863,7 +863,7 @@ uint16_t Core::Entity::Player::calculateEquippedGearItemLevel() } -uint8_t Core::Entity::Player::getFreeSlotsInBags() +uint8_t Sapphire::Entity::Player::getFreeSlotsInBags() { uint8_t slots = 0; for( uint8_t container : { Bag0, Bag1, Bag2, Bag3 } ) @@ -874,7 +874,7 @@ uint8_t Core::Entity::Player::getFreeSlotsInBags() return slots; } -bool Core::Entity::Player::collectHandInItems( std::vector< uint32_t > itemIds ) +bool Sapphire::Entity::Player::collectHandInItems( std::vector< uint32_t > itemIds ) { // todo: figure out how the game gets the required stack count const auto& container = m_storageMap[ HandIn ]; diff --git a/src/servers/sapphire_zone/Actor/PlayerQuest.cpp b/src/servers/sapphire_zone/Actor/PlayerQuest.cpp index 94ef38c4..b3466e27 100644 --- a/src/servers/sapphire_zone/Actor/PlayerQuest.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerQuest.cpp @@ -9,13 +9,13 @@ #include "Session.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -void Core::Entity::Player::finishQuest( uint16_t questId ) +void Sapphire::Entity::Player::finishQuest( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); @@ -27,13 +27,13 @@ void Core::Entity::Player::finishQuest( uint16_t questId ) } -void Core::Entity::Player::unfinishQuest( uint16_t questId ) +void Sapphire::Entity::Player::unfinishQuest( uint16_t questId ) { removeQuestsCompleted( questId ); sendQuestInfo(); } -void Core::Entity::Player::removeQuest( uint16_t questId ) +void Sapphire::Entity::Player::removeQuest( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); @@ -72,12 +72,12 @@ void Core::Entity::Player::removeQuest( uint16_t questId ) } -bool Core::Entity::Player::hasQuest( uint32_t questId ) +bool Sapphire::Entity::Player::hasQuest( uint32_t questId ) { return ( getQuestIndex( static_cast< uint16_t >( questId ) ) > -1 ); } -int8_t Core::Entity::Player::getQuestIndex( uint16_t questId ) +int8_t Sapphire::Entity::Player::getQuestIndex( uint16_t questId ) { auto it = m_questIdToQuestIdx.find( questId ); if( it != m_questIdToQuestIdx.end() ) @@ -86,7 +86,7 @@ int8_t Core::Entity::Player::getQuestIndex( uint16_t questId ) return -1; } -bool Core::Entity::Player::getQuestBitFlag8( uint16_t questId, uint8_t index ) +bool Sapphire::Entity::Player::getQuestBitFlag8( uint16_t questId, uint8_t index ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -99,7 +99,7 @@ bool Core::Entity::Player::getQuestBitFlag8( uint16_t questId, uint8_t index ) return false; } -bool Core::Entity::Player::getQuestBitFlag16( uint16_t questId, uint8_t index ) +bool Sapphire::Entity::Player::getQuestBitFlag16( uint16_t questId, uint8_t index ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -112,7 +112,7 @@ bool Core::Entity::Player::getQuestBitFlag16( uint16_t questId, uint8_t index ) return false; } -bool Core::Entity::Player::getQuestBitFlag24( uint16_t questId, uint8_t index ) +bool Sapphire::Entity::Player::getQuestBitFlag24( uint16_t questId, uint8_t index ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -125,7 +125,7 @@ bool Core::Entity::Player::getQuestBitFlag24( uint16_t questId, uint8_t index ) return false; } -bool Core::Entity::Player::getQuestBitFlag32( uint16_t questId, uint8_t index ) +bool Sapphire::Entity::Player::getQuestBitFlag32( uint16_t questId, uint8_t index ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -138,7 +138,7 @@ bool Core::Entity::Player::getQuestBitFlag32( uint16_t questId, uint8_t index ) return false; } -bool Core::Entity::Player::getQuestBitFlag40( uint16_t questId, uint8_t index ) +bool Sapphire::Entity::Player::getQuestBitFlag40( uint16_t questId, uint8_t index ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -151,7 +151,7 @@ bool Core::Entity::Player::getQuestBitFlag40( uint16_t questId, uint8_t index ) return false; } -bool Core::Entity::Player::getQuestBitFlag48( uint16_t questId, uint8_t index ) +bool Sapphire::Entity::Player::getQuestBitFlag48( uint16_t questId, uint8_t index ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -164,7 +164,7 @@ bool Core::Entity::Player::getQuestBitFlag48( uint16_t questId, uint8_t index ) return false; } -uint8_t Core::Entity::Player::getQuestUI8A( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8A( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -177,7 +177,7 @@ uint8_t Core::Entity::Player::getQuestUI8A( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8B( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8B( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -190,7 +190,7 @@ uint8_t Core::Entity::Player::getQuestUI8B( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8C( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8C( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -203,7 +203,7 @@ uint8_t Core::Entity::Player::getQuestUI8C( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8D( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8D( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -216,7 +216,7 @@ uint8_t Core::Entity::Player::getQuestUI8D( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8E( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8E( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -229,7 +229,7 @@ uint8_t Core::Entity::Player::getQuestUI8E( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8F( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8F( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -242,7 +242,7 @@ uint8_t Core::Entity::Player::getQuestUI8F( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8AH( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8AH( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -255,7 +255,7 @@ uint8_t Core::Entity::Player::getQuestUI8AH( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8BH( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8BH( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -268,7 +268,7 @@ uint8_t Core::Entity::Player::getQuestUI8BH( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8CH( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8CH( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -281,7 +281,7 @@ uint8_t Core::Entity::Player::getQuestUI8CH( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8DH( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8DH( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -294,7 +294,7 @@ uint8_t Core::Entity::Player::getQuestUI8DH( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8EH( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8EH( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -307,7 +307,7 @@ uint8_t Core::Entity::Player::getQuestUI8EH( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8FH( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8FH( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -320,7 +320,7 @@ uint8_t Core::Entity::Player::getQuestUI8FH( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8AL( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8AL( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -333,7 +333,7 @@ uint8_t Core::Entity::Player::getQuestUI8AL( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8BL( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8BL( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -346,7 +346,7 @@ uint8_t Core::Entity::Player::getQuestUI8BL( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8CL( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8CL( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -359,7 +359,7 @@ uint8_t Core::Entity::Player::getQuestUI8CL( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8DL( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8DL( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -372,7 +372,7 @@ uint8_t Core::Entity::Player::getQuestUI8DL( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8EL( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8EL( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -385,7 +385,7 @@ uint8_t Core::Entity::Player::getQuestUI8EL( uint16_t questId ) return value; } -uint8_t Core::Entity::Player::getQuestUI8FL( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestUI8FL( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint8_t value = 0; @@ -398,7 +398,7 @@ uint8_t Core::Entity::Player::getQuestUI8FL( uint16_t questId ) return value; } -uint16_t Core::Entity::Player::getQuestUI16A( uint16_t questId ) +uint16_t Sapphire::Entity::Player::getQuestUI16A( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint16_t value = 0; @@ -411,7 +411,7 @@ uint16_t Core::Entity::Player::getQuestUI16A( uint16_t questId ) return value; } -uint16_t Core::Entity::Player::getQuestUI16B( uint16_t questId ) +uint16_t Sapphire::Entity::Player::getQuestUI16B( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint16_t value = 0; @@ -424,7 +424,7 @@ uint16_t Core::Entity::Player::getQuestUI16B( uint16_t questId ) return value; } -uint16_t Core::Entity::Player::getQuestUI16C( uint16_t questId ) +uint16_t Sapphire::Entity::Player::getQuestUI16C( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint16_t value = 0; @@ -437,7 +437,7 @@ uint16_t Core::Entity::Player::getQuestUI16C( uint16_t questId ) return value; } -uint32_t Core::Entity::Player::getQuestUI32A( uint16_t questId ) +uint32_t Sapphire::Entity::Player::getQuestUI32A( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); uint32_t value = 0; @@ -450,7 +450,7 @@ uint32_t Core::Entity::Player::getQuestUI32A( uint16_t questId ) return value; } -void Core::Entity::Player::setQuestUI8A( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8A( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -464,7 +464,7 @@ void Core::Entity::Player::setQuestUI8A( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8B( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8B( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -478,7 +478,7 @@ void Core::Entity::Player::setQuestUI8B( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8C( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8C( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -492,7 +492,7 @@ void Core::Entity::Player::setQuestUI8C( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8D( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8D( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -506,7 +506,7 @@ void Core::Entity::Player::setQuestUI8D( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8E( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8E( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -520,7 +520,7 @@ void Core::Entity::Player::setQuestUI8E( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8F( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8F( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -534,7 +534,7 @@ void Core::Entity::Player::setQuestUI8F( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8AH( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8AH( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -548,7 +548,7 @@ void Core::Entity::Player::setQuestUI8AH( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8BH( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8BH( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -562,7 +562,7 @@ void Core::Entity::Player::setQuestUI8BH( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8CH( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8CH( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -576,7 +576,7 @@ void Core::Entity::Player::setQuestUI8CH( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8DH( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8DH( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -590,7 +590,7 @@ void Core::Entity::Player::setQuestUI8DH( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8EH( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8EH( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -604,7 +604,7 @@ void Core::Entity::Player::setQuestUI8EH( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8FH( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8FH( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -618,7 +618,7 @@ void Core::Entity::Player::setQuestUI8FH( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8AL( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8AL( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -632,7 +632,7 @@ void Core::Entity::Player::setQuestUI8AL( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8BL( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8BL( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -646,7 +646,7 @@ void Core::Entity::Player::setQuestUI8BL( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8CL( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8CL( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -660,7 +660,7 @@ void Core::Entity::Player::setQuestUI8CL( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8DL( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8DL( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -674,7 +674,7 @@ void Core::Entity::Player::setQuestUI8DL( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8EL( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8EL( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -688,7 +688,7 @@ void Core::Entity::Player::setQuestUI8EL( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI8FL( uint16_t questId, uint8_t val ) +void Sapphire::Entity::Player::setQuestUI8FL( uint16_t questId, uint8_t val ) { int8_t idx = getQuestIndex( questId ); @@ -702,7 +702,7 @@ void Core::Entity::Player::setQuestUI8FL( uint16_t questId, uint8_t val ) } } -void Core::Entity::Player::setQuestUI16A( uint16_t questId, uint16_t val ) +void Sapphire::Entity::Player::setQuestUI16A( uint16_t questId, uint16_t val ) { int8_t idx = getQuestIndex( questId ); @@ -716,7 +716,7 @@ void Core::Entity::Player::setQuestUI16A( uint16_t questId, uint16_t val ) } } -void Core::Entity::Player::setQuestUI16B( uint16_t questId, uint16_t val ) +void Sapphire::Entity::Player::setQuestUI16B( uint16_t questId, uint16_t val ) { int8_t idx = getQuestIndex( questId ); @@ -730,7 +730,7 @@ void Core::Entity::Player::setQuestUI16B( uint16_t questId, uint16_t val ) } } -void Core::Entity::Player::setQuestUI16C( uint16_t questId, uint16_t val ) +void Sapphire::Entity::Player::setQuestUI16C( uint16_t questId, uint16_t val ) { int8_t idx = getQuestIndex( questId ); @@ -744,7 +744,7 @@ void Core::Entity::Player::setQuestUI16C( uint16_t questId, uint16_t val ) } } -void Core::Entity::Player::setQuestUI32A( uint16_t questId, uint32_t val ) +void Sapphire::Entity::Player::setQuestUI32A( uint16_t questId, uint32_t val ) { int8_t idx = getQuestIndex( questId ); @@ -758,7 +758,7 @@ void Core::Entity::Player::setQuestUI32A( uint16_t questId, uint32_t val ) } } -void Core::Entity::Player::setQuestBitFlag8( uint16_t questId, uint8_t index, bool val ) +void Sapphire::Entity::Player::setQuestBitFlag8( uint16_t questId, uint8_t index, bool val ) { int8_t idx = getQuestIndex( questId ); @@ -775,7 +775,7 @@ void Core::Entity::Player::setQuestBitFlag8( uint16_t questId, uint8_t index, bo } } -void Core::Entity::Player::setQuestBitFlag16( uint16_t questId, uint8_t index, bool val ) +void Sapphire::Entity::Player::setQuestBitFlag16( uint16_t questId, uint8_t index, bool val ) { int8_t idx = getQuestIndex( questId ); @@ -792,7 +792,7 @@ void Core::Entity::Player::setQuestBitFlag16( uint16_t questId, uint8_t index, b } } -void Core::Entity::Player::setQuestBitFlag24( uint16_t questId, uint8_t index, bool val ) +void Sapphire::Entity::Player::setQuestBitFlag24( uint16_t questId, uint8_t index, bool val ) { int8_t idx = getQuestIndex( questId ); @@ -809,7 +809,7 @@ void Core::Entity::Player::setQuestBitFlag24( uint16_t questId, uint8_t index, b } } -void Core::Entity::Player::setQuestBitFlag32( uint16_t questId, uint8_t index, bool val ) +void Sapphire::Entity::Player::setQuestBitFlag32( uint16_t questId, uint8_t index, bool val ) { int8_t idx = getQuestIndex( questId ); @@ -826,7 +826,7 @@ void Core::Entity::Player::setQuestBitFlag32( uint16_t questId, uint8_t index, b } } -void Core::Entity::Player::setQuestBitFlag40( uint16_t questId, uint8_t index, bool val ) +void Sapphire::Entity::Player::setQuestBitFlag40( uint16_t questId, uint8_t index, bool val ) { int8_t idx = getQuestIndex( questId ); @@ -843,7 +843,7 @@ void Core::Entity::Player::setQuestBitFlag40( uint16_t questId, uint8_t index, b } } -void Core::Entity::Player::setQuestBitFlag48( uint16_t questId, uint8_t index, bool val ) +void Sapphire::Entity::Player::setQuestBitFlag48( uint16_t questId, uint8_t index, bool val ) { int8_t idx = getQuestIndex( questId ); @@ -861,7 +861,7 @@ void Core::Entity::Player::setQuestBitFlag48( uint16_t questId, uint8_t index, b } -uint8_t Core::Entity::Player::getQuestSeq( uint16_t questId ) +uint8_t Sapphire::Entity::Player::getQuestSeq( uint16_t questId ) { int8_t idx = getQuestIndex( questId ); @@ -873,7 +873,7 @@ uint8_t Core::Entity::Player::getQuestSeq( uint16_t questId ) return 0; } -void Core::Entity::Player::updateQuest( uint16_t questId, uint8_t sequence ) +void Sapphire::Entity::Player::updateQuest( uint16_t questId, uint8_t sequence ) { if( hasQuest( questId ) ) { @@ -930,7 +930,7 @@ void Core::Entity::Player::updateQuest( uint16_t questId, uint8_t sequence ) } } -void Core::Entity::Player::sendQuestTracker() +void Sapphire::Entity::Player::sendQuestTracker() { auto trackerPacket = makeZonePacket< FFXIVIpcQuestTracker >( getId() ); @@ -945,7 +945,7 @@ void Core::Entity::Player::sendQuestTracker() queuePacket( trackerPacket ); } -void Core::Entity::Player::setQuestTracker( uint16_t index, int16_t flag ) +void Sapphire::Entity::Player::setQuestTracker( uint16_t index, int16_t flag ) { if( flag == 0 ) { @@ -975,7 +975,7 @@ void Core::Entity::Player::setQuestTracker( uint16_t index, int16_t flag ) } -void Core::Entity::Player::sendQuestInfo() +void Sapphire::Entity::Player::sendQuestInfo() { auto activeQuestListPacket = makeZonePacket< FFXIVIpcQuestActiveList >( getId() ); @@ -1001,13 +1001,13 @@ void Core::Entity::Player::sendQuestInfo() } void -Core::Entity::Player::sendQuestMessage( uint32_t questId, int8_t msgId, uint8_t type, uint32_t var1, uint32_t var2 ) +Sapphire::Entity::Player::sendQuestMessage( uint32_t questId, int8_t msgId, uint8_t type, uint32_t var1, uint32_t var2 ) { queuePacket( std::make_shared< QuestMessagePacket >( getAsPlayer(), questId, msgId, type, var1, var2 ) ); } -void Core::Entity::Player::updateQuestsCompleted( uint32_t questId ) +void Sapphire::Entity::Player::updateQuestsCompleted( uint32_t questId ) { uint8_t index = questId / 8; uint8_t bitIndex = ( questId ) % 8; @@ -1017,7 +1017,7 @@ void Core::Entity::Player::updateQuestsCompleted( uint32_t questId ) m_questCompleteFlags[ index ] |= value; } -void Core::Entity::Player::removeQuestsCompleted( uint32_t questId ) +void Sapphire::Entity::Player::removeQuestsCompleted( uint32_t questId ) { uint8_t index = questId / 8; uint8_t bitIndex = ( questId ) % 8; @@ -1028,17 +1028,17 @@ void Core::Entity::Player::removeQuestsCompleted( uint32_t questId ) } -bool Core::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optionalChoice ) +bool Sapphire::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optionalChoice ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); uint32_t playerLevel = getLevel(); - auto questInfo = pExdData->get< Core::Data::Quest >( questId ); + auto questInfo = pExdData->get< Sapphire::Data::Quest >( questId ); if( !questInfo ) return false; - auto paramGrowth = pExdData->get< Core::Data::ParamGrow >( questInfo->classJobLevel0 ); + auto paramGrowth = pExdData->get< Sapphire::Data::ParamGrow >( questInfo->classJobLevel0 ); // TODO: use the correct formula, this one is wrong uint32_t exp = @@ -1076,7 +1076,7 @@ bool Core::Entity::Player::giveQuestRewards( uint32_t questId, uint32_t optional return true; } -std::shared_ptr< QuestActive > Core::Entity::Player::getQuestActive( uint16_t index ) +std::shared_ptr< QuestActive > Sapphire::Entity::Player::getQuestActive( uint16_t index ) { return m_activeQuests[ index ]; } diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index 03eb605a..62fea9fe 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -21,14 +21,14 @@ #include "ServerMgr.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; // load player from the db -bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession ) +bool Sapphire::Entity::Player::load( uint32_t charId, SessionPtr pSession ) { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -245,7 +245,7 @@ bool Core::Entity::Player::load( uint32_t charId, SessionPtr pSession ) return true; } -bool Core::Entity::Player::loadActiveQuests() +bool Sapphire::Entity::Player::loadActiveQuests() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_QUEST ); @@ -281,7 +281,7 @@ bool Core::Entity::Player::loadActiveQuests() } -bool Core::Entity::Player::loadClassData() +bool Sapphire::Entity::Player::loadClassData() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); // ClassIdx, Exp, Lvl @@ -302,7 +302,7 @@ bool Core::Entity::Player::loadClassData() return true; } -bool Core::Entity::Player::loadSearchInfo() +bool Sapphire::Entity::Player::loadSearchInfo() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::CHARA_SEL_SEARCHINFO ); @@ -324,7 +324,7 @@ bool Core::Entity::Player::loadSearchInfo() } -void Core::Entity::Player::updateSql() +void Sapphire::Entity::Player::updateSql() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); /*"Hp 1, Mp 2, Tp 3, Gp 4, Mode 5, Mount 6, InvincibleGM 7, Voice 8, " @@ -466,11 +466,11 @@ void Core::Entity::Player::updateSql() } -void Core::Entity::Player::updateDbClass() const +void Sapphire::Entity::Player::updateDbClass() const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - uint8_t classJobIndex = pExdData->get< Core::Data::ClassJob >( static_cast( getClass() ) )->expArrayIndex; + uint8_t classJobIndex = pExdData->get< Sapphire::Data::ClassJob >( static_cast( getClass() ) )->expArrayIndex; //Exp = ?, Lvl = ? WHERE CharacterId = ? AND ClassIdx = ? auto stmtS = pDb->getPreparedStatement( Db::CHARA_CLASS_UP ); @@ -481,7 +481,7 @@ void Core::Entity::Player::updateDbClass() const pDb->execute( stmtS ); } -void Core::Entity::Player::insertDbClass( const uint8_t classJobIndex ) const +void Sapphire::Entity::Player::insertDbClass( const uint8_t classJobIndex ) const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmtClass = pDb->getPreparedStatement( Db::CHARA_CLASS_INS ); @@ -492,7 +492,7 @@ void Core::Entity::Player::insertDbClass( const uint8_t classJobIndex ) const pDb->directExecute( stmtClass ); } -void Core::Entity::Player::updateDbSearchInfo() const +void Sapphire::Entity::Player::updateDbSearchInfo() const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmtS = pDb->getPreparedStatement( Db::CHARA_SEARCHINFO_UP_SELECTCLASS ); @@ -511,7 +511,7 @@ void Core::Entity::Player::updateDbSearchInfo() const pDb->execute( stmtS2 ); } -void Core::Entity::Player::updateDbAllQuests() const +void Sapphire::Entity::Player::updateDbAllQuests() const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); for( int32_t i = 0; i < 30; i++ ) @@ -536,7 +536,7 @@ void Core::Entity::Player::updateDbAllQuests() const } } -void Core::Entity::Player::deleteQuest( uint16_t questId ) const +void Sapphire::Entity::Player::deleteQuest( uint16_t questId ) const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_DEL ); @@ -545,7 +545,7 @@ void Core::Entity::Player::deleteQuest( uint16_t questId ) const pDb->execute( stmt ); } -void Core::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uint8_t seq ) const +void Sapphire::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uint8_t seq ) const { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto stmt = pDb->getPreparedStatement( Db::CHARA_QUEST_INS ); @@ -564,11 +564,11 @@ void Core::Entity::Player::insertQuest( uint16_t questId, uint8_t index, uint8_t pDb->execute( stmt ); } -Core::ItemPtr Core::Entity::Player::createItem( uint32_t catalogId, uint32_t quantity ) +Sapphire::ItemPtr Sapphire::Entity::Player::createItem( uint32_t catalogId, uint32_t quantity ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto itemInfo = pExdData->get< Core::Data::Item >( catalogId ); + auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId ); if( !itemInfo ) return nullptr; @@ -595,7 +595,7 @@ Core::ItemPtr Core::Entity::Player::createItem( uint32_t catalogId, uint32_t qua return pItem; } -bool Core::Entity::Player::loadInventory() +bool Sapphire::Entity::Player::loadInventory() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); ////////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/servers/sapphire_zone/Actor/SpawnPoint.cpp b/src/servers/sapphire_zone/Actor/SpawnPoint.cpp index 1a349474..de98f2cc 100644 --- a/src/servers/sapphire_zone/Actor/SpawnPoint.cpp +++ b/src/servers/sapphire_zone/Actor/SpawnPoint.cpp @@ -1,12 +1,12 @@ #include "SpawnPoint.h" #include "BNpc.h" -Core::Entity::SpawnPoint::SpawnPoint() +Sapphire::Entity::SpawnPoint::SpawnPoint() { } -Core::Entity::SpawnPoint::SpawnPoint( float x, float y, float z, float rot, uint32_t gimmickId ) : +Sapphire::Entity::SpawnPoint::SpawnPoint( float x, float y, float z, float rot, uint32_t gimmickId ) : m_posX( x ), m_posY( y ), m_posZ( z ), @@ -15,37 +15,37 @@ Core::Entity::SpawnPoint::SpawnPoint( float x, float y, float z, float rot, uint { } -float Core::Entity::SpawnPoint::getPosX() const +float Sapphire::Entity::SpawnPoint::getPosX() const { return m_posX; } -float Core::Entity::SpawnPoint::getPosY() const +float Sapphire::Entity::SpawnPoint::getPosY() const { return m_posY; } -float Core::Entity::SpawnPoint::getPosZ() const +float Sapphire::Entity::SpawnPoint::getPosZ() const { return m_posZ; } -float Core::Entity::SpawnPoint::getRotation() const +float Sapphire::Entity::SpawnPoint::getRotation() const { return m_rotation; } -uint32_t Core::Entity::SpawnPoint::getGimmickId() const +uint32_t Sapphire::Entity::SpawnPoint::getGimmickId() const { return m_gimmickId; } -Core::Entity::BNpcPtr Core::Entity::SpawnPoint::getLinkedBNpc() +Sapphire::Entity::BNpcPtr Sapphire::Entity::SpawnPoint::getLinkedBNpc() { return m_pLinkedBnpc; } -void Core::Entity::SpawnPoint::setLinkedBNpc( BNpcPtr pBnpc ) +void Sapphire::Entity::SpawnPoint::setLinkedBNpc( BNpcPtr pBnpc ) { m_pLinkedBnpc = pBnpc; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Actor/SpawnPoint.h b/src/servers/sapphire_zone/Actor/SpawnPoint.h index 122ad4a7..032add2d 100644 --- a/src/servers/sapphire_zone/Actor/SpawnPoint.h +++ b/src/servers/sapphire_zone/Actor/SpawnPoint.h @@ -3,7 +3,7 @@ #include "ForwardsZone.h" -namespace Core::Entity +namespace Sapphire::Entity { class SpawnPoint diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommand.h b/src/servers/sapphire_zone/DebugCommand/DebugCommand.h index 5f1394d5..5a7c9e2a 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommand.h +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommand.h @@ -5,7 +5,7 @@ #include "ForwardsZone.h" -namespace Core +namespace Sapphire { class DebugCommandHandler; diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 86da3c95..79d4960e 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -37,14 +37,14 @@ #include "Session.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Network; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Network; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; // instanciate and initialize commands -Core::DebugCommandHandler::DebugCommandHandler() +Sapphire::DebugCommandHandler::DebugCommandHandler() { // Push all commands onto the register map ( command name - function - description - required GM level ) registerCommand( "set", &DebugCommandHandler::set, "Executes SET commands.", 1 ); @@ -62,21 +62,21 @@ Core::DebugCommandHandler::DebugCommandHandler() } // clear all loaded commands -Core::DebugCommandHandler::~DebugCommandHandler() +Sapphire::DebugCommandHandler::~DebugCommandHandler() { for( auto it = m_commandMap.begin(); it != m_commandMap.end(); ++it ) ( *it ).second.reset(); } // add a command set to the register map -void Core::DebugCommandHandler::registerCommand( const std::string& n, DebugCommand::pFunc functionPtr, +void Sapphire::DebugCommandHandler::registerCommand( const std::string& n, DebugCommand::pFunc functionPtr, const std::string& hText, uint8_t uLevel ) { m_commandMap[ std::string( n ) ] = std::make_shared< DebugCommand >( n, functionPtr, hText, uLevel ); } // try to retrieve the command in question, execute if found -void Core::DebugCommandHandler::execCommand( char* data, Entity::Player& player ) +void Sapphire::DebugCommandHandler::execCommand( char* data, Entity::Player& player ) { // define callback pointer @@ -123,7 +123,7 @@ void Core::DebugCommandHandler::execCommand( char* data, Entity::Player& player // Definition of the commands /////////////////////////////////////////////////////////////////////////////////////// -void Core::DebugCommandHandler::help( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::help( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { player.sendDebug( "Registered debug commands:" ); for( auto cmd : m_commandMap ) @@ -135,7 +135,7 @@ void Core::DebugCommandHandler::help( char* data, Entity::Player& player, std::s } } -void Core::DebugCommandHandler::set( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::set( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pLog = g_fw.get< Logger >(); auto pTerriMgr = g_fw.get< TerritoryMgr >(); @@ -374,7 +374,7 @@ void Core::DebugCommandHandler::set( char* data, Entity::Player& player, std::sh } -void Core::DebugCommandHandler::add( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::add( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pLog = g_fw.get< Logger >(); std::string subCommand; @@ -508,7 +508,7 @@ void Core::DebugCommandHandler::add( char* data, Entity::Player& player, std::sh } -void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::get( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pLog = g_fw.get< Logger >(); auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -537,7 +537,7 @@ void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::sh if( ( subCommand == "pos" ) ) { - int16_t map_id = pExdData->get< Core::Data::TerritoryType >( player.getCurrentZone()->getTerritoryTypeId() )->map; + int16_t map_id = pExdData->get< Sapphire::Data::TerritoryType >( player.getCurrentZone()->getTerritoryTypeId() )->map; player.sendNotice( "Pos:\n" + std::to_string( player.getPos().x ) + "\n" + @@ -555,7 +555,7 @@ void Core::DebugCommandHandler::get( char* data, Entity::Player& player, std::sh } void -Core::DebugCommandHandler::injectPacket( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +Sapphire::DebugCommandHandler::injectPacket( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pServerZone = g_fw.get< ServerMgr >(); auto pSession = pServerZone->getSession( player.getId() ); @@ -563,7 +563,7 @@ Core::DebugCommandHandler::injectPacket( char* data, Entity::Player& player, std pSession->getZoneConnection()->injectPacket( data + 7, player ); } -void Core::DebugCommandHandler::injectChatPacket( char* data, Entity::Player& player, +void Sapphire::DebugCommandHandler::injectChatPacket( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pServerZone = g_fw.get< ServerMgr >(); @@ -572,7 +572,7 @@ void Core::DebugCommandHandler::injectChatPacket( char* data, Entity::Player& pl pSession->getChatConnection()->injectPacket( data + 8, player ); } -void Core::DebugCommandHandler::replay( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::replay( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pLog = g_fw.get< Logger >(); auto pServerZone = g_fw.get< ServerMgr >(); @@ -624,7 +624,7 @@ void Core::DebugCommandHandler::replay( char* data, Entity::Player& player, std: } -void Core::DebugCommandHandler::nudge( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::nudge( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { std::string subCommand; @@ -671,7 +671,7 @@ void Core::DebugCommandHandler::nudge( char* data, Entity::Player& player, std:: } void -Core::DebugCommandHandler::serverInfo( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +Sapphire::DebugCommandHandler::serverInfo( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pServerZone = g_fw.get< ServerMgr >(); player.sendDebug( "SapphireZone " + Version::VERSION + "\nRev: " + Version::GIT_HASH ); @@ -679,7 +679,7 @@ Core::DebugCommandHandler::serverInfo( char* data, Entity::Player& player, std:: player.sendDebug( "Sessions: " + std::to_string( pServerZone->getSessionCount() ) ); } -void Core::DebugCommandHandler::script( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::script( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pLog = g_fw.get< Logger >(); auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); @@ -720,7 +720,7 @@ void Core::DebugCommandHandler::script( char* data, Entity::Player& player, std: player.sendDebug( "Because reasons of filling chat with nonsense, please enter a search term" ); else { - std::set< Core::Scripting::ScriptInfo* > scripts; + std::set< Sapphire::Scripting::ScriptInfo* > scripts; pScriptMgr->getNativeScriptHandler().findScripts( scripts, params ); if( !scripts.empty() ) @@ -768,7 +768,7 @@ void Core::DebugCommandHandler::script( char* data, Entity::Player& player, std: } void -Core::DebugCommandHandler::instance( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +Sapphire::DebugCommandHandler::instance( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); std::string cmd( data ), params, subCommand; @@ -984,7 +984,7 @@ Core::DebugCommandHandler::instance( char* data, Entity::Player& player, std::sh } } -void Core::DebugCommandHandler::housing( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) +void Sapphire::DebugCommandHandler::housing( char* data, Entity::Player& player, std::shared_ptr< DebugCommand > command ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); std::string cmd( data ), params, subCommand; diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h index 3a9ebc80..02bf76d8 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.h @@ -7,7 +7,7 @@ #include "DebugCommand.h" #include "ForwardsZone.h" -namespace Core +namespace Sapphire { // handler for in game commands diff --git a/src/servers/sapphire_zone/Event/Director.cpp b/src/servers/sapphire_zone/Event/Director.cpp index b84fc478..90b083fb 100644 --- a/src/servers/sapphire_zone/Event/Director.cpp +++ b/src/servers/sapphire_zone/Event/Director.cpp @@ -10,12 +10,12 @@ #include "Network/PacketWrappers/ActorControlPacket143.h" -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -Core::Event::Director::Director( Core::Event::Director::DirectorType type, uint16_t contentId ) : +Sapphire::Event::Director::Director( Sapphire::Event::Director::DirectorType type, uint16_t contentId ) : m_contentId( contentId ), m_type( type ), m_directorId( ( static_cast< uint32_t >( type ) << 16 ) | contentId ), @@ -26,27 +26,27 @@ Core::Event::Director::Director( Core::Event::Director::DirectorType type, uint1 memset( m_unionData.arrData, 0, sizeof( m_unionData ) ); } -uint32_t Core::Event::Director::getDirectorId() const +uint32_t Sapphire::Event::Director::getDirectorId() const { return m_directorId; } -uint16_t Core::Event::Director::getContentId() const +uint16_t Sapphire::Event::Director::getContentId() const { return m_contentId; } -uint8_t Core::Event::Director::getSequence() const +uint8_t Sapphire::Event::Director::getSequence() const { return m_sequence; } -void Core::Event::Director::sendDirectorClear( Core::Entity::Player& player ) const +void Sapphire::Event::Director::sendDirectorClear( Sapphire::Entity::Player& player ) const { player.queuePacket( makeActorControl143( player.getId(), DirectorClear, m_directorId ) ); } -void Core::Event::Director::sendDirectorVars( Core::Entity::Player& player ) const +void Sapphire::Event::Director::sendDirectorVars( Sapphire::Entity::Player& player ) const { auto varPacket = makeZonePacket< FFXIVIpcDirectorVars >( player.getId() ); varPacket->data().m_directorId = getDirectorId(); @@ -56,127 +56,127 @@ void Core::Event::Director::sendDirectorVars( Core::Entity::Player& player ) con player.queuePacket( varPacket ); } -void Core::Event::Director::sendDirectorInit( Core::Entity::Player& player ) const +void Sapphire::Event::Director::sendDirectorInit( Sapphire::Entity::Player& player ) const { player.queuePacket( makeActorControl143( player.getId(), DirectorInit, m_directorId, m_contentId ) ); } -Core::Event::Director::DirectorType Core::Event::Director::getType() const +Sapphire::Event::Director::DirectorType Sapphire::Event::Director::getType() const { return m_type; } -uint8_t Core::Event::Director::getBranch() const +uint8_t Sapphire::Event::Director::getBranch() const { return m_branch; } -void Core::Event::Director::setDirectorUI8AL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8AL( uint8_t value ) { m_unionData.ui8lh.UI8AL = value; } -void Core::Event::Director::setDirectorUI8AH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8AH( uint8_t value ) { m_unionData.ui8lh.UI8AH = value; } -void Core::Event::Director::setDirectorUI8BL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8BL( uint8_t value ) { m_unionData.ui8lh.UI8BL = value; } -void Core::Event::Director::setDirectorUI8BH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8BH( uint8_t value ) { m_unionData.ui8lh.UI8BH = value; } -void Core::Event::Director::setDirectorUI8CL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8CL( uint8_t value ) { m_unionData.ui8lh.UI8CL = value; } -void Core::Event::Director::setDirectorUI8CH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8CH( uint8_t value ) { m_unionData.ui8lh.UI8CH = value; } -void Core::Event::Director::setDirectorUI8DL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8DL( uint8_t value ) { m_unionData.ui8lh.UI8DL = value; } -void Core::Event::Director::setDirectorUI8DH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8DH( uint8_t value ) { m_unionData.ui8lh.UI8DH = value; } -void Core::Event::Director::setDirectorUI8EL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8EL( uint8_t value ) { m_unionData.ui8lh.UI8EL = value; } -void Core::Event::Director::setDirectorUI8EH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8EH( uint8_t value ) { m_unionData.ui8lh.UI8EH = value; } -void Core::Event::Director::setDirectorUI8FL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8FL( uint8_t value ) { m_unionData.ui8lh.UI8FL = value; } -void Core::Event::Director::setDirectorUI8FH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8FH( uint8_t value ) { m_unionData.ui8lh.UI8FH = value; } -void Core::Event::Director::setDirectorUI8GL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8GL( uint8_t value ) { m_unionData.ui8lh.UI8GL = value; } -void Core::Event::Director::setDirectorUI8GH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8GH( uint8_t value ) { m_unionData.ui8lh.UI8GH = value; } -void Core::Event::Director::setDirectorUI8HL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8HL( uint8_t value ) { m_unionData.ui8lh.UI8HL = value; } -void Core::Event::Director::setDirectorUI8HH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8HH( uint8_t value ) { m_unionData.ui8lh.UI8HH = value; } -void Core::Event::Director::setDirectorUI8IL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8IL( uint8_t value ) { m_unionData.ui8lh.UI8IL = value; } -void Core::Event::Director::setDirectorUI8IH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8IH( uint8_t value ) { m_unionData.ui8lh.UI8IH = value; } -void Core::Event::Director::setDirectorUI8JL( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8JL( uint8_t value ) { m_unionData.ui8lh.UI8JL = value; } -void Core::Event::Director::setDirectorUI8JH( uint8_t value ) +void Sapphire::Event::Director::setDirectorUI8JH( uint8_t value ) { m_unionData.ui8lh.UI8JH = value; } -void Core::Event::Director::setDirectorBranch( uint8_t value ) +void Sapphire::Event::Director::setDirectorBranch( uint8_t value ) { m_branch = value; } -void Core::Event::Director::setDirectorSequence( uint8_t value ) +void Sapphire::Event::Director::setDirectorSequence( uint8_t value ) { m_sequence = value; } diff --git a/src/servers/sapphire_zone/Event/Director.h b/src/servers/sapphire_zone/Event/Director.h index a5ac3914..bf985be5 100644 --- a/src/servers/sapphire_zone/Event/Director.h +++ b/src/servers/sapphire_zone/Event/Director.h @@ -5,7 +5,7 @@ #include "ForwardsZone.h" -namespace Core::Event +namespace Sapphire::Event { /*! diff --git a/src/servers/sapphire_zone/Event/EventDefs.h b/src/servers/sapphire_zone/Event/EventDefs.h index 26247b34..e7158fdd 100644 --- a/src/servers/sapphire_zone/Event/EventDefs.h +++ b/src/servers/sapphire_zone/Event/EventDefs.h @@ -1,7 +1,7 @@ #ifndef SAPPHIRE_EVENTDEFS_H #define SAPPHIRE_EVENTDEFS_H -namespace Core +namespace Sapphire { enum EventFlags { diff --git a/src/servers/sapphire_zone/Event/EventHandler.cpp b/src/servers/sapphire_zone/Event/EventHandler.cpp index cd62b2b8..c9b40c72 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.cpp +++ b/src/servers/sapphire_zone/Event/EventHandler.cpp @@ -1,6 +1,6 @@ #include "EventHandler.h" -Core::Event::EventHandler::EventHandler( Entity::Player* pOwner, uint64_t actorId, uint32_t eventId, +Sapphire::Event::EventHandler::EventHandler( Entity::Player* pOwner, uint64_t actorId, uint32_t eventId, EventType eventType, uint32_t eventParam ) : m_pOwner( pOwner ), m_actorId( actorId ), @@ -14,82 +14,82 @@ Core::Event::EventHandler::EventHandler( Entity::Player* pOwner, uint64_t actorI m_returnCallback = nullptr; } -uint64_t Core::Event::EventHandler::getActorId() const +uint64_t Sapphire::Event::EventHandler::getActorId() const { return m_actorId; } -uint32_t Core::Event::EventHandler::getId() const +uint32_t Sapphire::Event::EventHandler::getId() const { return m_eventId; } -uint8_t Core::Event::EventHandler::getEventType() const +uint8_t Sapphire::Event::EventHandler::getEventType() const { return m_eventType; } -uint16_t Core::Event::EventHandler::getType() const +uint16_t Sapphire::Event::EventHandler::getType() const { return m_type; } -uint16_t Core::Event::EventHandler::getEntryId() const +uint16_t Sapphire::Event::EventHandler::getEntryId() const { return m_entryId; } -uint32_t Core::Event::EventHandler::getEventParam() const +uint32_t Sapphire::Event::EventHandler::getEventParam() const { return m_eventParam; } -Core::Event::EventHandler::SceneReturnCallback Core::Event::EventHandler::getEventReturnCallback() const +Sapphire::Event::EventHandler::SceneReturnCallback Sapphire::Event::EventHandler::getEventReturnCallback() const { return m_returnCallback; } -void Core::Event::EventHandler::setEventReturnCallback( SceneReturnCallback callback ) +void Sapphire::Event::EventHandler::setEventReturnCallback( SceneReturnCallback callback ) { m_returnCallback = callback; } -Core::Event::EventHandler::SceneChainCallback Core::Event::EventHandler::getSceneChainCallback() const +Sapphire::Event::EventHandler::SceneChainCallback Sapphire::Event::EventHandler::getSceneChainCallback() const { return m_chainCallback; } -void Core::Event::EventHandler::setSceneChainCallback( Core::Event::EventHandler::SceneChainCallback callback ) +void Sapphire::Event::EventHandler::setSceneChainCallback( Sapphire::Event::EventHandler::SceneChainCallback callback ) { m_chainCallback = callback; } -Core::Event::EventHandler::EventFinishCallback Core::Event::EventHandler::getEventFinishCallback() const +Sapphire::Event::EventHandler::EventFinishCallback Sapphire::Event::EventHandler::getEventFinishCallback() const { return m_finishCallback; } -void Core::Event::EventHandler::setEventFinishCallback( EventFinishCallback callback ) +void Sapphire::Event::EventHandler::setEventFinishCallback( EventFinishCallback callback ) { m_finishCallback = callback; } -bool Core::Event::EventHandler::hasPlayedScene() const +bool Sapphire::Event::EventHandler::hasPlayedScene() const { return m_playedScene; } -void Core::Event::EventHandler::setPlayedScene( bool playedScene ) +void Sapphire::Event::EventHandler::setPlayedScene( bool playedScene ) { m_playedScene = playedScene; } -bool Core::Event::EventHandler::hasNestedEvent() const +bool Sapphire::Event::EventHandler::hasNestedEvent() const { return m_pNestedEvent != nullptr; } -void Core::Event::EventHandler::removeNestedEvent() +void Sapphire::Event::EventHandler::removeNestedEvent() { m_pNestedEvent.reset(); } diff --git a/src/servers/sapphire_zone/Event/EventHandler.h b/src/servers/sapphire_zone/Event/EventHandler.h index 77735623..4ace5d59 100644 --- a/src/servers/sapphire_zone/Event/EventHandler.h +++ b/src/servers/sapphire_zone/Event/EventHandler.h @@ -3,7 +3,7 @@ #include "ForwardsZone.h" -namespace Core::Event +namespace Sapphire::Event { struct SceneResult diff --git a/src/servers/sapphire_zone/Event/EventHelper.cpp b/src/servers/sapphire_zone/Event/EventHelper.cpp index 37f7bcfe..66f6dc09 100644 --- a/src/servers/sapphire_zone/Event/EventHelper.cpp +++ b/src/servers/sapphire_zone/Event/EventHelper.cpp @@ -7,12 +7,12 @@ #include "EventHandler.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; +using namespace Sapphire::Common; -std::string Core::Event::getEventName( uint32_t eventId ) +std::string Sapphire::Event::getEventName( uint32_t eventId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); uint16_t eventType = eventId >> 16; @@ -23,7 +23,7 @@ std::string Core::Event::getEventName( uint32_t eventId ) { case Event::EventHandler::EventHandlerType::Quest: { - auto questInfo = pExdData->get< Core::Data::Quest >( eventId ); + auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); if( !questInfo ) return unknown + "Quest"; @@ -34,7 +34,7 @@ std::string Core::Event::getEventName( uint32_t eventId ) } case Event::EventHandler::EventHandlerType::CustomTalk: { - auto customTalkInfo = pExdData->get< Core::Data::CustomTalk >( eventId ); + auto customTalkInfo = pExdData->get< Sapphire::Data::CustomTalk >( eventId ); if( !customTalkInfo ) return unknown + "CustomTalk"; @@ -45,21 +45,21 @@ std::string Core::Event::getEventName( uint32_t eventId ) } case Event::EventHandler::EventHandlerType::Opening: { - auto openingInfo = pExdData->get< Core::Data::Opening >( eventId ); + auto openingInfo = pExdData->get< Sapphire::Data::Opening >( eventId ); if( openingInfo ) return openingInfo->name; return unknown + "Opening"; } case Event::EventHandler::EventHandlerType::Aetheryte: { - auto aetherInfo = pExdData->get< Core::Data::Aetheryte >( eventId & 0xFFFF ); + auto aetherInfo = pExdData->get< Sapphire::Data::Aetheryte >( eventId & 0xFFFF ); if( aetherInfo->isAetheryte ) return "Aetheryte"; return "Aethernet"; } case Event::EventHandler::EventHandlerType::ICDirector: { - auto contentInfo = pExdData->get< Core::Data::InstanceContent >( eventId & 0xFFFF ); + auto contentInfo = pExdData->get< Sapphire::Data::InstanceContent >( eventId & 0xFFFF ); std::string name = contentInfo->name; std::string remove( "★_ '()[]-\x1a\x1\x2\x1f\x1\x3.:" ); Util::eraseAllIn( name, remove ); @@ -69,7 +69,7 @@ std::string Core::Event::getEventName( uint32_t eventId ) case Event::EventHandler::EventHandlerType::Warp: { - auto warpInfo = pExdData->get< Core::Data::Warp >( eventId ); + auto warpInfo = pExdData->get< Sapphire::Data::Warp >( eventId ); if( warpInfo ) return "WarpTaxi"; return unknown + "ChocoboWarp"; //who know @@ -77,7 +77,7 @@ std::string Core::Event::getEventName( uint32_t eventId ) case Event::EventHandler::EventHandlerType::Shop: { - auto shopInfo = pExdData->get< Core::Data::GilShop >( eventId ); + auto shopInfo = pExdData->get< Sapphire::Data::GilShop >( eventId ); return "GilShop" + std::to_string( eventId ); /*if( shopInfo ) @@ -95,10 +95,10 @@ std::string Core::Event::getEventName( uint32_t eventId ) } } -uint32_t Core::Event::mapEventActorToRealActor( uint32_t eventActorId ) +uint32_t Sapphire::Event::mapEventActorToRealActor( uint32_t eventActorId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto levelInfo = pExdData->get< Core::Data::Level >( eventActorId ); + auto levelInfo = pExdData->get< Sapphire::Data::Level >( eventActorId ); if( levelInfo ) return levelInfo->object; diff --git a/src/servers/sapphire_zone/Event/EventHelper.h b/src/servers/sapphire_zone/Event/EventHelper.h index 8beaac35..71a56a77 100644 --- a/src/servers/sapphire_zone/Event/EventHelper.h +++ b/src/servers/sapphire_zone/Event/EventHelper.h @@ -4,7 +4,7 @@ #include #include -namespace Core::Event +namespace Sapphire::Event { std::string getEventName( uint32_t eventId ); diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index 61abb4e7..b3783830 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -16,7 +16,7 @@ x ## Ptr make_ ## x( Args &&...args ) { \ return std::make_shared< x >( std::forward< Args >( args ) ... ); }\ typedef std::vector< x > x ## PtrList; -namespace Core { +namespace Sapphire { TYPE_FORWARD( Cell ); TYPE_FORWARD( Zone ); TYPE_FORWARD( HousingZone ); diff --git a/src/servers/sapphire_zone/Inventory/Item.cpp b/src/servers/sapphire_zone/Inventory/Item.cpp index 6537aae1..5421f355 100644 --- a/src/servers/sapphire_zone/Inventory/Item.cpp +++ b/src/servers/sapphire_zone/Inventory/Item.cpp @@ -5,9 +5,9 @@ #include "Framework.h" #include "Item.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::Item::Item( uint64_t uId, uint32_t catalogId, uint64_t model1, uint64_t model2, bool isHq ) : +Sapphire::Item::Item( uint64_t uId, uint32_t catalogId, uint64_t model1, uint64_t model2, bool isHq ) : m_id( catalogId ), m_uId( uId ), m_model1( model1 ), @@ -17,7 +17,7 @@ Core::Item::Item( uint64_t uId, uint32_t catalogId, uint64_t model1, uint64_t mo m_durability( 30000 ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto itemInfo = pExdData->get< Core::Data::Item >( catalogId ); + auto itemInfo = pExdData->get< Sapphire::Data::Item >( catalogId ); m_delayMs = itemInfo->delayms; m_physicalDmg = itemInfo->damagePhys; @@ -29,128 +29,128 @@ Core::Item::Item( uint64_t uId, uint32_t catalogId, uint64_t model1, uint64_t mo m_maxStackSize = itemInfo->stackSize; } -float Core::Item::getAutoAttackDmg() const +float Sapphire::Item::getAutoAttackDmg() const { return m_autoAttackDmg; } -uint16_t Core::Item::getDelay() const +uint16_t Sapphire::Item::getDelay() const { return m_delayMs; } -uint16_t Core::Item::getPhysicalDmg() const +uint16_t Sapphire::Item::getPhysicalDmg() const { return m_physicalDmg; } -uint16_t Core::Item::getMagicalDmg() const +uint16_t Sapphire::Item::getMagicalDmg() const { return m_magicalDmg; } -uint16_t Core::Item::getItemLevel() const +uint16_t Sapphire::Item::getItemLevel() const { return m_itemLevel; } -uint16_t Core::Item::getWeaponDmg() const +uint16_t Sapphire::Item::getWeaponDmg() const { return m_weaponDmg; } -bool Core::Item::isWeapon() const +bool Sapphire::Item::isWeapon() const { return ( m_weaponDmg != 0 ); } -uint32_t Core::Item::getId() const +uint32_t Sapphire::Item::getId() const { return m_id; } -void Core::Item::setId( uint32_t id ) +void Sapphire::Item::setId( uint32_t id ) { m_id = id; } -uint64_t Core::Item::getUId() const +uint64_t Sapphire::Item::getUId() const { return m_uId; } -void Core::Item::setUId( uint64_t id ) +void Sapphire::Item::setUId( uint64_t id ) { m_uId = id; } -void Core::Item::setStackSize( uint32_t size ) +void Sapphire::Item::setStackSize( uint32_t size ) { m_stackSize = std::min< uint32_t >( size, m_maxStackSize ); } -uint32_t Core::Item::getStackSize() const +uint32_t Sapphire::Item::getStackSize() const { return m_stackSize; } -void Core::Item::setCategory( Common::ItemUICategory categoryId ) +void Sapphire::Item::setCategory( Common::ItemUICategory categoryId ) { m_category = categoryId; } -Core::Common::ItemUICategory Core::Item::getCategory() const +Sapphire::Common::ItemUICategory Sapphire::Item::getCategory() const { return m_category; } -void Core::Item::setModelIds( uint64_t model1, uint64_t model2 ) +void Sapphire::Item::setModelIds( uint64_t model1, uint64_t model2 ) { m_model1 = model1; m_model2 = model2; } -uint64_t Core::Item::getModelId1() const +uint64_t Sapphire::Item::getModelId1() const { return m_model1; } -uint64_t Core::Item::getModelId2() const +uint64_t Sapphire::Item::getModelId2() const { return m_model2; } -bool Core::Item::isHq() const +bool Sapphire::Item::isHq() const { return m_isHq; } -void Core::Item::setHq( bool isHq ) +void Sapphire::Item::setHq( bool isHq ) { m_isHq = isHq; } -uint32_t Core::Item::getMaxStackSize() const +uint32_t Sapphire::Item::getMaxStackSize() const { return m_maxStackSize; } -uint16_t Core::Item::getDurability() const +uint16_t Sapphire::Item::getDurability() const { return m_durability; } -void Core::Item::setDurability( uint16_t durability ) +void Sapphire::Item::setDurability( uint16_t durability ) { m_durability = durability; } -uint16_t Core::Item::getStain() const +uint16_t Sapphire::Item::getStain() const { return m_stain; } -void Core::Item::setStain( uint16_t stain ) +void Sapphire::Item::setStain( uint16_t stain ) { m_stain = stain; } diff --git a/src/servers/sapphire_zone/Inventory/Item.h b/src/servers/sapphire_zone/Inventory/Item.h index 9927d126..e5babd3d 100644 --- a/src/servers/sapphire_zone/Inventory/Item.h +++ b/src/servers/sapphire_zone/Inventory/Item.h @@ -3,7 +3,7 @@ #include -namespace Core +namespace Sapphire { class Item diff --git a/src/servers/sapphire_zone/Inventory/ItemContainer.cpp b/src/servers/sapphire_zone/Inventory/ItemContainer.cpp index b38e73e1..775b122e 100644 --- a/src/servers/sapphire_zone/Inventory/ItemContainer.cpp +++ b/src/servers/sapphire_zone/Inventory/ItemContainer.cpp @@ -9,9 +9,9 @@ #include "Forwards.h" #include "ItemContainer.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::ItemContainer::ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, +Sapphire::ItemContainer::ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, bool isMultiStorage, bool isPersistentStorage ) : m_id( storageId ), m_size( maxSize ), @@ -22,22 +22,22 @@ Core::ItemContainer::ItemContainer( uint16_t storageId, uint8_t maxSize, const s } -Core::ItemContainer::~ItemContainer() +Sapphire::ItemContainer::~ItemContainer() { } -uint16_t Core::ItemContainer::getId() const +uint16_t Sapphire::ItemContainer::getId() const { return m_id; } -uint8_t Core::ItemContainer::getEntryCount() const +uint8_t Sapphire::ItemContainer::getEntryCount() const { return static_cast< uint8_t >( m_itemMap.size() ); } -void Core::ItemContainer::removeItem( uint8_t slotId ) +void Sapphire::ItemContainer::removeItem( uint8_t slotId ) { auto pLog = g_fw.get< Logger >(); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -58,17 +58,17 @@ void Core::ItemContainer::removeItem( uint8_t slotId ) } } -Core::ItemMap& Core::ItemContainer::getItemMap() +Sapphire::ItemMap& Sapphire::ItemContainer::getItemMap() { return m_itemMap; } -const Core::ItemMap& Core::ItemContainer::getItemMap() const +const Sapphire::ItemMap& Sapphire::ItemContainer::getItemMap() const { return m_itemMap; } -int8_t Core::ItemContainer::getFreeSlot() +int8_t Sapphire::ItemContainer::getFreeSlot() { for( uint8_t slotId = 0; slotId < m_size; slotId++ ) { @@ -80,7 +80,7 @@ int8_t Core::ItemContainer::getFreeSlot() return -1; } -Core::ItemPtr Core::ItemContainer::getItem( uint8_t slotId ) +Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint8_t slotId ) { if( ( slotId > m_size ) ) @@ -93,7 +93,7 @@ Core::ItemPtr Core::ItemContainer::getItem( uint8_t slotId ) return m_itemMap[ slotId ]; } -void Core::ItemContainer::setItem( uint8_t slotId, ItemPtr pItem ) +void Sapphire::ItemContainer::setItem( uint8_t slotId, ItemPtr pItem ) { if( slotId > m_size ) return; @@ -101,22 +101,22 @@ void Core::ItemContainer::setItem( uint8_t slotId, ItemPtr pItem ) m_itemMap[ slotId ] = pItem; } -uint8_t Core::ItemContainer::getMaxSize() const +uint8_t Sapphire::ItemContainer::getMaxSize() const { return m_size; } -std::string Core::ItemContainer::getTableName() const +std::string Sapphire::ItemContainer::getTableName() const { return m_tableName; } -bool Core::ItemContainer::isMultiStorage() const +bool Sapphire::ItemContainer::isMultiStorage() const { return m_bMultiStorage; } -bool Core::ItemContainer::isPersistentStorage() const +bool Sapphire::ItemContainer::isPersistentStorage() const { return m_isPersistentStorage; } diff --git a/src/servers/sapphire_zone/Inventory/ItemContainer.h b/src/servers/sapphire_zone/Inventory/ItemContainer.h index d463087e..39d21510 100644 --- a/src/servers/sapphire_zone/Inventory/ItemContainer.h +++ b/src/servers/sapphire_zone/Inventory/ItemContainer.h @@ -5,7 +5,7 @@ #include #include "ForwardsZone.h" -namespace Core +namespace Sapphire { using ItemMap = std::map< uint8_t, ItemPtr >; diff --git a/src/servers/sapphire_zone/Inventory/ItemUtil.cpp b/src/servers/sapphire_zone/Inventory/ItemUtil.cpp index 5894e6eb..bb036828 100644 --- a/src/servers/sapphire_zone/Inventory/ItemUtil.cpp +++ b/src/servers/sapphire_zone/Inventory/ItemUtil.cpp @@ -10,9 +10,9 @@ #include -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -bool Core::Items::Util::isArmory( uint16_t containerId ) +bool Sapphire::Items::Util::isArmory( uint16_t containerId ) { return containerId == Common::ArmoryBody || @@ -29,7 +29,7 @@ bool Core::Items::Util::isArmory( uint16_t containerId ) containerId == Common::ArmorySoulCrystal; } -uint16_t Core::Items::Util::getCharaEquipSlotCategoryToArmoryId( uint8_t slotId ) +uint16_t Sapphire::Items::Util::getCharaEquipSlotCategoryToArmoryId( uint8_t slotId ) { switch( slotId ) @@ -87,13 +87,13 @@ uint16_t Core::Items::Util::getCharaEquipSlotCategoryToArmoryId( uint8_t slotId } -bool Core::Items::Util::isEquipment( uint16_t containerId ) +bool Sapphire::Items::Util::isEquipment( uint16_t containerId ) { return containerId == Common::GearSet0; } -bool Core::Items::Util::isOneHandedWeapon( Common::ItemUICategory weaponCategory ) +bool Sapphire::Items::Util::isOneHandedWeapon( Common::ItemUICategory weaponCategory ) { switch( weaponCategory ) { @@ -117,7 +117,7 @@ bool Core::Items::Util::isOneHandedWeapon( Common::ItemUICategory weaponCategory } } -Core::ItemPtr Core::Items::Util::loadItem( uint64_t uId ) +Sapphire::ItemPtr Sapphire::Items::Util::loadItem( uint64_t uId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -129,7 +129,7 @@ Core::ItemPtr Core::Items::Util::loadItem( uint64_t uId ) try { - auto itemInfo = pExdData->get< Core::Data::Item >( itemRes->getUInt( 1 ) ); + auto itemInfo = pExdData->get< Sapphire::Data::Item >( itemRes->getUInt( 1 ) ); bool isHq = itemRes->getUInt( 3 ) == 1; ItemPtr pItem = make_Item( uId, @@ -148,7 +148,7 @@ Core::ItemPtr Core::Items::Util::loadItem( uint64_t uId ) } } -Core::Common::ContainerType Core::Items::Util::getContainerType( uint32_t containerId ) +Sapphire::Common::ContainerType Sapphire::Items::Util::getContainerType( uint32_t containerId ) { if( containerId < 5 ) { @@ -173,7 +173,7 @@ Core::Common::ContainerType Core::Items::Util::getContainerType( uint32_t contai } -uint32_t Core::Items::Util::getNextUId() +uint32_t Sapphire::Items::Util::getNextUId() { uint32_t charId = 0; auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); diff --git a/src/servers/sapphire_zone/Inventory/ItemUtil.h b/src/servers/sapphire_zone/Inventory/ItemUtil.h index b8d46c38..6645425c 100644 --- a/src/servers/sapphire_zone/Inventory/ItemUtil.h +++ b/src/servers/sapphire_zone/Inventory/ItemUtil.h @@ -4,7 +4,7 @@ #include #include "ForwardsZone.h" -namespace Core::Items::Util +namespace Sapphire::Items::Util { ItemPtr loadItem( uint64_t uId ); diff --git a/src/servers/sapphire_zone/Linkshell/Linkshell.cpp b/src/servers/sapphire_zone/Linkshell/Linkshell.cpp index 257794e2..0d6bcb3e 100644 --- a/src/servers/sapphire_zone/Linkshell/Linkshell.cpp +++ b/src/servers/sapphire_zone/Linkshell/Linkshell.cpp @@ -1,7 +1,7 @@ #include "Linkshell.h" -Core::Linkshell::Linkshell( uint64_t id, +Sapphire::Linkshell::Linkshell( uint64_t id, const std::string& name, uint64_t masterId, const std::set< uint64_t >& members, @@ -17,77 +17,77 @@ Core::Linkshell::Linkshell( uint64_t id, } -uint64_t Core::Linkshell::getId() const +uint64_t Sapphire::Linkshell::getId() const { return m_linkshellId; } -uint64_t Core::Linkshell::getMasterId() const +uint64_t Sapphire::Linkshell::getMasterId() const { return m_masterCharacterId; } -const std::set< uint64_t >& Core::Linkshell::getMemberIdList() const +const std::set< uint64_t >& Sapphire::Linkshell::getMemberIdList() const { return m_memberIds; } -std::set< uint64_t >& Core::Linkshell::getMemberIdList() +std::set< uint64_t >& Sapphire::Linkshell::getMemberIdList() { return m_memberIds; } -const std::string& Core::Linkshell::getName() const +const std::string& Sapphire::Linkshell::getName() const { return m_name; } -const std::set< uint64_t >& Core::Linkshell::getLeaderIdList() const +const std::set< uint64_t >& Sapphire::Linkshell::getLeaderIdList() const { return m_leaderIds; } -std::set< uint64_t >& Core::Linkshell::getLeaderIdList() +std::set< uint64_t >& Sapphire::Linkshell::getLeaderIdList() { return m_leaderIds; } -const std::set< uint64_t >& Core::Linkshell::getInviteIdList() const +const std::set< uint64_t >& Sapphire::Linkshell::getInviteIdList() const { return m_inviteIds; } -std::set< uint64_t >& Core::Linkshell::getInviteIdList() +std::set< uint64_t >& Sapphire::Linkshell::getInviteIdList() { return m_inviteIds; } -void Core::Linkshell::addMember( uint64_t memberId ) +void Sapphire::Linkshell::addMember( uint64_t memberId ) { m_memberIds.insert( memberId ); } -void Core::Linkshell::removeMember( uint64_t memberId ) +void Sapphire::Linkshell::removeMember( uint64_t memberId ) { m_memberIds.erase( memberId ); } -void Core::Linkshell::addLeader( uint64_t memberId ) +void Sapphire::Linkshell::addLeader( uint64_t memberId ) { m_leaderIds.insert( memberId ); } -void Core::Linkshell::removeLeader( uint64_t memberId ) +void Sapphire::Linkshell::removeLeader( uint64_t memberId ) { m_leaderIds.erase( memberId ); } -void Core::Linkshell::addInvite( uint64_t memberId ) +void Sapphire::Linkshell::addInvite( uint64_t memberId ) { m_inviteIds.insert( memberId ); } -void Core::Linkshell::removeInvite( uint64_t memberId ) +void Sapphire::Linkshell::removeInvite( uint64_t memberId ) { m_inviteIds.erase( memberId ); } diff --git a/src/servers/sapphire_zone/Linkshell/Linkshell.h b/src/servers/sapphire_zone/Linkshell/Linkshell.h index af153dad..31d32717 100644 --- a/src/servers/sapphire_zone/Linkshell/Linkshell.h +++ b/src/servers/sapphire_zone/Linkshell/Linkshell.h @@ -4,7 +4,7 @@ #include #include -namespace Core +namespace Sapphire { class Linkshell diff --git a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.cpp b/src/servers/sapphire_zone/Linkshell/LinkshellMgr.cpp index 535acc6f..a0909468 100644 --- a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.cpp +++ b/src/servers/sapphire_zone/Linkshell/LinkshellMgr.cpp @@ -5,14 +5,14 @@ #include "Framework.h" #include "LinkshellMgr.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::LinkshellMgr::LinkshellMgr() +Sapphire::LinkshellMgr::LinkshellMgr() { } -bool Core::LinkshellMgr::loadLinkshells() +bool Sapphire::LinkshellMgr::loadLinkshells() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT LinkshellId, MasterCharacterId, CharacterIdList, " @@ -61,7 +61,7 @@ bool Core::LinkshellMgr::loadLinkshells() } -Core::LinkshellPtr Core::LinkshellMgr::getLinkshellByName( const std::string& name ) +Sapphire::LinkshellPtr Sapphire::LinkshellMgr::getLinkshellByName( const std::string& name ) { auto it = m_linkshellNameMap.find( name ); if( it == m_linkshellNameMap.end() ) @@ -70,7 +70,7 @@ Core::LinkshellPtr Core::LinkshellMgr::getLinkshellByName( const std::string& na return it->second; } -Core::LinkshellPtr Core::LinkshellMgr::getLinkshellById( uint64_t lsId ) +Sapphire::LinkshellPtr Sapphire::LinkshellMgr::getLinkshellById( uint64_t lsId ) { auto it = m_linkshellIdMap.find( lsId ); if( it == m_linkshellIdMap.end() ) diff --git a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.h b/src/servers/sapphire_zone/Linkshell/LinkshellMgr.h index dedd3c70..5597dc74 100644 --- a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.h +++ b/src/servers/sapphire_zone/Linkshell/LinkshellMgr.h @@ -4,7 +4,7 @@ #include #include -namespace Core +namespace Sapphire { class Linkshell; diff --git a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp index 95ae01a3..bcb0a2ce 100644 --- a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp +++ b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp @@ -10,16 +10,16 @@ #include -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Core::Entity::Player& player, uint32_t landId, uint16_t param ) +void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param ) { // check if we have one in the db first - auto terriMgr = g_fw.get< Core::TerritoryMgr >(); + auto terriMgr = g_fw.get< Sapphire::TerritoryMgr >(); if( !terriMgr ) return; - Core::ZonePtr destinationZone; + Sapphire::ZonePtr destinationZone; auto terriPos = terriMgr->getTerritoryPosition( landId ); if( terriPos ) @@ -27,7 +27,7 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Core::Ent // check if its a housing zone, zoning is different here if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) ) { - auto housingMgr = g_fw.get< Core::HousingMgr >(); + auto housingMgr = g_fw.get< Sapphire::HousingMgr >(); auto landSetId = housingMgr->toLandSetId( terriPos->getTargetZoneId(), param ); auto housingZone = housingMgr->getHousingZoneByLandSetId( landSetId ); diff --git a/src/servers/sapphire_zone/Manager/PlayerMgr.h b/src/servers/sapphire_zone/Manager/PlayerMgr.h index f25ba192..37592972 100644 --- a/src/servers/sapphire_zone/Manager/PlayerMgr.h +++ b/src/servers/sapphire_zone/Manager/PlayerMgr.h @@ -5,6 +5,6 @@ namespace Sapphire::World::Manager class PlayerMgr { public: - void movePlayerToLandDestination( Core::Entity::Player& player, uint32_t landId, uint16_t param = 0 ); + void movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param = 0 ); }; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Manager/ShopMgr.cpp b/src/servers/sapphire_zone/Manager/ShopMgr.cpp index 78173a1f..bc37488c 100644 --- a/src/servers/sapphire_zone/Manager/ShopMgr.cpp +++ b/src/servers/sapphire_zone/Manager/ShopMgr.cpp @@ -5,8 +5,8 @@ #include #include -extern Core::Framework g_fw; -using namespace Core; +extern Sapphire::Framework g_fw; +using namespace Sapphire; bool Sapphire::World::Manager::ShopMgr::purchaseGilShopItem( Entity::Player& player, uint32_t shopId, uint16_t itemId, uint32_t quantity ) { diff --git a/src/servers/sapphire_zone/Manager/ShopMgr.h b/src/servers/sapphire_zone/Manager/ShopMgr.h index 8ec5de4d..17f3c55f 100644 --- a/src/servers/sapphire_zone/Manager/ShopMgr.h +++ b/src/servers/sapphire_zone/Manager/ShopMgr.h @@ -5,6 +5,6 @@ namespace Sapphire::World::Manager class ShopMgr { public: - bool purchaseGilShopItem( Core::Entity::Player& player, uint32_t shopId, uint16_t itemId, uint32_t quantity ); + bool purchaseGilShopItem( Sapphire::Entity::Player& player, uint32_t shopId, uint16_t itemId, uint32_t quantity ); }; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Math/CalcBattle.cpp b/src/servers/sapphire_zone/Math/CalcBattle.cpp index a3be3bed..9578dc7b 100644 --- a/src/servers/sapphire_zone/Math/CalcBattle.cpp +++ b/src/servers/sapphire_zone/Math/CalcBattle.cpp @@ -10,10 +10,10 @@ #include "CalcBattle.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Math; -using namespace Core::Entity; +using namespace Sapphire::Math; +using namespace Sapphire::Entity; /* Class used for battle-related formulas and calculations. @@ -34,8 +34,8 @@ using namespace Core::Entity; uint32_t CalcBattle::calculateHealValue( PlayerPtr pPlayer, uint32_t potency ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto classInfo = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); - auto paramGrowthInfo = pExdData->get< Core::Data::ParamGrow >( pPlayer->getLevel() ); + auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); + auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( pPlayer->getLevel() ); if( !classInfo || !paramGrowthInfo ) return 0; diff --git a/src/servers/sapphire_zone/Math/CalcBattle.h b/src/servers/sapphire_zone/Math/CalcBattle.h index 36f33c77..d34bbe01 100644 --- a/src/servers/sapphire_zone/Math/CalcBattle.h +++ b/src/servers/sapphire_zone/Math/CalcBattle.h @@ -4,13 +4,13 @@ #include #include "Forwards.h" -namespace Core::Math +namespace Sapphire::Math { class CalcBattle { public: - static uint32_t calculateHealValue( Core::Entity::PlayerPtr pPlayer, uint32_t potency ); + static uint32_t calculateHealValue( Sapphire::Entity::PlayerPtr pPlayer, uint32_t potency ); }; diff --git a/src/servers/sapphire_zone/Math/CalcStats.cpp b/src/servers/sapphire_zone/Math/CalcStats.cpp index 966d50df..7ef9f876 100644 --- a/src/servers/sapphire_zone/Math/CalcStats.cpp +++ b/src/servers/sapphire_zone/Math/CalcStats.cpp @@ -10,10 +10,10 @@ #include "CalcStats.h" #include "Framework.h" -using namespace Core::Math; -using namespace Core::Entity; +using namespace Sapphire::Math; +using namespace Sapphire::Entity; -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; /* Class used for battle-related formulas and calculations. @@ -64,8 +64,8 @@ uint32_t CalcStats::calculateMaxHp( PlayerPtr pPlayer ) // Is there any way to pull reliable BaseHP without having to manually use a pet for every level, and using the values from a table? // More info here: https://docs.google.com/spreadsheets/d/1de06KGT0cNRUvyiXNmjNgcNvzBCCQku7jte5QxEQRbs/edit?usp=sharing - auto classInfo = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); - auto paramGrowthInfo = pExdData->get< Core::Data::ParamGrow >( pPlayer->getLevel() ); + auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); + auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( pPlayer->getLevel() ); if( !classInfo || !paramGrowthInfo ) return 0; @@ -99,8 +99,8 @@ uint32_t CalcStats::calculateMaxHp( PlayerPtr pPlayer ) uint32_t CalcStats::calculateMaxMp( PlayerPtr pPlayer ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto classInfo = pExdData->get< Core::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); - auto paramGrowthInfo = pExdData->get< Core::Data::ParamGrow >( pPlayer->getLevel() ); + auto classInfo = pExdData->get< Sapphire::Data::ClassJob >( static_cast< uint8_t >( pPlayer->getClass() ) ); + auto paramGrowthInfo = pExdData->get< Sapphire::Data::ParamGrow >( pPlayer->getLevel() ); if( !classInfo || !paramGrowthInfo ) return 0; diff --git a/src/servers/sapphire_zone/Math/CalcStats.h b/src/servers/sapphire_zone/Math/CalcStats.h index 9e19477c..745900db 100644 --- a/src/servers/sapphire_zone/Math/CalcStats.h +++ b/src/servers/sapphire_zone/Math/CalcStats.h @@ -4,17 +4,17 @@ #include #include "Forwards.h" -namespace Core::Math +namespace Sapphire::Math { class CalcStats { public: - static float calculateBaseStat( Core::Entity::PlayerPtr pPlayer ); + static float calculateBaseStat( Sapphire::Entity::PlayerPtr pPlayer ); - static uint32_t calculateMaxMp( Core::Entity::PlayerPtr pPlayer ); + static uint32_t calculateMaxMp( Sapphire::Entity::PlayerPtr pPlayer ); - static uint32_t calculateMaxHp( Core::Entity::PlayerPtr pPlayer ); + static uint32_t calculateMaxHp( Sapphire::Entity::PlayerPtr pPlayer ); private: diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index 71028d7a..acc5296c 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -20,16 +20,17 @@ #include "Framework.h" #include "Forwards.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, - Core::Network::AcceptorPtr pAcceptor ) - : - Connection( pHive ), m_pAcceptor( pAcceptor ), m_conType( ConnectionType::None ) +Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pHive, + Sapphire::Network::AcceptorPtr pAcceptor ) : + Connection( pHive ), + m_pAcceptor( pAcceptor ), + m_conType( ConnectionType::None ) { auto setZoneHandler = [ = ]( uint16_t opcode, std::string handlerName, GameConnection::Handler pHandler ) { @@ -124,11 +125,11 @@ Core::Network::GameConnection::GameConnection( Core::Network::HivePtr pHive, } -Core::Network::GameConnection::~GameConnection() = default; +Sapphire::Network::GameConnection::~GameConnection() = default; // overwrite the parents onConnect for our game socket needs -void Core::Network::GameConnection::OnAccept( const std::string& host, uint16_t port ) +void Sapphire::Network::GameConnection::OnAccept( const std::string& host, uint16_t port ) { GameConnectionPtr connection( new GameConnection( m_hive, m_pAcceptor ) ); m_pAcceptor->Accept( connection ); @@ -137,14 +138,14 @@ void Core::Network::GameConnection::OnAccept( const std::string& host, uint16_t } -void Core::Network::GameConnection::OnDisconnect() +void Sapphire::Network::GameConnection::OnDisconnect() { auto pLog = g_fw.get< Logger >(); pLog->debug( "GameConnection DISCONNECT" ); m_pSession = nullptr; } -void Core::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) +void Sapphire::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) { // This is assumed packet always start with valid FFXIVARR_PACKET_HEADER for now. auto pLog = g_fw.get< Logger >(); @@ -188,23 +189,23 @@ void Core::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) handlePackets( packetHeader, packetList ); } -void Core::Network::GameConnection::OnError( const asio::error_code& error ) +void Sapphire::Network::GameConnection::OnError( const asio::error_code& error ) { auto pLog = g_fw.get< Logger >(); pLog->debug( "GameConnection ERROR: " + error.message() ); } -void Core::Network::GameConnection::queueInPacket( Core::Network::Packets::FFXIVARR_PACKET_RAW inPacket ) +void Sapphire::Network::GameConnection::queueInPacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW inPacket ) { m_inQueue.push( inPacket ); } -void Core::Network::GameConnection::queueOutPacket( Core::Network::Packets::FFXIVPacketBasePtr outPacket ) +void Sapphire::Network::GameConnection::queueOutPacket( Sapphire::Network::Packets::FFXIVPacketBasePtr outPacket ) { m_outQueue.push( outPacket ); } -void Core::Network::GameConnection::handleZonePacket( Core::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ) +void Sapphire::Network::GameConnection::handleZonePacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ) { auto pLog = g_fw.get< Logger >(); uint16_t opcode = *reinterpret_cast< uint16_t* >( &pPacket.data[ 0x02 ] ); @@ -235,7 +236,7 @@ void Core::Network::GameConnection::handleZonePacket( Core::Network::Packets::FF } -void Core::Network::GameConnection::handleChatPacket( Core::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ) +void Sapphire::Network::GameConnection::handleChatPacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ) { auto pLog = g_fw.get< Logger >(); uint16_t opcode = *reinterpret_cast< uint16_t* >( &pPacket.data[ 0x02 ] ); @@ -262,7 +263,7 @@ void Core::Network::GameConnection::handleChatPacket( Core::Network::Packets::FF } } -void Core::Network::GameConnection::handlePacket( Core::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ) +void Sapphire::Network::GameConnection::handlePacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ) { if( !m_pSession ) return; @@ -283,7 +284,7 @@ void Core::Network::GameConnection::handlePacket( Core::Network::Packets::FFXIVA } -void Core::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket ) +void Sapphire::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket ) { //g_log.Log(LoggingSeverity::info, pPacket->toString()); std::vector< uint8_t > sendBuffer; @@ -292,7 +293,7 @@ void Core::Network::GameConnection::sendPackets( Packets::PacketContainer* pPack Send( sendBuffer ); } -void Core::Network::GameConnection::processInQueue() +void Sapphire::Network::GameConnection::processInQueue() { // handle the incoming game packets while( m_inQueue.size() ) @@ -302,7 +303,7 @@ void Core::Network::GameConnection::processInQueue() } } -void Core::Network::GameConnection::processOutQueue() +void Sapphire::Network::GameConnection::processOutQueue() { auto pLog = g_fw.get< Logger >(); if( m_outQueue.size() < 1 ) @@ -335,14 +336,14 @@ void Core::Network::GameConnection::processOutQueue() } -void Core::Network::GameConnection::sendSinglePacket( Core::Network::Packets::FFXIVPacketBasePtr pPacket ) +void Sapphire::Network::GameConnection::sendSinglePacket( Sapphire::Network::Packets::FFXIVPacketBasePtr pPacket ) { PacketContainer pRP = PacketContainer(); pRP.addPacket( pPacket ); sendPackets( &pRP ); } -void Core::Network::GameConnection::injectPacket( const std::string& packetpath, Core::Entity::Player& player ) +void Sapphire::Network::GameConnection::injectPacket( const std::string& packetpath, Sapphire::Entity::Player& player ) { char packet[0x11570]; @@ -392,8 +393,8 @@ void Core::Network::GameConnection::injectPacket( const std::string& packetpath, } } -void Core::Network::GameConnection::handlePackets( const Core::Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, - const std::vector< Core::Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) +void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, + const std::vector< Sapphire::Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) { auto pLog = g_fw.get< Logger >(); auto pServerZone = g_fw.get< ServerMgr >(); diff --git a/src/servers/sapphire_zone/Network/GameConnection.h b/src/servers/sapphire_zone/Network/GameConnection.h index 9ab043f2..3efbdde5 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.h +++ b/src/servers/sapphire_zone/Network/GameConnection.h @@ -9,14 +9,14 @@ #include "ForwardsZone.h" -#define DECLARE_HANDLER( x ) void x( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) +#define DECLARE_HANDLER( x ) void x( const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) -namespace Core::Network::Packets +namespace Sapphire::Network::Packets { class GamePacket; } -namespace Core::Network +namespace Sapphire::Network { enum ConnectionType : uint8_t @@ -31,7 +31,7 @@ namespace Core::Network { private: - typedef void ( GameConnection::* Handler )( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + typedef void ( GameConnection::* Handler )( const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ); using HandlerMap = std::map< uint16_t, Handler >; @@ -49,7 +49,7 @@ namespace Core::Network SessionPtr m_pSession; - LockedQueue< Core::Network::Packets::FFXIVARR_PACKET_RAW > m_inQueue; + LockedQueue< Sapphire::Network::Packets::FFXIVARR_PACKET_RAW > m_inQueue; LockedQueue< Packets::FFXIVPacketBasePtr > m_outQueue; public: @@ -71,7 +71,7 @@ namespace Core::Network void handlePackets( const Packets::FFXIVARR_PACKET_HEADER& ipcHeader, const std::vector< Packets::FFXIVARR_PACKET_RAW >& packetData ); - void queueInPacket( Core::Network::Packets::FFXIVARR_PACKET_RAW inPacket ); + void queueInPacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW inPacket ); void queueOutPacket( Packets::FFXIVPacketBasePtr outPacket ); @@ -79,15 +79,15 @@ namespace Core::Network void processOutQueue(); - void handlePacket( Core::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ); + void handlePacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ); - void handleZonePacket( Core::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ); + void handleZonePacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ); - void handleChatPacket( Core::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ); + void handleChatPacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& pPacket ); void sendPackets( Packets::PacketContainer* pPacket ); - void sendSinglePacket( Core::Network::Packets::FFXIVPacketBasePtr pPacket ); + void sendSinglePacket( Sapphire::Network::Packets::FFXIVPacketBasePtr pPacket ); void injectPacket( const std::string& packetpath, Entity::Player& player ); diff --git a/src/servers/sapphire_zone/Network/Handlers/ActionHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ActionHandler.cpp index dab257f2..b6e4f1db 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ActionHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ActionHandler.cpp @@ -28,15 +28,15 @@ #include "Session.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -void Core::Network::GameConnection::actionHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::actionHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcSkillHandler >( inPacket ); @@ -59,7 +59,7 @@ void Core::Network::GameConnection::actionHandler( const Packets::FFXIVARR_PACKE std::string actionIdStr = Util::intToHexString( action, 4 ); player.sendDebug( "---------------------------------------" ); player.sendDebug( "ActionHandler ( " + actionIdStr + " | " + - pExdData->get< Core::Data::Action >( action )->name + + pExdData->get< Sapphire::Data::Action >( action )->name + " | " + std::to_string( targetId ) + " )" ); player.queuePacket( makeActorControl142( player.getId(), ActorControlType::ActionStart, 0x01, action ) ); @@ -74,7 +74,7 @@ void Core::Network::GameConnection::actionHandler( const Packets::FFXIVARR_PACKE } else { - Core::Entity::ActorPtr targetActor = player.getAsPlayer(); + Sapphire::Entity::ActorPtr targetActor = player.getAsPlayer(); if( targetId != player.getId() ) { @@ -108,7 +108,7 @@ void Core::Network::GameConnection::actionHandler( const Packets::FFXIVARR_PACKE } else if( action < 3000000 ) // item action { - auto info = pExdData->get< Core::Data::EventItem >( action ); + auto info = pExdData->get< Sapphire::Data::EventItem >( action ); if( info ) { pScriptMgr->onEventItem( player, action, info->quest, info->castTime, targetId ); diff --git a/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp index df03db4f..8727bfb9 100644 --- a/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp @@ -16,15 +16,15 @@ #include "Session.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -void Core::Network::GameConnection::cfDutyInfoRequest( const Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::cfDutyInfoRequest( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto dutyInfoPacket = makeZonePacket< FFXIVIpcCFDutyInfo >( player.getId() ); auto penaltyMinutes = player.getCFPenaltyMinutes(); @@ -41,7 +41,7 @@ void Core::Network::GameConnection::cfDutyInfoRequest( const Packets::FFXIVARR_P } -void Core::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { Packets::FFXIVARR_PACKET_RAW copy = inPacket; @@ -73,7 +73,7 @@ void Core::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_PACK cfCancelPacket->data().state2 = 1; // Your registration is withdrawn. queueOutPacket( cfCancelPacket ); - auto cfCondition = pExdData->get< Core::Data::ContentFinderCondition >( contentId ); + auto cfCondition = pExdData->get< Sapphire::Data::ContentFinderCondition >( contentId ); if( !cfCondition ) return; @@ -89,7 +89,7 @@ void Core::Network::GameConnection::cfRegisterDuty( const Packets::FFXIVARR_PACK player.setInstance( instance ); } -void Core::Network::GameConnection::cfRegisterRoulette( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::cfRegisterRoulette( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); @@ -100,7 +100,7 @@ void Core::Network::GameConnection::cfRegisterRoulette( const Packets::FFXIVARR_ player.sendDebug( "Roulette register" ); } -void Core::Network::GameConnection::cfDutyAccepted( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::cfDutyAccepted( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { player.sendDebug( "TODO: Duty accept" ); diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 7e06e9fa..f1be2d0c 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -36,18 +36,18 @@ #include "Framework.h" #include -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -void examineHandler( Core::Entity::Player& player, uint32_t targetId ) +void examineHandler( Sapphire::Entity::Player& player, uint32_t targetId ) { - using namespace Core; + using namespace Sapphire; - auto pSession = g_fw.get< Core::ServerMgr >()->getSession( targetId ); + auto pSession = g_fw.get< Sapphire::ServerMgr >()->getSession( targetId ); if( pSession ) { auto pTarget = pSession->getPlayer(); @@ -65,7 +65,7 @@ void examineHandler( Core::Entity::Player& player, uint32_t targetId ) } } -void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); diff --git a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp index ffb3124a..f02ea7ef 100644 --- a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp @@ -26,14 +26,14 @@ #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -void Core::Network::GameConnection::eventHandlerTalk( const Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::eventHandlerTalk( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -66,7 +66,7 @@ void Core::Network::GameConnection::eventHandlerTalk( const Packets::FFXIVARR_PA else if( !pScriptMgr->onTalk( player, actorId, eventId ) && eventType == Event::EventHandler::EventHandlerType::Quest ) { - auto questInfo = pExdData->get< Core::Data::Quest >( eventId ); + auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); if( questInfo ) player.sendUrgent( "Quest not implemented: " + questInfo->name + " (" + questInfo->id + ")" ); } @@ -75,7 +75,7 @@ void Core::Network::GameConnection::eventHandlerTalk( const Packets::FFXIVARR_PA } -void Core::Network::GameConnection::eventHandlerEmote( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerEmote( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { @@ -106,7 +106,7 @@ void Core::Network::GameConnection::eventHandlerEmote( const Packets::FFXIVARR_P if( !pScriptMgr->onEmote( player, actorId, eventId, static_cast< uint8_t >( emoteId ) ) && eventType == Event::EventHandler::EventHandlerType::Quest ) { - auto questInfo = pExdData->get< Core::Data::Quest >( eventId ); + auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); if( questInfo ) player.sendUrgent( "Quest not implemented: " + questInfo->name ); } @@ -114,7 +114,7 @@ void Core::Network::GameConnection::eventHandlerEmote( const Packets::FFXIVARR_P player.checkEvent( eventId ); } -void Core::Network::GameConnection::eventHandlerWithinRange( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerWithinRange( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); @@ -137,7 +137,7 @@ void Core::Network::GameConnection::eventHandlerWithinRange( const Packets::FFXI player.checkEvent( eventId ); } -void Core::Network::GameConnection::eventHandlerOutsideRange( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerOutsideRange( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); @@ -159,7 +159,7 @@ void Core::Network::GameConnection::eventHandlerOutsideRange( const Packets::FFX player.checkEvent( eventId ); } -void Core::Network::GameConnection::eventHandlerEnterTerritory( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerEnterTerritory( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); @@ -190,7 +190,7 @@ void Core::Network::GameConnection::eventHandlerEnterTerritory( const Packets::F player.checkEvent( eventId ); } -void Core::Network::GameConnection::eventHandlerReturn( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerReturn( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcEventHandlerReturn >( inPacket ); @@ -239,7 +239,7 @@ void Core::Network::GameConnection::eventHandlerReturn( const Packets::FFXIVARR_ } -void Core::Network::GameConnection::eventHandlerLinkshell( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerLinkshell( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcLinkshellEventHandler >( inPacket ); @@ -253,7 +253,7 @@ void Core::Network::GameConnection::eventHandlerLinkshell( const Packets::FFXIVA } -void Core::Network::GameConnection::eventHandlerShop( const Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::eventHandlerShop( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcShopEventHandler >( inPacket ); diff --git a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp index 54507a44..a6beaf1d 100644 --- a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp @@ -32,12 +32,12 @@ #include "ServerMgr.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; enum GmCommand { @@ -87,7 +87,7 @@ enum GmCommand JumpNpc = 0x025F, }; -void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) +void Sapphire::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { if( player.getGmRank() <= 0 ) return; @@ -106,7 +106,7 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R std::to_string( param2 ) + ", " + std::to_string( param3 ) + ", " + std::to_string( param4 ) + ", target: " + std::to_string( target ) ); - Core::Entity::ActorPtr targetActor; + Sapphire::Entity::ActorPtr targetActor; if( player.getId() == target ) @@ -471,7 +471,7 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R for( auto i : idList ) { - auto data = pExdData->get< Core::Data::Aetheryte >( i ); + auto data = pExdData->get< Sapphire::Data::Aetheryte >( i ); if( !data ) { @@ -545,7 +545,7 @@ void Core::Network::GameConnection::gm1Handler( const Packets::FFXIVARR_PACKET_R } -void Core::Network::GameConnection::gm2Handler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) +void Sapphire::Network::GameConnection::gm2Handler( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { if( player.getGmRank() <= 0 ) return; @@ -568,7 +568,7 @@ void Core::Network::GameConnection::gm2Handler( const Packets::FFXIVARR_PACKET_R ", target: " + target ); auto targetSession = pServerZone->getSession( target ); - Core::Entity::CharaPtr targetActor; + Sapphire::Entity::CharaPtr targetActor; if( targetSession != nullptr ) { diff --git a/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp index d518432b..a0925f98 100644 --- a/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp @@ -19,14 +19,14 @@ #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -void Core::Network::GameConnection::inventoryModifyHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::inventoryModifyHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcInventoryModifyHandler >( inPacket ); diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index e6cd8a16..3de70b02 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -46,15 +46,15 @@ #include "Forwards.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -void Core::Network::GameConnection::fcInfoReqHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::fcInfoReqHandler( const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { // TODO: use new packet struct for this //GamePacketPtr pPe( new GamePacket( 0xDD, 0x78, player.getId(), player.getId() ) ); @@ -62,8 +62,8 @@ void Core::Network::GameConnection::fcInfoReqHandler( const Core::Network::Packe //queueOutPacket( pPe ); } -void Core::Network::GameConnection::setSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::setSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcSetSearchInfo >( inPacket ); @@ -97,8 +97,8 @@ void Core::Network::GameConnection::setSearchInfoHandler( const Packets::FFXIVAR static_cast< uint8_t >( player.getOnlineStatus() ) ), true ); } -void Core::Network::GameConnection::reqSearchInfoHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::reqSearchInfoHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto searchInfoPacket = makeZonePacket< FFXIVIpcInitSearchInfo >( player.getId() ); searchInfoPacket->data().onlineStatusFlags = player.getOnlineStatusMask(); @@ -107,14 +107,14 @@ void Core::Network::GameConnection::reqSearchInfoHandler( const Core::Network::P queueOutPacket( searchInfoPacket ); } -void Core::Network::GameConnection::reqExamineSearchCommentHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::reqExamineSearchCommentHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x10 ] ); - auto pSession = g_fw.get< Core::ServerMgr >()->getSession( targetId ); + auto pSession = g_fw.get< Sapphire::ServerMgr >()->getSession( targetId ); - g_fw.get< Core::Logger >()->debug( std::to_string( targetId ) ); + g_fw.get< Sapphire::Logger >()->debug( std::to_string( targetId ) ); if( pSession ) { @@ -134,14 +134,14 @@ void Core::Network::GameConnection::reqExamineSearchCommentHandler( const Core:: } } -void Core::Network::GameConnection::reqExamineFcInfo( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::reqExamineFcInfo( const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x18 ] ); - auto pSession = g_fw.get< Core::ServerMgr >()->getSession( targetId ); + auto pSession = g_fw.get< Sapphire::ServerMgr >()->getSession( targetId ); - g_fw.get< Core::Logger >()->debug( std::to_string( targetId ) ); + g_fw.get< Sapphire::Logger >()->debug( std::to_string( targetId ) ); if( pSession ) { @@ -162,15 +162,15 @@ void Core::Network::GameConnection::reqExamineFcInfo( const Core::Network::Packe } } -void Core::Network::GameConnection::linkshellListHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::linkshellListHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto linkshellListPacket = makeZonePacket< FFXIVIpcLinkshellList >( player.getId() ); queueOutPacket( linkshellListPacket ); } -void Core::Network::GameConnection::updatePositionHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::updatePositionHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { // if the player is marked for zoning we no longer want to update his pos if( player.isMarkedForZoning() ) @@ -305,16 +305,16 @@ void Core::Network::GameConnection::updatePositionHandler( const Core::Network:: } void -Core::Network::GameConnection::reqEquipDisplayFlagsHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +Sapphire::Network::GameConnection::reqEquipDisplayFlagsHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { player.setEquipDisplayFlags( inPacket.data[ 0x10 ] ); player.sendDebug( "EquipDisplayFlag CHANGE: " + std::to_string( player.getEquipDisplayFlags() ) ); } -void Core::Network::GameConnection::zoneLineHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::zoneLineHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -359,8 +359,8 @@ void Core::Network::GameConnection::zoneLineHandler( const Core::Network::Packet } -void Core::Network::GameConnection::discoveryHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::discoveryHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcDiscoveryHandler >( inPacket ); const auto positionRef = packet.data().positionRef; @@ -389,8 +389,8 @@ void Core::Network::GameConnection::discoveryHandler( const Core::Network::Packe } -void Core::Network::GameConnection::playTimeHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::playTimeHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto playTimePacket = makeZonePacket< FFXIVIpcPlayTime >( player.getId() ); playTimePacket->data().playTimeInMinutes = player.getPlayTime() / 60; @@ -398,8 +398,8 @@ void Core::Network::GameConnection::playTimeHandler( const Core::Network::Packet } -void Core::Network::GameConnection::initHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::initHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { // init handler means this is a login procedure player.setIsLogin( true ); @@ -408,8 +408,8 @@ void Core::Network::GameConnection::initHandler( const Core::Network::Packets::F } -void Core::Network::GameConnection::blackListHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::blackListHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { uint8_t count = inPacket.data[ 0x11 ]; @@ -423,8 +423,8 @@ void Core::Network::GameConnection::blackListHandler( const Core::Network::Packe } -void Core::Network::GameConnection::pingHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::pingHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcPingHandler >( inPacket ); @@ -434,8 +434,8 @@ void Core::Network::GameConnection::pingHandler( const Core::Network::Packets::F } -void Core::Network::GameConnection::finishLoadingHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::finishLoadingHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { player.sendQuestInfo(); @@ -467,8 +467,8 @@ void Core::Network::GameConnection::finishLoadingHandler( const Core::Network::P player.getCurrentZone()->updateActorPosition( player ); } -void Core::Network::GameConnection::socialListHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::socialListHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { uint8_t type = inPacket.data[ 0x1A ]; @@ -524,8 +524,8 @@ void Core::Network::GameConnection::socialListHandler( const Core::Network::Pack } -void Core::Network::GameConnection::chatHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::chatHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto pDebugCom = g_fw.get< DebugCommandHandler >(); @@ -582,8 +582,8 @@ void Core::Network::GameConnection::chatHandler( const Core::Network::Packets::F // currently we wait for the session to just time out after logout, this can be a problem is the user tries to // log right back in. // Also the packet needs to be converted to an ipc structure -void Core::Network::GameConnection::logoutHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::logoutHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto logoutPacket = makeZonePacket< FFXIVIpcLogout >( player.getId() ); logoutPacket->data().flags1 = 0x02; @@ -594,8 +594,8 @@ void Core::Network::GameConnection::logoutHandler( const Core::Network::Packets: } -void Core::Network::GameConnection::tellHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::tellHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcTellHandler >( inPacket ); @@ -645,16 +645,16 @@ void Core::Network::GameConnection::tellHandler( const Core::Network::Packets::F } -void Core::Network::GameConnection::performNoteHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::performNoteHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { auto performPacket = makeZonePacket< FFXIVIpcPerformNote >( player.getId() ); memcpy( &performPacket->data().data[ 0 ], &inPacket.data[ 0x10 ], 32 ); player.sendToInRangeSet( performPacket ); } -void Core::Network::GameConnection::landRenameHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::landRenameHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcRenameLandHandler >( inPacket ); @@ -686,8 +686,8 @@ void Core::Network::GameConnection::landRenameHandler( const Core::Network::Pack player.queuePacket( nameUpdatePacket ); } -void Core::Network::GameConnection::buildPresetHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::buildPresetHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket ); @@ -695,8 +695,8 @@ void Core::Network::GameConnection::buildPresetHandler( const Core::Network::Pac pHousingMgr->buildPresetEstate( player, packet.data().plotNum, packet.data().itemId ); } -void Core::Network::GameConnection::housingUpdateGreetingHandler( const Core::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, - Entity::Player& player ) +void Sapphire::Network::GameConnection::housingUpdateGreetingHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) { const auto packet = ZoneChannelPacket< Client::FFXIVIpcHousingUpdateHouseGreeting >( inPacket ); diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket142.h b/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket142.h index a68ac4f5..13981adb 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket142.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket142.h @@ -5,7 +5,7 @@ #include #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket143.h b/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket143.h index e920ef15..af71bf02 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket143.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket143.h @@ -6,7 +6,7 @@ #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket144.h b/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket144.h index 8950cff9..02d12b77 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket144.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ActorControlPacket144.h @@ -4,7 +4,7 @@ #include #include -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ChatPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/ChatPacket.h index 08e2394e..ef77fe1a 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ChatPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ChatPacket.h @@ -6,7 +6,7 @@ #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/DirectorPlayScenePacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/DirectorPlayScenePacket.h index 268279bf..e7f1698b 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/DirectorPlayScenePacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/DirectorPlayScenePacket.h @@ -4,7 +4,7 @@ #include #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/EffectPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/EffectPacket.h index ddc48343..694cefc8 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/EffectPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/EffectPacket.h @@ -8,7 +8,7 @@ #include #include -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { class EffectPacket : public ZoneChannelPacket< FFXIVIpcEffect > diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/EventFinishPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/EventFinishPacket.h index d6de2a35..aa9b78f0 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/EventFinishPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/EventFinishPacket.h @@ -3,7 +3,7 @@ #include -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/EventPlayPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/EventPlayPacket.h index 748946d7..b434666f 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/EventPlayPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/EventPlayPacket.h @@ -4,7 +4,7 @@ #include #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/EventStartPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/EventStartPacket.h index 935693fc..8fd9223e 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/EventStartPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/EventStartPacket.h @@ -4,7 +4,7 @@ #include #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ExaminePacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/ExaminePacket.h index dd446296..463b884d 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ExaminePacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ExaminePacket.h @@ -10,7 +10,7 @@ #include "StatusEffect/StatusEffect.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/InitUIPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/InitUIPacket.h index a6a7b186..91fa6c59 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/InitUIPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/InitUIPacket.h @@ -6,7 +6,7 @@ #include "Actor/Player.h" #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h index 1cbed7b7..76fcda43 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ModelEquipPacket.h @@ -5,7 +5,7 @@ #include "Actor/Player.h" #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h index eb228045..7a3f05a7 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h @@ -8,7 +8,7 @@ #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h index 5b538b36..7975ac87 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h @@ -10,7 +10,7 @@ #include "Inventory/Item.h" #include "StatusEffect/StatusEffect.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** @@ -106,7 +106,7 @@ namespace Core::Network::Packets::Server //m_data.unknown_61 = 7; - uint64_t currentTimeMs = Core::Util::getTimeMs(); + uint64_t currentTimeMs = Sapphire::Util::getTimeMs(); for( auto const& effect : bnpc.getStatusEffectMap() ) { diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/PingPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/PingPacket.h index 44330d62..50c77337 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/PingPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/PingPacket.h @@ -5,7 +5,7 @@ #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h index 36c4cabd..2e871336 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h @@ -9,7 +9,7 @@ #include "Inventory/Item.h" #include "StatusEffect/StatusEffect.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** @@ -97,22 +97,22 @@ namespace Core::Network::Packets::Server m_data.displayFlags |= static_cast< uint16_t >( Common::DisplayFlags::Invisible ); } - if( player.getEquipDisplayFlags() & Core::Common::EquipDisplayFlags::HideHead ) + if( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideHead ) { m_data.displayFlags |= static_cast< uint16_t >( Common::DisplayFlags::HideHead ); } - if( player.getEquipDisplayFlags() & Core::Common::EquipDisplayFlags::HideWeapon ) + if( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideWeapon ) { m_data.displayFlags |= static_cast< uint16_t >( Common::DisplayFlags::HideWeapon ); } - if( player.getEquipDisplayFlags() & Core::Common::EquipDisplayFlags::Visor ) + if( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::Visor ) { m_data.displayFlags |= static_cast< uint16_t >( Common::DisplayFlags::Visor ); } - if( !( player.getEquipDisplayFlags() & Core::Common::EquipDisplayFlags::HideLegacyMark ) ) + if( !( player.getEquipDisplayFlags() & Sapphire::Common::EquipDisplayFlags::HideLegacyMark ) ) { m_data.look[ 0xC ] = m_data.look[ 0xC ] | 1 << 7; } @@ -127,7 +127,7 @@ namespace Core::Network::Packets::Server //m_data.unknown_60 = 3; //m_data.unknown_61 = 7; - uint64_t currentTimeMs = Core::Util::getTimeMs(); + uint64_t currentTimeMs = Sapphire::Util::getTimeMs(); for( auto const& effect : player.getStatusEffectMap() ) { diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/PlayerStateFlagsPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/PlayerStateFlagsPacket.h index e7ce2c8f..f68fb69f 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/PlayerStateFlagsPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/PlayerStateFlagsPacket.h @@ -5,7 +5,7 @@ #include "Actor/Player.h" #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/QuestMessagePacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/QuestMessagePacket.h index 059b5596..d00a9cf1 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/QuestMessagePacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/QuestMessagePacket.h @@ -5,7 +5,7 @@ #include "Actor/Player.h" #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/ServerNoticePacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/ServerNoticePacket.h index 933cce0e..ccf10662 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/ServerNoticePacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/ServerNoticePacket.h @@ -5,7 +5,7 @@ #include #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/UpdateHpMpTpPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/UpdateHpMpTpPacket.h index 64957ce7..54d8e349 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/UpdateHpMpTpPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/UpdateHpMpTpPacket.h @@ -5,7 +5,7 @@ #include #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/UpdateInventorySlotPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/UpdateInventorySlotPacket.h index 289e0b05..312b7abf 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/UpdateInventorySlotPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/UpdateInventorySlotPacket.h @@ -6,7 +6,7 @@ #include "Inventory/Item.h" #include "Forwards.h" -namespace Core::Network::Packets::Server +namespace Sapphire::Network::Packets::Server { /** diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp index e4dc2e7e..49b78d9f 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp @@ -11,7 +11,7 @@ #define EXPORT __attribute__((visibility("default"))) #endif -using namespace Core; +using namespace Sapphire; namespace Sapphire::ScriptAPI { @@ -31,13 +31,13 @@ namespace Sapphire::ScriptAPI return m_type; } - void ScriptObject::setFramework( Core::Framework* fw ) + void ScriptObject::setFramework( Sapphire::Framework* fw ) { assert( fw ); m_framework = fw; } - Core::Framework* ScriptObject::getFramework() const + Sapphire::Framework* ScriptObject::getFramework() const { return m_framework; } @@ -96,7 +96,7 @@ namespace Sapphire::ScriptAPI { } - void ActionScript::onInterrupt( Entity::Chara& sourceActor/*, Core::Entity::Chara targetActor*/ ) + void ActionScript::onInterrupt( Entity::Chara& sourceActor/*, Sapphire::Entity::Chara targetActor*/ ) { } @@ -174,8 +174,8 @@ namespace Sapphire::ScriptAPI { } - void InstanceContentScript::onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1, - uint16_t param2 ) + void InstanceContentScript::onEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, + uint16_t param1, uint16_t param2 ) { } diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.h b/src/servers/sapphire_zone/Script/NativeScriptApi.h index d96f3022..05329528 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.h +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.h @@ -10,7 +10,7 @@ #define EXPORT __attribute__((visibility("default"))) #endif -namespace Core +namespace Sapphire { class Framework; } @@ -26,7 +26,7 @@ namespace Sapphire::ScriptAPI uint32_t m_id; std::size_t m_type; - Core::Framework* m_framework; + Sapphire::Framework* m_framework; public: /*! @@ -54,14 +54,14 @@ namespace Sapphire::ScriptAPI * * @param fw The ptr to g_fw (Core::Framework) */ - virtual void setFramework( Core::Framework* fw ); + virtual void setFramework( Sapphire::Framework* fw ); /*! * @brief Returns the current ptr to framework set for the current script * * @return A pointer to Core::Framework */ - virtual Core::Framework* getFramework() const; + virtual Sapphire::Framework* getFramework() const; }; @@ -78,28 +78,28 @@ namespace Sapphire::ScriptAPI * * @param actor the actor the status effect is ticking on */ - virtual void onTick( Core::Entity::Chara& actor ); + virtual void onTick( Sapphire::Entity::Chara& actor ); /*! * @brief Called when the status effect is applied to an actor * * @param actor the actor on which the status effect was applied to */ - virtual void onApply( Core::Entity::Chara& actor ); + virtual void onApply( Sapphire::Entity::Chara& actor ); /*! * @brief Called when the actor (usually a player) removes the status effect by right clicking it * * @param actor The actor on which the effect was removed from */ - virtual void onRemove( Core::Entity::Chara& actor ); + virtual void onRemove( Sapphire::Entity::Chara& actor ); /*! * @brief Called when the status effect expires * * @param actor The actor on which the efect expired on */ - virtual void onExpire( Core::Entity::Chara& actor ); + virtual void onExpire( Sapphire::Entity::Chara& actor ); /*! * @brief Called when the player with the status effect collides with another player, eg. hot potato @@ -107,28 +107,28 @@ namespace Sapphire::ScriptAPI * @param actor The actor which has status effect * @param actorHit The actor who collided with the status effect owner */ - virtual void onPlayerCollision( Core::Entity::Chara& actor, Core::Entity::Chara& actorHit ); + virtual void onPlayerCollision( Sapphire::Entity::Chara& actor, Sapphire::Entity::Chara& actorHit ); /*! * @brief Called when the owner finishes a cast * * @param actor The actor who finished a cast */ - virtual void onPlayerFinishCast( Core::Entity::Chara& actor ); + virtual void onPlayerFinishCast( Sapphire::Entity::Chara& actor ); /*! * @brief Called when the status effect owner was damaged * * @param actor The actor that was damaged */ - virtual void onPlayerDamaged( Core::Entity::Chara& actor ); + virtual void onPlayerDamaged( Sapphire::Entity::Chara& actor ); /*! * @brief Called when the status effect owner dies * * @param actor The actor that died */ - virtual void onPlayerDeath( Core::Entity::Chara& actor ); + virtual void onPlayerDeath( Sapphire::Entity::Chara& actor ); }; @@ -140,11 +140,11 @@ namespace Sapphire::ScriptAPI public: explicit ActionScript( uint32_t abilityId ); - virtual void onStart( Core::Entity::Chara& sourceActor, Core::Entity::Chara& targetActor ); + virtual void onStart( Sapphire::Entity::Chara& sourceActor, Sapphire::Entity::Chara& targetActor ); - virtual void onCastFinish( Core::Entity::Player& player, Core::Entity::Chara& targetActor ); + virtual void onCastFinish( Sapphire::Entity::Player& player, Sapphire::Entity::Chara& targetActor ); - virtual void onInterrupt( Core::Entity::Chara& sourceActor/*, Core::Entity::Chara targetActor*/ ); + virtual void onInterrupt( Sapphire::Entity::Chara& sourceActor/*, Sapphire::Entity::Chara targetActor*/ ); }; /*! @@ -155,7 +155,7 @@ namespace Sapphire::ScriptAPI { protected: template< typename Ret, class Obj > - inline std::function< void( Core::Entity::Player& ) > bindScene( Ret ( Obj::*f )( Core::Entity::Player& ) ) + inline std::function< void( Sapphire::Entity::Player& ) > bindScene( Ret ( Obj::*f )( Sapphire::Entity::Player& ) ) { return std::bind( f, static_cast< Obj* >( this ), std::placeholders::_1 ); } @@ -163,22 +163,22 @@ namespace Sapphire::ScriptAPI public: explicit EventScript( uint32_t questId ); - virtual void onTalk( uint32_t eventId, Core::Entity::Player& player, uint64_t actorId ); + virtual void onTalk( uint32_t eventId, Sapphire::Entity::Player& player, uint64_t actorId ); - virtual void onNpcKill( uint32_t npcId, Core::Entity::Player& player ); + virtual void onNpcKill( uint32_t npcId, Sapphire::Entity::Player& player ); - virtual void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Core::Entity::Player& player ); + virtual void onEmote( uint64_t actorId, uint32_t eventId, uint32_t emoteId, Sapphire::Entity::Player& player ); - virtual void onEnterTerritory( Core::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); + virtual void onEnterTerritory( Sapphire::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); - virtual void onWithinRange( Core::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); + virtual void onWithinRange( Sapphire::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); - virtual void onOutsideRange( Core::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); + virtual void onOutsideRange( Sapphire::Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ); virtual void - onEventItem( Core::Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ); + onEventItem( Sapphire::Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ); - virtual void onEventHandlerTradeReturn( Core::Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, + virtual void onEventHandlerTradeReturn( Sapphire::Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, uint32_t catalogId ); }; @@ -211,11 +211,11 @@ namespace Sapphire::ScriptAPI public: explicit InstanceContentScript( uint32_t instanceContentId ); - virtual void onInit( Core::InstanceContentPtr instance ); + virtual void onInit( Sapphire::InstanceContentPtr instance ); - virtual void onUpdate( Core::InstanceContentPtr instance, uint32_t currTime ); + virtual void onUpdate( Sapphire::InstanceContentPtr instance, uint32_t currTime ); - virtual void onEnterTerritory( Core::InstanceContentPtr instance, Core::Entity::Player& player, uint32_t eventId, + virtual void onEnterTerritory( Sapphire::InstanceContentPtr instance, Sapphire::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); }; diff --git a/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp b/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp index d7bd0139..9acdab8c 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/NativeScriptMgr.cpp @@ -4,128 +4,128 @@ #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -namespace Core { -namespace Scripting { - -bool NativeScriptMgr::loadScript( const std::string& path ) +namespace Sapphire::Scripting { - auto module = m_loader.loadModule( path ); - if( !module ) - return false; - auto scripts = m_loader.getScripts( module->handle ); - if( !scripts ) + bool NativeScriptMgr::loadScript( const std::string& path ) { - m_loader.unloadScript( module ); - return false; + auto module = m_loader.loadModule( path ); + if( !module ) + return false; + + auto scripts = m_loader.getScripts( module->handle ); + if( !scripts ) + { + m_loader.unloadScript( module ); + return false; + } + + // + bool success = false; + + for( int i = 0;; i++ ) + { + if( scripts[ i ] == nullptr ) + break; + + auto script = scripts[ i ]; + module->scripts.push_back( script ); + + script->setFramework( &g_fw ); + + m_scripts[ script->getType() ][ script->getId() ] = script; + + success = true; + } + + if( !success ) + { + m_loader.unloadScript( module->handle ); + return false; + } + + return true; } - // - bool success = false; - - for( int i = 0;; i++ ) + const std::string NativeScriptMgr::getModuleExtension() { - if( scripts[ i ] == nullptr ) - break; - - auto script = scripts[ i ]; - module->scripts.push_back( script ); - - script->setFramework( &g_fw ); - - m_scripts[ script->getType() ][ script->getId() ] = script; - - success = true; + return m_loader.getModuleExtension(); } - if( !success ) + bool NativeScriptMgr::unloadScript( const std::string& name ) { - m_loader.unloadScript( module->handle ); - return false; + auto info = m_loader.getScriptInfo( name ); + if( !info ) + return false; + + return unloadScript( info ); } - return true; -} - -const std::string NativeScriptMgr::getModuleExtension() -{ - return m_loader.getModuleExtension(); -} - -bool NativeScriptMgr::unloadScript( const std::string& name ) -{ - auto info = m_loader.getScriptInfo( name ); - if( !info ) - return false; - - return unloadScript( info ); -} - -bool NativeScriptMgr::unloadScript( ScriptInfo* info ) -{ - for( auto& script : info->scripts ) + bool NativeScriptMgr::unloadScript( ScriptInfo* info ) { - m_scripts[ script->getType() ].erase( script->getId() ); + for( auto& script : info->scripts ) + { + m_scripts[ script->getType() ].erase( script->getId() ); - delete script; + delete script; + } + + return m_loader.unloadScript( info ); } - return m_loader.unloadScript( info ); -} - -void NativeScriptMgr::queueScriptReload( const std::string& name ) -{ - auto info = m_loader.getScriptInfo( name ); - if( !info ) - return; - - // backup actual lib path - std::string libPath( info->library_path ); - - if( !unloadScript( info ) ) - return; - - m_scriptLoadQueue.push( libPath ); -} - -void NativeScriptMgr::processLoadQueue() -{ - std::vector< std::string > deferredLoads; - - while( !m_scriptLoadQueue.empty() ) + void NativeScriptMgr::queueScriptReload( const std::string& name ) { - auto item = m_scriptLoadQueue.front(); + auto info = m_loader.getScriptInfo( name ); + if( !info ) + return; - // if it fails, we defer the loading to the next tick - if( !loadScript( item ) ) - deferredLoads.push_back( item ); + // backup actual lib path + std::string libPath( info->library_path ); - m_scriptLoadQueue.pop(); + if( !unloadScript( info ) ) + return; + + m_scriptLoadQueue.push( libPath ); } - if( !deferredLoads.empty() ) + void NativeScriptMgr::processLoadQueue() { - for( auto& item : deferredLoads ) - m_scriptLoadQueue.push( item ); + std::vector< std::string > deferredLoads; + + while( !m_scriptLoadQueue.empty() ) + { + auto item = m_scriptLoadQueue.front(); + + // if it fails, we defer the loading to the next tick + if( !loadScript( item ) ) + deferredLoads.push_back( item ); + + m_scriptLoadQueue.pop(); + } + + if( !deferredLoads.empty() ) + { + for( auto& item : deferredLoads ) + m_scriptLoadQueue.push( item ); + } + } + + void NativeScriptMgr::findScripts( std::set< Sapphire::Scripting::ScriptInfo* >& scripts, const std::string& search ) + { + return m_loader.findScripts( scripts, search ); + } + + bool NativeScriptMgr::isModuleLoaded( const std::string& name ) + { + return m_loader.isModuleLoaded( name ); + } + + + std::shared_ptr< NativeScriptMgr > createNativeScriptMgr() + { + return std::make_shared< NativeScriptMgr >(); } } -void NativeScriptMgr::findScripts( std::set< Core::Scripting::ScriptInfo* >& scripts, const std::string& search ) -{ - return m_loader.findScripts( scripts, search ); -} - -bool NativeScriptMgr::isModuleLoaded( const std::string& name ) -{ - return m_loader.isModuleLoaded( name ); -} - - -std::shared_ptr< NativeScriptMgr > createNativeScriptMgr() -{ - return std::make_shared< NativeScriptMgr >(); -} -} -} diff --git a/src/servers/sapphire_zone/Script/NativeScriptMgr.h b/src/servers/sapphire_zone/Script/NativeScriptMgr.h index 5d326cef..6cfec934 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptMgr.h +++ b/src/servers/sapphire_zone/Script/NativeScriptMgr.h @@ -7,7 +7,7 @@ #include "ScriptLoader.h" -namespace Core::Scripting +namespace Sapphire::Scripting { /*! @@ -76,7 +76,7 @@ namespace Core::Scripting * @param scripts a set of ScriptInfo ptrs * @param search the search term */ - void findScripts( std::set< Core::Scripting::ScriptInfo* >& scripts, const std::string& search ); + void findScripts( std::set< Sapphire::Scripting::ScriptInfo* >& scripts, const std::string& search ); /*! * @brief Called on a regular interval, allows for scripts to be loaded from the internal load queue. diff --git a/src/servers/sapphire_zone/Script/ScriptInfo.h b/src/servers/sapphire_zone/Script/ScriptInfo.h index 2632c762..becec5f9 100644 --- a/src/servers/sapphire_zone/Script/ScriptInfo.h +++ b/src/servers/sapphire_zone/Script/ScriptInfo.h @@ -15,7 +15,7 @@ using ModuleHandle = HMODULE; using ModuleHandle = void*; #endif -namespace Core::Scripting +namespace Sapphire::Scripting { /*! diff --git a/src/servers/sapphire_zone/Script/ScriptLoader.cpp b/src/servers/sapphire_zone/Script/ScriptLoader.cpp index ec0f7966..c68083ea 100644 --- a/src/servers/sapphire_zone/Script/ScriptLoader.cpp +++ b/src/servers/sapphire_zone/Script/ScriptLoader.cpp @@ -9,11 +9,11 @@ #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; namespace fs = std::experimental::filesystem; -const std::string Core::Scripting::ScriptLoader::getModuleExtension() +const std::string Sapphire::Scripting::ScriptLoader::getModuleExtension() { #ifdef _WIN32 return ".dll"; @@ -24,7 +24,7 @@ const std::string Core::Scripting::ScriptLoader::getModuleExtension() #endif } -bool Core::Scripting::ScriptLoader::unloadModule( ModuleHandle handle ) +bool Sapphire::Scripting::ScriptLoader::unloadModule( ModuleHandle handle ) { #ifdef _WIN32 bool success = FreeLibrary( handle ) != 0; @@ -46,7 +46,7 @@ bool Core::Scripting::ScriptLoader::unloadModule( ModuleHandle handle ) return true; } -Core::Scripting::ScriptInfo* Core::Scripting::ScriptLoader::loadModule( const std::string& path ) +Sapphire::Scripting::ScriptInfo* Sapphire::Scripting::ScriptLoader::loadModule( const std::string& path ) { auto pLog = g_fw.get< Logger >(); auto pConfig = g_fw.get< ConfigMgr >(); @@ -101,7 +101,7 @@ Core::Scripting::ScriptInfo* Core::Scripting::ScriptLoader::loadModule( const st return info; } -Sapphire::ScriptAPI::ScriptObject** Core::Scripting::ScriptLoader::getScripts( ModuleHandle handle ) +Sapphire::ScriptAPI::ScriptObject** Sapphire::Scripting::ScriptLoader::getScripts( ModuleHandle handle ) { using getScripts = Sapphire::ScriptAPI::ScriptObject** ( * )(); auto pLog = g_fw.get< Logger >(); @@ -122,12 +122,12 @@ Sapphire::ScriptAPI::ScriptObject** Core::Scripting::ScriptLoader::getScripts( M return nullptr; } -bool Core::Scripting::ScriptLoader::unloadScript( Core::Scripting::ScriptInfo* info ) +bool Sapphire::Scripting::ScriptLoader::unloadScript( Sapphire::Scripting::ScriptInfo* info ) { return unloadScript( info->handle ); } -bool Core::Scripting::ScriptLoader::unloadScript( ModuleHandle handle ) +bool Sapphire::Scripting::ScriptLoader::unloadScript( ModuleHandle handle ) { auto pLog = g_fw.get< Logger >(); for( auto it = m_scriptMap.begin(); it != m_scriptMap.end(); ++it ) @@ -157,7 +157,7 @@ bool Core::Scripting::ScriptLoader::unloadScript( ModuleHandle handle ) return false; } -bool Core::Scripting::ScriptLoader::isModuleLoaded( std::string name ) +bool Sapphire::Scripting::ScriptLoader::isModuleLoaded( std::string name ) { for( auto it = m_scriptMap.begin(); it != m_scriptMap.end(); ++it ) { @@ -169,7 +169,7 @@ bool Core::Scripting::ScriptLoader::isModuleLoaded( std::string name ) return false; } -Core::Scripting::ScriptInfo* Core::Scripting::ScriptLoader::getScriptInfo( std::string name ) +Sapphire::Scripting::ScriptInfo* Sapphire::Scripting::ScriptLoader::getScriptInfo( std::string name ) { for( auto it = m_scriptMap.begin(); it != m_scriptMap.end(); ++it ) { @@ -182,7 +182,7 @@ Core::Scripting::ScriptInfo* Core::Scripting::ScriptLoader::getScriptInfo( std:: return nullptr; } -void Core::Scripting::ScriptLoader::findScripts( std::set< Core::Scripting::ScriptInfo* >& scripts, +void Sapphire::Scripting::ScriptLoader::findScripts( std::set< Sapphire::Scripting::ScriptInfo* >& scripts, const std::string& search ) { for( auto it = m_scriptMap.begin(); it != m_scriptMap.end(); ++it ) diff --git a/src/servers/sapphire_zone/Script/ScriptLoader.h b/src/servers/sapphire_zone/Script/ScriptLoader.h index 403556c8..c4c9677d 100644 --- a/src/servers/sapphire_zone/Script/ScriptLoader.h +++ b/src/servers/sapphire_zone/Script/ScriptLoader.h @@ -18,7 +18,7 @@ using ModuleHandle = HMODULE; using ModuleHandle = void*; #endif -namespace Core::Scripting +namespace Sapphire::Scripting { /*! @@ -102,7 +102,7 @@ namespace Core::Scripting * @param scripts a set of ScriptInfo ptrs * @param search the search term */ - void findScripts( std::set< Core::Scripting::ScriptInfo* >& scripts, const std::string& search ); + void findScripts( std::set< Sapphire::Scripting::ScriptInfo* >& scripts, const std::string& search ); }; } diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index 67d7fe40..b84c17c1 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -24,27 +24,27 @@ // enable the ambiguity fix for every platform to avoid #define nonsense #define WIN_AMBIGUITY_FIX -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; namespace fs = std::experimental::filesystem; -Core::Scripting::ScriptMgr::ScriptMgr() : +Sapphire::Scripting::ScriptMgr::ScriptMgr() : m_firstScriptChangeNotificiation( false ) { m_nativeScriptMgr = createNativeScriptMgr(); } -Core::Scripting::ScriptMgr::~ScriptMgr() +Sapphire::Scripting::ScriptMgr::~ScriptMgr() { Watchdog::unwatchAll(); } -void Core::Scripting::ScriptMgr::update() +void Sapphire::Scripting::ScriptMgr::update() { m_nativeScriptMgr->processLoadQueue(); } -bool Core::Scripting::ScriptMgr::init() +bool Sapphire::Scripting::ScriptMgr::init() { std::set< std::string > files; auto pConfig = g_fw.get< ConfigMgr >(); @@ -81,7 +81,7 @@ bool Core::Scripting::ScriptMgr::init() return true; } -void Core::Scripting::ScriptMgr::watchDirectories() +void Sapphire::Scripting::ScriptMgr::watchDirectories() { auto pConfig = g_fw.get< ConfigMgr >(); auto shouldWatch = pConfig->getValue< bool >( "Scripts", "HotSwap", true ); @@ -119,7 +119,7 @@ void Core::Scripting::ScriptMgr::watchDirectories() } ); } -bool Core::Scripting::ScriptMgr::loadDir( const std::string& dirname, std::set< std::string >& files, +bool Sapphire::Scripting::ScriptMgr::loadDir( const std::string& dirname, std::set< std::string >& files, const std::string& ext ) { @@ -153,7 +153,7 @@ bool Core::Scripting::ScriptMgr::loadDir( const std::string& dirname, std::set< } } -void Core::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& player ) +void Sapphire::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& player ) { // try // { @@ -166,7 +166,7 @@ void Core::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& player // } } -bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ) +bool Sapphire::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( script ) @@ -187,7 +187,7 @@ bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorI return false; } -bool Core::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint32_t eventId, +bool Sapphire::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); @@ -197,7 +197,7 @@ bool Core::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint3 return true; } -bool Core::Scripting::ScriptMgr::onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, +bool Sapphire::Scripting::ScriptMgr::onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); @@ -207,7 +207,7 @@ bool Core::Scripting::ScriptMgr::onWithinRange( Entity::Player& player, uint32_t return true; } -bool Core::Scripting::ScriptMgr::onOutsideRange( Entity::Player& player, uint32_t eventId, uint32_t param1, +bool Sapphire::Scripting::ScriptMgr::onOutsideRange( Entity::Player& player, uint32_t eventId, uint32_t param1, float x, float y, float z ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); @@ -217,7 +217,7 @@ bool Core::Scripting::ScriptMgr::onOutsideRange( Entity::Player& player, uint32_ return true; } -bool Core::Scripting::ScriptMgr::onEmote( Entity::Player& player, uint64_t actorId, +bool Sapphire::Scripting::ScriptMgr::onEmote( Entity::Player& player, uint64_t actorId, uint32_t eventId, uint8_t emoteId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); @@ -227,7 +227,7 @@ bool Core::Scripting::ScriptMgr::onEmote( Entity::Player& player, uint64_t actor return true; } -bool Core::Scripting::ScriptMgr::onEventHandlerReturn( Entity::Player& player, uint32_t eventId, +bool Sapphire::Scripting::ScriptMgr::onEventHandlerReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param1, uint16_t param2, uint16_t param3 ) { @@ -235,7 +235,7 @@ bool Core::Scripting::ScriptMgr::onEventHandlerReturn( Entity::Player& player, u return false; } -bool Core::Scripting::ScriptMgr::onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, +bool Sapphire::Scripting::ScriptMgr::onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, uint16_t subEvent, uint16_t param, uint32_t catalogId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); @@ -248,7 +248,7 @@ bool Core::Scripting::ScriptMgr::onEventHandlerTradeReturn( Entity::Player& play return false; } -bool Core::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32_t eventItemId, +bool Sapphire::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32_t eventItemId, uint32_t eventId, uint32_t castTime, uint64_t targetId ) { std::string eventName = "onEventItem"; @@ -267,7 +267,7 @@ bool Core::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32_t e return false; } -bool Core::Scripting::ScriptMgr::onMobKill( Entity::Player& player, uint16_t nameId ) +bool Sapphire::Scripting::ScriptMgr::onMobKill( Entity::Player& player, uint16_t nameId ) { std::string eventName = "onBnpcKill_" + std::to_string( nameId ); @@ -295,7 +295,7 @@ bool Core::Scripting::ScriptMgr::onMobKill( Entity::Player& player, uint16_t nam return true; } -bool Core::Scripting::ScriptMgr::onCastFinish( Entity::Player& player, Entity::CharaPtr pTarget, uint32_t actionId ) +bool Sapphire::Scripting::ScriptMgr::onCastFinish( Entity::Player& player, Entity::CharaPtr pTarget, uint32_t actionId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::ActionScript >( actionId ); @@ -304,7 +304,7 @@ bool Core::Scripting::ScriptMgr::onCastFinish( Entity::Player& player, Entity::C return true; } -bool Core::Scripting::ScriptMgr::onStatusReceive( Entity::CharaPtr pActor, uint32_t effectId ) +bool Sapphire::Scripting::ScriptMgr::onStatusReceive( Entity::CharaPtr pActor, uint32_t effectId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::StatusEffectScript >( effectId ); @@ -320,7 +320,7 @@ bool Core::Scripting::ScriptMgr::onStatusReceive( Entity::CharaPtr pActor, uint3 return false; } -bool Core::Scripting::ScriptMgr::onStatusTick( Entity::CharaPtr pChara, Core::StatusEffect::StatusEffect& effect ) +bool Sapphire::Scripting::ScriptMgr::onStatusTick( Entity::CharaPtr pChara, Sapphire::StatusEffect::StatusEffect& effect ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::StatusEffectScript >( effect.getId() ); if( script ) @@ -335,7 +335,7 @@ bool Core::Scripting::ScriptMgr::onStatusTick( Entity::CharaPtr pChara, Core::St return false; } -bool Core::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, uint32_t effectId ) +bool Sapphire::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, uint32_t effectId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::StatusEffectScript >( effectId ); if( script ) @@ -350,7 +350,7 @@ bool Core::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, uint3 return false; } -bool Core::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone ) +bool Sapphire::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::ZoneScript >( pZone->getTerritoryTypeId() ); if( script ) @@ -362,7 +362,7 @@ bool Core::Scripting::ScriptMgr::onZoneInit( ZonePtr pZone ) return false; } -bool Core::Scripting::ScriptMgr::onInstanceInit( InstanceContentPtr instance ) +bool Sapphire::Scripting::ScriptMgr::onInstanceInit( InstanceContentPtr instance ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); if( script ) @@ -374,7 +374,7 @@ bool Core::Scripting::ScriptMgr::onInstanceInit( InstanceContentPtr instance ) return false; } -bool Core::Scripting::ScriptMgr::onInstanceUpdate( InstanceContentPtr instance, uint32_t currTime ) +bool Sapphire::Scripting::ScriptMgr::onInstanceUpdate( InstanceContentPtr instance, uint32_t currTime ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); @@ -387,7 +387,7 @@ bool Core::Scripting::ScriptMgr::onInstanceUpdate( InstanceContentPtr instance, return false; } -bool Core::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContentPtr instance, Entity::Player& player, +bool Sapphire::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContentPtr instance, Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); @@ -400,7 +400,7 @@ bool Core::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContentPtr in return false; } -Core::Scripting::NativeScriptMgr& Core::Scripting::ScriptMgr::getNativeScriptHandler() +Sapphire::Scripting::NativeScriptMgr& Sapphire::Scripting::ScriptMgr::getNativeScriptHandler() { return *m_nativeScriptMgr; } diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.h b/src/servers/sapphire_zone/Script/ScriptMgr.h index 89b0ab2f..853fd7b9 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.h +++ b/src/servers/sapphire_zone/Script/ScriptMgr.h @@ -8,7 +8,7 @@ #include #include "Forwards.h" -namespace Core::Scripting +namespace Sapphire::Scripting { class ScriptMgr @@ -73,7 +73,7 @@ namespace Core::Scripting bool onStatusReceive( Entity::CharaPtr pActor, uint32_t effectId ); - bool onStatusTick( Entity::CharaPtr pActor, Core::StatusEffect::StatusEffect& effect ); + bool onStatusTick( Entity::CharaPtr pActor, Sapphire::StatusEffect::StatusEffect& effect ); bool onStatusTimeOut( Entity::CharaPtr pActor, uint32_t effectId ); diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index 6f8f39b0..9870b975 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -26,9 +26,9 @@ #include "Script/ScriptMgr.h" #include "Linkshell/LinkshellMgr.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::ServerMgr::ServerMgr( const std::string& configName ) : +Sapphire::ServerMgr::ServerMgr( const std::string& configName ) : m_configName( configName ), m_bRunning( true ), m_lastDBPingTime( 0 ), @@ -36,19 +36,19 @@ Core::ServerMgr::ServerMgr( const std::string& configName ) : { } -Core::ServerMgr::~ServerMgr() +Sapphire::ServerMgr::~ServerMgr() { } -size_t Core::ServerMgr::getSessionCount() const +size_t Sapphire::ServerMgr::getSessionCount() const { return m_sessionMapById.size(); } -bool Core::ServerMgr::loadSettings( int32_t argc, char* argv[] ) +bool Sapphire::ServerMgr::loadSettings( int32_t argc, char* argv[] ) { - auto pLog = g_fw.get< Core::Logger >(); - auto pConfig = g_fw.get< Core::ConfigMgr >(); + auto pLog = g_fw.get< Sapphire::Logger >(); + auto pConfig = g_fw.get< Sapphire::ConfigMgr >(); auto pExd = g_fw.get< Data::ExdDataGenerated >(); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -122,9 +122,9 @@ bool Core::ServerMgr::loadSettings( int32_t argc, char* argv[] ) return false; } - Core::Db::DbLoader loader; + Sapphire::Db::DbLoader loader; - Core::Db::ConnectionInfo info; + Sapphire::Db::ConnectionInfo info; info.password = pConfig->getValue< std::string >( "Database", "Password", "" ); info.host = pConfig->getValue< std::string >( "Database", "Host", "127.0.0.1" ); info.database = pConfig->getValue< std::string >( "Database", "Database", "sapphire" ); @@ -143,9 +143,9 @@ bool Core::ServerMgr::loadSettings( int32_t argc, char* argv[] ) return true; } -void Core::ServerMgr::run( int32_t argc, char* argv[] ) +void Sapphire::ServerMgr::run( int32_t argc, char* argv[] ) { - auto pLog = g_fw.get< Core::Logger >(); + auto pLog = g_fw.get< Sapphire::Logger >(); auto pScript = g_fw.get< Scripting::ScriptMgr >(); auto pLsMgr = g_fw.get< LinkshellMgr >(); auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -189,19 +189,19 @@ void Core::ServerMgr::run( int32_t argc, char* argv[] ) } -uint16_t Core::ServerMgr::getWorldId() const +uint16_t Sapphire::ServerMgr::getWorldId() const { return m_worldId; } -void Core::ServerMgr::setWorldId( uint16_t worldId ) +void Sapphire::ServerMgr::setWorldId( uint16_t worldId ) { m_worldId = worldId; } -void Core::ServerMgr::printBanner() const +void Sapphire::ServerMgr::printBanner() const { - auto pLog = g_fw.get< Core::Logger >(); + auto pLog = g_fw.get< Sapphire::Logger >(); pLog->info( "===========================================================" ); pLog->info( "Sapphire Server Project " ); @@ -211,7 +211,7 @@ void Core::ServerMgr::printBanner() const pLog->info( "===========================================================" ); } -void Core::ServerMgr::mainLoop() +void Sapphire::ServerMgr::mainLoop() { auto pLog = g_fw.get< Logger >(); auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -292,9 +292,9 @@ void Core::ServerMgr::mainLoop() } } -bool Core::ServerMgr::createSession( uint32_t sessionId ) +bool Sapphire::ServerMgr::createSession( uint32_t sessionId ) { - auto pLog = g_fw.get< Core::Logger >(); + auto pLog = g_fw.get< Sapphire::Logger >(); std::lock_guard< std::mutex > lock( m_sessionMutex ); @@ -325,12 +325,12 @@ bool Core::ServerMgr::createSession( uint32_t sessionId ) } -void Core::ServerMgr::removeSession( uint32_t sessionId ) +void Sapphire::ServerMgr::removeSession( uint32_t sessionId ) { m_sessionMapById.erase( sessionId ); } -Core::SessionPtr Core::ServerMgr::getSession( uint32_t id ) +Sapphire::SessionPtr Sapphire::ServerMgr::getSession( uint32_t id ) { //std::lock_guard lock( m_sessionMutex ); @@ -342,7 +342,7 @@ Core::SessionPtr Core::ServerMgr::getSession( uint32_t id ) return nullptr; } -Core::SessionPtr Core::ServerMgr::getSession( const std::string& playerName ) +Sapphire::SessionPtr Sapphire::ServerMgr::getSession( const std::string& playerName ) { //std::lock_guard lock( m_sessionMutex ); @@ -354,18 +354,18 @@ Core::SessionPtr Core::ServerMgr::getSession( const std::string& playerName ) return nullptr; } -void Core::ServerMgr::removeSession( const std::string& playerName ) +void Sapphire::ServerMgr::removeSession( const std::string& playerName ) { m_sessionMapByName.erase( playerName ); } -bool Core::ServerMgr::isRunning() const +bool Sapphire::ServerMgr::isRunning() const { return m_bRunning; } -std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId, bool forceDbLoad ) +std::string Sapphire::ServerMgr::getPlayerNameFromDb( uint32_t playerId, bool forceDbLoad ) { if( !forceDbLoad ) { @@ -387,12 +387,12 @@ std::string Core::ServerMgr::getPlayerNameFromDb( uint32_t playerId, bool forceD return playerName; } -void Core::ServerMgr::updatePlayerName( uint32_t playerId, const std::string & playerNewName ) +void Sapphire::ServerMgr::updatePlayerName( uint32_t playerId, const std::string & playerNewName ) { m_playerNameMapById[ playerId ] = playerNewName; } -void Core::ServerMgr::loadBNpcTemplates() +void Sapphire::ServerMgr::loadBNpcTemplates() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -435,7 +435,7 @@ void Core::ServerMgr::loadBNpcTemplates() } -Core::Entity::BNpcTemplatePtr Core::ServerMgr::getBNpcTemplate( const std::string& key ) +Sapphire::Entity::BNpcTemplatePtr Sapphire::ServerMgr::getBNpcTemplate( const std::string& key ) { auto it = m_bNpcTemplateMap.find( key ); @@ -445,7 +445,7 @@ Core::Entity::BNpcTemplatePtr Core::ServerMgr::getBNpcTemplate( const std::strin return it->second; } -Core::Entity::BNpcTemplatePtr Core::ServerMgr::getBNpcTemplate( uint32_t id ) +Sapphire::Entity::BNpcTemplatePtr Sapphire::ServerMgr::getBNpcTemplate( uint32_t id ) { for( auto entry : m_bNpcTemplateMap ) { diff --git a/src/servers/sapphire_zone/ServerMgr.h b/src/servers/sapphire_zone/ServerMgr.h index efdb4870..75a22263 100644 --- a/src/servers/sapphire_zone/ServerMgr.h +++ b/src/servers/sapphire_zone/ServerMgr.h @@ -8,63 +8,64 @@ #include "ForwardsZone.h" -namespace Core { - -class ServerMgr +namespace Sapphire { -public: - ServerMgr( const std::string& configName ); - ~ServerMgr(); + class ServerMgr + { + public: + ServerMgr( const std::string& configName ); - void run( int32_t argc, char* argv[] ); + ~ServerMgr(); - bool createSession( uint32_t sessionId ); + void run( int32_t argc, char* argv[] ); - void removeSession( uint32_t sessionId ); - void removeSession( const std::string& playerName ); + bool createSession( uint32_t sessionId ); - SessionPtr getSession( uint32_t id ); - SessionPtr getSession( const std::string& playerName ); + void removeSession( uint32_t sessionId ); + void removeSession( const std::string& playerName ); - size_t getSessionCount() const; + SessionPtr getSession( uint32_t id ); + SessionPtr getSession( const std::string& playerName ); - uint16_t getWorldId() const; - void setWorldId( uint16_t worldId ); + size_t getSessionCount() const; - void mainLoop(); + uint16_t getWorldId() const; + void setWorldId( uint16_t worldId ); - bool isRunning() const; + void mainLoop(); - void printBanner() const; + bool isRunning() const; - bool loadSettings( int32_t argc, char* argv[] ); - void loadBNpcTemplates(); + void printBanner() const; - Entity::BNpcTemplatePtr getBNpcTemplate( const std::string& key ); - Entity::BNpcTemplatePtr getBNpcTemplate( uint32_t id ); + bool loadSettings( int32_t argc, char* argv[] ); + void loadBNpcTemplates(); - std::string getPlayerNameFromDb( uint32_t playerId, bool forceDbLoad = false ); - void updatePlayerName( uint32_t playerId, const std::string& playerNewName ); + Entity::BNpcTemplatePtr getBNpcTemplate( const std::string& key ); + Entity::BNpcTemplatePtr getBNpcTemplate( uint32_t id ); -private: - uint16_t m_port; - std::string m_ip; - int64_t m_lastDBPingTime; - bool m_bRunning; - uint16_t m_worldId; + std::string getPlayerNameFromDb( uint32_t playerId, bool forceDbLoad = false ); + void updatePlayerName( uint32_t playerId, const std::string& playerNewName ); - std::string m_configName; + private: + uint16_t m_port; + std::string m_ip; + int64_t m_lastDBPingTime; + bool m_bRunning; + uint16_t m_worldId; - std::mutex m_sessionMutex; + std::string m_configName; - std::map< uint32_t, SessionPtr > m_sessionMapById; - std::map< std::string, SessionPtr > m_sessionMapByName; - std::map< uint32_t, std::string > m_playerNameMapById; - std::map< uint32_t, uint32_t > m_zones; - std::map< std::string, Entity::BNpcTemplatePtr > m_bNpcTemplateMap; + std::mutex m_sessionMutex; -}; + std::map< uint32_t, SessionPtr > m_sessionMapById; + std::map< std::string, SessionPtr > m_sessionMapByName; + std::map< uint32_t, std::string > m_playerNameMapById; + std::map< uint32_t, uint32_t > m_zones; + std::map< std::string, Entity::BNpcTemplatePtr > m_bNpcTemplateMap; + + }; } diff --git a/src/servers/sapphire_zone/Session.cpp b/src/servers/sapphire_zone/Session.cpp index 3d5070de..144650e0 100644 --- a/src/servers/sapphire_zone/Session.cpp +++ b/src/servers/sapphire_zone/Session.cpp @@ -12,10 +12,10 @@ #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; namespace fs = std::experimental::filesystem; -Core::Session::Session( uint32_t sessionId ) : +Sapphire::Session::Session( uint32_t sessionId ) : m_sessionId( sessionId ), m_lastDataTime( Util::getTimeSeconds() ), m_lastSqlTime( Util::getTimeSeconds() ), @@ -23,34 +23,34 @@ Core::Session::Session( uint32_t sessionId ) : { } -Core::Session::~Session() +Sapphire::Session::~Session() { } -void Core::Session::setZoneConnection( Network::GameConnectionPtr pZoneCon ) +void Sapphire::Session::setZoneConnection( Network::GameConnectionPtr pZoneCon ) { pZoneCon->m_conType = Network::ConnectionType::Zone; m_pZoneConnection = pZoneCon; } -void Core::Session::setChatConnection( Network::GameConnectionPtr pChatCon ) +void Sapphire::Session::setChatConnection( Network::GameConnectionPtr pChatCon ) { pChatCon->m_conType = Network::ConnectionType::Chat; m_pChatConnection = pChatCon; } -Core::Network::GameConnectionPtr Core::Session::getZoneConnection() const +Sapphire::Network::GameConnectionPtr Sapphire::Session::getZoneConnection() const { return m_pZoneConnection; } -Core::Network::GameConnectionPtr Core::Session::getChatConnection() const +Sapphire::Network::GameConnectionPtr Sapphire::Session::getChatConnection() const { return m_pChatConnection; } -bool Core::Session::loadPlayer() +bool Sapphire::Session::loadPlayer() { m_pPlayer = Entity::make_Player(); @@ -67,7 +67,7 @@ bool Core::Session::loadPlayer() } -void Core::Session::close() +void Sapphire::Session::close() { if( m_pZoneConnection ) m_pZoneConnection->Disconnect(); @@ -85,37 +85,37 @@ void Core::Session::close() } } -uint32_t Core::Session::getId() const +uint32_t Sapphire::Session::getId() const { return m_sessionId; } -int64_t Core::Session::getLastDataTime() const +int64_t Sapphire::Session::getLastDataTime() const { return m_lastDataTime; } -int64_t Core::Session::getLastSqlTime() const +int64_t Sapphire::Session::getLastSqlTime() const { return m_lastSqlTime; } -bool Core::Session::isValid() const +bool Sapphire::Session::isValid() const { return m_isValid; } -void Core::Session::updateLastDataTime() +void Sapphire::Session::updateLastDataTime() { m_lastDataTime = Util::getTimeSeconds(); } -void Core::Session::updateLastSqlTime() +void Sapphire::Session::updateLastSqlTime() { m_lastSqlTime = Util::getTimeSeconds(); } -void Core::Session::startReplay( const std::string& path ) +void Sapphire::Session::startReplay( const std::string& path ) { auto pLog = g_fw.get< Logger >(); if( !fs::exists( path ) ) @@ -161,13 +161,13 @@ void Core::Session::startReplay( const std::string& path ) m_isReplaying = true; } -void Core::Session::stopReplay() +void Sapphire::Session::stopReplay() { m_isReplaying = false; m_replayCache.clear(); } -void Core::Session::processReplay() +void Sapphire::Session::processReplay() { int at = 0; for( const auto& set : m_replayCache ) @@ -185,7 +185,7 @@ void Core::Session::processReplay() m_isReplaying = false; } -void Core::Session::sendReplayInfo() +void Sapphire::Session::sendReplayInfo() { std::string message = std::to_string( m_replayCache.size() ) + " Sets left in cache, "; @@ -197,7 +197,7 @@ void Core::Session::sendReplayInfo() getPlayer()->sendDebug( message ); } -void Core::Session::update() +void Sapphire::Session::update() { if( m_isReplaying ) processReplay(); @@ -226,7 +226,7 @@ void Core::Session::update() } -Core::Entity::PlayerPtr Core::Session::getPlayer() const +Sapphire::Entity::PlayerPtr Sapphire::Session::getPlayer() const { return m_pPlayer; } diff --git a/src/servers/sapphire_zone/Session.h b/src/servers/sapphire_zone/Session.h index 6be6ef82..c82fda41 100644 --- a/src/servers/sapphire_zone/Session.h +++ b/src/servers/sapphire_zone/Session.h @@ -5,7 +5,7 @@ #include "ForwardsZone.h" -namespace Core { +namespace Sapphire { class Session : public std::enable_shared_from_this< Session > diff --git a/src/servers/sapphire_zone/StatusEffect/StatusEffect.cpp b/src/servers/sapphire_zone/StatusEffect/StatusEffect.cpp index c8b06efa..ac5cb5ae 100644 --- a/src/servers/sapphire_zone/StatusEffect/StatusEffect.cpp +++ b/src/servers/sapphire_zone/StatusEffect/StatusEffect.cpp @@ -13,20 +13,20 @@ #include "StatusEffect.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -Core::StatusEffect::StatusEffect::StatusEffect( uint32_t id, Entity::CharaPtr sourceActor, Entity::CharaPtr targetActor, +Sapphire::StatusEffect::StatusEffect::StatusEffect( uint32_t id, Entity::CharaPtr sourceActor, Entity::CharaPtr targetActor, uint32_t duration, uint32_t tickRate ) : m_id( id ), m_sourceActor( sourceActor ), m_targetActor( targetActor ), m_duration( duration ), m_startTime( 0 ), m_tickRate( tickRate ), m_lastTick( 0 ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto entry = pExdData->get< Core::Data::Status >( id ); + auto entry = pExdData->get< Sapphire::Data::Status >( id ); m_name = entry->name; std::replace( m_name.begin(), m_name.end(), ' ', '_' ); @@ -41,45 +41,45 @@ Core::StatusEffect::StatusEffect::StatusEffect( uint32_t id, Entity::CharaPtr so } -Core::StatusEffect::StatusEffect::~StatusEffect() +Sapphire::StatusEffect::StatusEffect::~StatusEffect() { } -void Core::StatusEffect::StatusEffect::registerTickEffect( uint8_t type, uint32_t param ) +void Sapphire::StatusEffect::StatusEffect::registerTickEffect( uint8_t type, uint32_t param ) { m_currTickEffect = std::make_pair( type, param ); } -std::pair< uint8_t, uint32_t > Core::StatusEffect::StatusEffect::getTickEffect() +std::pair< uint8_t, uint32_t > Sapphire::StatusEffect::StatusEffect::getTickEffect() { auto thisTick = m_currTickEffect; m_currTickEffect = std::make_pair( 0, 0 ); return thisTick; } -void Core::StatusEffect::StatusEffect::onTick() +void Sapphire::StatusEffect::StatusEffect::onTick() { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); m_lastTick = Util::getTimeMs(); pScriptMgr->onStatusTick( m_targetActor, *this ); } -uint32_t Core::StatusEffect::StatusEffect::getSrcActorId() const +uint32_t Sapphire::StatusEffect::StatusEffect::getSrcActorId() const { return m_sourceActor->getId(); } -uint32_t Core::StatusEffect::StatusEffect::getTargetActorId() const +uint32_t Sapphire::StatusEffect::StatusEffect::getTargetActorId() const { return m_targetActor->getId(); } -uint16_t Core::StatusEffect::StatusEffect::getParam() const +uint16_t Sapphire::StatusEffect::StatusEffect::getParam() const { return m_param; } -void Core::StatusEffect::StatusEffect::applyStatus() +void Sapphire::StatusEffect::StatusEffect::applyStatus() { m_startTime = Util::getTimeMs(); auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); @@ -105,48 +105,48 @@ void Core::StatusEffect::StatusEffect::applyStatus() pScriptMgr->onStatusReceive( m_targetActor, m_id ); } -void Core::StatusEffect::StatusEffect::removeStatus() +void Sapphire::StatusEffect::StatusEffect::removeStatus() { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); pScriptMgr->onStatusTimeOut( m_targetActor, m_id ); } -uint32_t Core::StatusEffect::StatusEffect::getId() const +uint32_t Sapphire::StatusEffect::StatusEffect::getId() const { return m_id; } -uint32_t Core::StatusEffect::StatusEffect::getDuration() const +uint32_t Sapphire::StatusEffect::StatusEffect::getDuration() const { return m_duration; } -uint32_t Core::StatusEffect::StatusEffect::getTickRate() const +uint32_t Sapphire::StatusEffect::StatusEffect::getTickRate() const { return m_tickRate; } -uint64_t Core::StatusEffect::StatusEffect::getLastTickMs() const +uint64_t Sapphire::StatusEffect::StatusEffect::getLastTickMs() const { return m_lastTick; } -uint64_t Core::StatusEffect::StatusEffect::getStartTimeMs() const +uint64_t Sapphire::StatusEffect::StatusEffect::getStartTimeMs() const { return m_startTime; } -void Core::StatusEffect::StatusEffect::setLastTick( uint64_t lastTick ) +void Sapphire::StatusEffect::StatusEffect::setLastTick( uint64_t lastTick ) { m_lastTick = lastTick; } -void Core::StatusEffect::StatusEffect::setParam( uint16_t param ) +void Sapphire::StatusEffect::StatusEffect::setParam( uint16_t param ) { m_param = param; } -const std::string& Core::StatusEffect::StatusEffect::getName() const +const std::string& Sapphire::StatusEffect::StatusEffect::getName() const { return m_name; } diff --git a/src/servers/sapphire_zone/StatusEffect/StatusEffect.h b/src/servers/sapphire_zone/StatusEffect/StatusEffect.h index ce5fbee5..e6bb1c8e 100644 --- a/src/servers/sapphire_zone/StatusEffect/StatusEffect.h +++ b/src/servers/sapphire_zone/StatusEffect/StatusEffect.h @@ -3,7 +3,7 @@ #include "Forwards.h" -namespace Core { +namespace Sapphire { namespace StatusEffect { diff --git a/src/servers/sapphire_zone/Zone/Cell.cpp b/src/servers/sapphire_zone/Zone/Cell.cpp index d9b7f600..62273ab5 100644 --- a/src/servers/sapphire_zone/Zone/Cell.cpp +++ b/src/servers/sapphire_zone/Zone/Cell.cpp @@ -7,12 +7,12 @@ #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; // TODO: the entire zone / areahandling is a bit outdated ( in parts i used this for the 1.0 iteration ) // likely this could be greatly improved or redone -Core::Cell::Cell() : +Sapphire::Cell::Cell() : m_bActive( false ), m_bLoaded( false ), m_playerCount( 0 ), @@ -21,12 +21,12 @@ Core::Cell::Cell() : m_bForcedActive = false; } -Core::Cell::~Cell() +Sapphire::Cell::~Cell() { removeActors(); } -void Core::Cell::init( uint32_t x, uint32_t y, ZonePtr pZone ) +void Sapphire::Cell::init( uint32_t x, uint32_t y, ZonePtr pZone ) { m_pZone = pZone; m_posX = x; @@ -35,25 +35,25 @@ void Core::Cell::init( uint32_t x, uint32_t y, ZonePtr pZone ) m_actors.clear(); } -void Core::Cell::addActor( Entity::ActorPtr pAct ) +void Sapphire::Cell::addActor( Entity::ActorPtr pAct ) { - auto pLog = g_fw.get< Core::Logger >(); + auto pLog = g_fw.get< Sapphire::Logger >(); if( pAct->isPlayer() ) ++m_playerCount; m_actors.insert( pAct ); } -void Core::Cell::removeActor( Entity::ActorPtr pAct ) +void Sapphire::Cell::removeActor( Entity::ActorPtr pAct ) { - auto pLog = g_fw.get< Core::Logger >(); + auto pLog = g_fw.get< Sapphire::Logger >(); if( pAct->isPlayer() ) --m_playerCount; m_actors.erase( pAct ); } -void Core::Cell::setActivity( bool state ) +void Sapphire::Cell::setActivity( bool state ) { if( !m_bActive && state ) { @@ -82,7 +82,7 @@ void Core::Cell::setActivity( bool state ) } -void Core::Cell::removeActors() +void Sapphire::Cell::removeActors() { //uint32_t ltime = getMSTime(); @@ -111,7 +111,7 @@ void Core::Cell::removeActors() m_bLoaded = false; } -void Core::Cell::queueUnloadPending() +void Sapphire::Cell::queueUnloadPending() { if( m_bUnloadPending ) return; @@ -120,13 +120,13 @@ void Core::Cell::queueUnloadPending() } -void Core::Cell::cancelPendingUnload() +void Sapphire::Cell::cancelPendingUnload() { if( !m_bUnloadPending ) return; } -void Core::Cell::unload() +void Sapphire::Cell::unload() { assert( m_bUnloadPending ); diff --git a/src/servers/sapphire_zone/Zone/Cell.h b/src/servers/sapphire_zone/Zone/Cell.h index 94529d2c..f637220b 100644 --- a/src/servers/sapphire_zone/Zone/Cell.h +++ b/src/servers/sapphire_zone/Zone/Cell.h @@ -7,7 +7,7 @@ #include "ForwardsZone.h" #include -namespace Core { +namespace Sapphire { typedef std::set< Entity::ActorPtr > ActorSet; diff --git a/src/servers/sapphire_zone/Zone/CellHandler.h b/src/servers/sapphire_zone/Zone/CellHandler.h index 7bf7009b..bfcdac52 100644 --- a/src/servers/sapphire_zone/Zone/CellHandler.h +++ b/src/servers/sapphire_zone/Zone/CellHandler.h @@ -16,7 +16,7 @@ #define _sizeY (TilesCount*CellsPerTile) #define GetRelatCoord( Coord, CellCoord ) ((_maxX-Coord)-CellCoord*_cellSize) -namespace Core { +namespace Sapphire { class Zone; diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Zone/House.cpp index 498a0781..5698635c 100644 --- a/src/servers/sapphire_zone/Zone/House.cpp +++ b/src/servers/sapphire_zone/Zone/House.cpp @@ -11,9 +11,9 @@ #include #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t territoryTypeId ) : +Sapphire::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_t wardNum, uint16_t territoryTypeId ) : m_houseId( houseId ), m_landSetId( landSetId ), m_landId( landId ), @@ -27,7 +27,7 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ if( !res->next() ) { - g_fw.get< Core::Logger >()->info( "Creating house House#" + std::to_string( houseId ) + " in LandSet#" + std::to_string( landSetId ) ); + g_fw.get< Sapphire::Logger >()->info( "Creating house House#" + std::to_string( houseId ) + " in LandSet#" + std::to_string( landSetId ) ); auto stmt = pDB->getPreparedStatement( Db::HOUSING_HOUSE_INS ); @@ -56,11 +56,11 @@ Core::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, uint8_ } } -Core::House::~House() +Sapphire::House::~House() { } -void Core::House::updateHouseDb() +void Sapphire::House::updateHouseDb() { auto pDB = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -97,74 +97,74 @@ void Core::House::updateHouseDb() pDB->execute( stmt ); } -uint32_t Core::House::getLandSetId() const +uint32_t Sapphire::House::getLandSetId() const { return m_landSetId; } -uint8_t Core::House::getLandId() const +uint8_t Sapphire::House::getLandId() const { return m_landId; } -uint8_t Core::House::getWardNum() const +uint8_t Sapphire::House::getWardNum() const { return m_wardNum; } -uint16_t Core::House::getTerritoryTypeId() const +uint16_t Sapphire::House::getTerritoryTypeId() const { return m_territoryTypeId; } -uint32_t Core::House::getHouseId() const +uint32_t Sapphire::House::getHouseId() const { return m_houseId; } -uint8_t Core::House::getHousePartColor( Common::HousePartSlot slot ) const +uint8_t Sapphire::House::getHousePartColor( Common::HousePartSlot slot ) const { return m_houseParts[ slot ].second; } -void Core::House::setHousePart( Common::HousePartSlot slot, uint32_t id ) +void Sapphire::House::setHousePart( Common::HousePartSlot slot, uint32_t id ) { m_houseParts[ slot ].first = id; } -void Core::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id ) +void Sapphire::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id ) { m_houseParts[ slot ].second = id; } -uint32_t Core::House::getHousePart( Common::HousePartSlot slot ) const +uint32_t Sapphire::House::getHousePart( Common::HousePartSlot slot ) const { return m_houseParts[ slot ].first; } -Core::House::HousePartsArray const& Core::House::getHouseParts() const +Sapphire::House::HousePartsArray const& Sapphire::House::getHouseParts() const { return m_houseParts; } -const std::string& Core::House::getHouseName() const +const std::string& Sapphire::House::getHouseName() const { return m_houseName; } -const std::string& Core::House::getHouseGreeting() const +const std::string& Sapphire::House::getHouseGreeting() const { return m_estateMessage; } -void Core::House::setHouseGreeting( const std::string& greeting ) +void Sapphire::House::setHouseGreeting( const std::string& greeting ) { m_estateMessage = greeting; updateHouseDb(); } -void Core::House::setHouseName( const std::string& name ) +void Sapphire::House::setHouseName( const std::string& name ) { m_houseName = name; diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Zone/House.h index ec2d3df4..6a9196d4 100644 --- a/src/servers/sapphire_zone/Zone/House.h +++ b/src/servers/sapphire_zone/Zone/House.h @@ -6,7 +6,7 @@ #include #include -namespace Core +namespace Sapphire { class House diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 868cbd79..2824eb4f 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -22,41 +22,41 @@ #include "ServerMgr.h" #include "House.h" -using namespace Core::Common; -using namespace Core::Network; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::HousingMgr::HousingMgr() +Sapphire::HousingMgr::HousingMgr() { } -Core::HousingMgr::~HousingMgr() +Sapphire::HousingMgr::~HousingMgr() { } -bool Core::HousingMgr::init() +bool Sapphire::HousingMgr::init() { return true; } -uint32_t Core::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const +uint32_t Sapphire::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const { return ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardId; } -Core::Data::HousingZonePtr Core::HousingMgr::getHousingZoneByLandSetId( uint32_t id ) +Sapphire::Data::HousingZonePtr Sapphire::HousingMgr::getHousingZoneByLandSetId( uint32_t id ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); return std::dynamic_pointer_cast< HousingZone >( pTeriMgr->getZoneByLandSetId( id ) ); } -Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) +Sapphire::LandPtr Sapphire::HousingMgr::getLandByOwnerId( uint32_t id ) { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT LandSetId, LandId FROM land WHERE OwnerId = " + std::to_string( id ) ); @@ -72,7 +72,7 @@ Core::LandPtr Core::HousingMgr::getLandByOwnerId( uint32_t id ) return hZone->getLand( res->getUInt( 2 ) ); } -void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) +void Sapphire::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) { player.setActiveLand( plotId, wardId ); @@ -90,7 +90,7 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId auto landInfoSignPacket = makeZonePacket< Server::FFXIVIpcLandInfoSign >( player.getId() ); uint32_t playerId = land->getPlayerOwner(); - std::string playerName = g_fw.get< Core::ServerMgr >()->getPlayerNameFromDb( playerId ); + std::string playerName = g_fw.get< Sapphire::ServerMgr >()->getPlayerNameFromDb( playerId ); //memcpy( &landInfoSignPacket->data().estateGreeting, "Hello World", 11 ); //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); landInfoSignPacket->data().houseSize = land->getSize(); @@ -113,7 +113,7 @@ void Core::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId player.queuePacket( landInfoSignPacket ); } -void Core::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) +void Sapphire::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) { player.setActiveLand( plotId, wardId ); @@ -130,7 +130,7 @@ void Core::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, player.queuePacket( plotPricePacket ); } -Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ) +Sapphire::LandPurchaseResult Sapphire::HousingMgr::purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ) { auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); @@ -185,7 +185,7 @@ Core::LandPurchaseResult Core::HousingMgr::purchaseLand( Entity::Player& player, } -bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) +bool Sapphire::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) { // TODO: Fix "permissions" being sent incorrectly // TODO: Add checks for land state before relinquishing @@ -231,7 +231,7 @@ bool Core::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) return true; } -void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ) +void Sapphire::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); @@ -270,7 +270,7 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, entry.infoFlags = Common::WardlandFlags::IsEstateOwned; auto owner = land->getPlayerOwner(); - std::string playerName = g_fw.get< Core::ServerMgr >()->getPlayerNameFromDb( owner ); + std::string playerName = g_fw.get< Sapphire::ServerMgr >()->getPlayerNameFromDb( owner ); memcpy( &entry.estateOwnerName, playerName.c_str(), playerName.size() ); break; @@ -283,7 +283,7 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, player.queuePacket( wardInfoPacket ); } -void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ) +void Sapphire::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ) { auto hZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); @@ -323,7 +323,7 @@ void Core::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNu player.sendLandFlagsSlot( LandFlagsSlot::Private ); } -void Core::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); @@ -348,7 +348,7 @@ void Core::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t ter player.queuePacket( landRenamePacket ); } -void Core::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); @@ -375,7 +375,7 @@ void Core::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16 player.queuePacket( estateGreetingPacket ); } -void Core::HousingMgr::updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ) +void Sapphire::HousingMgr::updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ) { auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto zone = getHousingZoneByLandSetId( landSetId ); @@ -401,7 +401,7 @@ void Core::HousingMgr::updateEstateGreeting( Entity::Player& player, const Commo player.sendLogMessage( 3381 ); } -void Core::HousingMgr::requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::HousingMgr::requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Zone/HousingMgr.h index bd3c39db..d10a0325 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Zone/HousingMgr.h @@ -6,13 +6,13 @@ #include #include -namespace Core +namespace Sapphire::Data { - namespace Data - { - using HousingZonePtr = std::shared_ptr< HousingZone >; - } + using HousingZonePtr = std::shared_ptr< HousingZone >; +} +namespace Sapphire +{ class HousingMgr { @@ -23,8 +23,8 @@ namespace Core bool init(); uint32_t toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const; - Core::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); - Core::LandPtr getLandByOwnerId( uint32_t id ); + Sapphire::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); + Sapphire::LandPtr getLandByOwnerId( uint32_t id ); void sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); void sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); @@ -43,8 +43,6 @@ namespace Core void requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); - private: - }; } diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index d3b99e4c..c53d4a0c 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -17,13 +17,13 @@ #include "HousingMgr.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; -Core::HousingZone::HousingZone( uint8_t wardNum, +Sapphire::HousingZone::HousingZone( uint8_t wardNum, uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, @@ -36,7 +36,7 @@ Core::HousingZone::HousingZone( uint8_t wardNum, } -bool Core::HousingZone::init() +bool Sapphire::HousingZone::init() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -57,7 +57,7 @@ bool Core::HousingZone::init() housingIndex = 3; auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Core::Data::HousingLandSet >( housingIndex ); + auto info = pExdData->get< Sapphire::Data::HousingLandSet >( housingIndex ); uint32_t landId; for( landId = 0; landId < 60; landId++ ) @@ -69,12 +69,12 @@ bool Core::HousingZone::init() return true; } -Core::HousingZone::~HousingZone() +Sapphire::HousingZone::~HousingZone() { } -void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) +void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( @@ -112,7 +112,7 @@ void Core::HousingZone::onPlayerZoneIn( Entity::Player& player ) } -void Core::HousingZone::sendLandSet( Entity::Player& player ) +void Sapphire::HousingZone::sendLandSet( Entity::Player& player ) { auto landsetInitializePacket = makeZonePacket< FFXIVIpcLandSetInitialize >( player.getId() ); @@ -155,7 +155,7 @@ void Core::HousingZone::sendLandSet( Entity::Player& player ) player.queuePacket( landsetInitializePacket ); } -void Core::HousingZone::sendLandUpdate( uint8_t landId ) +void Sapphire::HousingZone::sendLandUpdate( uint8_t landId ) { auto pLand = getLand( landId ); for( const auto& playerIt : m_playerMap ) @@ -191,12 +191,12 @@ void Core::HousingZone::sendLandUpdate( uint8_t landId ) } } -bool Core::HousingZone::isPlayerSubInstance( Entity::Player& player ) +bool Sapphire::HousingZone::isPlayerSubInstance( Entity::Player& player ) { return player.getPos().x < -15000.0f; //ToDo: get correct pos } -void Core::HousingZone::onUpdate( uint32_t currTime ) +void Sapphire::HousingZone::onUpdate( uint32_t currTime ) { for( auto pLandItr : m_landPtrMap ) { @@ -204,17 +204,17 @@ void Core::HousingZone::onUpdate( uint32_t currTime ) } } -uint8_t Core::HousingZone::getWardNum() const +uint8_t Sapphire::HousingZone::getWardNum() const { return m_wardNum; } -uint32_t Core::HousingZone::getLandSetId() const +uint32_t Sapphire::HousingZone::getLandSetId() const { return m_landSetId; } -Core::LandPtr Core::HousingZone::getLand( uint8_t id ) +Sapphire::LandPtr Sapphire::HousingZone::getLand( uint8_t id ) { auto it = m_landPtrMap.find( id ); if( it == m_landPtrMap.end() ) diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index 919d69df..1c86d9dd 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -4,7 +4,7 @@ #include "Zone.h" #include "Forwards.h" -namespace Core +namespace Sapphire { enum class LandPurchaseResult { @@ -46,10 +46,10 @@ namespace Core uint8_t getWardNum() const; uint32_t getLandSetId() const; - Core::LandPtr getLand( uint8_t id ); + Sapphire::LandPtr getLand( uint8_t id ); private: - using LandPtrMap = std::unordered_map< uint8_t, Core::LandPtr >; + using LandPtrMap = std::unordered_map< uint8_t, Sapphire::LandPtr >; const uint32_t m_landSetMax = 18; LandPtrMap m_landPtrMap; uint8_t m_wardNum; diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.cpp b/src/servers/sapphire_zone/Zone/InstanceContent.cpp index 6f0040e8..c957e6e6 100644 --- a/src/servers/sapphire_zone/Zone/InstanceContent.cpp +++ b/src/servers/sapphire_zone/Zone/InstanceContent.cpp @@ -22,14 +22,14 @@ #include "InstanceContent.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -Core::InstanceContent::InstanceContent( std::shared_ptr< Core::Data::InstanceContent > pInstanceConfiguration, +Sapphire::InstanceContent::InstanceContent( std::shared_ptr< Sapphire::Data::InstanceContent > pInstanceConfiguration, uint16_t territoryType, uint32_t guId, const std::string& internalName, @@ -48,7 +48,7 @@ Core::InstanceContent::InstanceContent( std::shared_ptr< Core::Data::InstanceCon } -bool Core::InstanceContent::init() +bool Sapphire::InstanceContent::init() { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); pScriptMgr->onInstanceInit( getAsInstanceContent() ); @@ -57,22 +57,22 @@ bool Core::InstanceContent::init() } -Core::InstanceContent::~InstanceContent() +Sapphire::InstanceContent::~InstanceContent() { } -uint32_t Core::InstanceContent::getInstanceContentId() const +uint32_t Sapphire::InstanceContent::getInstanceContentId() const { return m_instanceContentId; } -Core::Data::ExdDataGenerated::InstanceContentPtr Core::InstanceContent::getInstanceConfiguration() const +Sapphire::Data::ExdDataGenerated::InstanceContentPtr Sapphire::InstanceContent::getInstanceConfiguration() const { return m_instanceConfiguration; } -void Core::InstanceContent::onPlayerZoneIn( Entity::Player& player ) +void Sapphire::InstanceContent::onPlayerZoneIn( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( "InstanceContent::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" @@ -89,7 +89,7 @@ void Core::InstanceContent::onPlayerZoneIn( Entity::Player& player ) } -void Core::InstanceContent::onLeaveTerritory( Entity::Player& player ) +void Sapphire::InstanceContent::onLeaveTerritory( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( "InstanceContent::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" @@ -102,7 +102,7 @@ void Core::InstanceContent::onLeaveTerritory( Entity::Player& player ) player.unsetStateFlag( PlayerStateFlag::BoundByDuty ); } -void Core::InstanceContent::onUpdate( uint32_t currTime ) +void Sapphire::InstanceContent::onUpdate( uint32_t currTime ) { switch( m_state ) { @@ -166,24 +166,24 @@ void Core::InstanceContent::onUpdate( uint32_t currTime ) pScriptMgr->onInstanceUpdate( getAsInstanceContent(), currTime ); } -void Core::InstanceContent::onFinishLoading( Entity::Player& player ) +void Sapphire::InstanceContent::onFinishLoading( Entity::Player& player ) { sendDirectorInit( player ); } -void Core::InstanceContent::onInitDirector( Entity::Player& player ) +void Sapphire::InstanceContent::onInitDirector( Entity::Player& player ) { sendDirectorVars( player ); player.setDirectorInitialized( true ); } -void Core::InstanceContent::onDirectorSync( Entity::Player& player ) +void Sapphire::InstanceContent::onDirectorSync( Entity::Player& player ) { player.queuePacket( makeActorControl143( player.getId(), DirectorUpdate, 0x00110001, 0x80000000, 1 ) ); } -void Core::InstanceContent::setVar( uint8_t index, uint8_t value ) +void Sapphire::InstanceContent::setVar( uint8_t index, uint8_t value ) { if( index > 19 ) return; @@ -260,7 +260,7 @@ void Core::InstanceContent::setVar( uint8_t index, uint8_t value ) } } -void Core::InstanceContent::setSequence( uint8_t value ) +void Sapphire::InstanceContent::setSequence( uint8_t value ) { setDirectorSequence( value ); @@ -270,7 +270,7 @@ void Core::InstanceContent::setSequence( uint8_t value ) } } -void Core::InstanceContent::setBranch( uint8_t value ) +void Sapphire::InstanceContent::setBranch( uint8_t value ) { setDirectorBranch( value ); @@ -280,7 +280,7 @@ void Core::InstanceContent::setBranch( uint8_t value ) } } -void Core::InstanceContent::startQte() +void Sapphire::InstanceContent::startQte() { for( const auto& playerIt : m_playerMap ) { @@ -289,7 +289,7 @@ void Core::InstanceContent::startQte() } } -void Core::InstanceContent::startEventCutscene() +void Sapphire::InstanceContent::startEventCutscene() { // TODO: lock player movement for( const auto& playerIt : m_playerMap ) @@ -299,7 +299,7 @@ void Core::InstanceContent::startEventCutscene() } } -void Core::InstanceContent::endEventCutscene() +void Sapphire::InstanceContent::endEventCutscene() { for( const auto& playerIt : m_playerMap ) { @@ -308,7 +308,7 @@ void Core::InstanceContent::endEventCutscene() } } -void Core::InstanceContent::onRegisterEObj( Entity::EventObjectPtr object ) +void Sapphire::InstanceContent::onRegisterEObj( Entity::EventObjectPtr object ) { if( object->getName() != "none" ) m_eventObjectMap[ object->getName() ] = object; @@ -317,7 +317,7 @@ void Core::InstanceContent::onRegisterEObj( Entity::EventObjectPtr object ) auto pLog = g_fw.get< Logger >(); auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto objData = pExdData->get< Core::Data::EObj >( object->getObjectId() ); + auto objData = pExdData->get< Sapphire::Data::EObj >( object->getObjectId() ); if( objData ) // todo: data should be renamed to eventId m_eventIdToObjectMap[ objData->data ] = object; @@ -327,18 +327,18 @@ void Core::InstanceContent::onRegisterEObj( Entity::EventObjectPtr object ) std::to_string( object->getObjectId() ) ); } -bool Core::InstanceContent::hasPlayerPreviouslySpawned( Entity::Player& player ) const +bool Sapphire::InstanceContent::hasPlayerPreviouslySpawned( Entity::Player& player ) const { auto it = m_spawnedPlayers.find( player.getId() ); return it != m_spawnedPlayers.end(); } -Core::InstanceContent::InstanceContentState Core::InstanceContent::getState() const +Sapphire::InstanceContent::InstanceContentState Sapphire::InstanceContent::getState() const { return m_state; } -void Core::InstanceContent::onBeforePlayerZoneIn( Core::Entity::Player& player ) +void Sapphire::InstanceContent::onBeforePlayerZoneIn( Sapphire::Entity::Player& player ) { // remove any players from the instance who aren't bound on zone in if( !isPlayerBound( player.getId() ) ) @@ -362,7 +362,7 @@ void Core::InstanceContent::onBeforePlayerZoneIn( Core::Entity::Player& player ) player.resetObjSpawnIndex(); } -Core::Entity::EventObjectPtr Core::InstanceContent::getEObjByName( const std::string& name ) +Sapphire::Entity::EventObjectPtr Sapphire::InstanceContent::getEObjByName( const std::string& name ) { auto it = m_eventObjectMap.find( name ); if( it == m_eventObjectMap.end() ) @@ -371,7 +371,7 @@ Core::Entity::EventObjectPtr Core::InstanceContent::getEObjByName( const std::st return it->second; } -void Core::InstanceContent::onTalk( Core::Entity::Player& player, uint32_t eventId, uint64_t actorId ) +void Sapphire::InstanceContent::onTalk( Sapphire::Entity::Player& player, uint32_t eventId, uint64_t actorId ) { // todo: handle exit (and maybe shortcut?) behaviour here @@ -387,7 +387,7 @@ void Core::InstanceContent::onTalk( Core::Entity::Player& player, uint32_t event } void -Core::InstanceContent::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) +Sapphire::InstanceContent::onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); pScriptMgr->onInstanceEnterTerritory( getAsInstanceContent(), player, eventId, param1, param2 ); @@ -405,7 +405,7 @@ Core::InstanceContent::onEnterTerritory( Entity::Player& player, uint32_t eventI player.directorPlayScene( getDirectorId(), 2, NO_DEFAULT_CAMERA | HIDE_HOTBAR, 0, 0x9, getCurrentBGM() ); } -void Core::InstanceContent::setCurrentBGM( uint16_t bgmIndex ) +void Sapphire::InstanceContent::setCurrentBGM( uint16_t bgmIndex ) { m_currentBgm = bgmIndex; @@ -420,17 +420,17 @@ void Core::InstanceContent::setCurrentBGM( uint16_t bgmIndex ) } } -void Core::InstanceContent::setPlayerBGM( Core::Entity::Player& player, uint16_t bgmId ) +void Sapphire::InstanceContent::setPlayerBGM( Sapphire::Entity::Player& player, uint16_t bgmId ) { player.queuePacket( makeActorControl143( player.getId(), DirectorUpdate, getDirectorId(), 0x80000001, bgmId ) ); } -uint16_t Core::InstanceContent::getCurrentBGM() const +uint16_t Sapphire::InstanceContent::getCurrentBGM() const { return m_currentBgm; } -bool Core::InstanceContent::bindPlayer( uint32_t playerId ) +bool Sapphire::InstanceContent::bindPlayer( uint32_t playerId ) { // if player already bound, return false if( m_boundPlayerIds.count( playerId ) ) @@ -444,12 +444,12 @@ bool Core::InstanceContent::bindPlayer( uint32_t playerId ) return true; } -bool Core::InstanceContent::isPlayerBound( uint32_t playerId ) const +bool Sapphire::InstanceContent::isPlayerBound( uint32_t playerId ) const { return m_boundPlayerIds.count( playerId ) > 0; } -void Core::InstanceContent::unbindPlayer( uint32_t playerId ) +void Sapphire::InstanceContent::unbindPlayer( uint32_t playerId ) { m_boundPlayerIds.erase( playerId ); diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.h b/src/servers/sapphire_zone/Zone/InstanceContent.h index c8834d82..ec97a63a 100644 --- a/src/servers/sapphire_zone/Zone/InstanceContent.h +++ b/src/servers/sapphire_zone/Zone/InstanceContent.h @@ -5,7 +5,7 @@ #include "Event/Director.h" #include "Forwards.h" -namespace Core { +namespace Sapphire { namespace Data { struct InstanceContent; } @@ -20,7 +20,7 @@ public: DutyFinished }; - InstanceContent( std::shared_ptr< Core::Data::InstanceContent > pInstanceConfiguration, + InstanceContent( std::shared_ptr< Sapphire::Data::InstanceContent > pInstanceConfiguration, uint16_t territoryType, uint32_t guId, const std::string& internalName, @@ -76,7 +76,7 @@ public: InstanceContentState getState() const; - std::shared_ptr< Core::Data::InstanceContent > getInstanceConfiguration() const; + std::shared_ptr< Sapphire::Data::InstanceContent > getInstanceConfiguration() const; uint32_t getInstanceContentId() const; @@ -95,7 +95,7 @@ public: const uint32_t instanceStartDelay = 1250; private: - std::shared_ptr< Core::Data::InstanceContent > m_instanceConfiguration; + std::shared_ptr< Sapphire::Data::InstanceContent > m_instanceConfiguration; uint32_t m_instanceContentId; InstanceContentState m_state; uint16_t m_currentBgm; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 4db6c196..187d2759 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -22,12 +22,12 @@ #include "Framework.h" #include "House.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -using namespace Core::Common; +using namespace Sapphire::Common; -Core::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, - Core::Data::HousingLandSetPtr info ) : +Sapphire::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, + Sapphire::Data::HousingLandSetPtr info ) : m_territoryTypeId( territoryTypeId ), m_wardNum( wardNum ), m_landId( landId ), @@ -48,12 +48,12 @@ Core::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, uin load(); } -Core::Land::~Land() +Sapphire::Land::~Land() { } -void Core::Land::load() +void Sapphire::Land::load() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT * FROM land WHERE LandSetId = " + std::to_string( m_landSetId ) + " " @@ -91,149 +91,149 @@ void Core::Land::load() init(); } -uint32_t Core::Land::convertItemIdToHousingItemId( uint32_t itemId ) +uint32_t Sapphire::Land::convertItemIdToHousingItemId( uint32_t itemId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto info = pExdData->get< Core::Data::Item >( itemId ); + auto info = pExdData->get< Sapphire::Data::Item >( itemId ); return info->additionalData; } -uint32_t Core::Land::getCurrentPrice() const +uint32_t Sapphire::Land::getCurrentPrice() const { return m_currentPrice; } -uint32_t Core::Land::getMaxPrice() const +uint32_t Sapphire::Land::getMaxPrice() const { return m_maxPrice; } //Primary State -void Core::Land::setSize( uint8_t size ) +void Sapphire::Land::setSize( uint8_t size ) { m_size = size; } -void Core::Land::setState( uint8_t state ) +void Sapphire::Land::setState( uint8_t state ) { m_state = state; } -void Core::Land::setSharing( uint8_t state ) +void Sapphire::Land::setSharing( uint8_t state ) { m_iconAddIcon = state; } -void Core::Land::setLandType( Common::LandType type ) +void Sapphire::Land::setLandType( Common::LandType type ) { m_type = type; } -uint8_t Core::Land::getSize() const +uint8_t Sapphire::Land::getSize() const { return m_size; } -uint8_t Core::Land::getState() const +uint8_t Sapphire::Land::getState() const { return m_state; } -uint8_t Core::Land::getSharing() const +uint8_t Sapphire::Land::getSharing() const { return m_iconAddIcon; } -uint32_t Core::Land::getLandSetId() const +uint32_t Sapphire::Land::getLandSetId() const { return m_landSetId; } -uint8_t Core::Land::getWardNum() const +uint8_t Sapphire::Land::getWardNum() const { return m_wardNum; } -uint8_t Core::Land::getLandId() const +uint8_t Sapphire::Land::getLandId() const { return m_landId; } -uint16_t Core::Land::getTerritoryTypeId() const +uint16_t Sapphire::Land::getTerritoryTypeId() const { return m_territoryTypeId; } -Core::HousePtr Core::Land::getHouse() const +Sapphire::HousePtr Sapphire::Land::getHouse() const { return m_pHouse; } -Core::Common::LandType Core::Land::getLandType() const +Sapphire::Common::LandType Sapphire::Land::getLandType() const { return m_type; } //Free Comapny -void Core::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) +void Sapphire::Land::setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ) { m_fcId = id; m_fcIcon = icon; m_fcIconColor = color; //RGBA } -uint32_t Core::Land::getFcId() +uint32_t Sapphire::Land::getFcId() { return m_fcIcon; } -uint32_t Core::Land::getFcIcon() +uint32_t Sapphire::Land::getFcIcon() { return m_fcIcon; } -uint32_t Core::Land::getFcColor() +uint32_t Sapphire::Land::getFcColor() { return m_fcIconColor; } //Player -void Core::Land::setPlayerOwner( uint32_t id ) +void Sapphire::Land::setPlayerOwner( uint32_t id ) { m_ownerPlayerId = id; } -uint32_t Core::Land::getPlayerOwner() +uint32_t Sapphire::Land::getPlayerOwner() { return m_ownerPlayerId; } -uint32_t Core::Land::getMaxItems() +uint32_t Sapphire::Land::getMaxItems() { return m_maxItems; } -uint32_t Core::Land::getDevaluationTime() +uint32_t Sapphire::Land::getDevaluationTime() { return m_nextDrop - static_cast< uint32_t >( Util::getTimeSeconds() ); } -void Core::Land::setCurrentPrice( uint32_t currentPrice ) +void Sapphire::Land::setCurrentPrice( uint32_t currentPrice ) { m_currentPrice = currentPrice; } -void Core::Land::setLandTag( uint8_t slot, uint8_t tag ) +void Sapphire::Land::setLandTag( uint8_t slot, uint8_t tag ) { m_tag[ slot ] = tag; } -uint8_t Core::Land::getLandTag( uint8_t slot ) +uint8_t Sapphire::Land::getLandTag( uint8_t slot ) { return m_tag[ slot ]; } -void Core::Land::init() +void Sapphire::Land::init() { switch( m_size ) @@ -252,7 +252,7 @@ void Core::Land::init() } } -void Core::Land::updateLandDb() +void Sapphire::Land::updateLandDb() { uint32_t houseId = 0; @@ -274,7 +274,7 @@ void Core::Land::updateLandDb() house->updateHouseDb(); } -void Core::Land::update( uint32_t currTime ) +void Sapphire::Land::update( uint32_t currTime ) { if( getState() == HouseState::forSale ) { @@ -287,7 +287,7 @@ void Core::Land::update( uint32_t currTime ) } } -uint32_t Core::Land::getNextHouseId() +uint32_t Sapphire::Land::getNextHouseId() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pQR = pDb->query( "SELECT MAX( HouseId ) FROM house" ); @@ -298,15 +298,15 @@ uint32_t Core::Land::getNextHouseId() return pQR->getUInt( 1 ) + 1; } -bool Core::Land::setPreset( uint32_t itemId ) +bool Sapphire::Land::setPreset( uint32_t itemId ) { auto housingItemId = convertItemIdToHousingItemId( itemId ); - auto exdData = g_fw.get< Core::Data::ExdDataGenerated >(); + auto exdData = g_fw.get< Sapphire::Data::ExdDataGenerated >(); if( !exdData ) return false; - auto housingPreset = exdData->get< Core::Data::HousingPreset >( housingItemId ); + auto housingPreset = exdData->get< Sapphire::Data::HousingPreset >( housingItemId ); if( !housingPreset ) return false; diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 3bf792d2..82702dd9 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -4,7 +4,7 @@ #include "Exd/ExdDataGenerated.h" #include "ForwardsZone.h" -namespace Core +namespace Sapphire { namespace Data { @@ -15,7 +15,7 @@ namespace Core { public: - Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, Core::Data::HousingLandSetPtr info ); + Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, Sapphire::Data::HousingLandSetPtr info ); virtual ~Land(); void load(); @@ -35,7 +35,7 @@ namespace Core uint8_t getLandId() const; uint16_t getTerritoryTypeId() const; Common::LandType getLandType() const; - Core::HousePtr getHouse() const; + Sapphire::HousePtr getHouse() const; //Free Comapny void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ); @@ -79,12 +79,12 @@ namespace Core uint32_t m_fcIconColor; uint32_t m_ownerPlayerId; - Core::Data::HousingLandSetPtr m_landInfo; + Sapphire::Data::HousingLandSetPtr m_landInfo; - Core::HousePtr m_pHouse; + Sapphire::HousePtr m_pHouse; //item storage - Core::ItemContainerPtr ItemsOutdoorContainer; + Sapphire::ItemContainerPtr ItemsOutdoorContainer; uint32_t m_maxItems; //price diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index d355bc81..29d61afe 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -13,34 +13,34 @@ #include "TerritoryMgr.h" #include "Framework.h" -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; -Core::TerritoryMgr::TerritoryMgr() : +Sapphire::TerritoryMgr::TerritoryMgr() : m_lastInstanceId( 10000 ) { } -void Core::TerritoryMgr::loadTerritoryTypeDetailCache() +void Sapphire::TerritoryMgr::loadTerritoryTypeDetailCache() { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto idList = pExdData->getTerritoryTypeIdList(); for( auto id : idList ) { - auto teri1 = pExdData->get< Core::Data::TerritoryType >( id ); + auto teri1 = pExdData->get< Sapphire::Data::TerritoryType >( id ); if( !teri1->name.empty() ) m_territoryTypeDetailCacheMap[ id ] = teri1; } } -bool Core::TerritoryMgr::isValidTerritory( uint32_t territoryTypeId ) const +bool Sapphire::TerritoryMgr::isValidTerritory( uint32_t territoryTypeId ) const { return !( m_territoryTypeDetailCacheMap.find( territoryTypeId ) == m_territoryTypeDetailCacheMap.end() ); } -bool Core::TerritoryMgr::init() +bool Sapphire::TerritoryMgr::init() { loadTerritoryTypeDetailCache(); loadTerritoryPositionMap(); @@ -51,12 +51,12 @@ bool Core::TerritoryMgr::init() return true; } -uint32_t Core::TerritoryMgr::getNextInstanceId() +uint32_t Sapphire::TerritoryMgr::getNextInstanceId() { return ++m_lastInstanceId; } -Core::Data::TerritoryTypePtr Core::TerritoryMgr::getTerritoryDetail( uint32_t territoryTypeId ) const +Sapphire::Data::TerritoryTypePtr Sapphire::TerritoryMgr::getTerritoryDetail( uint32_t territoryTypeId ) const { auto tIt = m_territoryTypeDetailCacheMap.find( territoryTypeId ); if( tIt == m_territoryTypeDetailCacheMap.end() ) @@ -65,7 +65,7 @@ Core::Data::TerritoryTypePtr Core::TerritoryMgr::getTerritoryDetail( uint32_t te return tIt->second; } -bool Core::TerritoryMgr::isInstanceContentTerritory( uint32_t territoryTypeId ) const +bool Sapphire::TerritoryMgr::isInstanceContentTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -86,7 +86,7 @@ bool Core::TerritoryMgr::isInstanceContentTerritory( uint32_t territoryTypeId ) intendedUse == TerritoryIntendedUse::EventTrial; } -bool Core::TerritoryMgr::isPrivateTerritory( uint32_t territoryTypeId ) const +bool Sapphire::TerritoryMgr::isPrivateTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -100,7 +100,7 @@ bool Core::TerritoryMgr::isPrivateTerritory( uint32_t territoryTypeId ) const pTeri->territoryIntendedUse == TerritoryIntendedUse::MSQPrivateArea; } -bool Core::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) const +bool Sapphire::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -114,7 +114,7 @@ bool Core::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) const } -bool Core::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) const +bool Sapphire::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -124,7 +124,7 @@ bool Core::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) const return pTeri->territoryIntendedUse == TerritoryIntendedUse::HousingArea; } -bool Core::TerritoryMgr::createDefaultTerritories() +bool Sapphire::TerritoryMgr::createDefaultTerritories() { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto pLog = g_fw.get< Logger >(); @@ -138,7 +138,7 @@ bool Core::TerritoryMgr::createDefaultTerritories() if( territoryInfo->name.empty() ) continue; - auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName ); + auto pPlaceName = pExdData->get< Sapphire::Data::PlaceName >( territoryInfo->placeName ); if( !pPlaceName || pPlaceName->name.empty() || !isDefaultTerritory( territoryTypeId ) ) continue; @@ -165,7 +165,7 @@ bool Core::TerritoryMgr::createDefaultTerritories() return true; } -bool Core::TerritoryMgr::createHousingTerritories() +bool Sapphire::TerritoryMgr::createHousingTerritories() { //separate housing zones from default auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -180,7 +180,7 @@ bool Core::TerritoryMgr::createHousingTerritories() if( territoryInfo->name.empty() ) continue; - auto pPlaceName = pExdData->get< Core::Data::PlaceName >( territoryInfo->placeName ); + auto pPlaceName = pExdData->get< Sapphire::Data::PlaceName >( territoryInfo->placeName ); if( !pPlaceName || pPlaceName->name.empty() || !isHousingTerritory( territoryTypeId ) ) continue; @@ -213,7 +213,7 @@ bool Core::TerritoryMgr::createHousingTerritories() return true; } -Core::ZonePtr Core::TerritoryMgr::createTerritoryInstance( uint32_t territoryTypeId ) +Sapphire::ZonePtr Sapphire::TerritoryMgr::createTerritoryInstance( uint32_t territoryTypeId ) { if( !isValidTerritory( territoryTypeId ) ) return nullptr; @@ -224,7 +224,7 @@ Core::ZonePtr Core::TerritoryMgr::createTerritoryInstance( uint32_t territoryTyp auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto pLog = g_fw.get< Logger >(); auto pTeri = getTerritoryDetail( territoryTypeId ); - auto pPlaceName = pExdData->get< Core::Data::PlaceName >( pTeri->placeName ); + auto pPlaceName = pExdData->get< Sapphire::Data::PlaceName >( pTeri->placeName ); if( !pTeri || !pPlaceName ) return nullptr; @@ -242,16 +242,16 @@ Core::ZonePtr Core::TerritoryMgr::createTerritoryInstance( uint32_t territoryTyp return pZone; } -Core::ZonePtr Core::TerritoryMgr::createInstanceContent( uint32_t contentFinderConditionId ) +Sapphire::ZonePtr Sapphire::TerritoryMgr::createInstanceContent( uint32_t contentFinderConditionId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); - auto pContentFinderCondition = pExdData->get< Core::Data::ContentFinderCondition >( contentFinderConditionId ); + auto pContentFinderCondition = pExdData->get< Sapphire::Data::ContentFinderCondition >( contentFinderConditionId ); if( !pContentFinderCondition ) return nullptr; auto instanceContentId = pContentFinderCondition->content; - auto pInstanceContent = pExdData->get< Core::Data::InstanceContent >( instanceContentId ); + auto pInstanceContent = pExdData->get< Sapphire::Data::InstanceContent >( instanceContentId ); if( !pInstanceContent ) return nullptr; @@ -278,7 +278,7 @@ Core::ZonePtr Core::TerritoryMgr::createInstanceContent( uint32_t contentFinderC return pZone; } -bool Core::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) +bool Sapphire::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) { ZonePtr pZone; if( ( pZone = getInstanceZonePtr( instanceId ) ) == nullptr ) @@ -301,7 +301,7 @@ bool Core::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) return true; } -Core::ZonePtr Core::TerritoryMgr::getInstanceZonePtr( uint32_t instanceId ) const +Sapphire::ZonePtr Sapphire::TerritoryMgr::getInstanceZonePtr( uint32_t instanceId ) const { auto it = m_instanceIdToZonePtrMap.find( instanceId ); if( it == m_instanceIdToZonePtrMap.end() ) @@ -310,7 +310,7 @@ Core::ZonePtr Core::TerritoryMgr::getInstanceZonePtr( uint32_t instanceId ) cons return it->second; } -void Core::TerritoryMgr::loadTerritoryPositionMap() +void Sapphire::TerritoryMgr::loadTerritoryPositionMap() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pQR = pDb->query( "SELECT id, target_zone_id, pos_x, pos_y, pos_z, pos_o, radius FROM zonepositions;" ); @@ -330,7 +330,7 @@ void Core::TerritoryMgr::loadTerritoryPositionMap() } } -Core::ZonePositionPtr Core::TerritoryMgr::getTerritoryPosition( uint32_t territoryPositionId ) const +Sapphire::ZonePositionPtr Sapphire::TerritoryMgr::getTerritoryPosition( uint32_t territoryPositionId ) const { auto it = m_territoryPositionMap.find( territoryPositionId ); @@ -340,7 +340,7 @@ Core::ZonePositionPtr Core::TerritoryMgr::getTerritoryPosition( uint32_t territo return nullptr; } -Core::ZonePtr Core::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const +Sapphire::ZonePtr Sapphire::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const { auto zoneMap = m_territoryTypeIdToInstanceGuidMap.find( territoryTypeId ); if( zoneMap == m_territoryTypeIdToInstanceGuidMap.end() ) @@ -350,7 +350,7 @@ Core::ZonePtr Core::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTy return zoneMap->second.begin()->second; } -Core::ZonePtr Core::TerritoryMgr::getZoneByLandSetId( uint32_t landSetId ) const +Sapphire::ZonePtr Sapphire::TerritoryMgr::getZoneByLandSetId( uint32_t landSetId ) const { auto zoneMap = m_landSetIdToZonePtrMap.find( landSetId ); if( zoneMap == m_landSetIdToZonePtrMap.end() ) @@ -359,7 +359,7 @@ Core::ZonePtr Core::TerritoryMgr::getZoneByLandSetId( uint32_t landSetId ) const return zoneMap->second; } -void Core::TerritoryMgr::updateTerritoryInstances( uint32_t currentTime ) +void Sapphire::TerritoryMgr::updateTerritoryInstances( uint32_t currentTime ) { for( auto& zone : m_zoneSet ) { @@ -372,7 +372,7 @@ void Core::TerritoryMgr::updateTerritoryInstances( uint32_t currentTime ) } } -Core::TerritoryMgr::InstanceIdList Core::TerritoryMgr::getInstanceContentIdList( uint16_t instanceContentId ) const +Sapphire::TerritoryMgr::InstanceIdList Sapphire::TerritoryMgr::getInstanceContentIdList( uint16_t instanceContentId ) const { std::vector< uint32_t > idList; auto zoneMap = m_instanceContentToInstanceMap.find( instanceContentId ); @@ -387,14 +387,14 @@ Core::TerritoryMgr::InstanceIdList Core::TerritoryMgr::getInstanceContentIdList( return idList; } -bool Core::TerritoryMgr::movePlayer( uint32_t territoryTypeId, Core::Entity::PlayerPtr pPlayer ) +bool Sapphire::TerritoryMgr::movePlayer( uint32_t territoryTypeId, Sapphire::Entity::PlayerPtr pPlayer ) { auto pZone = getZoneByTerritoryTypeId( territoryTypeId ); assert( pZone ); return movePlayer( pZone, pPlayer ); } -bool Core::TerritoryMgr::movePlayer( ZonePtr pZone, Core::Entity::PlayerPtr pPlayer ) +bool Sapphire::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire::Entity::PlayerPtr pPlayer ) { auto pLog = g_fw.get< Logger >(); if( !pZone ) @@ -437,7 +437,7 @@ bool Core::TerritoryMgr::movePlayer( ZonePtr pZone, Core::Entity::PlayerPtr pPla return true; } -Core::ZonePtr Core::TerritoryMgr::getLinkedInstance( uint32_t playerId ) const +Sapphire::ZonePtr Sapphire::TerritoryMgr::getLinkedInstance( uint32_t playerId ) const { auto it = m_playerIdToInstanceMap.find( playerId ); if( it != m_playerIdToInstanceMap.end() ) @@ -447,12 +447,12 @@ Core::ZonePtr Core::TerritoryMgr::getLinkedInstance( uint32_t playerId ) const return nullptr; } -const std::pair< uint16_t, uint16_t >& Core::TerritoryMgr::getCurrentFestival() const +const std::pair< uint16_t, uint16_t >& Sapphire::TerritoryMgr::getCurrentFestival() const { return m_currentFestival; } -void Core::TerritoryMgr::setCurrentFestival( uint16_t festivalId, uint16_t additionalFestival ) +void Sapphire::TerritoryMgr::setCurrentFestival( uint16_t festivalId, uint16_t additionalFestival ) { m_currentFestival = { festivalId, additionalFestival }; @@ -462,7 +462,7 @@ void Core::TerritoryMgr::setCurrentFestival( uint16_t festivalId, uint16_t addit } } -void Core::TerritoryMgr::disableCurrentFestival() +void Sapphire::TerritoryMgr::disableCurrentFestival() { setCurrentFestival( 0 ); } diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.h b/src/servers/sapphire_zone/Zone/TerritoryMgr.h index 8e08fdef..1e4dd85c 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.h +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.h @@ -5,7 +5,7 @@ #include #include -namespace Core::Data +namespace Sapphire::Data { // TODO: this should actually not be here but should be generated in exdData aswell struct PlaceName; @@ -17,7 +17,7 @@ namespace Core::Data using InstanceContentPtr = std::shared_ptr< InstanceContent >; } -namespace Core +namespace Sapphire { /*! \class TerritoryMgr_c diff --git a/src/servers/sapphire_zone/Zone/Zone.cpp b/src/servers/sapphire_zone/Zone/Zone.cpp index bf615b31..8a1bce65 100644 --- a/src/servers/sapphire_zone/Zone/Zone.cpp +++ b/src/servers/sapphire_zone/Zone/Zone.cpp @@ -37,17 +37,17 @@ #include "TerritoryMgr.h" #include "Framework.h" -using namespace Core::Common; -using namespace Core::Network::Packets; -using namespace Core::Network::Packets::Server; -using namespace Core::Network::ActorControl; +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::Network::ActorControl; -extern Core::Framework g_fw; +extern Sapphire::Framework g_fw; /** * \brief */ -Core::Zone::Zone() : +Sapphire::Zone::Zone() : m_territoryTypeId( 0 ), m_guId( 0 ), m_currentWeather( Weather::FairSkies ), @@ -57,7 +57,7 @@ Core::Zone::Zone() : { } -Core::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ) : +Sapphire::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ) : m_currentWeather( Weather::FairSkies ), m_nextEObjId( 0x400D0000 ) { @@ -70,14 +70,14 @@ Core::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& in m_lastMobUpdate = 0; m_weatherOverride = Weather::None; - m_territoryTypeInfo = pExdData->get< Core::Data::TerritoryType >( territoryTypeId ); + m_territoryTypeInfo = pExdData->get< Sapphire::Data::TerritoryType >( territoryTypeId ); loadWeatherRates(); m_currentWeather = getNextWeather(); } -void Core::Zone::loadWeatherRates() +void Sapphire::Zone::loadWeatherRates() { if( !m_territoryTypeInfo ) return; @@ -102,11 +102,11 @@ void Core::Zone::loadWeatherRates() } } -Core::Zone::~Zone() +Sapphire::Zone::~Zone() { } -bool Core::Zone::init() +bool Sapphire::Zone::init() { auto pScriptMgr = g_fw.get< Scripting::ScriptMgr >(); @@ -119,22 +119,22 @@ bool Core::Zone::init() return true; } -void Core::Zone::setWeatherOverride( Weather weather ) +void Sapphire::Zone::setWeatherOverride( Weather weather ) { m_weatherOverride = weather; } -Weather Core::Zone::getCurrentWeather() const +Weather Sapphire::Zone::getCurrentWeather() const { return m_currentWeather; } -const Core::FestivalPair& Core::Zone::getCurrentFestival() const +const Sapphire::FestivalPair& Sapphire::Zone::getCurrentFestival() const { return m_currentFestival; } -void Core::Zone::setCurrentFestival( uint16_t festivalId, uint16_t additionalFestivalId ) +void Sapphire::Zone::setCurrentFestival( uint16_t festivalId, uint16_t additionalFestivalId ) { m_currentFestival = { festivalId, additionalFestivalId }; @@ -147,11 +147,11 @@ void Core::Zone::setCurrentFestival( uint16_t festivalId, uint16_t additionalFes } } -void Core::Zone::loadCellCache() +void Sapphire::Zone::loadCellCache() { } -Weather Core::Zone::getNextWeather() +Weather Sapphire::Zone::getNextWeather() { uint32_t unixTime = static_cast< uint32_t >( Util::getTimeSeconds() ); // Get Eorzea hour for weather start @@ -181,7 +181,7 @@ Weather Core::Zone::getNextWeather() return Weather::FairSkies; } -void Core::Zone::pushActor( Entity::ActorPtr pActor ) +void Sapphire::Zone::pushActor( Entity::ActorPtr pActor ) { float mx = pActor->getPos().x; float my = pActor->getPos().z; @@ -239,7 +239,7 @@ void Core::Zone::pushActor( Entity::ActorPtr pActor ) } } -void Core::Zone::removeActor( Entity::ActorPtr pActor ) +void Sapphire::Zone::removeActor( Entity::ActorPtr pActor ) { float mx = pActor->getPos().x; float my = pActor->getPos().z; @@ -277,7 +277,7 @@ void Core::Zone::removeActor( Entity::ActorPtr pActor ) } -void Core::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, +void Sapphire::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, Network::Packets::FFXIVPacketBasePtr pPacketEntry ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); @@ -306,7 +306,7 @@ void Core::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t ran } } -void Core::Zone::queuePacketForZone( Entity::Player& sourcePlayer, +void Sapphire::Zone::queuePacketForZone( Entity::Player& sourcePlayer, Network::Packets::FFXIVPacketBasePtr pPacketEntry, bool forSelf ) { @@ -328,32 +328,32 @@ void Core::Zone::queuePacketForZone( Entity::Player& sourcePlayer, } } -uint32_t Core::Zone::getTerritoryTypeId() const +uint32_t Sapphire::Zone::getTerritoryTypeId() const { return m_territoryTypeId; } -uint32_t Core::Zone::getGuId() const +uint32_t Sapphire::Zone::getGuId() const { return m_guId; } -const std::string& Core::Zone::getName() const +const std::string& Sapphire::Zone::getName() const { return m_placeName; } -const std::string& Core::Zone::getInternalName() const +const std::string& Sapphire::Zone::getInternalName() const { return m_internalName; } -std::size_t Core::Zone::getPopCount() const +std::size_t Sapphire::Zone::getPopCount() const { return m_playerMap.size(); } -bool Core::Zone::checkWeather() +bool Sapphire::Zone::checkWeather() { if( m_weatherOverride != Weather::None ) { @@ -376,7 +376,7 @@ bool Core::Zone::checkWeather() } /* -void Core::Zone::updateBnpcs( int64_t tickCount ) +void Sapphire::Zone::updateBnpcs( int64_t tickCount ) { if( ( tickCount - m_lastMobUpdate ) > 250 ) { @@ -425,7 +425,7 @@ void Core::Zone::updateBnpcs( int64_t tickCount ) } */ -bool Core::Zone::update( uint32_t currTime ) +bool Sapphire::Zone::update( uint32_t currTime ) { int64_t tickCount = Util::getTimeMs(); @@ -439,7 +439,7 @@ bool Core::Zone::update( uint32_t currTime ) return true; } -void Core::Zone::updateSessions( bool changedWeather ) +void Sapphire::Zone::updateSessions( bool changedWeather ) { auto it = m_sessionSet.begin(); @@ -480,7 +480,7 @@ void Core::Zone::updateSessions( bool changedWeather ) } } -bool Core::Zone::isCellActive( uint32_t x, uint32_t y ) +bool Sapphire::Zone::isCellActive( uint32_t x, uint32_t y ) { uint32_t endX = ( ( x + 1 ) <= _sizeX ) ? x + 1 : ( _sizeX - 1 ); uint32_t endY = ( ( y + 1 ) <= _sizeY ) ? y + 1 : ( _sizeY - 1 ); @@ -505,7 +505,7 @@ bool Core::Zone::isCellActive( uint32_t x, uint32_t y ) return false; } -void Core::Zone::updateCellActivity( uint32_t x, uint32_t y, int32_t radius ) +void Sapphire::Zone::updateCellActivity( uint32_t x, uint32_t y, int32_t radius ) { uint32_t endX = ( x + radius ) <= _sizeX ? x + radius : ( _sizeX - 1 ); @@ -554,7 +554,7 @@ void Core::Zone::updateCellActivity( uint32_t x, uint32_t y, int32_t radius ) } } -void Core::Zone::updateActorPosition( Entity::Actor& actor ) +void Sapphire::Zone::updateActorPosition( Entity::Actor& actor ) { if( actor.getCurrentZone() != shared_from_this() ) @@ -626,7 +626,7 @@ void Core::Zone::updateActorPosition( Entity::Actor& actor ) } -void Core::Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ) +void Sapphire::Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ) { if( pCell == nullptr ) return; @@ -679,7 +679,7 @@ void Core::Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ) } } -void Core::Zone::onPlayerZoneIn( Entity::Player& player ) +void Sapphire::Zone::onPlayerZoneIn( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( @@ -687,7 +687,7 @@ void Core::Zone::onPlayerZoneIn( Entity::Player& player ) +", Entity#" + std::to_string( player.getId() ) ); } -void Core::Zone::onLeaveTerritory( Entity::Player& player ) +void Sapphire::Zone::onLeaveTerritory( Entity::Player& player ) { auto pLog = g_fw.get< Logger >(); pLog->debug( @@ -695,27 +695,27 @@ void Core::Zone::onLeaveTerritory( Entity::Player& player ) +", Entity#" + std::to_string( player.getId() ) ); } -void Core::Zone::onUpdate( uint32_t currTime ) +void Sapphire::Zone::onUpdate( uint32_t currTime ) { } -void Core::Zone::onFinishLoading( Entity::Player& player ) +void Sapphire::Zone::onFinishLoading( Entity::Player& player ) { } -void Core::Zone::onInitDirector( Entity::Player& player ) +void Sapphire::Zone::onInitDirector( Entity::Player& player ) { } -void Core::Zone::onEnterTerritory( Core::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) +void Sapphire::Zone::onEnterTerritory( Sapphire::Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ) { } -void Core::Zone::registerEObj( Entity::EventObjectPtr object ) +void Sapphire::Zone::registerEObj( Entity::EventObjectPtr object ) { if( !object ) return; @@ -730,7 +730,7 @@ void Core::Zone::registerEObj( Entity::EventObjectPtr object ) pLog->debug( "Registered instance eobj: " + std::to_string( object->getId() ) ); } -Core::Entity::EventObjectPtr Core::Zone::getEObj( uint32_t objId ) +Sapphire::Entity::EventObjectPtr Sapphire::Zone::getEObj( uint32_t objId ) { auto obj = m_eventObjects.find( objId ); if( obj == m_eventObjects.end() ) @@ -739,17 +739,17 @@ Core::Entity::EventObjectPtr Core::Zone::getEObj( uint32_t objId ) return obj->second; } -Core::InstanceContentPtr Core::Zone::getAsInstanceContent() +Sapphire::InstanceContentPtr Sapphire::Zone::getAsInstanceContent() { return std::dynamic_pointer_cast< InstanceContent, Zone >( shared_from_this() ); } -uint32_t Core::Zone::getNextEObjId() +uint32_t Sapphire::Zone::getNextEObjId() { return ++m_nextEObjId; } -Core::Entity::EventObjectPtr Core::Zone::registerEObj( const std::string& name, uint32_t objectId, uint32_t mapLink, +Sapphire::Entity::EventObjectPtr Sapphire::Zone::registerEObj( const std::string& name, uint32_t objectId, uint32_t mapLink, uint8_t state, FFXIVARR_POSITION3 pos, float scale, float rotation ) { diff --git a/src/servers/sapphire_zone/Zone/Zone.h b/src/servers/sapphire_zone/Zone/Zone.h index 9e973702..fabadf8b 100644 --- a/src/servers/sapphire_zone/Zone/Zone.h +++ b/src/servers/sapphire_zone/Zone/Zone.h @@ -16,7 +16,7 @@ #include #include -namespace Core +namespace Sapphire { class Session; diff --git a/src/servers/sapphire_zone/Zone/ZonePosition.cpp b/src/servers/sapphire_zone/Zone/ZonePosition.cpp index a1a1a6ee..2b017d78 100644 --- a/src/servers/sapphire_zone/Zone/ZonePosition.cpp +++ b/src/servers/sapphire_zone/Zone/ZonePosition.cpp @@ -1,12 +1,12 @@ #include "ZonePosition.h" -Core::ZonePosition::ZonePosition() +Sapphire::ZonePosition::ZonePosition() : m_id( 0 ), m_targetZoneId( 0 ), m_radius( 0 ) { } -Core::ZonePosition::ZonePosition( uint32_t id, uint32_t targetZoneId, const Common::FFXIVARR_POSITION3& targetPosition, +Sapphire::ZonePosition::ZonePosition( uint32_t id, uint32_t targetZoneId, const Common::FFXIVARR_POSITION3& targetPosition, uint32_t radius, float rotation ) { m_id = id; @@ -16,26 +16,26 @@ Core::ZonePosition::ZonePosition( uint32_t id, uint32_t targetZoneId, const Comm m_rotation = rotation; } -Core::ZonePosition::~ZonePosition() +Sapphire::ZonePosition::~ZonePosition() { } -uint32_t Core::ZonePosition::getId() const +uint32_t Sapphire::ZonePosition::getId() const { return m_id; } -uint32_t Core::ZonePosition::getTargetZoneId() const +uint32_t Sapphire::ZonePosition::getTargetZoneId() const { return m_targetZoneId; } -const Core::Common::FFXIVARR_POSITION3& Core::ZonePosition::getTargetPosition() const +const Sapphire::Common::FFXIVARR_POSITION3& Sapphire::ZonePosition::getTargetPosition() const { return m_targetPos; } -float Core::ZonePosition::getTargetRotation() const +float Sapphire::ZonePosition::getTargetRotation() const { return m_rotation; } diff --git a/src/servers/sapphire_zone/Zone/ZonePosition.h b/src/servers/sapphire_zone/Zone/ZonePosition.h index 82ae6494..cdbc887e 100644 --- a/src/servers/sapphire_zone/Zone/ZonePosition.h +++ b/src/servers/sapphire_zone/Zone/ZonePosition.h @@ -3,7 +3,7 @@ #include -namespace Core { +namespace Sapphire { class ZonePosition { diff --git a/src/servers/sapphire_zone/mainGameServer.cpp b/src/servers/sapphire_zone/mainGameServer.cpp index e6acc87d..d0ac6c4c 100644 --- a/src/servers/sapphire_zone/mainGameServer.cpp +++ b/src/servers/sapphire_zone/mainGameServer.cpp @@ -16,9 +16,9 @@ #include -Core::Framework g_fw; +Sapphire::Framework g_fw; -using namespace Core; +using namespace Sapphire; bool setupFramework() { diff --git a/src/tools/discovery_parser/main.cpp b/src/tools/discovery_parser/main.cpp index 17efbed0..06c1326d 100644 --- a/src/tools/discovery_parser/main.cpp +++ b/src/tools/discovery_parser/main.cpp @@ -261,7 +261,7 @@ std::string zoneNameToPath( const std::string& name ) info.name = teriName; zoneInfoMap[ row.first ] = info; - if( !found && ( Core::Util::toLowerCopy( name ) == Core::Util::toLowerCopy( teriName ) ) ) + if( !found && ( Sapphire::Util::toLowerCopy( name ) == Sapphire::Util::toLowerCopy( teriName ) ) ) { found = true; path = teriPath; @@ -273,7 +273,7 @@ std::string zoneNameToPath( const std::string& name ) { for( const auto& entry : zoneInfoMap ) { - if( found = Core::Util::toLowerCopy( name ) == Core::Util::toLowerCopy( entry.second.name ) ) + if( found = Sapphire::Util::toLowerCopy( name ) == Sapphire::Util::toLowerCopy( entry.second.name ) ) { path = entry.second.path; zoneId = entry.second.id; diff --git a/src/tools/event_object_parser/instance.tmpl b/src/tools/event_object_parser/instance.tmpl index d86b4ac5..7544e2e9 100644 --- a/src/tools/event_object_parser/instance.tmpl +++ b/src/tools/event_object_parser/instance.tmpl @@ -17,7 +17,7 @@ public: } - void onEnterTerritory( InstanceContentPtr instance, Core::Entity::Player& player, Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override + void onEnterTerritory( InstanceContentPtr instance, Sapphire::Entity::Player& player, Entity::Player &player, uint32_t eventId, uint16_t param1, uint16_t param2 ) override { } diff --git a/src/tools/event_object_parser/main.cpp b/src/tools/event_object_parser/main.cpp index 1f5c2333..dc943f60 100644 --- a/src/tools/event_object_parser/main.cpp +++ b/src/tools/event_object_parser/main.cpp @@ -209,7 +209,7 @@ std::string zoneNameToPath( const std::string& name ) if( teriName.empty() ) continue; auto teriPath = std::get< std::string >( fields.at( static_cast< size_t >( TerritoryTypeExdIndexes::Path ) ) ); - if( !found && ( Core::Util::toLowerCopy( name) == Core::Util::toLowerCopy( teriName ) ) ) + if( !found && ( Sapphire::Util::toLowerCopy( name) == Sapphire::Util::toLowerCopy( teriName ) ) ) { path = teriPath; found = true; @@ -331,7 +331,7 @@ void loadAllInstanceContentEntries() zoneDumpList.emplace( zoneNameMap[ teri ] ); std::string remove = "★_ '()[]-\x1a\x1\x2\x1f\x1\x3.:"; - Core::Util::eraseAllIn( name, remove ); + Sapphire::Util::eraseAllIn( name, remove ); name[ 0 ] = toupper( name[ 0 ] ); contentList.push_back( { id, name, zoneNameMap[ teri ], type } ); } @@ -585,7 +585,7 @@ int main( int argc, char* argv[] ) { name = eobjNameMap[ id ]; std::string remove = "★_ '()[]-\x1a\x1\x2\x1f\x1\x3.:"; - Core::Util::eraseAllIn( name, remove ); + Sapphire::Util::eraseAllIn( name, remove ); name[ 0 ] = toupper( name[ 0 ] ); } diff --git a/src/tools/exd_common_gen/generated.h b/src/tools/exd_common_gen/generated.h index 06a911ba..ef6ceb13 100644 --- a/src/tools/exd_common_gen/generated.h +++ b/src/tools/exd_common_gen/generated.h @@ -6,7 +6,7 @@ /* This file has been automatically generated. Changes will be lost upon regeneration. To change the content edit tools/exd_common_gen */ -namespace Core { +namespace Sapphire { namespace Common { /////////////////////////////////////////////////////////// diff --git a/src/tools/exd_common_gen/main.cpp b/src/tools/exd_common_gen/main.cpp index aa2ba071..0174ba6b 100644 --- a/src/tools/exd_common_gen/main.cpp +++ b/src/tools/exd_common_gen/main.cpp @@ -17,8 +17,8 @@ #include -Core::Logger g_log; -Core::Data::ExdDataGenerated g_exdData; +Sapphire::Logger g_log; +Sapphire::Data::ExdDataGenerated g_exdData; //const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); @@ -57,7 +57,7 @@ std::string generateEnum( const std::string& exd, int8_t nameIndex, const std::s } std::string remove = ",_-':!(){} \x02\x1f\x01\x03"; - Core::Util::eraseAllIn( value, remove ); + Sapphire::Util::eraseAllIn( value, remove ); value[ 0 ] = std::toupper( value[ 0 ] ); @@ -109,7 +109,7 @@ int main() "/* This file has been automatically generated.\n Changes will be lost upon regeneration.\n To change the content edit tools/exd_common_gen */\n"; - result += "namespace Core {\n"; + result += "namespace Sapphire {\n"; result += "namespace Common {\n"; result += generateEnum( "ActionCategory", 0, "uint8_t" ); result += generateEnum( "BeastReputationRank", 1, "uint8_t" ); diff --git a/src/tools/exd_struct_gen/ExdData.cpp.tmpl b/src/tools/exd_struct_gen/ExdData.cpp.tmpl index a4babc6d..72a2d752 100644 --- a/src/tools/exd_struct_gen/ExdData.cpp.tmpl +++ b/src/tools/exd_struct_gen/ExdData.cpp.tmpl @@ -6,22 +6,22 @@ CONSTRUCTORS -Core::Data::ExdDataGenerated::ExdDataGenerated() +Sapphire::Data::ExdDataGenerated::ExdDataGenerated() { } -Core::Data::ExdDataGenerated::~ExdDataGenerated() +Sapphire::Data::ExdDataGenerated::~ExdDataGenerated() { } -xiv::exd::Exd Core::Data::ExdDataGenerated::setupDatAccess( const std::string& name, xiv::exd::Language lang ) +xiv::exd::Exd Sapphire::Data::ExdDataGenerated::setupDatAccess( const std::string& name, xiv::exd::Language lang ) { auto& cat = m_exd_data->get_category( name ); return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) ); }; -void Core::Data::ExdDataGenerated::loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList ) +void Sapphire::Data::ExdDataGenerated::loadIdList( xiv::exd::Exd& data, std::set< uint32_t >& outIdList ) { auto pDataRows = data.get_rows(); @@ -32,7 +32,7 @@ void Core::Data::ExdDataGenerated::loadIdList( xiv::exd::Exd& data, std::set< ui } } -bool Core::Data::ExdDataGenerated::init( const std::string& path ) +bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) { try { diff --git a/src/tools/exd_struct_gen/ExdData.h.tmpl b/src/tools/exd_struct_gen/ExdData.h.tmpl index 20ac48c5..6af410b4 100644 --- a/src/tools/exd_struct_gen/ExdData.h.tmpl +++ b/src/tools/exd_struct_gen/ExdData.h.tmpl @@ -13,7 +13,7 @@ #include #include -namespace Core { +namespace Sapphire { namespace Data { class ExdDataGenerated; diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index 306e2473..7f8c9fec 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -21,8 +21,8 @@ -Core::Logger g_log; -Core::Data::ExdDataGenerated g_exdData; +Sapphire::Logger g_log; +Sapphire::Data::ExdDataGenerated g_exdData; bool skipUnmapped = true; std::map< char, std::string > numberToStringMap @@ -244,11 +244,11 @@ std::string generateStruct( const std::string& exd ) auto exhHead = exh.get_header(); if( exhHead.variant == 2 ) { - result += "\n " + exd + "( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData );\n"; + result += "\n " + exd + "( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData );\n"; } else { - result += "\n " + exd + "( uint32_t row_id, Core::Data::ExdDataGenerated* exdData );\n"; + result += "\n " + exd + "( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData );\n"; } result += "};\n\n"; @@ -269,13 +269,13 @@ std::string generateConstructorsDecl( const std::string& exd ) auto exhHead = exh.get_header(); if( exhHead.variant == 2 ) { - result += "\nCore::Data::" + exd + "::" + exd + "( uint32_t row_id, uint32_t subRow, Core::Data::ExdDataGenerated* exdData )\n"; + result += "\nSapphire::Data::" + exd + "::" + exd + "( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData )\n"; result += "{\n"; result += indent + "auto row = exdData->m_" + exd + "Dat.get_row( row_id, subRow );\n"; } else { - result += "\nCore::Data::" + exd + "::" + exd + "( uint32_t row_id, Core::Data::ExdDataGenerated* exdData )\n"; + result += "\nSapphire::Data::" + exd + "::" + exd + "( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData )\n"; result += "{\n"; result += indent + "auto row = exdData->m_" + exd + "Dat.get_row( row_id );\n"; } diff --git a/src/tools/exd_struct_test/ExdData.cpp.tmpl b/src/tools/exd_struct_test/ExdData.cpp.tmpl index 47bd4ac5..c38a99b8 100644 --- a/src/tools/exd_struct_test/ExdData.cpp.tmpl +++ b/src/tools/exd_struct_test/ExdData.cpp.tmpl @@ -3,21 +3,21 @@ #include -Core::Data::ExdDataGenerated::ExdDataGenerated() +Sapphire::Data::ExdDataGenerated::ExdDataGenerated() { } -Core::Data::ExdDataGenerated::~ExdDataGenerated() +Sapphire::Data::ExdDataGenerated::~ExdDataGenerated() { } -xiv::exd::Exd Core::Data::ExdDataGenerated::setupDatAccess( const std::string& name, xiv::exd::Language lang ) +xiv::exd::Exd Sapphire::Data::ExdDataGenerated::setupDatAccess( const std::string& name, xiv::exd::Language lang ) { auto& cat = m_exd_data->get_category( name ); return static_cast< xiv::exd::Exd >( cat.get_data_ln( lang ) ); }; -bool Core::Data::ExdDataGenerated::init( const std::string& path ) +bool Sapphire::Data::ExdDataGenerated::init( const std::string& path ) { try { diff --git a/src/tools/exd_struct_test/ExdData.h.tmpl b/src/tools/exd_struct_test/ExdData.h.tmpl index 93bc1edf..aa5e2872 100644 --- a/src/tools/exd_struct_test/ExdData.h.tmpl +++ b/src/tools/exd_struct_test/ExdData.h.tmpl @@ -12,7 +12,7 @@ #include #include -namespace Core { +namespace Sapphire { namespace Data { STRUCTS diff --git a/src/tools/exd_struct_test/main.cpp b/src/tools/exd_struct_test/main.cpp index ea4389d9..d86f00e0 100644 --- a/src/tools/exd_struct_test/main.cpp +++ b/src/tools/exd_struct_test/main.cpp @@ -17,8 +17,8 @@ #include -Core::Logger g_log; -Core::Data::ExdDataGenerated g_exdData; +Sapphire::Logger g_log; +Sapphire::Data::ExdDataGenerated g_exdData; //const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); @@ -44,13 +44,13 @@ int main() //g_log.info( "getting id list done" ); //for( auto id : idList ) { - auto teri1 = g_exdData.get< Core::Data::GilShopItem >( 262440, 0 ); + auto teri1 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 0 ); g_log.info( "0 -> " + std::to_string( teri1->item ) ); - auto teri2 = g_exdData.get< Core::Data::GilShopItem >( 262440, 1 ); + auto teri2 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 1 ); g_log.info( "1 -> " + std::to_string( teri2->item ) ); - auto teri3 = g_exdData.get< Core::Data::GilShopItem >( 262440, 2 ); + auto teri3 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 2 ); g_log.info( "2 -> " + std::to_string( teri3->item ) ); } diff --git a/src/tools/mob_parse/main.cpp b/src/tools/mob_parse/main.cpp index c7de3b46..8fa6ab68 100644 --- a/src/tools/mob_parse/main.cpp +++ b/src/tools/mob_parse/main.cpp @@ -22,8 +22,8 @@ namespace filesys = std::experimental::filesystem; #include #include -Core::Logger g_log; -Core::Data::ExdDataGenerated g_exdData; +Sapphire::Logger g_log; +Sapphire::Data::ExdDataGenerated g_exdData; //const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); @@ -120,7 +120,7 @@ std::string binaryToHexString( uint8_t* pBinData, uint16_t size ) for( uint32_t i = 0; i < size; i++ ) { - outStr += Core::Util::intToHexString( pBinData[ i ] & 0xFF ); + outStr += Sapphire::Util::intToHexString( pBinData[ i ] & 0xFF ); } return outStr; @@ -255,9 +255,9 @@ int dumpSpawns() for( auto entry : zoneToPacketList ) { - //auto nameStruct = g_exdData.get< Core::Data::BNpcName >( entry.first ); - auto teri1 = g_exdData.get< Core::Data::TerritoryType >( entry.first ); - auto teriPlaceName = g_exdData.get< Core::Data::PlaceName >( teri1->placeName ); + //auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( entry.first ); + auto teri1 = g_exdData.get< Sapphire::Data::TerritoryType >( entry.first ); + auto teriPlaceName = g_exdData.get< Sapphire::Data::PlaceName >( teri1->placeName ); g_log.info( std::to_string( entry.first ) + " - " + teri1->name + " - " + teriPlaceName->name ); g_log.info( "Mob Count: " + std::to_string( entry.second.size() ) ); @@ -265,7 +265,7 @@ int dumpSpawns() { nameToPacketList[ mob.bNPCBase ].push_back( mob ); - auto nameStruct = g_exdData.get< Core::Data::BNpcName >( mob.bNPCName ); + auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mob.bNPCName ); //g_log.info( nameStruct->singular + " " + std::to_string( packet.bNPCBase ) ); } @@ -281,7 +281,7 @@ int dumpSpawns() for( auto mobName : lvlToPacket ) { - auto nameStruct = g_exdData.get< Core::Data::BNpcName >( mobName.second.at(0).bNPCName ); + auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mobName.second.at(0).bNPCName ); g_log.info( "|--> " + nameStruct->singular + "(" + std::to_string( mobName.second.size() ) + ")" ); spawngroups++; @@ -418,7 +418,7 @@ int dumpTemplates() if( pos != std::string::npos ) { auto zoneIdStr = file.substr( pos + 1 ); - auto teri1 = g_exdData.get< Core::Data::TerritoryType >( std::stoi( zoneIdStr ) ); + auto teri1 = g_exdData.get< Sapphire::Data::TerritoryType >( std::stoi( zoneIdStr ) ); g_log.info( zoneIdStr + " - " + teri1->name ); } } @@ -433,7 +433,7 @@ int dumpTemplates() nameToPacketList[ packet.bNPCName ].push_back( packet ); - auto nameStruct = g_exdData.get< Core::Data::BNpcName >( packet.bNPCName ); + auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( packet.bNPCName ); //g_log.info( nameStruct->singular + " " + std::to_string( packet.bNPCBase ) ); } */ @@ -445,9 +445,9 @@ int dumpTemplates() for( auto entry : zoneToPacketList ) { - //auto nameStruct = g_exdData.get< Core::Data::BNpcName >( entry.first ); - auto teri1 = g_exdData.get< Core::Data::TerritoryType >( entry.first ); - auto teriPlaceName = g_exdData.get< Core::Data::PlaceName >( teri1->placeName ); + //auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( entry.first ); + auto teri1 = g_exdData.get< Sapphire::Data::TerritoryType >( entry.first ); + auto teriPlaceName = g_exdData.get< Sapphire::Data::PlaceName >( teri1->placeName ); g_log.info( std::to_string( entry.first ) + " - " + teri1->name + " - " + teriPlaceName->name ); g_log.info( "Mob Count: " + std::to_string( entry.second.size() ) ); @@ -455,7 +455,7 @@ int dumpTemplates() { nameToPacketList[ mob.bNPCBase ].push_back( mob ); - auto nameStruct = g_exdData.get< Core::Data::BNpcName >( mob.bNPCName ); + auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mob.bNPCName ); //g_log.info( nameStruct->singular + " " + std::to_string( packet.bNPCBase ) ); } @@ -463,7 +463,7 @@ int dumpTemplates() for( auto mobName : nameToPacketList ) { - auto nameStruct = g_exdData.get< Core::Data::BNpcName >( mobName.second.at(0).bNPCName ); + auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mobName.second.at(0).bNPCName ); g_log.info( "|--> " + nameStruct->singular + "(" + std::to_string( mobName.second.size() ) + ")" ); auto instance = mobName.second.at(0); @@ -560,7 +560,7 @@ int dumpTemplates() g_log.info( "getting id list done" ); for( auto id : idList ) { - auto teri1 = g_exdData.get( id ); + auto teri1 = g_exdData.get( id ); g_log.info( teri1->name ); }*/ diff --git a/src/tools/pcb_reader/main.cpp b/src/tools/pcb_reader/main.cpp index 7c92eb63..30544613 100644 --- a/src/tools/pcb_reader/main.cpp +++ b/src/tools/pcb_reader/main.cpp @@ -195,7 +195,7 @@ std::string zoneNameToPath( const std::string& name ) if( teriName.empty() ) continue; auto teriPath = std::get< std::string >( fields.at( static_cast< size_t >( TerritoryTypeExdIndexes::Path ) ) ); - if( !found && ( Core::Util::toLowerCopy( name ) == Core::Util::toLowerCopy( teriName ) ) ) + if( !found && ( Sapphire::Util::toLowerCopy( name ) == Sapphire::Util::toLowerCopy( teriName ) ) ) { path = teriPath; found = true; diff --git a/src/tools/quest_parser/main.cpp b/src/tools/quest_parser/main.cpp index 06990703..3205576d 100644 --- a/src/tools/quest_parser/main.cpp +++ b/src/tools/quest_parser/main.cpp @@ -21,8 +21,8 @@ #include -Core::Logger g_log; -Core::Data::ExdDataGenerated g_exdDataGen; +Sapphire::Logger g_log; +Sapphire::Data::ExdDataGenerated g_exdDataGen; namespace fs = std::experimental::filesystem; const std::string onTalkStr( @@ -63,7 +63,7 @@ std::string titleCase( const std::string& str ) } void -createScript( std::shared_ptr< Core::Data::Quest >& pQuestData, std::set< std::string >& additionalList, int questId ) +createScript( std::shared_ptr< Sapphire::Data::Quest >& pQuestData, std::set< std::string >& additionalList, int questId ) { std::string header( "// This is an automatically generated C++ script template\n" @@ -364,7 +364,7 @@ int main( int argc, char** argv ) for( const auto& row : rows ) { g_log.info( "Generating " + std::to_string( row ) ); - auto questInfo = g_exdDataGen.get< Core::Data::Quest >( row ); + auto questInfo = g_exdDataGen.get< Sapphire::Data::Quest >( row ); if( questInfo->name.empty() || questInfo->id.empty() ) { From 56d1ecc5e5cbd30bfa95d2c32292caacc01de377 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 29 Nov 2018 23:44:08 +0100 Subject: [PATCH 132/385] Set house access to public by default --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- src/servers/sapphire_zone/Zone/HousingZone.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 93afb175..c97f9143 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1601,7 +1601,7 @@ struct LandStruct { uint8_t plotSize; //0 uint8_t houseState; // 2 - uint8_t type; // 4 1 == FC, 2 == Private + uint8_t hasPublicAccess; uint8_t iconAddIcon; // 6 uint32_t fcId; //8 uint32_t fcIcon;// 12 diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index c53d4a0c..fd159f4a 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -134,7 +134,7 @@ void Sapphire::HousingZone::sendLandSet( Entity::Player& player ) landData.plotSize = pLand->getSize(); landData.houseState = pLand->getState(); - landData.type = static_cast< uint8_t >( pLand->getLandType() ); + landData.hasPublicAccess = 1; landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); @@ -169,7 +169,7 @@ void Sapphire::HousingZone::sendLandUpdate( uint8_t landId ) landData.plotSize = pLand->getSize(); landData.houseState = pLand->getState(); - landData.type = static_cast< uint8_t >( pLand->getLandType() ); + landData.hasPublicAccess = 1; landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); From f9b81dfcf95ccd9f117f4412d0bb4fa166d04c85 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 30 Nov 2018 00:11:18 +0100 Subject: [PATCH 133/385] Renamed publicAccess to flags --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- src/servers/sapphire_zone/Zone/HousingZone.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index c97f9143..f91268dd 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1601,7 +1601,7 @@ struct LandStruct { uint8_t plotSize; //0 uint8_t houseState; // 2 - uint8_t hasPublicAccess; + uint8_t flags; // bit1 -> hasPublicAccess; bit2 -> isPersonalHouse uint8_t iconAddIcon; // 6 uint32_t fcId; //8 uint32_t fcIcon;// 12 diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index fd159f4a..99ed7404 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -134,7 +134,7 @@ void Sapphire::HousingZone::sendLandSet( Entity::Player& player ) landData.plotSize = pLand->getSize(); landData.houseState = pLand->getState(); - landData.hasPublicAccess = 1; + landData.flags = 1; landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); @@ -169,7 +169,7 @@ void Sapphire::HousingZone::sendLandUpdate( uint8_t landId ) landData.plotSize = pLand->getSize(); landData.houseState = pLand->getState(); - landData.hasPublicAccess = 1; + landData.flags = 1; landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); From 54009ea9ea3cc1c12116681971e6785edba0bb80 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 30 Nov 2018 22:52:08 +1100 Subject: [PATCH 134/385] correctly register eobjs on startup/build and handle the interaction --- src/common/Exd/ExdDataGenerated.cpp | 4 ++ src/common/Exd/ExdDataGenerated.h | 4 ++ .../Network/PacketDef/Zone/ServerZoneDef.h | 2 +- .../HousingEstateEntranceWarpTaxi.cpp | 38 +++++++++++++++++++ .../common/{ => warptaxi}/WarpTaxi.cpp | 0 .../sapphire_zone/Actor/EventObject.cpp | 14 ++++++- src/servers/sapphire_zone/Actor/EventObject.h | 5 +++ src/servers/sapphire_zone/Zone/HousingMgr.cpp | 4 ++ .../sapphire_zone/Zone/HousingZone.cpp | 19 +++++++--- src/servers/sapphire_zone/Zone/HousingZone.h | 2 + src/servers/sapphire_zone/Zone/Land.cpp | 15 ++++++++ src/servers/sapphire_zone/Zone/Land.h | 3 ++ src/servers/sapphire_zone/Zone/Zone.cpp | 2 +- 13 files changed, 104 insertions(+), 8 deletions(-) create mode 100644 src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp rename src/servers/Scripts/common/{ => warptaxi}/WarpTaxi.cpp (100%) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index f73e2013..a20ba512 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -2909,6 +2909,10 @@ Sapphire::Data::HousingFurniture::HousingFurniture( uint32_t row_id, Sapphire::D Sapphire::Data::HousingMapMarkerInfo::HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ) { auto row = exdData->m_HousingMapMarkerInfoDat.get_row( row_id, subRow ); + x = exdData->getField< float >( row, 0 ); + y = exdData->getField< float >( row, 1 ); + z = exdData->getField< float >( row, 2 ); + plotNumberDistance = exdData->getField< float >( row, 3 ); map = exdData->getField< uint16_t >( row, 4 ); } diff --git a/src/common/Exd/ExdDataGenerated.h b/src/common/Exd/ExdDataGenerated.h index 2099dc91..25913570 100644 --- a/src/common/Exd/ExdDataGenerated.h +++ b/src/common/Exd/ExdDataGenerated.h @@ -3048,6 +3048,10 @@ struct HousingFurniture struct HousingMapMarkerInfo { uint16_t map; + float x; + float y; + float z; + float plotNumberDistance; HousingMapMarkerInfo( uint32_t row_id, uint32_t subRow, Sapphire::Data::ExdDataGenerated* exdData ); }; diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index f91268dd..1e8efb03 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1794,7 +1794,7 @@ struct FFXIVIpcObjectSpawn : int16_t unknown24b; uint16_t unknown28a; int16_t unknown28c; - uint32_t unknown2C; + uint32_t housingLink; Common::FFXIVARR_POSITION3 position; int16_t unknown3C; int16_t unknown3E; diff --git a/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp b/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp new file mode 100644 index 00000000..7190b7e7 --- /dev/null +++ b/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp @@ -0,0 +1,38 @@ +#include +#include + +#include "Zone/HousingZone.h" +#include "Actor/EventObject.h" + +using namespace Sapphire; + +class HousingEstateEntranceWarpTaxi : + public Sapphire::ScriptAPI::EventScript +{ +public: + HousingEstateEntranceWarpTaxi() : + Sapphire::ScriptAPI::EventScript( 0x0002004c ) + { + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + if( !zone ) + return; + + auto eobj = zone->getEObj( actorId ); + if( !eobj ) + return; + + player.sendDebug( "Found plot entrance for plot: " + std::to_string( eobj->getHousingLink() >> 8 ) ); + + player.playScene( getId(), 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 != 1 ) + return; + + // param2 == 1, zone into instance + } ); + } +}; \ No newline at end of file diff --git a/src/servers/Scripts/common/WarpTaxi.cpp b/src/servers/Scripts/common/warptaxi/WarpTaxi.cpp similarity index 100% rename from src/servers/Scripts/common/WarpTaxi.cpp rename to src/servers/Scripts/common/warptaxi/WarpTaxi.cpp diff --git a/src/servers/sapphire_zone/Actor/EventObject.cpp b/src/servers/sapphire_zone/Actor/EventObject.cpp index 5dea822f..ae1ed4ea 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.cpp +++ b/src/servers/sapphire_zone/Actor/EventObject.cpp @@ -29,7 +29,8 @@ Sapphire::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, m_gimmickId( gimmickId ), m_state( initialState ), m_objectId( objectId ), - m_name( givenName ) + m_name( givenName ), + m_housingLink( 0 ) { m_id = actorId; m_pos.x = pos.x; @@ -96,6 +97,16 @@ void Sapphire::Entity::EventObject::setAnimationFlag( uint32_t flag, uint32_t an } } +void Sapphire::Entity::EventObject::setHousingLink( uint32_t housingLink ) +{ + m_housingLink = housingLink; +} + +uint32_t Sapphire::Entity::EventObject::getHousingLink() const +{ + return m_housingLink; +} + void Sapphire::Entity::EventObject::setParentInstance( Sapphire::InstanceContentPtr instance ) { m_parentInstance = instance; @@ -125,6 +136,7 @@ void Sapphire::Entity::EventObject::spawn( Sapphire::Entity::PlayerPtr pTarget ) eobjStatePacket->data().position = getPos(); eobjStatePacket->data().scale = getScale(); eobjStatePacket->data().actorId = getId(); + eobjStatePacket->data().housingLink = getHousingLink(); eobjStatePacket->data().rotation = Math::Util::floatToUInt16Rot( getRot() ); pTarget->queuePacket( eobjStatePacket ); } diff --git a/src/servers/sapphire_zone/Actor/EventObject.h b/src/servers/sapphire_zone/Actor/EventObject.h index ad7382ce..ad6d8bc0 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.h +++ b/src/servers/sapphire_zone/Actor/EventObject.h @@ -45,7 +45,12 @@ namespace Sapphire::Entity void setAnimationFlag( uint32_t flag, uint32_t animationFlag ); + void setHousingLink( uint32_t housingLink ); + + uint32_t getHousingLink() const; + protected: + uint32_t m_housingLink; uint32_t m_gimmickId; uint32_t m_objectId; uint8_t m_state; diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index 2824eb4f..62aa1ffa 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -12,6 +12,7 @@ #include #include "Actor/Player.h" +#include "Actor/EventObject.h" #include "TerritoryMgr.h" #include "Zone.h" @@ -321,6 +322,9 @@ void Sapphire::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t pl player.setLandFlags( LandFlagsSlot::Private, EstateBuilt, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); player.sendLandFlagsSlot( LandFlagsSlot::Private ); + + auto eobj = hZone->registerEObj( "entrance", 2002737, 0, 4, pLand->getMapMarkerPosition(), 1.f, 0.f ); + eobj->setHousingLink( plotNum << 8 ); } void Sapphire::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Zone/HousingZone.cpp index 99ed7404..7ec1121c 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Zone/HousingZone.cpp @@ -9,6 +9,7 @@ #include "Actor/Player.h" #include "Actor/Actor.h" +#include "Actor/EventObject.h" #include "Land.h" #include "House.h" @@ -62,8 +63,14 @@ bool Sapphire::HousingZone::init() uint32_t landId; for( landId = 0; landId < 60; landId++ ) { - auto pObject = make_Land( m_territoryTypeId, getWardNum(), landId, m_landSetId, info ); - m_landPtrMap[ landId ] = pObject; + auto pLand = make_Land( m_territoryTypeId, getWardNum(), landId, m_landSetId, info ); + m_landPtrMap[ landId ] = pLand; + + if( auto house = pLand->getHouse() ) + { + auto eobj = registerEObj( "entrance", 2002737, 0, 4, pLand->getMapMarkerPosition(), 1.f, 0.f ); + eobj->setHousingLink( landId << 8 ); + } } return true; @@ -134,7 +141,6 @@ void Sapphire::HousingZone::sendLandSet( Entity::Player& player ) landData.plotSize = pLand->getSize(); landData.houseState = pLand->getState(); - landData.flags = 1; landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); @@ -142,6 +148,8 @@ void Sapphire::HousingZone::sendLandSet( Entity::Player& player ) if( auto house = pLand->getHouse() ) { + landData.flags = 1; + auto& parts = house->getHouseParts(); for( auto i = 0; i != parts.size(); i++ ) @@ -169,7 +177,6 @@ void Sapphire::HousingZone::sendLandUpdate( uint8_t landId ) landData.plotSize = pLand->getSize(); landData.houseState = pLand->getState(); - landData.flags = 1; landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); @@ -178,6 +185,8 @@ void Sapphire::HousingZone::sendLandUpdate( uint8_t landId ) if( auto house = pLand->getHouse() ) { + landData.flags = 1; + auto& parts = house->getHouseParts(); for( auto i = 0; i != parts.size(); i++ ) @@ -221,4 +230,4 @@ Sapphire::LandPtr Sapphire::HousingZone::getLand( uint8_t id ) return nullptr; return it->second; -} +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Zone/HousingZone.h index 1c86d9dd..9f0ab003 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.h +++ b/src/servers/sapphire_zone/Zone/HousingZone.h @@ -42,6 +42,8 @@ namespace Sapphire void sendLandUpdate( uint8_t landId ); bool isPlayerSubInstance( Entity::Player& player ); + bool onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ); + /* returns current ward number for this zone */ uint8_t getWardNum() const; diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Zone/Land.cpp index 187d2759..4efe3de7 100644 --- a/src/servers/sapphire_zone/Zone/Land.cpp +++ b/src/servers/sapphire_zone/Zone/Land.cpp @@ -88,6 +88,16 @@ void Sapphire::Land::load() m_pHouse = make_House( houseId, m_landSetId, m_landId, m_wardNum, m_territoryTypeId ); } + + auto pExdData = g_fw.get< Data::ExdDataGenerated >(); + auto info = pExdData->get< Sapphire::Data::HousingMapMarkerInfo >( getTerritoryTypeId(), getLandId() ); + if( info ) + { + m_mapMarkerPosition.x = info->x; + m_mapMarkerPosition.y = info->y; + m_mapMarkerPosition.z = info->z; + } + init(); } @@ -169,6 +179,11 @@ Sapphire::HousePtr Sapphire::Land::getHouse() const return m_pHouse; } +FFXIVARR_POSITION3 Sapphire::Land::getMapMarkerPosition() +{ + return m_mapMarkerPosition; +} + Sapphire::Common::LandType Sapphire::Land::getLandType() const { return m_type; diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Zone/Land.h index 82702dd9..3720354a 100644 --- a/src/servers/sapphire_zone/Zone/Land.h +++ b/src/servers/sapphire_zone/Zone/Land.h @@ -36,6 +36,7 @@ namespace Sapphire uint16_t getTerritoryTypeId() const; Common::LandType getLandType() const; Sapphire::HousePtr getHouse() const; + Common::FFXIVARR_POSITION3 getMapMarkerPosition(); //Free Comapny void setFreeCompany( uint32_t id, uint32_t icon, uint32_t color ); @@ -78,6 +79,8 @@ namespace Sapphire uint32_t m_fcIcon; uint32_t m_fcIconColor; + Common::FFXIVARR_POSITION3 m_mapMarkerPosition; + uint32_t m_ownerPlayerId; Sapphire::Data::HousingLandSetPtr m_landInfo; diff --git a/src/servers/sapphire_zone/Zone/Zone.cpp b/src/servers/sapphire_zone/Zone/Zone.cpp index 8a1bce65..5fc6befa 100644 --- a/src/servers/sapphire_zone/Zone/Zone.cpp +++ b/src/servers/sapphire_zone/Zone/Zone.cpp @@ -727,7 +727,7 @@ void Sapphire::Zone::registerEObj( Entity::EventObjectPtr object ) onRegisterEObj( object ); - pLog->debug( "Registered instance eobj: " + std::to_string( object->getId() ) ); + //pLog->debug( "Registered instance eobj: " + std::to_string( object->getId() ) ); } Sapphire::Entity::EventObjectPtr Sapphire::Zone::getEObj( uint32_t objId ) From 08ea6909abdc6fa7d18ba1e9835c77372ccece27 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 30 Nov 2018 23:15:58 +1100 Subject: [PATCH 135/385] EObjs are special so they get their own scripts --- .../HousingEstateEntranceWarpTaxi.cpp | 20 ++++++------------- .../sapphire_zone/Script/NativeScriptApi.cpp | 11 ++++++++++ .../sapphire_zone/Script/NativeScriptApi.h | 10 ++++++++++ .../sapphire_zone/Script/ScriptMgr.cpp | 14 +++++++++++++ 4 files changed, 41 insertions(+), 14 deletions(-) diff --git a/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp b/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp index 7190b7e7..dfc332ff 100644 --- a/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp +++ b/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp @@ -1,38 +1,30 @@ #include #include -#include "Zone/HousingZone.h" #include "Actor/EventObject.h" using namespace Sapphire; class HousingEstateEntranceWarpTaxi : - public Sapphire::ScriptAPI::EventScript + public Sapphire::ScriptAPI::EventObjectScript { public: HousingEstateEntranceWarpTaxi() : - Sapphire::ScriptAPI::EventScript( 0x0002004c ) + Sapphire::ScriptAPI::EventObjectScript( 2002737 ) { } - void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + void onTalk( uint32_t eventId, Entity::Player& player, Entity::EventObject& eobj ) override { - auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); - if( !zone ) - return; + player.sendDebug( "Found plot entrance for plot: " + std::to_string( eobj.getHousingLink() >> 8 ) ); - auto eobj = zone->getEObj( actorId ); - if( !eobj ) - return; - - player.sendDebug( "Found plot entrance for plot: " + std::to_string( eobj->getHousingLink() >> 8 ) ); - - player.playScene( getId(), 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) + player.playScene( eventId, 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) { if( result.param2 != 1 ) return; // param2 == 1, zone into instance + } ); } }; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp index 49b78d9f..5c99828a 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.cpp +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.cpp @@ -143,6 +143,17 @@ namespace Sapphire::ScriptAPI /////////////////////////////////////////////////////////////////// + EventObjectScript::EventObjectScript( uint32_t eobjId ) : + ScriptObject( eobjId, typeid( EventObjectScript ).hash_code() ) + { + } + + void EventObjectScript::onTalk( uint32_t eventId, Sapphire::Entity::Player& player, Entity::EventObject& eobj ) + { + } + + /////////////////////////////////////////////////////////////////// + BattleNpcScript::BattleNpcScript( uint32_t npcId ) : ScriptObject( npcId, typeid( BattleNpcScript ).hash_code() ) { diff --git a/src/servers/sapphire_zone/Script/NativeScriptApi.h b/src/servers/sapphire_zone/Script/NativeScriptApi.h index 05329528..c5c35166 100644 --- a/src/servers/sapphire_zone/Script/NativeScriptApi.h +++ b/src/servers/sapphire_zone/Script/NativeScriptApi.h @@ -182,6 +182,16 @@ namespace Sapphire::ScriptAPI uint32_t catalogId ); }; + /*! + * @brief The base class for scripts that implement behaviour related to Event Objects (EObjs) + */ + class EventObjectScript : public ScriptObject + { + public: + explicit EventObjectScript( uint32_t eobjId ); + + virtual void onTalk( uint32_t eventId, Sapphire::Entity::Player& player, Entity::EventObject& eobj ); + }; /*! * @brief The base class for any scripts that implement behaviour related to BattleNPCs diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index b84c17c1..eaddfce9 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -7,6 +7,7 @@ #include "Zone/Zone.h" #include "Zone/InstanceContent.h" #include "Actor/Player.h" +#include "Actor/EventObject.h" #include "ServerMgr.h" #include "Event/EventHandler.h" #include "Event/EventHelper.h" @@ -168,6 +169,19 @@ void Sapphire::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& pl bool Sapphire::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId ) { + // check if the actor is an eobj and call its script if we have one + auto zone = player.getCurrentZone(); + if( auto eobj = zone->getEObj( actorId ) ) + { + auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventObjectScript >( eobj->getObjectId() ); + if( script ) + { + script->onTalk( eventId, player, *eobj ); + return true; + } + } + + // check for a direct eventid match first, otherwise default to base type auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( script ) { From 68195b17a111931780e3b5647c576921d9e0cc31 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 1 Dec 2018 00:27:16 +1100 Subject: [PATCH 136/385] Refactor managers and move them into Sapphire::World::Managers namespace --- src/servers/Scripts/CMakeLists.txt | 2 +- .../Scripts/common/CmnDefHousingSignboard.cpp | 13 ++-- .../common/aethernet/HousingAethernet.cpp | 2 +- .../HousingEstateEntrance.cpp} | 4 +- .../ThePalaceoftheDeadFloors101110.cpp | 2 +- .../ThePalaceoftheDeadFloors110.cpp | 2 +- .../ThePalaceoftheDeadFloors111120.cpp | 2 +- .../ThePalaceoftheDeadFloors1120.cpp | 2 +- .../ThePalaceoftheDeadFloors121130.cpp | 2 +- .../ThePalaceoftheDeadFloors131140.cpp | 2 +- .../ThePalaceoftheDeadFloors141150.cpp | 2 +- .../ThePalaceoftheDeadFloors151160.cpp | 2 +- .../ThePalaceoftheDeadFloors161170.cpp | 2 +- .../ThePalaceoftheDeadFloors171180.cpp | 2 +- .../ThePalaceoftheDeadFloors181190.cpp | 2 +- .../ThePalaceoftheDeadFloors191200.cpp | 2 +- .../ThePalaceoftheDeadFloors2130.cpp | 2 +- .../ThePalaceoftheDeadFloors3140.cpp | 2 +- .../ThePalaceoftheDeadFloors4150.cpp | 2 +- .../ThePalaceoftheDeadFloors5160.cpp | 2 +- .../ThePalaceoftheDeadFloors6170.cpp | 2 +- .../ThePalaceoftheDeadFloors7180.cpp | 2 +- .../ThePalaceoftheDeadFloors8190.cpp | 2 +- .../ThePalaceoftheDeadFloors91100.cpp | 2 +- .../Scripts/instances/dungeons/AlaMhigo.cpp | 2 +- .../instances/dungeons/AmdaporKeep.cpp | 2 +- .../instances/dungeons/AmdaporKeepHard.cpp | 2 +- .../instances/dungeons/BaelsarsWall.cpp | 2 +- .../instances/dungeons/BardamsMettle.cpp | 2 +- .../instances/dungeons/BrayfloxsLongstop.cpp | 2 +- .../dungeons/BrayfloxsLongstopHard.cpp | 2 +- .../instances/dungeons/CastrumAbania.cpp | 2 +- .../instances/dungeons/CastrumMeridianum.cpp | 2 +- .../instances/dungeons/CopperbellMines.cpp | 2 +- .../dungeons/CopperbellMinesHard.cpp | 2 +- .../Scripts/instances/dungeons/CuttersCry.cpp | 2 +- .../Scripts/instances/dungeons/DomaCastle.cpp | 2 +- .../instances/dungeons/DzemaelDarkhold.cpp | 2 +- .../Scripts/instances/dungeons/Halatali.cpp | 2 +- .../instances/dungeons/HalataliHard.cpp | 2 +- .../instances/dungeons/HaukkeManor.cpp | 2 +- .../instances/dungeons/HaukkeManorHard.cpp | 2 +- .../Scripts/instances/dungeons/HellsLid.cpp | 2 +- .../instances/dungeons/HullbreakerIsle.cpp | 2 +- .../dungeons/HullbreakerIsleHard.cpp | 2 +- .../instances/dungeons/KuganeCastle.cpp | 2 +- .../Scripts/instances/dungeons/Neverreap.cpp | 2 +- .../instances/dungeons/PharosSirius.cpp | 2 +- .../instances/dungeons/PharosSiriusHard.cpp | 2 +- .../dungeons/SaintMociannesArboretum.cpp | 2 +- .../Scripts/instances/dungeons/Sastasha.cpp | 2 +- .../instances/dungeons/SastashaHard.cpp | 2 +- .../dungeons/ShisuioftheVioletTides.cpp | 2 +- .../Scripts/instances/dungeons/Snowcloak.cpp | 2 +- .../Scripts/instances/dungeons/SohmAl.cpp | 2 +- .../Scripts/instances/dungeons/SohmAlHard.cpp | 2 +- .../Scripts/instances/dungeons/SohrKhai.cpp | 2 +- .../Scripts/instances/dungeons/TheAery.cpp | 2 +- .../TheAetherochemicalResearchFacility.cpp | 2 +- .../instances/dungeons/TheAntitower.cpp | 2 +- .../instances/dungeons/TheAurumVale.cpp | 2 +- .../dungeons/TheDrownedCityofSkalla.cpp | 2 +- .../instances/dungeons/TheDuskVigil.cpp | 2 +- .../dungeons/TheFractalContinuum.cpp | 2 +- .../dungeons/TheFractalContinuumHard.cpp | 2 +- .../dungeons/TheGreatGubalLibrary.cpp | 2 +- .../dungeons/TheGreatGubalLibraryHard.cpp | 2 +- .../instances/dungeons/TheKeeperoftheLake.cpp | 2 +- .../dungeons/TheLostCityofAmdapor.cpp | 2 +- .../dungeons/TheLostCityofAmdaporHard.cpp | 2 +- .../instances/dungeons/ThePraetorium.cpp | 2 +- .../instances/dungeons/TheSirensongSea.cpp | 2 +- .../instances/dungeons/TheStoneVigil.cpp | 2 +- .../instances/dungeons/TheStoneVigilHard.cpp | 2 +- .../dungeons/TheSunkenTempleofQarn.cpp | 2 +- .../dungeons/TheSunkenTempleofQarnHard.cpp | 2 +- .../dungeons/TheTamTaraDeepcroft.cpp | 2 +- .../dungeons/TheTamTaraDeepcroftHard.cpp | 2 +- .../instances/dungeons/TheTempleoftheFist.cpp | 2 +- .../dungeons/TheThousandMawsofTotoRak.cpp | 2 +- .../Scripts/instances/dungeons/TheVault.cpp | 2 +- .../instances/dungeons/TheWanderersPalace.cpp | 2 +- .../dungeons/TheWanderersPalaceHard.cpp | 2 +- .../Scripts/instances/dungeons/Xelphatol.cpp | 2 +- .../instances/events/TheHauntedManor.cpp | 2 +- .../events/TheValentionesCeremony.cpp | 2 +- .../guildhests/AllsWellthatEndsintheWell.cpp | 2 +- .../instances/guildhests/AnnoytheVoid.cpp | 2 +- .../guildhests/BasicTrainingEnemyParties.cpp | 2 +- .../BasicTrainingEnemyStrongholds.cpp | 2 +- .../FlickingSticksandTakingNames.cpp | 2 +- .../guildhests/HeroontheHalfShell.cpp | 2 +- .../instances/guildhests/LongLivetheQueen.cpp | 2 +- .../instances/guildhests/MorethanaFeeler.cpp | 2 +- .../guildhests/PullingPoisonPosies.cpp | 2 +- .../instances/guildhests/ShadowandClaw.cpp | 2 +- .../instances/guildhests/SolemnTrinity.cpp | 2 +- .../instances/guildhests/StingingBack.cpp | 2 +- .../instances/guildhests/UndertheArmor.cpp | 2 +- .../Scripts/instances/guildhests/WardUp.cpp | 2 +- .../AccrueEnmityfromMultipleTargets.cpp | 2 +- .../AssistAlliesinDefeatingaTarget.cpp | 2 +- .../AvoidAreaofEffectAttacks.cpp | 2 +- .../hallofthenovice/AvoidEngagedTargets.cpp | 2 +- .../DefeatanOccupiedTarget.cpp | 2 +- .../EngageEnemyReinforcements.cpp | 2 +- .../hallofthenovice/EngageMultipleTargets.cpp | 2 +- .../hallofthenovice/ExecuteaComboinBattle.cpp | 2 +- .../ExecuteaCombotoIncreaseEnmity.cpp | 2 +- .../ExecuteaRangedAttacktoIncreaseEnmity.cpp | 2 +- .../hallofthenovice/FinalExercise.cpp | 2 +- .../hallofthenovice/HealMultipleAllies.cpp | 2 +- .../instances/hallofthenovice/HealanAlly.cpp | 2 +- .../InteractwiththeBattlefield.cpp | 2 +- .../Scripts/instances/pvp/Astragalos.cpp | 2 +- .../Scripts/instances/pvp/SealRockSeize.cpp | 2 +- .../pvp/TheBorderlandRuinsSecure.cpp | 2 +- .../instances/pvp/TheFeast4on4LightParty.cpp | 2 +- .../instances/pvp/TheFeast4on4Ranked.cpp | 2 +- .../instances/pvp/TheFeast4on4Training.cpp | 2 +- .../pvp/TheFeastCustomMatchCrystalTower.cpp | 2 +- .../TheFeastCustomMatchFeastingGrounds.cpp | 2 +- .../pvp/TheFeastCustomMatchLichenweed.cpp | 2 +- .../Scripts/instances/pvp/TheFeastRanked.cpp | 2 +- .../instances/pvp/TheFeastTeamRanked.cpp | 2 +- .../instances/pvp/TheFeastTraining.cpp | 2 +- .../instances/pvp/TheFieldsofGloryShatter.cpp | 2 +- .../instances/questbattles/ABloodyReunion.cpp | 2 +- .../questbattles/ASpectaclefortheAges.cpp | 2 +- .../instances/questbattles/BloodDragoon.cpp | 2 +- .../instances/questbattles/BloodontheDeck.cpp | 2 +- .../CuriousGorgeMeetsHisMatch.cpp | 2 +- .../instances/questbattles/DarkwingDragon.cpp | 2 +- .../instances/questbattles/InThalsName.cpp | 2 +- .../questbattles/InterdimensionalRift.cpp | 2 +- .../questbattles/ItsProbablyaTrap.cpp | 2 +- .../instances/questbattles/MatsubaMayhem.cpp | 2 +- .../Scripts/instances/questbattles/Naadam.cpp | 2 +- .../questbattles/OneLifeforOneWorld.cpp | 2 +- .../instances/questbattles/OurCompromise.cpp | 2 +- .../questbattles/OurUnsungHeroes.cpp | 2 +- .../questbattles/RaisingtheSword.cpp | 2 +- .../questbattles/ReturnoftheBull.cpp | 2 +- .../questbattles/TheBattleonBekko.cpp | 2 +- .../TheCarteneauFlatsHeliodrome.cpp | 2 +- .../questbattles/TheFaceofTrueEvil.cpp | 2 +- .../questbattles/TheHeartoftheProblem.cpp | 2 +- .../TheOrphansandtheBrokenBlade.cpp | 2 +- .../instances/questbattles/TheResonant.cpp | 2 +- .../questbattles/WhenClansCollide.cpp | 2 +- .../questbattles/WithHeartandSteel.cpp | 2 +- .../raids/AlexanderTheArmoftheFather.cpp | 2 +- .../AlexanderTheArmoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheArmoftheSon.cpp | 2 +- .../raids/AlexanderTheArmoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheBreathoftheCreator.cpp | 2 +- .../AlexanderTheBreathoftheCreatorSavage.cpp | 2 +- .../raids/AlexanderTheBurdenoftheFather.cpp | 2 +- .../AlexanderTheBurdenoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheBurdenoftheSon.cpp | 2 +- .../AlexanderTheBurdenoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheCuffoftheFather.cpp | 2 +- .../AlexanderTheCuffoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheCuffoftheSon.cpp | 2 +- .../raids/AlexanderTheCuffoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheEyesoftheCreator.cpp | 2 +- .../AlexanderTheEyesoftheCreatorSavage.cpp | 2 +- .../raids/AlexanderTheFistoftheFather.cpp | 2 +- .../AlexanderTheFistoftheFatherSavage.cpp | 2 +- .../raids/AlexanderTheFistoftheSon.cpp | 2 +- .../raids/AlexanderTheFistoftheSonSavage.cpp | 2 +- .../raids/AlexanderTheHeartoftheCreator.cpp | 2 +- .../AlexanderTheHeartoftheCreatorSavage.cpp | 2 +- .../raids/AlexanderTheSouloftheCreator.cpp | 2 +- .../AlexanderTheSouloftheCreatorSavage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV10.cpp | 2 +- .../instances/raids/DeltascapeV10Savage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV20.cpp | 2 +- .../instances/raids/DeltascapeV20Savage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV30.cpp | 2 +- .../instances/raids/DeltascapeV30Savage.cpp | 2 +- .../Scripts/instances/raids/DeltascapeV40.cpp | 2 +- .../instances/raids/DeltascapeV40Savage.cpp | 2 +- .../Scripts/instances/raids/DunScaith.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV10.cpp | 2 +- .../instances/raids/SigmascapeV10Savage.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV20.cpp | 2 +- .../instances/raids/SigmascapeV20Savage.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV30.cpp | 2 +- .../instances/raids/SigmascapeV30Savage.cpp | 2 +- .../Scripts/instances/raids/SigmascapeV40.cpp | 2 +- .../instances/raids/SigmascapeV40Savage.cpp | 2 +- .../Scripts/instances/raids/SyrcusTower.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn1.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn2.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn3.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn4.cpp | 2 +- .../raids/TheBindingCoilofBahamutTurn5.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn1.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn2.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn3.cpp | 2 +- .../raids/TheFinalCoilofBahamutTurn4.cpp | 2 +- .../raids/TheLabyrinthoftheAncients.cpp | 2 +- .../raids/TheRoyalCityofRabanastre.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn1.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn2.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn3.cpp | 2 +- .../TheSecondCoilofBahamutSavageTurn4.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn1.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn2.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn3.cpp | 2 +- .../raids/TheSecondCoilofBahamutTurn4.cpp | 2 +- .../TheUnendingCoilofBahamutUltimate.cpp | 2 +- .../Scripts/instances/raids/TheVoidArk.cpp | 2 +- .../raids/TheWeaponsRefrainUltimate.cpp | 2 +- .../instances/raids/TheWeepingCityofMhach.cpp | 2 +- .../instances/raids/TheWorldofDarkness.cpp | 2 +- .../instances/treasurehunt/TheAquapolis.cpp | 2 +- .../treasurehunt/TheHiddenCanalsofUznair.cpp | 2 +- .../treasurehunt/TheLostCanalsofUznair.cpp | 2 +- .../trials/ARelicReborntheChimera.cpp | 2 +- .../instances/trials/ARelicReborntheHydra.cpp | 2 +- .../trials/AkhAfahAmphitheatreExtreme.cpp | 2 +- .../trials/AkhAfahAmphitheatreHard.cpp | 2 +- .../instances/trials/BattleintheBigKeep.cpp | 2 +- .../instances/trials/BattleontheBigBridge.cpp | 2 +- .../Scripts/instances/trials/CapeWestwind.cpp | 2 +- .../instances/trials/ContainmentBayP1T6.cpp | 2 +- .../trials/ContainmentBayP1T6Extreme.cpp | 2 +- .../instances/trials/ContainmentBayS1T7.cpp | 2 +- .../trials/ContainmentBayS1T7Extreme.cpp | 2 +- .../instances/trials/ContainmentBayZ1T9.cpp | 2 +- .../trials/ContainmentBayZ1T9Extreme.cpp | 2 +- .../Scripts/instances/trials/Emanation.cpp | 2 +- .../instances/trials/EmanationExtreme.cpp | 2 +- .../instances/trials/SpecialEventI.cpp | 2 +- .../instances/trials/SpecialEventII.cpp | 2 +- .../instances/trials/SpecialEventIII.cpp | 2 +- .../instances/trials/TheBowlofEmbers.cpp | 2 +- .../trials/TheBowlofEmbersExtreme.cpp | 2 +- .../instances/trials/TheBowlofEmbersHard.cpp | 2 +- .../Scripts/instances/trials/TheChrysalis.cpp | 2 +- .../instances/trials/TheDragonsNeck.cpp | 2 +- .../instances/trials/TheFinalStepsofFaith.cpp | 2 +- .../instances/trials/TheHowlingEye.cpp | 2 +- .../instances/trials/TheHowlingEyeExtreme.cpp | 2 +- .../instances/trials/TheHowlingEyeHard.cpp | 2 +- .../Scripts/instances/trials/TheJadeStoa.cpp | 2 +- .../instances/trials/TheJadeStoaExtreme.cpp | 2 +- .../trials/TheLimitlessBlueExtreme.cpp | 2 +- .../instances/trials/TheLimitlessBlueHard.cpp | 2 +- .../trials/TheMinstrelsBalladNidhoggsRage.cpp | 2 +- .../TheMinstrelsBalladShinryusDomain.cpp | 2 +- .../TheMinstrelsBalladThordansReign.cpp | 2 +- .../trials/TheMinstrelsBalladUltimasBane.cpp | 2 +- .../Scripts/instances/trials/TheNavel.cpp | 2 +- .../instances/trials/TheNavelExtreme.cpp | 2 +- .../Scripts/instances/trials/TheNavelHard.cpp | 2 +- .../instances/trials/ThePoolofTribute.cpp | 2 +- .../trials/ThePoolofTributeExtreme.cpp | 2 +- .../instances/trials/TheRoyalMenagerie.cpp | 2 +- .../trials/TheSingularityReactor.cpp | 2 +- .../instances/trials/TheStepsofFaith.cpp | 2 +- .../trials/TheStrikingTreeExtreme.cpp | 2 +- .../instances/trials/TheStrikingTreeHard.cpp | 2 +- .../instances/trials/TheWhorleaterExtreme.cpp | 2 +- .../instances/trials/TheWhorleaterHard.cpp | 2 +- .../instances/trials/ThokastThokExtreme.cpp | 2 +- .../instances/trials/ThokastThokHard.cpp | 2 +- .../instances/trials/ThornmarchExtreme.cpp | 2 +- .../instances/trials/ThornmarchHard.cpp | 2 +- .../Scripts/instances/trials/UrthsFount.cpp | 2 +- src/servers/sapphire_zone/Actor/Actor.cpp | 4 +- src/servers/sapphire_zone/Actor/BNpc.cpp | 4 +- src/servers/sapphire_zone/Actor/Chara.cpp | 4 +- .../sapphire_zone/Actor/EventObject.cpp | 2 +- src/servers/sapphire_zone/Actor/Npc.cpp | 4 +- src/servers/sapphire_zone/Actor/Player.cpp | 11 +-- .../sapphire_zone/Actor/PlayerEvent.cpp | 2 +- .../sapphire_zone/Actor/PlayerInventory.cpp | 2 +- src/servers/sapphire_zone/Actor/PlayerSql.cpp | 5 +- src/servers/sapphire_zone/CMakeLists.txt | 2 +- .../DebugCommand/DebugCommandHandler.cpp | 9 +-- src/servers/sapphire_zone/ForwardsZone.h | 6 +- .../{Zone => Manager}/HousingMgr.cpp | 40 +++++------ .../{Zone => Manager}/HousingMgr.h | 4 +- .../sapphire_zone/Manager/PlayerMgr.cpp | 11 +-- .../{Zone => Manager}/TerritoryMgr.cpp | 69 ++++++++++--------- .../{Zone => Manager}/TerritoryMgr.h | 8 ++- .../sapphire_zone/Network/GameConnection.cpp | 2 +- .../Network/Handlers/CFHandlers.cpp | 5 +- .../Network/Handlers/ClientTriggerHandler.cpp | 7 +- .../Network/Handlers/EventHandlers.cpp | 2 +- .../Network/Handlers/GMCommandHandlers.cpp | 7 +- .../Network/Handlers/InventoryHandler.cpp | 4 +- .../Network/Handlers/PacketHandlers.cpp | 15 ++-- .../sapphire_zone/Script/ScriptMgr.cpp | 4 +- src/servers/sapphire_zone/ServerMgr.cpp | 4 +- .../{Zone => Territory}/Cell.cpp | 0 .../sapphire_zone/{Zone => Territory}/Cell.h | 0 .../{Zone => Territory}/CellHandler.h | 0 .../{Zone => Territory}/House.cpp | 0 .../sapphire_zone/{Zone => Territory}/House.h | 0 .../Housing/HousingInteriorTerritory.cpp | 0 .../Housing/HousingInteriorTerritory.h | 18 +++++ .../{Zone => Territory}/HousingZone.cpp | 3 +- .../{Zone => Territory}/HousingZone.h | 0 .../{Zone => Territory}/InstanceContent.cpp | 0 .../{Zone => Territory}/InstanceContent.h | 0 .../{Zone => Territory}/Land.cpp | 0 .../sapphire_zone/{Zone => Territory}/Land.h | 0 .../{Zone => Territory}/Zone.cpp | 4 +- .../sapphire_zone/{Zone => Territory}/Zone.h | 0 .../{Zone => Territory}/ZonePosition.cpp | 0 .../{Zone => Territory}/ZonePosition.h | 0 src/servers/sapphire_zone/mainGameServer.cpp | 21 +++--- src/tools/event_object_parser/instance.tmpl | 2 +- 317 files changed, 442 insertions(+), 400 deletions(-) rename src/servers/Scripts/common/{warptaxi/HousingEstateEntranceWarpTaxi.cpp => eobj/HousingEstateEntrance.cpp} (89%) rename src/servers/sapphire_zone/{Zone => Manager}/HousingMgr.cpp (85%) rename src/servers/sapphire_zone/{Zone => Manager}/HousingMgr.h (95%) rename src/servers/sapphire_zone/{Zone => Manager}/TerritoryMgr.cpp (80%) rename src/servers/sapphire_zone/{Zone => Manager}/TerritoryMgr.h (98%) rename src/servers/sapphire_zone/{Zone => Territory}/Cell.cpp (100%) rename src/servers/sapphire_zone/{Zone => Territory}/Cell.h (100%) rename src/servers/sapphire_zone/{Zone => Territory}/CellHandler.h (100%) rename src/servers/sapphire_zone/{Zone => Territory}/House.cpp (100%) rename src/servers/sapphire_zone/{Zone => Territory}/House.h (100%) create mode 100644 src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp create mode 100644 src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h rename src/servers/sapphire_zone/{Zone => Territory}/HousingZone.cpp (98%) rename src/servers/sapphire_zone/{Zone => Territory}/HousingZone.h (100%) rename src/servers/sapphire_zone/{Zone => Territory}/InstanceContent.cpp (100%) rename src/servers/sapphire_zone/{Zone => Territory}/InstanceContent.h (100%) rename src/servers/sapphire_zone/{Zone => Territory}/Land.cpp (100%) rename src/servers/sapphire_zone/{Zone => Territory}/Land.h (100%) rename src/servers/sapphire_zone/{Zone => Territory}/Zone.cpp (99%) rename src/servers/sapphire_zone/{Zone => Territory}/Zone.h (100%) rename src/servers/sapphire_zone/{Zone => Territory}/ZonePosition.cpp (100%) rename src/servers/sapphire_zone/{Zone => Territory}/ZonePosition.h (100%) diff --git a/src/servers/Scripts/CMakeLists.txt b/src/servers/Scripts/CMakeLists.txt index 06ea6827..31edef95 100644 --- a/src/servers/Scripts/CMakeLists.txt +++ b/src/servers/Scripts/CMakeLists.txt @@ -49,7 +49,7 @@ foreach(_scriptDir ${children}) LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${SCRIPT_LIB_DIR}" ) endif() - target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_zone/") + target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_Territory/") target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/Script/Scripts") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/Scripts") diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index a037349e..a7f77b4d 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -1,8 +1,8 @@ #include #include -#include -#include -#include +#include +#include +#include #include #include #include "Framework.h" @@ -12,6 +12,7 @@ using namespace Sapphire; using namespace Network; using namespace Packets; using namespace Server; +using namespace Sapphire::World::Manager; class CmnDefHousingSignboard : public Sapphire::ScriptAPI::EventScript { @@ -26,7 +27,7 @@ public: { auto pFw = getFramework(); if( !pFw ) - return LandPurchaseResult::ERR_INTERNAL; + return LandPurchaseResult::ERR_INTERNAL; // Purchase Land if( result.param2 == 2 ) { @@ -35,8 +36,8 @@ public: auto pTerritory = player.getCurrentZone(); auto pHousing = std::dynamic_pointer_cast< HousingZone >( pTerritory ); - auto pHouMgr = pFw->get< Sapphire::HousingMgr >(); - + auto pHouMgr = pFw->get< HousingMgr >(); + LandPurchaseResult res = pHouMgr->purchaseLand( player, activeLand.plot, static_cast< uint8_t >( result.param2 ) ); diff --git a/src/servers/Scripts/common/aethernet/HousingAethernet.cpp b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp index 9a159349..012bf5ee 100644 --- a/src/servers/Scripts/common/aethernet/HousingAethernet.cpp +++ b/src/servers/Scripts/common/aethernet/HousingAethernet.cpp @@ -3,7 +3,7 @@ #include #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp similarity index 89% rename from src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp rename to src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp index dfc332ff..ce3fa0c7 100644 --- a/src/servers/Scripts/common/warptaxi/HousingEstateEntranceWarpTaxi.cpp +++ b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp @@ -5,11 +5,11 @@ using namespace Sapphire; -class HousingEstateEntranceWarpTaxi : +class HousingEstateEntrance : public Sapphire::ScriptAPI::EventObjectScript { public: - HousingEstateEntranceWarpTaxi() : + HousingEstateEntrance() : Sapphire::ScriptAPI::EventObjectScript( 2002737 ) { } diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp index 6e5e34d9..12d9343a 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp index d2c95441..28aaaf71 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp index 01c56163..93e0ef2f 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp index a60180f3..53c470d3 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp index a410a7c2..b3f7c912 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp index 0bfa21ab..20369d35 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp index ef73f13c..04db3f1c 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp index 87d560f5..b559b04f 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp index 3cdb5c17..5b6635dc 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp index e047273b..2a6c4a2b 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp index e62879cb..2b9a1c2f 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp index ad581254..bb089b93 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp index 51a293b0..6b479bea 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp index 75b07a30..42197100 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp index b1232eaa..53aa1e14 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp index d3acd3ef..1bcb41b5 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp index def4bd97..1827ad72 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp index 0a4d6ca8..2309e4e4 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp index 46127f4d..cf29fd1b 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp index 867c7b45..7721f8d5 100644 --- a/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp +++ b/src/servers/Scripts/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp index eaeab694..6dd88b65 100644 --- a/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp +++ b/src/servers/Scripts/instances/dungeons/AlaMhigo.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp index 79c21ecb..23f8ebbd 100644 --- a/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp +++ b/src/servers/Scripts/instances/dungeons/AmdaporKeep.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp index 07ddb36d..2e2895fd 100644 --- a/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp +++ b/src/servers/Scripts/instances/dungeons/AmdaporKeepHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp index cc058d0a..5f21f0cc 100644 --- a/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp +++ b/src/servers/Scripts/instances/dungeons/BaelsarsWall.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp index 384f2c3d..0f9cb8c9 100644 --- a/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp +++ b/src/servers/Scripts/instances/dungeons/BardamsMettle.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp index e8cc5ae4..42ad5145 100644 --- a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp +++ b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstop.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp index 4dde97ef..d0187a39 100644 --- a/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp +++ b/src/servers/Scripts/instances/dungeons/BrayfloxsLongstopHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp b/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp index 8b2ee8b3..71cb3741 100644 --- a/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp +++ b/src/servers/Scripts/instances/dungeons/CastrumAbania.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp b/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp index 2d80787f..a5dae312 100644 --- a/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp +++ b/src/servers/Scripts/instances/dungeons/CastrumMeridianum.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp b/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp index f14d71bb..baddef38 100644 --- a/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp +++ b/src/servers/Scripts/instances/dungeons/CopperbellMines.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp b/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp index fd052be4..473d3cae 100644 --- a/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp +++ b/src/servers/Scripts/instances/dungeons/CopperbellMinesHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/CuttersCry.cpp b/src/servers/Scripts/instances/dungeons/CuttersCry.cpp index 507b4ca8..d6ac68ab 100644 --- a/src/servers/Scripts/instances/dungeons/CuttersCry.cpp +++ b/src/servers/Scripts/instances/dungeons/CuttersCry.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/DomaCastle.cpp b/src/servers/Scripts/instances/dungeons/DomaCastle.cpp index 4554ce07..fc2ad814 100644 --- a/src/servers/Scripts/instances/dungeons/DomaCastle.cpp +++ b/src/servers/Scripts/instances/dungeons/DomaCastle.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp b/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp index ba8f1642..73de7150 100644 --- a/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp +++ b/src/servers/Scripts/instances/dungeons/DzemaelDarkhold.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/Halatali.cpp b/src/servers/Scripts/instances/dungeons/Halatali.cpp index 667c110f..aec21557 100644 --- a/src/servers/Scripts/instances/dungeons/Halatali.cpp +++ b/src/servers/Scripts/instances/dungeons/Halatali.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/HalataliHard.cpp b/src/servers/Scripts/instances/dungeons/HalataliHard.cpp index 012e9c3d..63cdcf0c 100644 --- a/src/servers/Scripts/instances/dungeons/HalataliHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HalataliHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp b/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp index 05bf63aa..e49764d2 100644 --- a/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp +++ b/src/servers/Scripts/instances/dungeons/HaukkeManor.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp b/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp index aa1071ec..24f82868 100644 --- a/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HaukkeManorHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/HellsLid.cpp b/src/servers/Scripts/instances/dungeons/HellsLid.cpp index faa38b51..47721cf0 100644 --- a/src/servers/Scripts/instances/dungeons/HellsLid.cpp +++ b/src/servers/Scripts/instances/dungeons/HellsLid.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp b/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp index f38db5e4..9cadd763 100644 --- a/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp +++ b/src/servers/Scripts/instances/dungeons/HullbreakerIsle.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp b/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp index 13cd76c0..5c3b3775 100644 --- a/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp +++ b/src/servers/Scripts/instances/dungeons/HullbreakerIsleHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp b/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp index a1e0b73e..e300bdbc 100644 --- a/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp +++ b/src/servers/Scripts/instances/dungeons/KuganeCastle.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/Neverreap.cpp b/src/servers/Scripts/instances/dungeons/Neverreap.cpp index 7152ce44..8c7d8c4f 100644 --- a/src/servers/Scripts/instances/dungeons/Neverreap.cpp +++ b/src/servers/Scripts/instances/dungeons/Neverreap.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/PharosSirius.cpp b/src/servers/Scripts/instances/dungeons/PharosSirius.cpp index a30dd45a..02f25f80 100644 --- a/src/servers/Scripts/instances/dungeons/PharosSirius.cpp +++ b/src/servers/Scripts/instances/dungeons/PharosSirius.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp b/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp index 86901f72..9f73bf5b 100644 --- a/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp +++ b/src/servers/Scripts/instances/dungeons/PharosSiriusHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp b/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp index 150954f7..6d55aa56 100644 --- a/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp +++ b/src/servers/Scripts/instances/dungeons/SaintMociannesArboretum.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/Sastasha.cpp b/src/servers/Scripts/instances/dungeons/Sastasha.cpp index fd466b95..ce8f5a48 100644 --- a/src/servers/Scripts/instances/dungeons/Sastasha.cpp +++ b/src/servers/Scripts/instances/dungeons/Sastasha.cpp @@ -1,5 +1,5 @@ #include -#include +#include #include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/SastashaHard.cpp b/src/servers/Scripts/instances/dungeons/SastashaHard.cpp index 73129e05..c38eb696 100644 --- a/src/servers/Scripts/instances/dungeons/SastashaHard.cpp +++ b/src/servers/Scripts/instances/dungeons/SastashaHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp b/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp index 4ca48f1a..c57ef0e1 100644 --- a/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp +++ b/src/servers/Scripts/instances/dungeons/ShisuioftheVioletTides.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/Snowcloak.cpp b/src/servers/Scripts/instances/dungeons/Snowcloak.cpp index f71bf4bb..5e559481 100644 --- a/src/servers/Scripts/instances/dungeons/Snowcloak.cpp +++ b/src/servers/Scripts/instances/dungeons/Snowcloak.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/SohmAl.cpp b/src/servers/Scripts/instances/dungeons/SohmAl.cpp index c3775916..17694ea0 100644 --- a/src/servers/Scripts/instances/dungeons/SohmAl.cpp +++ b/src/servers/Scripts/instances/dungeons/SohmAl.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp b/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp index 27f27cad..fa716b7b 100644 --- a/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp +++ b/src/servers/Scripts/instances/dungeons/SohmAlHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/SohrKhai.cpp b/src/servers/Scripts/instances/dungeons/SohrKhai.cpp index 0649f1a6..5f241f08 100644 --- a/src/servers/Scripts/instances/dungeons/SohrKhai.cpp +++ b/src/servers/Scripts/instances/dungeons/SohrKhai.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheAery.cpp b/src/servers/Scripts/instances/dungeons/TheAery.cpp index 1f3ddd71..da5e53cb 100644 --- a/src/servers/Scripts/instances/dungeons/TheAery.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAery.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp b/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp index aa6baeb3..ef92c9d0 100644 --- a/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAetherochemicalResearchFacility.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheAntitower.cpp b/src/servers/Scripts/instances/dungeons/TheAntitower.cpp index 6e64d73d..71cccc56 100644 --- a/src/servers/Scripts/instances/dungeons/TheAntitower.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAntitower.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp b/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp index 4d44c343..da39ea64 100644 --- a/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp +++ b/src/servers/Scripts/instances/dungeons/TheAurumVale.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp b/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp index cfa8f269..471f8a5b 100644 --- a/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp +++ b/src/servers/Scripts/instances/dungeons/TheDrownedCityofSkalla.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp b/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp index 594b7dd7..811b56da 100644 --- a/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp +++ b/src/servers/Scripts/instances/dungeons/TheDuskVigil.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp b/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp index fb407215..f060e9ff 100644 --- a/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp +++ b/src/servers/Scripts/instances/dungeons/TheFractalContinuum.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp b/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp index cc5284d0..cb7b4123 100644 --- a/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheFractalContinuumHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp index 43aeb7b0..83bff3cb 100644 --- a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp +++ b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibrary.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp index 857b46c5..36284c6b 100644 --- a/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheGreatGubalLibraryHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp b/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp index 42f86b90..18418587 100644 --- a/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp +++ b/src/servers/Scripts/instances/dungeons/TheKeeperoftheLake.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp index db82d09f..18f6e5f3 100644 --- a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp +++ b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdapor.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp index dbff517b..cccce72f 100644 --- a/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheLostCityofAmdaporHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp b/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp index 8c84d685..d0383ded 100644 --- a/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp +++ b/src/servers/Scripts/instances/dungeons/ThePraetorium.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp b/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp index c7ddd5d7..15e1d428 100644 --- a/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSirensongSea.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp b/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp index 6185305f..faddf675 100644 --- a/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp +++ b/src/servers/Scripts/instances/dungeons/TheStoneVigil.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp b/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp index b90fa464..a34bf5d5 100644 --- a/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheStoneVigilHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp index 30c0fdba..133d0292 100644 --- a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarn.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp index 4c8e4336..4318e099 100644 --- a/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheSunkenTempleofQarnHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp index efffdfac..32f17678 100644 --- a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroft.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp index d6fb7640..9460358a 100644 --- a/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTamTaraDeepcroftHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp b/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp index 170c179c..1620899b 100644 --- a/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp +++ b/src/servers/Scripts/instances/dungeons/TheTempleoftheFist.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp b/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp index c57651b2..e5b48b75 100644 --- a/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp +++ b/src/servers/Scripts/instances/dungeons/TheThousandMawsofTotoRak.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheVault.cpp b/src/servers/Scripts/instances/dungeons/TheVault.cpp index 80848fec..014d1d59 100644 --- a/src/servers/Scripts/instances/dungeons/TheVault.cpp +++ b/src/servers/Scripts/instances/dungeons/TheVault.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp b/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp index 23bd854f..e0a1155a 100644 --- a/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp +++ b/src/servers/Scripts/instances/dungeons/TheWanderersPalace.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp b/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp index 87649edf..d4b6c060 100644 --- a/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp +++ b/src/servers/Scripts/instances/dungeons/TheWanderersPalaceHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/dungeons/Xelphatol.cpp b/src/servers/Scripts/instances/dungeons/Xelphatol.cpp index 50800ec9..4f5aa8e3 100644 --- a/src/servers/Scripts/instances/dungeons/Xelphatol.cpp +++ b/src/servers/Scripts/instances/dungeons/Xelphatol.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/events/TheHauntedManor.cpp b/src/servers/Scripts/instances/events/TheHauntedManor.cpp index 36ceea06..f80f39ac 100644 --- a/src/servers/Scripts/instances/events/TheHauntedManor.cpp +++ b/src/servers/Scripts/instances/events/TheHauntedManor.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp b/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp index 662bba88..f7d403c8 100644 --- a/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp +++ b/src/servers/Scripts/instances/events/TheValentionesCeremony.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp b/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp index 6372860c..b4bfc0e9 100644 --- a/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp +++ b/src/servers/Scripts/instances/guildhests/AllsWellthatEndsintheWell.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp b/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp index eba6136b..d87ae4b9 100644 --- a/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp +++ b/src/servers/Scripts/instances/guildhests/AnnoytheVoid.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp index 2b628bb9..5a5a86af 100644 --- a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp +++ b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyParties.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp index 4fd6cecc..e1620171 100644 --- a/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp +++ b/src/servers/Scripts/instances/guildhests/BasicTrainingEnemyStrongholds.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp b/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp index 808b7c80..6389c270 100644 --- a/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp +++ b/src/servers/Scripts/instances/guildhests/FlickingSticksandTakingNames.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp b/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp index cff97d5f..1f5fb408 100644 --- a/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp +++ b/src/servers/Scripts/instances/guildhests/HeroontheHalfShell.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp b/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp index d5b03c71..9f1a8023 100644 --- a/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp +++ b/src/servers/Scripts/instances/guildhests/LongLivetheQueen.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp b/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp index f9e30f97..afd8908c 100644 --- a/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp +++ b/src/servers/Scripts/instances/guildhests/MorethanaFeeler.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp b/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp index e48bfcd4..038f5d6e 100644 --- a/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp +++ b/src/servers/Scripts/instances/guildhests/PullingPoisonPosies.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp b/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp index 4cc2d298..d61fd56a 100644 --- a/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp +++ b/src/servers/Scripts/instances/guildhests/ShadowandClaw.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp b/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp index 432b5e23..7fbce9b3 100644 --- a/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp +++ b/src/servers/Scripts/instances/guildhests/SolemnTrinity.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/StingingBack.cpp b/src/servers/Scripts/instances/guildhests/StingingBack.cpp index 906c2c95..052dfdc9 100644 --- a/src/servers/Scripts/instances/guildhests/StingingBack.cpp +++ b/src/servers/Scripts/instances/guildhests/StingingBack.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp b/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp index 5379f9bc..262e6ee8 100644 --- a/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp +++ b/src/servers/Scripts/instances/guildhests/UndertheArmor.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/guildhests/WardUp.cpp b/src/servers/Scripts/instances/guildhests/WardUp.cpp index 970e54c8..f39c9740 100644 --- a/src/servers/Scripts/instances/guildhests/WardUp.cpp +++ b/src/servers/Scripts/instances/guildhests/WardUp.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp index 5ac0b32c..8df920d9 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp b/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp index dc64211e..41764695 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp b/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp index 97537b97..ee34b857 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp index 7f95e54e..8af68973 100644 --- a/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/AvoidEngagedTargets.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp b/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp index b100decf..50418e6f 100644 --- a/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/DefeatanOccupiedTarget.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp b/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp index eb8aa38a..69bff9df 100644 --- a/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/EngageEnemyReinforcements.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp b/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp index 0f0925fa..d4f8871c 100644 --- a/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/EngageMultipleTargets.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp index 94ff639d..1e9c98bd 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaComboinBattle.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp index ec52f532..4929cabb 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp b/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp index 16cda58d..2ad446b6 100644 --- a/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp b/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp index 106e95b2..1d9083bb 100644 --- a/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/FinalExercise.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp b/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp index b5fcd5d9..db2fe0d3 100644 --- a/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/HealMultipleAllies.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp b/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp index 87f2a97d..6f35c3b9 100644 --- a/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/HealanAlly.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp b/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp index eea766d9..ea029f1f 100644 --- a/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp +++ b/src/servers/Scripts/instances/hallofthenovice/InteractwiththeBattlefield.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/Astragalos.cpp b/src/servers/Scripts/instances/pvp/Astragalos.cpp index 8c4d8de1..61711426 100644 --- a/src/servers/Scripts/instances/pvp/Astragalos.cpp +++ b/src/servers/Scripts/instances/pvp/Astragalos.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/SealRockSeize.cpp b/src/servers/Scripts/instances/pvp/SealRockSeize.cpp index b1efa7dd..d8c5e853 100644 --- a/src/servers/Scripts/instances/pvp/SealRockSeize.cpp +++ b/src/servers/Scripts/instances/pvp/SealRockSeize.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp b/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp index a6ec9ac8..54546c25 100644 --- a/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp +++ b/src/servers/Scripts/instances/pvp/TheBorderlandRuinsSecure.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp index 519aac3c..dadefffb 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4LightParty.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp index a71516b9..b2db2c17 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4Ranked.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp b/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp index 34043bc3..3bba122c 100644 --- a/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeast4on4Training.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp index 100ba852..1f47c37b 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchCrystalTower.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp index 161e2b6c..1768f851 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp index 1d9e491a..21b9e414 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastCustomMatchLichenweed.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp b/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp index be0348ff..532f0af6 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastRanked.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp b/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp index 6e1dbffb..1dcab4f4 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastTeamRanked.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp b/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp index a3aac623..9d3369b4 100644 --- a/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp +++ b/src/servers/Scripts/instances/pvp/TheFeastTraining.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp b/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp index c3dc287d..884355cc 100644 --- a/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp +++ b/src/servers/Scripts/instances/pvp/TheFieldsofGloryShatter.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp b/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp index fe15d51d..7969a9df 100644 --- a/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp +++ b/src/servers/Scripts/instances/questbattles/ABloodyReunion.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp b/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp index 66a74b21..920fe2b9 100644 --- a/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp +++ b/src/servers/Scripts/instances/questbattles/ASpectaclefortheAges.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp b/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp index 170f689a..2348cd71 100644 --- a/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp +++ b/src/servers/Scripts/instances/questbattles/BloodDragoon.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp b/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp index 6c7e665a..08938c12 100644 --- a/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp +++ b/src/servers/Scripts/instances/questbattles/BloodontheDeck.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp b/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp index 1ee71fde..e057c948 100644 --- a/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp +++ b/src/servers/Scripts/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp b/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp index 29d57183..03a22f3f 100644 --- a/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp +++ b/src/servers/Scripts/instances/questbattles/DarkwingDragon.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/InThalsName.cpp b/src/servers/Scripts/instances/questbattles/InThalsName.cpp index ac4d87c3..57902193 100644 --- a/src/servers/Scripts/instances/questbattles/InThalsName.cpp +++ b/src/servers/Scripts/instances/questbattles/InThalsName.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp b/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp index 324e6162..5ecc9d40 100644 --- a/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp +++ b/src/servers/Scripts/instances/questbattles/InterdimensionalRift.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp b/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp index 808a9ad2..dc5c23cc 100644 --- a/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp +++ b/src/servers/Scripts/instances/questbattles/ItsProbablyaTrap.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp b/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp index 4b535e4b..11c73e75 100644 --- a/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp +++ b/src/servers/Scripts/instances/questbattles/MatsubaMayhem.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/Naadam.cpp b/src/servers/Scripts/instances/questbattles/Naadam.cpp index 57c3bfb6..49b08a92 100644 --- a/src/servers/Scripts/instances/questbattles/Naadam.cpp +++ b/src/servers/Scripts/instances/questbattles/Naadam.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp b/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp index f1299596..b3e07df4 100644 --- a/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp +++ b/src/servers/Scripts/instances/questbattles/OneLifeforOneWorld.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/OurCompromise.cpp b/src/servers/Scripts/instances/questbattles/OurCompromise.cpp index 0a8e24f7..c5b86d7b 100644 --- a/src/servers/Scripts/instances/questbattles/OurCompromise.cpp +++ b/src/servers/Scripts/instances/questbattles/OurCompromise.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp b/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp index 8af495da..09645855 100644 --- a/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp +++ b/src/servers/Scripts/instances/questbattles/OurUnsungHeroes.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp b/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp index a93ce442..71d04eda 100644 --- a/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp +++ b/src/servers/Scripts/instances/questbattles/RaisingtheSword.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp b/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp index 3b78b442..eebb3d93 100644 --- a/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp +++ b/src/servers/Scripts/instances/questbattles/ReturnoftheBull.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp b/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp index b722dbca..31a71cbf 100644 --- a/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp +++ b/src/servers/Scripts/instances/questbattles/TheBattleonBekko.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp b/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp index 0d9ca6a7..55b84ab0 100644 --- a/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp +++ b/src/servers/Scripts/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp b/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp index f1343594..fd5aa930 100644 --- a/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp +++ b/src/servers/Scripts/instances/questbattles/TheFaceofTrueEvil.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp b/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp index c68ef053..30db1b02 100644 --- a/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp +++ b/src/servers/Scripts/instances/questbattles/TheHeartoftheProblem.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp b/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp index ac159b51..c8e799d8 100644 --- a/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp +++ b/src/servers/Scripts/instances/questbattles/TheOrphansandtheBrokenBlade.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/TheResonant.cpp b/src/servers/Scripts/instances/questbattles/TheResonant.cpp index 6c9358a5..0f6b5840 100644 --- a/src/servers/Scripts/instances/questbattles/TheResonant.cpp +++ b/src/servers/Scripts/instances/questbattles/TheResonant.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp b/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp index 6a8e7791..417cc4dd 100644 --- a/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp +++ b/src/servers/Scripts/instances/questbattles/WhenClansCollide.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp b/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp index 16bae070..5afda29b 100644 --- a/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp +++ b/src/servers/Scripts/instances/questbattles/WithHeartandSteel.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp index b3124ca8..c35177e9 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFather.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp index ca4e6eee..f5bb0663 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheFatherSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp index 952bfa8e..13301dd2 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSon.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp index b6f677ad..b42b477f 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheArmoftheSonSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp index 92f71afb..2e39d834 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreator.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp index 86e2e353..a71c96a3 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp index 36779b87..30db7b2c 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFather.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp index 49416462..14e79ad4 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp index bcb0e0a1..47abde44 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSon.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp index 0958d702..7e3e1fde 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp index 83d7a3d7..57a860e0 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFather.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp index ce4d8868..4f7c7650 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp index e0009b2b..a97f4b07 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSon.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp index 6d895dab..01858364 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheCuffoftheSonSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp index 5aeaee83..be8a133c 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreator.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp index 662e11cc..4ec126c6 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp index fb984a7a..2625c607 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFather.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp index 9c67e0e0..ce8c20bf 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheFatherSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp index df385fe0..4f311401 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSon.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp index 177cfe71..74265757 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheFistoftheSonSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp index de5114be..4f4a4c9f 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreator.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp index c448dd00..3574934a 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp index 4de86a8a..11f231d6 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreator.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp index e28013da..46b003fe 100644 --- a/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp +++ b/src/servers/Scripts/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV10.cpp b/src/servers/Scripts/instances/raids/DeltascapeV10.cpp index 6ce0bbd0..3e4a2764 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV10.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV10.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp index 90355626..2ef47131 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV10Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV20.cpp b/src/servers/Scripts/instances/raids/DeltascapeV20.cpp index 091b80ae..bcb18b2b 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV20.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV20.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp index 4bdb703b..87ee740c 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV20Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV30.cpp b/src/servers/Scripts/instances/raids/DeltascapeV30.cpp index 359a5006..e0ecb441 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV30.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV30.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp index 15da8045..d827d235 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV30Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV40.cpp b/src/servers/Scripts/instances/raids/DeltascapeV40.cpp index cb8bba6b..d38a909c 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV40.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV40.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp b/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp index feb2bea5..2082e625 100644 --- a/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp +++ b/src/servers/Scripts/instances/raids/DeltascapeV40Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/DunScaith.cpp b/src/servers/Scripts/instances/raids/DunScaith.cpp index 3f35df35..dca07553 100644 --- a/src/servers/Scripts/instances/raids/DunScaith.cpp +++ b/src/servers/Scripts/instances/raids/DunScaith.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV10.cpp b/src/servers/Scripts/instances/raids/SigmascapeV10.cpp index f0fe4820..2357a6db 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV10.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV10.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp index 25648e9c..1709dac6 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV10Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV20.cpp b/src/servers/Scripts/instances/raids/SigmascapeV20.cpp index e9a2474d..e2e50633 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV20.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV20.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp index ae51396f..81df3061 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV20Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV30.cpp b/src/servers/Scripts/instances/raids/SigmascapeV30.cpp index 9e27d9dd..1735afac 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV30.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV30.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp index 2a8c9f30..c6bac4a5 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV30Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV40.cpp b/src/servers/Scripts/instances/raids/SigmascapeV40.cpp index 3dab868b..b8e8262d 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV40.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV40.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp b/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp index 121cb8f6..0175be2f 100644 --- a/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp +++ b/src/servers/Scripts/instances/raids/SigmascapeV40Savage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/SyrcusTower.cpp b/src/servers/Scripts/instances/raids/SyrcusTower.cpp index 8765ecd4..d06c12fd 100644 --- a/src/servers/Scripts/instances/raids/SyrcusTower.cpp +++ b/src/servers/Scripts/instances/raids/SyrcusTower.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp index 913242d0..b5235a49 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn1.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp index 1857a95a..10f336b7 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn2.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp index 9627dea1..491a5e6a 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn3.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp index 1d25869f..53df15ee 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn4.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp index fda3a6a1..4c16fe29 100644 --- a/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp +++ b/src/servers/Scripts/instances/raids/TheBindingCoilofBahamutTurn5.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp index adf01465..6a111deb 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn1.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp index d20322c2..251dabd4 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn2.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp index e97e6e9c..88543a0e 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn3.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp index a75576d2..e47b9252 100644 --- a/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheFinalCoilofBahamutTurn4.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp b/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp index 5c180590..9f8a9f1e 100644 --- a/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp +++ b/src/servers/Scripts/instances/raids/TheLabyrinthoftheAncients.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp b/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp index b2cf9842..001a7404 100644 --- a/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp +++ b/src/servers/Scripts/instances/raids/TheRoyalCityofRabanastre.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp index c46e1bff..617df4c9 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp index 37ab7ff6..19f47eb7 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp index f5f6ae38..370e6602 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp index 0f03e032..c2d4c647 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp index 2283673f..b81771dd 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn1.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp index 13e6481e..bebd903b 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn2.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp index e29ba451..0ab380c6 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn3.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp index a853df26..de22738e 100644 --- a/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp +++ b/src/servers/Scripts/instances/raids/TheSecondCoilofBahamutTurn4.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp b/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp index dda7c9b8..759c4429 100644 --- a/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp +++ b/src/servers/Scripts/instances/raids/TheUnendingCoilofBahamutUltimate.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheVoidArk.cpp b/src/servers/Scripts/instances/raids/TheVoidArk.cpp index c1eff79b..7672a4a2 100644 --- a/src/servers/Scripts/instances/raids/TheVoidArk.cpp +++ b/src/servers/Scripts/instances/raids/TheVoidArk.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp b/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp index 7a3a6a88..9c8bcd85 100644 --- a/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp +++ b/src/servers/Scripts/instances/raids/TheWeaponsRefrainUltimate.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp b/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp index f335841f..e45e2f48 100644 --- a/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp +++ b/src/servers/Scripts/instances/raids/TheWeepingCityofMhach.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp b/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp index 43abeaf4..5cee89f5 100644 --- a/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp +++ b/src/servers/Scripts/instances/raids/TheWorldofDarkness.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp b/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp index c298bbc9..2d228933 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheAquapolis.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp b/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp index 34783087..87b4b381 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheHiddenCanalsofUznair.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp b/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp index 73c2eb16..35f9ddaf 100644 --- a/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp +++ b/src/servers/Scripts/instances/treasurehunt/TheLostCanalsofUznair.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp b/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp index e723ce21..22e59083 100644 --- a/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp +++ b/src/servers/Scripts/instances/trials/ARelicReborntheChimera.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp b/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp index 943dc3bd..264acd1d 100644 --- a/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp +++ b/src/servers/Scripts/instances/trials/ARelicReborntheHydra.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp index 113102bd..215e96f4 100644 --- a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp +++ b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp index 0369c236..443d0c2e 100644 --- a/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp +++ b/src/servers/Scripts/instances/trials/AkhAfahAmphitheatreHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp b/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp index e7664c65..cf220436 100644 --- a/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp +++ b/src/servers/Scripts/instances/trials/BattleintheBigKeep.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp b/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp index d45d1660..a455b57c 100644 --- a/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp +++ b/src/servers/Scripts/instances/trials/BattleontheBigBridge.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/CapeWestwind.cpp b/src/servers/Scripts/instances/trials/CapeWestwind.cpp index 031c54d9..0ff92302 100644 --- a/src/servers/Scripts/instances/trials/CapeWestwind.cpp +++ b/src/servers/Scripts/instances/trials/CapeWestwind.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp b/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp index 50a6a203..7a9df30e 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayP1T6.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp index 5f25e2d6..1b5f6010 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayP1T6Extreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp b/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp index 6b68e282..a02390fc 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayS1T7.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp index 2b5985a5..f6ef42fb 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayS1T7Extreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp index 14b73206..569639ad 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp index ec54c2c2..408e425a 100644 --- a/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp +++ b/src/servers/Scripts/instances/trials/ContainmentBayZ1T9Extreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/Emanation.cpp b/src/servers/Scripts/instances/trials/Emanation.cpp index c5789df5..bc430985 100644 --- a/src/servers/Scripts/instances/trials/Emanation.cpp +++ b/src/servers/Scripts/instances/trials/Emanation.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/EmanationExtreme.cpp b/src/servers/Scripts/instances/trials/EmanationExtreme.cpp index 359e9302..46855657 100644 --- a/src/servers/Scripts/instances/trials/EmanationExtreme.cpp +++ b/src/servers/Scripts/instances/trials/EmanationExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/SpecialEventI.cpp b/src/servers/Scripts/instances/trials/SpecialEventI.cpp index 943212d2..dd008d31 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventI.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventI.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/SpecialEventII.cpp b/src/servers/Scripts/instances/trials/SpecialEventII.cpp index f1ffca66..699eb447 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventII.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventII.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/SpecialEventIII.cpp b/src/servers/Scripts/instances/trials/SpecialEventIII.cpp index 9b5e370f..16b861f9 100644 --- a/src/servers/Scripts/instances/trials/SpecialEventIII.cpp +++ b/src/servers/Scripts/instances/trials/SpecialEventIII.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp index e802a901..8dc82904 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbers.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp index 496d6d47..6fc72acd 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbersExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp b/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp index d6743f4d..c3d3fae8 100644 --- a/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp +++ b/src/servers/Scripts/instances/trials/TheBowlofEmbersHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheChrysalis.cpp b/src/servers/Scripts/instances/trials/TheChrysalis.cpp index c986cf1c..3ad89b36 100644 --- a/src/servers/Scripts/instances/trials/TheChrysalis.cpp +++ b/src/servers/Scripts/instances/trials/TheChrysalis.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp b/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp index a07a73e6..b3836668 100644 --- a/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp +++ b/src/servers/Scripts/instances/trials/TheDragonsNeck.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp b/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp index 1fb8d69f..e9c9e3ca 100644 --- a/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp +++ b/src/servers/Scripts/instances/trials/TheFinalStepsofFaith.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheHowlingEye.cpp b/src/servers/Scripts/instances/trials/TheHowlingEye.cpp index 3daf3251..874d27c8 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEye.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEye.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp b/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp index 3f6d66d8..a050ee9d 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEyeExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp b/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp index 7dd4dbeb..2a57708f 100644 --- a/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp +++ b/src/servers/Scripts/instances/trials/TheHowlingEyeHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheJadeStoa.cpp b/src/servers/Scripts/instances/trials/TheJadeStoa.cpp index 99436ffc..48aca9bd 100644 --- a/src/servers/Scripts/instances/trials/TheJadeStoa.cpp +++ b/src/servers/Scripts/instances/trials/TheJadeStoa.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp b/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp index f43329d5..77c7a919 100644 --- a/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheJadeStoaExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp b/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp index 4b4eb5ee..a08ab854 100644 --- a/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheLimitlessBlueExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp b/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp index bcb090e0..df6280d2 100644 --- a/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp +++ b/src/servers/Scripts/instances/trials/TheLimitlessBlueHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp index b28494b4..d9ef0b4a 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp index 74b8c11e..78e9fe50 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladShinryusDomain.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp index 966bd77f..01fbf42b 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladThordansReign.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp b/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp index 79fa4e89..0f58e3fa 100644 --- a/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp +++ b/src/servers/Scripts/instances/trials/TheMinstrelsBalladUltimasBane.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheNavel.cpp b/src/servers/Scripts/instances/trials/TheNavel.cpp index cab03b0c..349352da 100644 --- a/src/servers/Scripts/instances/trials/TheNavel.cpp +++ b/src/servers/Scripts/instances/trials/TheNavel.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp b/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp index 191aa768..a4213b25 100644 --- a/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheNavelExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheNavelHard.cpp b/src/servers/Scripts/instances/trials/TheNavelHard.cpp index 22ae7441..f7e4692e 100644 --- a/src/servers/Scripts/instances/trials/TheNavelHard.cpp +++ b/src/servers/Scripts/instances/trials/TheNavelHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp b/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp index 203a34b7..0b61db7d 100644 --- a/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp +++ b/src/servers/Scripts/instances/trials/ThePoolofTribute.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp b/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp index e9141ff0..bbe59ff9 100644 --- a/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThePoolofTributeExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp b/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp index e7581de5..5bae7602 100644 --- a/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp +++ b/src/servers/Scripts/instances/trials/TheRoyalMenagerie.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp b/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp index 23afa8e6..4cae1dc7 100644 --- a/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp +++ b/src/servers/Scripts/instances/trials/TheSingularityReactor.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp b/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp index 4c394631..9810b69f 100644 --- a/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp +++ b/src/servers/Scripts/instances/trials/TheStepsofFaith.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp b/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp index a8977105..9b08f5ac 100644 --- a/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheStrikingTreeExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp b/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp index 794d6ffe..51cae324 100644 --- a/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp +++ b/src/servers/Scripts/instances/trials/TheStrikingTreeHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp b/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp index 30008db5..f9e3458f 100644 --- a/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp +++ b/src/servers/Scripts/instances/trials/TheWhorleaterExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp b/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp index d7e5c897..80711c39 100644 --- a/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp +++ b/src/servers/Scripts/instances/trials/TheWhorleaterHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp b/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp index badfd17f..50b28fcb 100644 --- a/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThokastThokExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ThokastThokHard.cpp b/src/servers/Scripts/instances/trials/ThokastThokHard.cpp index 370e7186..c04883a6 100644 --- a/src/servers/Scripts/instances/trials/ThokastThokHard.cpp +++ b/src/servers/Scripts/instances/trials/ThokastThokHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp b/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp index 20bf9a9d..9fbe70b2 100644 --- a/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp +++ b/src/servers/Scripts/instances/trials/ThornmarchExtreme.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/ThornmarchHard.cpp b/src/servers/Scripts/instances/trials/ThornmarchHard.cpp index bf3706e5..3999c9d1 100644 --- a/src/servers/Scripts/instances/trials/ThornmarchHard.cpp +++ b/src/servers/Scripts/instances/trials/ThornmarchHard.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/Scripts/instances/trials/UrthsFount.cpp b/src/servers/Scripts/instances/trials/UrthsFount.cpp index f206105b..aae7dc94 100644 --- a/src/servers/Scripts/instances/trials/UrthsFount.cpp +++ b/src/servers/Scripts/instances/trials/UrthsFount.cpp @@ -1,5 +1,5 @@ #include -#include +#include using namespace Sapphire; diff --git a/src/servers/sapphire_zone/Actor/Actor.cpp b/src/servers/sapphire_zone/Actor/Actor.cpp index 62664869..dcec0c82 100644 --- a/src/servers/sapphire_zone/Actor/Actor.cpp +++ b/src/servers/sapphire_zone/Actor/Actor.cpp @@ -9,7 +9,7 @@ #include "Action/Action.h" #include "Action/ActionCollision.h" -#include "Zone/Zone.h" +#include "Territory/Zone.h" #include "Network/GameConnection.h" @@ -21,7 +21,7 @@ #include "ServerMgr.h" #include "Session.h" -#include "Zone/TerritoryMgr.h" +#include "Manager/TerritoryMgr.h" #include "StatusEffect/StatusEffect.h" diff --git a/src/servers/sapphire_zone/Actor/BNpc.cpp b/src/servers/sapphire_zone/Actor/BNpc.cpp index 125235b3..fee7bc56 100644 --- a/src/servers/sapphire_zone/Actor/BNpc.cpp +++ b/src/servers/sapphire_zone/Actor/BNpc.cpp @@ -9,7 +9,7 @@ #include "Forwards.h" #include "Action/Action.h" -#include "Zone/Zone.h" +#include "Territory/Zone.h" #include "Network/GameConnection.h" #include "Network/PacketWrappers/ActorControlPacket142.h" @@ -27,7 +27,7 @@ #include "Player.h" #include "BNpc.h" #include "BNpcTemplate.h" -#include "Zone/TerritoryMgr.h" +#include "Manager/TerritoryMgr.h" #include "Framework.h" #include "Common.h" diff --git a/src/servers/sapphire_zone/Actor/Chara.cpp b/src/servers/sapphire_zone/Actor/Chara.cpp index 92495e14..b90a81ee 100644 --- a/src/servers/sapphire_zone/Actor/Chara.cpp +++ b/src/servers/sapphire_zone/Actor/Chara.cpp @@ -9,7 +9,7 @@ #include "Forwards.h" #include "Action/Action.h" -#include "Zone/Zone.h" +#include "Territory/Zone.h" #include "Network/GameConnection.h" #include "Network/PacketWrappers/ActorControlPacket142.h" @@ -25,7 +25,7 @@ #include "Math/CalcBattle.h" #include "Chara.h" #include "Player.h" -#include "Zone/TerritoryMgr.h" +#include "Manager/TerritoryMgr.h" #include "Framework.h" #include "Common.h" diff --git a/src/servers/sapphire_zone/Actor/EventObject.cpp b/src/servers/sapphire_zone/Actor/EventObject.cpp index ae1ed4ea..9fa0d54e 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.cpp +++ b/src/servers/sapphire_zone/Actor/EventObject.cpp @@ -1,6 +1,6 @@ #include "EventObject.h" -#include "Zone/InstanceContent.h" +#include "Territory/InstanceContent.h" #include "Actor/Player.h" #include "Network/PacketWrappers/ActorControlPacket142.h" diff --git a/src/servers/sapphire_zone/Actor/Npc.cpp b/src/servers/sapphire_zone/Actor/Npc.cpp index cd79d2c7..341dd5c5 100644 --- a/src/servers/sapphire_zone/Actor/Npc.cpp +++ b/src/servers/sapphire_zone/Actor/Npc.cpp @@ -9,7 +9,7 @@ #include "Forwards.h" #include "Action/Action.h" -#include "Zone/Zone.h" +#include "Territory/Zone.h" #include "Network/GameConnection.h" #include "Network/PacketWrappers/ActorControlPacket142.h" @@ -26,7 +26,7 @@ #include "Chara.h" #include "Player.h" #include "Npc.h" -#include "Zone/TerritoryMgr.h" +#include "Manager/TerritoryMgr.h" #include "Framework.h" #include "Common.h" diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 3d7010c5..36d2d47b 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -11,12 +11,12 @@ #include "Session.h" #include "Player.h" -#include "Zone/TerritoryMgr.h" -#include "Zone/Zone.h" -#include "Zone/ZonePosition.h" +#include "Manager/TerritoryMgr.h" +#include "Territory/Zone.h" +#include "Territory/ZonePosition.h" -#include "Zone//HousingMgr.h" -#include "Zone/Land.h" +#include "Manager/HousingMgr.h" +#include "Territory/Land.h" #include "Network/GameConnection.h" #include "Network/PacketWrappers/ActorControlPacket142.h" @@ -49,6 +49,7 @@ using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; +using namespace Sapphire::World::Manager; using InventoryMap = std::map< uint16_t, Sapphire::ItemContainerPtr >; using InvSlotPair = std::pair< uint16_t, int8_t >; diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 013b6824..935a9e92 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -15,7 +15,7 @@ #include "Action/EventAction.h" #include "Action/EventItemAction.h" -#include "Zone/Zone.h" +#include "Territory/Zone.h" #include "ServerMgr.h" #include "Framework.h" diff --git a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp index 2c37e108..d7c78044 100644 --- a/src/servers/sapphire_zone/Actor/PlayerInventory.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerInventory.cpp @@ -3,7 +3,7 @@ #include #include -#include "Zone/Zone.h" +#include "Territory/Zone.h" #include "Network/PacketWrappers/ActorControlPacket142.h" #include "Network/PacketWrappers/ActorControlPacket143.h" diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index 62fea9fe..b19fc331 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -12,8 +12,8 @@ #include "Network/GameConnection.h" #include "Network/PacketWrappers/InitUIPacket.h" -#include "Zone/TerritoryMgr.h" -#include "Zone/Zone.h" +#include "Manager/TerritoryMgr.h" +#include "Territory/Zone.h" #include "Inventory/Item.h" #include "Inventory/ItemContainer.h" #include "Inventory/ItemUtil.h" @@ -26,6 +26,7 @@ extern Sapphire::Framework g_fw; using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::World::Manager; // load player from the db bool Sapphire::Entity::Player::load( uint32_t charId, SessionPtr pSession ) diff --git a/src/servers/sapphire_zone/CMakeLists.txt b/src/servers/sapphire_zone/CMakeLists.txt index c22229c8..56a53413 100644 --- a/src/servers/sapphire_zone/CMakeLists.txt +++ b/src/servers/sapphire_zone/CMakeLists.txt @@ -19,7 +19,7 @@ file(GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} Network/PacketWrappers/*.c* Script/*.c* StatusEffect/*.c* - Zone/*.c*) + Territory/*.c*) add_executable( sapphire_zone ${SERVER_SOURCE_FILES} ) diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 79d4960e..5e9de090 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -26,10 +26,10 @@ #include "Actor/EventObject.h" #include "Actor/BNpc.h" -#include "Zone/Zone.h" -#include "Zone/HousingZone.h" -#include "Zone/InstanceContent.h" -#include "Zone/TerritoryMgr.h" +#include "Territory/Zone.h" +#include "Territory/HousingZone.h" +#include "Territory/InstanceContent.h" +#include "Manager/TerritoryMgr.h" #include "Event/EventDefs.h" #include "ServerMgr.h" @@ -42,6 +42,7 @@ extern Sapphire::Framework g_fw; using namespace Sapphire::Network; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::World::Manager; // instanciate and initialize commands Sapphire::DebugCommandHandler::DebugCommandHandler() diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index b3783830..66f61e8a 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -20,7 +20,6 @@ namespace Sapphire { TYPE_FORWARD( Cell ); TYPE_FORWARD( Zone ); TYPE_FORWARD( HousingZone ); -TYPE_FORWARD( HousingMgr ); TYPE_FORWARD( House ); TYPE_FORWARD( InstanceContent ); TYPE_FORWARD( Item ); @@ -29,6 +28,11 @@ TYPE_FORWARD( Session ); TYPE_FORWARD( ZonePosition ); TYPE_FORWARD( Land ) +namespace World::Manager +{ +TYPE_FORWARD( HousingMgr ); +} + namespace StatusEffect { TYPE_FORWARD( StatusEffect ); TYPE_FORWARD( StatusEffectContainer ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Manager/HousingMgr.cpp similarity index 85% rename from src/servers/sapphire_zone/Zone/HousingMgr.cpp rename to src/servers/sapphire_zone/Manager/HousingMgr.cpp index 62aa1ffa..e58922b2 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Manager/HousingMgr.cpp @@ -15,13 +15,13 @@ #include "Actor/EventObject.h" #include "TerritoryMgr.h" -#include "Zone.h" -#include "HousingZone.h" +#include "Territory/Zone.h" +#include "Territory/HousingZone.h" #include "HousingMgr.h" -#include "Land.h" +#include "Territory/Land.h" #include "Framework.h" #include "ServerMgr.h" -#include "House.h" +#include "Territory/House.h" using namespace Sapphire::Common; using namespace Sapphire::Network; @@ -30,34 +30,34 @@ using namespace Sapphire::Network::Packets::Server; extern Sapphire::Framework g_fw; -Sapphire::HousingMgr::HousingMgr() +Sapphire::World::Manager::HousingMgr::HousingMgr() { } -Sapphire::HousingMgr::~HousingMgr() +Sapphire::World::Manager::HousingMgr::~HousingMgr() { } -bool Sapphire::HousingMgr::init() +bool Sapphire::World::Manager::HousingMgr::init() { return true; } -uint32_t Sapphire::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const +uint32_t Sapphire::World::Manager::HousingMgr::toLandSetId( uint16_t territoryTypeId, uint8_t wardId ) const { return ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardId; } -Sapphire::Data::HousingZonePtr Sapphire::HousingMgr::getHousingZoneByLandSetId( uint32_t id ) +Sapphire::Data::HousingZonePtr Sapphire::World::Manager::HousingMgr::getHousingZoneByLandSetId( uint32_t id ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); return std::dynamic_pointer_cast< HousingZone >( pTeriMgr->getZoneByLandSetId( id ) ); } -Sapphire::LandPtr Sapphire::HousingMgr::getLandByOwnerId( uint32_t id ) +Sapphire::LandPtr Sapphire::World::Manager::HousingMgr::getLandByOwnerId( uint32_t id ) { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT LandSetId, LandId FROM land WHERE OwnerId = " + std::to_string( id ) ); @@ -73,7 +73,7 @@ Sapphire::LandPtr Sapphire::HousingMgr::getLandByOwnerId( uint32_t id ) return hZone->getLand( res->getUInt( 2 ) ); } -void Sapphire::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) +void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) { player.setActiveLand( plotId, wardId ); @@ -114,7 +114,7 @@ void Sapphire::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wa player.queuePacket( landInfoSignPacket ); } -void Sapphire::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) +void Sapphire::World::Manager::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) { player.setActiveLand( plotId, wardId ); @@ -131,7 +131,7 @@ void Sapphire::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t war player.queuePacket( plotPricePacket ); } -Sapphire::LandPurchaseResult Sapphire::HousingMgr::purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ) +Sapphire::LandPurchaseResult Sapphire::World::Manager::HousingMgr::purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ) { auto pHousing = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); @@ -186,7 +186,7 @@ Sapphire::LandPurchaseResult Sapphire::HousingMgr::purchaseLand( Entity::Player& } -bool Sapphire::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) +bool Sapphire::World::Manager::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot ) { // TODO: Fix "permissions" being sent incorrectly // TODO: Add checks for land state before relinquishing @@ -232,7 +232,7 @@ bool Sapphire::HousingMgr::relinquishLand( Entity::Player& player, uint8_t plot return true; } -void Sapphire::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ) +void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); @@ -284,7 +284,7 @@ void Sapphire::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t war player.queuePacket( wardInfoPacket ); } -void Sapphire::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ) +void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ) { auto hZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); @@ -327,7 +327,7 @@ void Sapphire::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t pl eobj->setHousingLink( plotNum << 8 ); } -void Sapphire::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::World::Manager::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); @@ -352,7 +352,7 @@ void Sapphire::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t player.queuePacket( landRenamePacket ); } -void Sapphire::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::World::Manager::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); @@ -379,7 +379,7 @@ void Sapphire::HousingMgr::requestEstateEditGreeting( Entity::Player& player, ui player.queuePacket( estateGreetingPacket ); } -void Sapphire::HousingMgr::updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ) +void Sapphire::World::Manager::HousingMgr::updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ) { auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto zone = getHousingZoneByLandSetId( landSetId ); @@ -405,7 +405,7 @@ void Sapphire::HousingMgr::updateEstateGreeting( Entity::Player& player, const C player.sendLogMessage( 3381 ); } -void Sapphire::HousingMgr::requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::World::Manager::HousingMgr::requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) { auto landSetId = toLandSetId( territoryTypeId, wardId ); auto hZone = getHousingZoneByLandSetId( landSetId ); diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.h b/src/servers/sapphire_zone/Manager/HousingMgr.h similarity index 95% rename from src/servers/sapphire_zone/Zone/HousingMgr.h rename to src/servers/sapphire_zone/Manager/HousingMgr.h index d10a0325..73e67125 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.h +++ b/src/servers/sapphire_zone/Manager/HousingMgr.h @@ -2,7 +2,7 @@ #define SAPPHIRE_HOUSINGMGR_H #include "Forwards.h" -#include "HousingZone.h" +#include "Territory/HousingZone.h" #include #include @@ -11,7 +11,7 @@ namespace Sapphire::Data using HousingZonePtr = std::shared_ptr< HousingZone >; } -namespace Sapphire +namespace Sapphire::World::Manager { class HousingMgr { diff --git a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp index bcb0a2ce..0c030e82 100644 --- a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp +++ b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp @@ -3,19 +3,20 @@ #include #include -#include -#include +#include +#include -#include +#include #include extern Sapphire::Framework g_fw; +using namespace Sapphire::World::Manager; void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param ) { // check if we have one in the db first - auto terriMgr = g_fw.get< Sapphire::TerritoryMgr >(); + auto terriMgr = g_fw.get< TerritoryMgr >(); if( !terriMgr ) return; @@ -27,7 +28,7 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire: // check if its a housing zone, zoning is different here if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) ) { - auto housingMgr = g_fw.get< Sapphire::HousingMgr >(); + auto housingMgr = g_fw.get< HousingMgr >(); auto landSetId = housingMgr->toLandSetId( terriPos->getTargetZoneId(), param ); auto housingZone = housingMgr->getHousingZoneByLandSetId( landSetId ); diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp similarity index 80% rename from src/servers/sapphire_zone/Zone/TerritoryMgr.cpp rename to src/servers/sapphire_zone/Manager/TerritoryMgr.cpp index 29d61afe..46ca2fe3 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp @@ -6,22 +6,22 @@ #include "Actor/Player.h" -#include "Zone.h" -#include "HousingZone.h" -#include "ZonePosition.h" -#include "InstanceContent.h" +#include "Territory/Zone.h" +#include "Territory/HousingZone.h" +#include "Territory/ZonePosition.h" +#include "Territory/InstanceContent.h" #include "TerritoryMgr.h" #include "Framework.h" extern Sapphire::Framework g_fw; -Sapphire::TerritoryMgr::TerritoryMgr() : +Sapphire::World::Manager::TerritoryMgr::TerritoryMgr() : m_lastInstanceId( 10000 ) { } -void Sapphire::TerritoryMgr::loadTerritoryTypeDetailCache() +void Sapphire::World::Manager::TerritoryMgr::loadTerritoryTypeDetailCache() { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto idList = pExdData->getTerritoryTypeIdList(); @@ -35,12 +35,12 @@ void Sapphire::TerritoryMgr::loadTerritoryTypeDetailCache() } } -bool Sapphire::TerritoryMgr::isValidTerritory( uint32_t territoryTypeId ) const +bool Sapphire::World::Manager::TerritoryMgr::isValidTerritory( uint32_t territoryTypeId ) const { return !( m_territoryTypeDetailCacheMap.find( territoryTypeId ) == m_territoryTypeDetailCacheMap.end() ); } -bool Sapphire::TerritoryMgr::init() +bool Sapphire::World::Manager::TerritoryMgr::init() { loadTerritoryTypeDetailCache(); loadTerritoryPositionMap(); @@ -51,12 +51,12 @@ bool Sapphire::TerritoryMgr::init() return true; } -uint32_t Sapphire::TerritoryMgr::getNextInstanceId() +uint32_t Sapphire::World::Manager::TerritoryMgr::getNextInstanceId() { return ++m_lastInstanceId; } -Sapphire::Data::TerritoryTypePtr Sapphire::TerritoryMgr::getTerritoryDetail( uint32_t territoryTypeId ) const +Sapphire::Data::TerritoryTypePtr Sapphire::World::Manager::TerritoryMgr::getTerritoryDetail( uint32_t territoryTypeId ) const { auto tIt = m_territoryTypeDetailCacheMap.find( territoryTypeId ); if( tIt == m_territoryTypeDetailCacheMap.end() ) @@ -65,7 +65,7 @@ Sapphire::Data::TerritoryTypePtr Sapphire::TerritoryMgr::getTerritoryDetail( uin return tIt->second; } -bool Sapphire::TerritoryMgr::isInstanceContentTerritory( uint32_t territoryTypeId ) const +bool Sapphire::World::Manager::TerritoryMgr::isInstanceContentTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -86,7 +86,7 @@ bool Sapphire::TerritoryMgr::isInstanceContentTerritory( uint32_t territoryTypeI intendedUse == TerritoryIntendedUse::EventTrial; } -bool Sapphire::TerritoryMgr::isPrivateTerritory( uint32_t territoryTypeId ) const +bool Sapphire::World::Manager::TerritoryMgr::isPrivateTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -100,7 +100,7 @@ bool Sapphire::TerritoryMgr::isPrivateTerritory( uint32_t territoryTypeId ) cons pTeri->territoryIntendedUse == TerritoryIntendedUse::MSQPrivateArea; } -bool Sapphire::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) const +bool Sapphire::World::Manager::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -114,7 +114,7 @@ bool Sapphire::TerritoryMgr::isDefaultTerritory( uint32_t territoryTypeId ) cons } -bool Sapphire::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) const +bool Sapphire::World::Manager::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) const { auto pTeri = getTerritoryDetail( territoryTypeId ); @@ -124,7 +124,7 @@ bool Sapphire::TerritoryMgr::isHousingTerritory( uint32_t territoryTypeId ) cons return pTeri->territoryIntendedUse == TerritoryIntendedUse::HousingArea; } -bool Sapphire::TerritoryMgr::createDefaultTerritories() +bool Sapphire::World::Manager::TerritoryMgr::createDefaultTerritories() { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); auto pLog = g_fw.get< Logger >(); @@ -165,7 +165,7 @@ bool Sapphire::TerritoryMgr::createDefaultTerritories() return true; } -bool Sapphire::TerritoryMgr::createHousingTerritories() +bool Sapphire::World::Manager::TerritoryMgr::createHousingTerritories() { //separate housing zones from default auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -213,7 +213,7 @@ bool Sapphire::TerritoryMgr::createHousingTerritories() return true; } -Sapphire::ZonePtr Sapphire::TerritoryMgr::createTerritoryInstance( uint32_t territoryTypeId ) +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createTerritoryInstance( uint32_t territoryTypeId ) { if( !isValidTerritory( territoryTypeId ) ) return nullptr; @@ -242,7 +242,7 @@ Sapphire::ZonePtr Sapphire::TerritoryMgr::createTerritoryInstance( uint32_t terr return pZone; } -Sapphire::ZonePtr Sapphire::TerritoryMgr::createInstanceContent( uint32_t contentFinderConditionId ) +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createInstanceContent( uint32_t contentFinderConditionId ) { auto pExdData = g_fw.get< Data::ExdDataGenerated >(); @@ -278,7 +278,12 @@ Sapphire::ZonePtr Sapphire::TerritoryMgr::createInstanceContent( uint32_t conten return pZone; } -bool Sapphire::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createHousingInterior( const Common::LandIdent& landIdent ) +{ + +} + +bool Sapphire::World::Manager::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) { ZonePtr pZone; if( ( pZone = getInstanceZonePtr( instanceId ) ) == nullptr ) @@ -301,7 +306,7 @@ bool Sapphire::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) return true; } -Sapphire::ZonePtr Sapphire::TerritoryMgr::getInstanceZonePtr( uint32_t instanceId ) const +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::getInstanceZonePtr( uint32_t instanceId ) const { auto it = m_instanceIdToZonePtrMap.find( instanceId ); if( it == m_instanceIdToZonePtrMap.end() ) @@ -310,7 +315,7 @@ Sapphire::ZonePtr Sapphire::TerritoryMgr::getInstanceZonePtr( uint32_t instanceI return it->second; } -void Sapphire::TerritoryMgr::loadTerritoryPositionMap() +void Sapphire::World::Manager::TerritoryMgr::loadTerritoryPositionMap() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pQR = pDb->query( "SELECT id, target_zone_id, pos_x, pos_y, pos_z, pos_o, radius FROM zonepositions;" ); @@ -330,7 +335,7 @@ void Sapphire::TerritoryMgr::loadTerritoryPositionMap() } } -Sapphire::ZonePositionPtr Sapphire::TerritoryMgr::getTerritoryPosition( uint32_t territoryPositionId ) const +Sapphire::ZonePositionPtr Sapphire::World::Manager::TerritoryMgr::getTerritoryPosition( uint32_t territoryPositionId ) const { auto it = m_territoryPositionMap.find( territoryPositionId ); @@ -340,7 +345,7 @@ Sapphire::ZonePositionPtr Sapphire::TerritoryMgr::getTerritoryPosition( uint32_t return nullptr; } -Sapphire::ZonePtr Sapphire::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const { auto zoneMap = m_territoryTypeIdToInstanceGuidMap.find( territoryTypeId ); if( zoneMap == m_territoryTypeIdToInstanceGuidMap.end() ) @@ -350,7 +355,7 @@ Sapphire::ZonePtr Sapphire::TerritoryMgr::getZoneByTerritoryTypeId( uint32_t ter return zoneMap->second.begin()->second; } -Sapphire::ZonePtr Sapphire::TerritoryMgr::getZoneByLandSetId( uint32_t landSetId ) const +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::getZoneByLandSetId( uint32_t landSetId ) const { auto zoneMap = m_landSetIdToZonePtrMap.find( landSetId ); if( zoneMap == m_landSetIdToZonePtrMap.end() ) @@ -359,7 +364,7 @@ Sapphire::ZonePtr Sapphire::TerritoryMgr::getZoneByLandSetId( uint32_t landSetId return zoneMap->second; } -void Sapphire::TerritoryMgr::updateTerritoryInstances( uint32_t currentTime ) +void Sapphire::World::Manager::TerritoryMgr::updateTerritoryInstances( uint32_t currentTime ) { for( auto& zone : m_zoneSet ) { @@ -372,7 +377,7 @@ void Sapphire::TerritoryMgr::updateTerritoryInstances( uint32_t currentTime ) } } -Sapphire::TerritoryMgr::InstanceIdList Sapphire::TerritoryMgr::getInstanceContentIdList( uint16_t instanceContentId ) const +Sapphire::World::Manager::TerritoryMgr::InstanceIdList Sapphire::World::Manager::TerritoryMgr::getInstanceContentIdList( uint16_t instanceContentId ) const { std::vector< uint32_t > idList; auto zoneMap = m_instanceContentToInstanceMap.find( instanceContentId ); @@ -387,14 +392,14 @@ Sapphire::TerritoryMgr::InstanceIdList Sapphire::TerritoryMgr::getInstanceConten return idList; } -bool Sapphire::TerritoryMgr::movePlayer( uint32_t territoryTypeId, Sapphire::Entity::PlayerPtr pPlayer ) +bool Sapphire::World::Manager::TerritoryMgr::movePlayer( uint32_t territoryTypeId, Sapphire::Entity::PlayerPtr pPlayer ) { auto pZone = getZoneByTerritoryTypeId( territoryTypeId ); assert( pZone ); return movePlayer( pZone, pPlayer ); } -bool Sapphire::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire::Entity::PlayerPtr pPlayer ) +bool Sapphire::World::Manager::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire::Entity::PlayerPtr pPlayer ) { auto pLog = g_fw.get< Logger >(); if( !pZone ) @@ -437,7 +442,7 @@ bool Sapphire::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire::Entity::Player return true; } -Sapphire::ZonePtr Sapphire::TerritoryMgr::getLinkedInstance( uint32_t playerId ) const +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::getLinkedInstance( uint32_t playerId ) const { auto it = m_playerIdToInstanceMap.find( playerId ); if( it != m_playerIdToInstanceMap.end() ) @@ -447,12 +452,12 @@ Sapphire::ZonePtr Sapphire::TerritoryMgr::getLinkedInstance( uint32_t playerId ) return nullptr; } -const std::pair< uint16_t, uint16_t >& Sapphire::TerritoryMgr::getCurrentFestival() const +const std::pair< uint16_t, uint16_t >& Sapphire::World::Manager::TerritoryMgr::getCurrentFestival() const { return m_currentFestival; } -void Sapphire::TerritoryMgr::setCurrentFestival( uint16_t festivalId, uint16_t additionalFestival ) +void Sapphire::World::Manager::TerritoryMgr::setCurrentFestival( uint16_t festivalId, uint16_t additionalFestival ) { m_currentFestival = { festivalId, additionalFestival }; @@ -462,7 +467,7 @@ void Sapphire::TerritoryMgr::setCurrentFestival( uint16_t festivalId, uint16_t a } } -void Sapphire::TerritoryMgr::disableCurrentFestival() +void Sapphire::World::Manager::TerritoryMgr::disableCurrentFestival() { setCurrentFestival( 0 ); } diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.h b/src/servers/sapphire_zone/Manager/TerritoryMgr.h similarity index 98% rename from src/servers/sapphire_zone/Zone/TerritoryMgr.h rename to src/servers/sapphire_zone/Manager/TerritoryMgr.h index 1e4dd85c..d9c51df9 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.h +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.h @@ -5,7 +5,7 @@ #include #include -namespace Sapphire::Data +namespace Sapphire::Data { // TODO: this should actually not be here but should be generated in exdData aswell struct PlaceName; @@ -17,7 +17,7 @@ namespace Sapphire::Data using InstanceContentPtr = std::shared_ptr< InstanceContent >; } -namespace Sapphire +namespace Sapphire::World::Manager { /*! \class TerritoryMgr_c @@ -99,6 +99,8 @@ public: ZonePtr createInstanceContent( uint32_t contentFinderConditionId ); + ZonePtr createHousingInterior( const Common::LandIdent& landIdent ); + /*! removes instance by instanceId, return true if successful */ bool removeTerritoryInstance( uint32_t territoryTypeId ); @@ -117,7 +119,7 @@ public: /*! returns a default Zone by territoryTypeId TODO: Mind multiple instances?! */ ZonePtr getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const; - + /*! returns a Zone by landSetId */ ZonePtr getZoneByLandSetId( uint32_t landSetId ) const; diff --git a/src/servers/sapphire_zone/Network/GameConnection.cpp b/src/servers/sapphire_zone/Network/GameConnection.cpp index acc5296c..25c42c9b 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.cpp +++ b/src/servers/sapphire_zone/Network/GameConnection.cpp @@ -8,7 +8,7 @@ #include #include -#include "Zone/Zone.h" +#include "Territory/Zone.h" #include "Network/PacketWrappers/InitUIPacket.h" diff --git a/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp index 8727bfb9..f8816e5f 100644 --- a/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/CFHandlers.cpp @@ -5,8 +5,8 @@ #include #include -#include "Zone/TerritoryMgr.h" -#include "Zone/InstanceContent.h" +#include "Manager/TerritoryMgr.h" +#include "Territory/InstanceContent.h" #include "Network/GameConnection.h" #include "Network/PacketWrappers/ServerNoticePacket.h" @@ -21,6 +21,7 @@ extern Sapphire::Framework g_fw; using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::World::Manager; void Sapphire::Network::GameConnection::cfDutyInfoRequest( const Packets::FFXIVARR_PACKET_RAW& inPacket, diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index f1be2d0c..c1160246 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -8,9 +8,9 @@ #include #include -#include "Zone/Zone.h" -#include "Zone/ZonePosition.h" -#include "Zone/HousingMgr.h" +#include "Territory/Zone.h" +#include "Territory/ZonePosition.h" +#include "Manager/HousingMgr.h" #include "Network/GameConnection.h" @@ -42,6 +42,7 @@ using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; +using namespace Sapphire::World::Manager; void examineHandler( Sapphire::Entity::Player& player, uint32_t targetId ) { diff --git a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp index f02ea7ef..0ce1a9a9 100644 --- a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp @@ -20,7 +20,7 @@ #include "Event/EventHandler.h" #include "Event/EventHelper.h" -#include "Zone/InstanceContent.h" +#include "Territory/InstanceContent.h" #include "Session.h" diff --git a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp index a6beaf1d..ce9992ea 100644 --- a/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/GMCommandHandlers.cpp @@ -13,9 +13,9 @@ #include "Session.h" -#include "Zone/TerritoryMgr.h" -#include "Zone/Zone.h" -#include "Zone/InstanceContent.h" +#include "Manager/TerritoryMgr.h" +#include "Territory/Zone.h" +#include "Territory/InstanceContent.h" #include "Network/PacketWrappers/InitUIPacket.h" #include "Network/PacketWrappers/PingPacket.h" @@ -38,6 +38,7 @@ using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; +using namespace Sapphire::World::Manager; enum GmCommand { diff --git a/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp index a0925f98..370d0d75 100644 --- a/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/InventoryHandler.cpp @@ -8,8 +8,8 @@ #include "Network/GameConnection.h" #include "Network/PacketWrappers/ServerNoticePacket.h" -#include "Zone/Zone.h" -#include "Zone/ZonePosition.h" +#include "Territory/Zone.h" +#include "Territory/ZonePosition.h" #include "DebugCommand/DebugCommandHandler.h" #include "Actor/Player.h" diff --git a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp index 3de70b02..2e86da9d 100644 --- a/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/PacketHandlers.cpp @@ -14,13 +14,13 @@ #include "Network/GameConnection.h" -#include "Zone/TerritoryMgr.h" -#include "Zone/Zone.h" -#include "Zone/HousingZone.h" -#include "Zone/HousingMgr.h" -#include "Zone/Land.h" -#include "Zone/ZonePosition.h" -#include "Zone/House.h" +#include "Manager/TerritoryMgr.h" +#include "Territory/Zone.h" +#include "Territory/HousingZone.h" +#include "Manager/HousingMgr.h" +#include "Territory/Land.h" +#include "Territory/ZonePosition.h" +#include "Territory/House.h" #include "Network/PacketWrappers/InitUIPacket.h" #include "Network/PacketWrappers/PingPacket.h" @@ -52,6 +52,7 @@ using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; +using namespace Sapphire::World::Manager; void Sapphire::Network::GameConnection::fcInfoReqHandler( const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index eaddfce9..68432a9d 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -4,8 +4,8 @@ #include -#include "Zone/Zone.h" -#include "Zone/InstanceContent.h" +#include "Territory/Zone.h" +#include "Territory/InstanceContent.h" #include "Actor/Player.h" #include "Actor/EventObject.h" #include "ServerMgr.h" diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index 9870b975..caab736b 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -21,13 +21,15 @@ #include "Session.h" -#include "Zone/TerritoryMgr.h" +#include "Manager/TerritoryMgr.h" #include "Script/ScriptMgr.h" #include "Linkshell/LinkshellMgr.h" extern Sapphire::Framework g_fw; +using namespace Sapphire::World::Manager; + Sapphire::ServerMgr::ServerMgr( const std::string& configName ) : m_configName( configName ), m_bRunning( true ), diff --git a/src/servers/sapphire_zone/Zone/Cell.cpp b/src/servers/sapphire_zone/Territory/Cell.cpp similarity index 100% rename from src/servers/sapphire_zone/Zone/Cell.cpp rename to src/servers/sapphire_zone/Territory/Cell.cpp diff --git a/src/servers/sapphire_zone/Zone/Cell.h b/src/servers/sapphire_zone/Territory/Cell.h similarity index 100% rename from src/servers/sapphire_zone/Zone/Cell.h rename to src/servers/sapphire_zone/Territory/Cell.h diff --git a/src/servers/sapphire_zone/Zone/CellHandler.h b/src/servers/sapphire_zone/Territory/CellHandler.h similarity index 100% rename from src/servers/sapphire_zone/Zone/CellHandler.h rename to src/servers/sapphire_zone/Territory/CellHandler.h diff --git a/src/servers/sapphire_zone/Zone/House.cpp b/src/servers/sapphire_zone/Territory/House.cpp similarity index 100% rename from src/servers/sapphire_zone/Zone/House.cpp rename to src/servers/sapphire_zone/Territory/House.cpp diff --git a/src/servers/sapphire_zone/Zone/House.h b/src/servers/sapphire_zone/Territory/House.h similarity index 100% rename from src/servers/sapphire_zone/Zone/House.h rename to src/servers/sapphire_zone/Territory/House.h diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp new file mode 100644 index 00000000..e69de29b diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h new file mode 100644 index 00000000..d52f102a --- /dev/null +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h @@ -0,0 +1,18 @@ +#include "Zone.h" + +namespace Sapphire::World::Territory::Housing +{ + class HousingInteriorTerritory : public Zone + { + public: + HousingInteriorTerritory( uint64_t ident, uint16_t territoryTypeId, + uint32_t guId, + const std::string& internalName, + const std::string& contentName ); + + bool init() override; + + void onPlayerZoneIn( Entity::Player& player ) override; + void onUpdate( uint32_t currTime ) override; + } +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Zone/HousingZone.cpp b/src/servers/sapphire_zone/Territory/HousingZone.cpp similarity index 98% rename from src/servers/sapphire_zone/Zone/HousingZone.cpp rename to src/servers/sapphire_zone/Territory/HousingZone.cpp index 7ec1121c..a4f6e49c 100644 --- a/src/servers/sapphire_zone/Zone/HousingZone.cpp +++ b/src/servers/sapphire_zone/Territory/HousingZone.cpp @@ -15,7 +15,7 @@ #include "Forwards.h" #include "HousingZone.h" -#include "HousingMgr.h" +#include "Manager/HousingMgr.h" #include "Framework.h" extern Sapphire::Framework g_fw; @@ -23,6 +23,7 @@ extern Sapphire::Framework g_fw; using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::World::Manager; Sapphire::HousingZone::HousingZone( uint8_t wardNum, uint16_t territoryTypeId, diff --git a/src/servers/sapphire_zone/Zone/HousingZone.h b/src/servers/sapphire_zone/Territory/HousingZone.h similarity index 100% rename from src/servers/sapphire_zone/Zone/HousingZone.h rename to src/servers/sapphire_zone/Territory/HousingZone.h diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.cpp b/src/servers/sapphire_zone/Territory/InstanceContent.cpp similarity index 100% rename from src/servers/sapphire_zone/Zone/InstanceContent.cpp rename to src/servers/sapphire_zone/Territory/InstanceContent.cpp diff --git a/src/servers/sapphire_zone/Zone/InstanceContent.h b/src/servers/sapphire_zone/Territory/InstanceContent.h similarity index 100% rename from src/servers/sapphire_zone/Zone/InstanceContent.h rename to src/servers/sapphire_zone/Territory/InstanceContent.h diff --git a/src/servers/sapphire_zone/Zone/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp similarity index 100% rename from src/servers/sapphire_zone/Zone/Land.cpp rename to src/servers/sapphire_zone/Territory/Land.cpp diff --git a/src/servers/sapphire_zone/Zone/Land.h b/src/servers/sapphire_zone/Territory/Land.h similarity index 100% rename from src/servers/sapphire_zone/Zone/Land.h rename to src/servers/sapphire_zone/Territory/Land.h diff --git a/src/servers/sapphire_zone/Zone/Zone.cpp b/src/servers/sapphire_zone/Territory/Zone.cpp similarity index 99% rename from src/servers/sapphire_zone/Zone/Zone.cpp rename to src/servers/sapphire_zone/Territory/Zone.cpp index 5fc6befa..abdb9a60 100644 --- a/src/servers/sapphire_zone/Zone/Zone.cpp +++ b/src/servers/sapphire_zone/Territory/Zone.cpp @@ -16,7 +16,7 @@ #include "Zone.h" #include "InstanceContent.h" -#include "TerritoryMgr.h" +#include "Manager/TerritoryMgr.h" #include "Session.h" #include "Actor/Chara.h" @@ -34,13 +34,13 @@ #include "ServerMgr.h" #include "CellHandler.h" #include "Zone.h" -#include "TerritoryMgr.h" #include "Framework.h" using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; +using namespace Sapphire::World::Manager; extern Sapphire::Framework g_fw; diff --git a/src/servers/sapphire_zone/Zone/Zone.h b/src/servers/sapphire_zone/Territory/Zone.h similarity index 100% rename from src/servers/sapphire_zone/Zone/Zone.h rename to src/servers/sapphire_zone/Territory/Zone.h diff --git a/src/servers/sapphire_zone/Zone/ZonePosition.cpp b/src/servers/sapphire_zone/Territory/ZonePosition.cpp similarity index 100% rename from src/servers/sapphire_zone/Zone/ZonePosition.cpp rename to src/servers/sapphire_zone/Territory/ZonePosition.cpp diff --git a/src/servers/sapphire_zone/Zone/ZonePosition.h b/src/servers/sapphire_zone/Territory/ZonePosition.h similarity index 100% rename from src/servers/sapphire_zone/Zone/ZonePosition.h rename to src/servers/sapphire_zone/Territory/ZonePosition.h diff --git a/src/servers/sapphire_zone/mainGameServer.cpp b/src/servers/sapphire_zone/mainGameServer.cpp index d0ac6c4c..8e15fbd6 100644 --- a/src/servers/sapphire_zone/mainGameServer.cpp +++ b/src/servers/sapphire_zone/mainGameServer.cpp @@ -8,8 +8,8 @@ #include #include #include "Linkshell/LinkshellMgr.h" -#include "Zone/TerritoryMgr.h" -#include "Zone/HousingMgr.h" +#include "Manager/TerritoryMgr.h" +#include "Manager/HousingMgr.h" #include "DebugCommand/DebugCommandHandler.h" #include "Manager/PlayerMgr.h" #include "Manager/ShopMgr.h" @@ -19,6 +19,7 @@ Sapphire::Framework g_fw; using namespace Sapphire; +using namespace Sapphire::World; bool setupFramework() { @@ -28,12 +29,12 @@ bool setupFramework() auto pScript = std::make_shared< Scripting::ScriptMgr >(); auto pDb = std::make_shared< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto pLsMgr = std::make_shared< LinkshellMgr >(); - auto pHousingMgr = std::make_shared< HousingMgr >(); - auto pTeriMgr = std::make_shared< TerritoryMgr >(); + auto pHousingMgr = std::make_shared< Manager::HousingMgr >(); + auto pTeriMgr = std::make_shared< Manager::TerritoryMgr >(); auto pDebugCom = std::make_shared< DebugCommandHandler >(); auto pConfig = std::make_shared< ConfigMgr >(); - auto pPlayerMgr = std::make_shared< Sapphire::World::Manager::PlayerMgr >(); - auto pShopMgr = std::make_shared< Sapphire::World::Manager::ShopMgr >(); + auto pPlayerMgr = std::make_shared< Manager::PlayerMgr >(); + auto pShopMgr = std::make_shared< Manager::ShopMgr >(); pLogger->setLogPath( "log/SapphireZone" ); pLogger->init(); @@ -44,12 +45,12 @@ bool setupFramework() g_fw.set< Scripting::ScriptMgr >( pScript ); g_fw.set< Db::DbWorkerPool< Db::ZoneDbConnection > >( pDb ); g_fw.set< LinkshellMgr >( pLsMgr ); - g_fw.set< HousingMgr >( pHousingMgr ); - g_fw.set< TerritoryMgr >( pTeriMgr ); + g_fw.set< Manager::HousingMgr >( pHousingMgr ); + g_fw.set< Manager::TerritoryMgr >( pTeriMgr ); g_fw.set< DebugCommandHandler >( pDebugCom ); g_fw.set< ConfigMgr >( pConfig ); - g_fw.set< Sapphire::World::Manager::PlayerMgr >( pPlayerMgr ); - g_fw.set< Sapphire::World::Manager::ShopMgr >( pShopMgr ); + g_fw.set< Manager::PlayerMgr >( pPlayerMgr ); + g_fw.set< Manager::ShopMgr >( pShopMgr ); // actuall catch errors here... return true; diff --git a/src/tools/event_object_parser/instance.tmpl b/src/tools/event_object_parser/instance.tmpl index 7544e2e9..b2913ebe 100644 --- a/src/tools/event_object_parser/instance.tmpl +++ b/src/tools/event_object_parser/instance.tmpl @@ -1,5 +1,5 @@ #include -#include +#include class INSTANCE_NAME : public InstanceContentScript { From 4ee11da7ac0d6b55529bc68b9c6d8996aea88b4d Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 1 Dec 2018 00:30:53 +1100 Subject: [PATCH 137/385] unfuck the scripts include directories --- src/servers/Scripts/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/Scripts/CMakeLists.txt b/src/servers/Scripts/CMakeLists.txt index 31edef95..06ea6827 100644 --- a/src/servers/Scripts/CMakeLists.txt +++ b/src/servers/Scripts/CMakeLists.txt @@ -49,7 +49,7 @@ foreach(_scriptDir ${children}) LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${SCRIPT_LIB_DIR}" ) endif() - target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_Territory/") + target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/sapphire_zone/") target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/servers/Script/Scripts") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/Scripts") From e9d0b67354165e27aa61f851737a36cdc6b5cda4 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 30 Nov 2018 23:57:06 +0100 Subject: [PATCH 138/385] Slight reformatting --- .../sapphire_zone/Manager/TerritoryMgr.h | 347 +++++++++--------- 1 file changed, 172 insertions(+), 175 deletions(-) diff --git a/src/servers/sapphire_zone/Manager/TerritoryMgr.h b/src/servers/sapphire_zone/Manager/TerritoryMgr.h index d9c51df9..554201a5 100644 --- a/src/servers/sapphire_zone/Manager/TerritoryMgr.h +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.h @@ -19,186 +19,183 @@ namespace Sapphire::Data namespace Sapphire::World::Manager { -/*! - \class TerritoryMgr_c - \brief A class managing zones + /*! + \class TerritoryMgr_c + \brief A class managing zones - This class manages persistent and temporary instances alike. + This class manages persistent and temporary instances alike. -*/ -class TerritoryMgr -{ - -public: - enum TerritoryIntendedUse : - uint8_t //TODO: Add the rest of the territory types and have better names for them + */ + class TerritoryMgr { - Town = 0, - OpenWorld = 1, - Inn = 2, - Dungeon = 3, - JailArea = 5, - OpeningArea = 6, - BeforeTrialDung = 7, - AllianceRaid = 8, - OpenWorldInstanceBattle = 9, - Trial = 10, - HousingArea = 13, - HousingPrivateArea = 14, - MSQPrivateArea = 15, - Raids = 16, - RaidFights = 17, - ChocoboTutorial = 21, - Wedding = 22, - BeginnerTutorial = 27, - FreeCompanyGarrison = 30, - PalaceOfTheDead = 31, - TreasureMapInstance = 33, - EventTrial = 36, - TheFeastArea = 37, - PrivateEventArea = 40, - //Eureka = 41, // wat + + public: + enum TerritoryIntendedUse : uint8_t //TODO: Add the rest of the territory types and have better names for them + { + Town = 0, + OpenWorld = 1, + Inn = 2, + Dungeon = 3, + JailArea = 5, + OpeningArea = 6, + BeforeTrialDung = 7, + AllianceRaid = 8, + OpenWorldInstanceBattle = 9, + Trial = 10, + HousingArea = 13, + HousingPrivateArea = 14, + MSQPrivateArea = 15, + Raids = 16, + RaidFights = 17, + ChocoboTutorial = 21, + Wedding = 22, + BeginnerTutorial = 27, + FreeCompanyGarrison = 30, + PalaceOfTheDead = 31, + TreasureMapInstance = 33, + EventTrial = 36, + TheFeastArea = 37, + PrivateEventArea = 40, + //Eureka = 41, // wat + }; + + TerritoryMgr(); + + /*! initializes the territoryMgr */ + bool init(); + + bool createDefaultTerritories(); + + bool createHousingTerritories(); + + /*! caches TerritoryType details into m_territoryTypeMap */ + void loadTerritoryTypeDetailCache(); + + /*! List of positions for zonelines */ + void loadTerritoryPositionMap(); + + /*! returns true if the given territoryTypeId is in fact a valid zone + based on informations in the dats ( checks if an entry in the dats exists trhough cache ) */ + bool isValidTerritory( uint32_t territoryTypeId ) const; + + /*! returns the next available instanceId */ + uint32_t getNextInstanceId(); + + /*! returns true if the territoryType in question is not a persistant zone */ + bool isInstanceContentTerritory( uint32_t territoryTypeId ) const; + + /*! returns true if the territoryType in question is not a private zone */ + bool isPrivateTerritory( uint32_t territoryTypeId ) const; + + /*! returns true if the territoryType is a default non-instanced zone */ + bool isDefaultTerritory( uint32_t territoryTypeId ) const; + + /*! returns true if the territoryType is a housing zone */ + bool isHousingTerritory( uint32_t territoryTypeId ) const; + + /*! creates a new instance for a given territoryTypeId */ + ZonePtr createTerritoryInstance( uint32_t territoryTypeId ); + + ZonePtr createInstanceContent( uint32_t contentFinderConditionId ); + + ZonePtr createHousingInterior( const Common::LandIdent& landIdent ); + + /*! removes instance by instanceId, return true if successful */ + bool removeTerritoryInstance( uint32_t territoryTypeId ); + + /*! returns a ZonePtr to the instance or nullptr if not found */ + ZonePtr getInstanceZonePtr( uint32_t instanceId ) const; + + /*! returns the cached detail of a territory, nullptr if not found */ + Data::TerritoryTypePtr getTerritoryDetail( uint32_t territoryTypeId ) const; + + /*! loop for processing territory logic, iterating all existing instances */ + void updateTerritoryInstances( uint32_t currentTime ); + + /*! returns a ZonePositionPtr if found, else nullptr */ + ZonePositionPtr getTerritoryPosition( uint32_t territoryPositionId ) const; + + /*! returns a default Zone by territoryTypeId + TODO: Mind multiple instances?! */ + ZonePtr getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const; + + /*! returns a Zone by landSetId */ + ZonePtr getZoneByLandSetId( uint32_t landSetId ) const; + + bool movePlayer( uint32_t territoryTypeId, Entity::PlayerPtr pPlayer ); + + bool movePlayer( ZonePtr, Entity::PlayerPtr pPlayer ); + + /*! returns an instancePtr if the player is still bound to an isntance */ + ZonePtr getLinkedInstance( uint32_t playerId ) const; + + /*! + * @brief Sets the current festival for every zone + * @param festivalId A valid festival id from festival.exd + * @param additionalFestival A valid festival id from festival.exd, this is shown in addition to the first festival + */ + void setCurrentFestival( uint16_t festivalId, uint16_t additionalFestival = 0 ); + + /*! + * @brief Disables the current festival(s) in every zone + */ + void disableCurrentFestival(); + + /*! + * @brief Gets the current festival set on the server + * @return a pair with the 2 festivals currently active + */ + const std::pair< uint16_t, uint16_t >& getCurrentFestival() const; + + private: + using TerritoryTypeDetailCache = std::unordered_map< uint16_t, Data::TerritoryTypePtr >; + using InstanceIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; + using LandSetIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; + using TerritoryTypeIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; + using InstanceContentIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; + using PlayerIdToInstanceIdMap = std::unordered_map< uint32_t, uint32_t >; + using PositionMap = std::unordered_map< int32_t, ZonePositionPtr >; + using InstanceIdList = std::vector< uint32_t >; + + /*! map holding details for territory templates */ + TerritoryTypeDetailCache m_territoryTypeDetailCacheMap; + + /*! map holding actual instances of default territories */ + TerritoryTypeIdToInstanceMap m_territoryTypeIdToInstanceGuidMap; + + /*! map holding actual instances of default territories */ + LandSetIdToZonePtrMap m_landSetIdToZonePtrMap; + + /*! map holding actual instances of InstanceContent */ + InstanceContentIdToInstanceMap m_instanceContentToInstanceMap; + + /*! flat map for easier lookup of instances by guid */ + InstanceIdToZonePtrMap m_instanceIdToZonePtrMap; + + /*! map holding positions for zonelines */ + PositionMap m_territoryPositionMap; + + /*! map storing playerIds to instanceIds, used for instanceContent */ + PlayerIdToInstanceIdMap m_playerIdToInstanceMap; + + /*! internal counter for instanceIds */ + uint32_t m_lastInstanceId; + + /*! set of ZonePtrs for quick iteration*/ + std::set< ZonePtr > m_zoneSet; + + /*! set of ZonePtrs for quick iteration*/ + std::set< ZonePtr > m_instanceZoneSet; + + /*! current festival(s) to set for public zones from festival.exd */ + std::pair< uint16_t, uint16_t > m_currentFestival; + + public: + /*! returns a list of instanceContent InstanceIds currently active */ + InstanceIdList getInstanceContentIdList( uint16_t instanceContentId ) const; + }; - TerritoryMgr(); - - /*! initializes the territoryMgr */ - bool init(); - - bool createDefaultTerritories(); - - bool createHousingTerritories(); - - /*! caches TerritoryType details into m_territoryTypeMap */ - void loadTerritoryTypeDetailCache(); - - /*! List of positions for zonelines */ - void loadTerritoryPositionMap(); - - /*! returns true if the given territoryTypeId is in fact a valid zone - based on informations in the dats ( checks if an entry in the dats exists trhough cache ) */ - bool isValidTerritory( uint32_t territoryTypeId ) const; - - /*! returns the next available instanceId */ - uint32_t getNextInstanceId(); - - /*! returns true if the territoryType in question is not a persistant zone */ - bool isInstanceContentTerritory( uint32_t territoryTypeId ) const; - - /*! returns true if the territoryType in question is not a private zone */ - bool isPrivateTerritory( uint32_t territoryTypeId ) const; - - /*! returns true if the territoryType is a default non-instanced zone */ - bool isDefaultTerritory( uint32_t territoryTypeId ) const; - - /*! returns true if the territoryType is a housing zone */ - bool isHousingTerritory( uint32_t territoryTypeId ) const; - - /*! creates a new instance for a given territoryTypeId */ - ZonePtr createTerritoryInstance( uint32_t territoryTypeId ); - - ZonePtr createInstanceContent( uint32_t contentFinderConditionId ); - - ZonePtr createHousingInterior( const Common::LandIdent& landIdent ); - - /*! removes instance by instanceId, return true if successful */ - bool removeTerritoryInstance( uint32_t territoryTypeId ); - - /*! returns a ZonePtr to the instance or nullptr if not found */ - ZonePtr getInstanceZonePtr( uint32_t instanceId ) const; - - /*! returns the cached detail of a territory, nullptr if not found */ - Data::TerritoryTypePtr getTerritoryDetail( uint32_t territoryTypeId ) const; - - /*! loop for processing territory logic, iterating all existing instances */ - void updateTerritoryInstances( uint32_t currentTime ); - - /*! returns a ZonePositionPtr if found, else nullptr */ - ZonePositionPtr getTerritoryPosition( uint32_t territoryPositionId ) const; - - /*! returns a default Zone by territoryTypeId - TODO: Mind multiple instances?! */ - ZonePtr getZoneByTerritoryTypeId( uint32_t territoryTypeId ) const; - - /*! returns a Zone by landSetId */ - ZonePtr getZoneByLandSetId( uint32_t landSetId ) const; - - bool movePlayer( uint32_t territoryTypeId, Entity::PlayerPtr pPlayer ); - - bool movePlayer( ZonePtr, Entity::PlayerPtr pPlayer ); - - /*! returns an instancePtr if the player is still bound to an isntance */ - ZonePtr getLinkedInstance( uint32_t playerId ) const; - - /*! - * @brief Sets the current festival for every zone - * @param festivalId A valid festival id from festival.exd - * @param additionalFestival A valid festival id from festival.exd, this is shown in addition to the first festival - */ - void setCurrentFestival( uint16_t festivalId, uint16_t additionalFestival = 0 ); - - /*! - * @brief Disables the current festival(s) in every zone - */ - void disableCurrentFestival(); - - /*! - * @brief Gets the current festival set on the server - * @return a pair with the 2 festivals currently active - */ - const std::pair< uint16_t, uint16_t >& getCurrentFestival() const; - -private: - using TerritoryTypeDetailCache = std::unordered_map< uint16_t, Data::TerritoryTypePtr >; - using InstanceIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; - using LandSetIdToZonePtrMap = std::unordered_map< uint32_t, ZonePtr >; - using TerritoryTypeIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; - using InstanceContentIdToInstanceMap = std::unordered_map< uint16_t, InstanceIdToZonePtrMap >; - using PlayerIdToInstanceIdMap = std::unordered_map< uint32_t, uint32_t >; - using PositionMap = std::unordered_map< int32_t, ZonePositionPtr >; - using InstanceIdList = std::vector< uint32_t >; - - /*! map holding details for territory templates */ - TerritoryTypeDetailCache m_territoryTypeDetailCacheMap; - - /*! map holding actual instances of default territories */ - TerritoryTypeIdToInstanceMap m_territoryTypeIdToInstanceGuidMap; - - /*! map holding actual instances of default territories */ - LandSetIdToZonePtrMap m_landSetIdToZonePtrMap; - - /*! map holding actual instances of InstanceContent */ - InstanceContentIdToInstanceMap m_instanceContentToInstanceMap; - - /*! flat map for easier lookup of instances by guid */ - InstanceIdToZonePtrMap m_instanceIdToZonePtrMap; - - /*! map holding positions for zonelines */ - PositionMap m_territoryPositionMap; - - /*! map storing playerIds to instanceIds, used for instanceContent */ - PlayerIdToInstanceIdMap m_playerIdToInstanceMap; - - /*! internal counter for instanceIds */ - uint32_t m_lastInstanceId; - - /*! set of ZonePtrs for quick iteration*/ - std::set< ZonePtr > m_zoneSet; - - /*! set of ZonePtrs for quick iteration*/ - std::set< ZonePtr > m_instanceZoneSet; - - /*! current festival(s) to set for public zones from festival.exd */ - std::pair< uint16_t, uint16_t > m_currentFestival; - - - -public: - /*! returns a list of instanceContent InstanceIds currently active */ - InstanceIdList getInstanceContentIdList( uint16_t instanceContentId ) const; - -}; - } #endif // SAPPHIRE_TERRITORYMGR_H From d1a51538a06e6a87d65d68669e86b5b74886cad2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 1 Dec 2018 18:18:29 +1100 Subject: [PATCH 139/385] spawn internal house instances --- .../common/eobj/HousingEstateEntrance.cpp | 25 ++++++- src/servers/sapphire_zone/CMakeLists.txt | 3 +- src/servers/sapphire_zone/ForwardsZone.h | 5 ++ .../sapphire_zone/Manager/TerritoryMgr.cpp | 74 ++++++++++++++++++- .../sapphire_zone/Manager/TerritoryMgr.h | 6 +- .../Housing/HousingInteriorTerritory.cpp | 35 +++++++++ .../Housing/HousingInteriorTerritory.h | 10 ++- 7 files changed, 150 insertions(+), 8 deletions(-) diff --git a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp index ce3fa0c7..6980d2f6 100644 --- a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp @@ -2,6 +2,9 @@ #include #include "Actor/EventObject.h" +#include "Territory/HousingZone.h" +#include "Manager/TerritoryMgr.h" +#include "Framework.h" using namespace Sapphire; @@ -18,13 +21,31 @@ public: { player.sendDebug( "Found plot entrance for plot: " + std::to_string( eobj.getHousingLink() >> 8 ) ); - player.playScene( eventId, 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) + player.playScene( eventId, 0, 0, [this, eobj]( Entity::Player& player, const Event::SceneResult& result ) { + auto terriMgr = getFramework()->get< Sapphire::World::Manager::TerritoryMgr >(); + if( !terriMgr ) + return; + + auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + if( !zone ) + return; + + Common::LandIdent ident; + ident.landId = eobj.getHousingLink() >> 8; + ident.territoryTypeId = zone->getTerritoryTypeId(); + ident.wardNum = zone->getWardNum(); + + auto internalZone = terriMgr->findOrCreateHousingInterior( ident ); + if( internalZone ) + { + player.sendDebug( "created zone with guid: " + std::to_string( internalZone->getGuId() ) + "\nname: " + internalZone->getName() ); + } + if( result.param2 != 1 ) return; // param2 == 1, zone into instance - } ); } }; \ No newline at end of file diff --git a/src/servers/sapphire_zone/CMakeLists.txt b/src/servers/sapphire_zone/CMakeLists.txt index 56a53413..8b8fe877 100644 --- a/src/servers/sapphire_zone/CMakeLists.txt +++ b/src/servers/sapphire_zone/CMakeLists.txt @@ -19,7 +19,8 @@ file(GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} Network/PacketWrappers/*.c* Script/*.c* StatusEffect/*.c* - Territory/*.c*) + Territory/*.c* + Territory/Housing/*.c*) add_executable( sapphire_zone ${SERVER_SOURCE_FILES} ) diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index 66f61e8a..5e2e1e9b 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -28,6 +28,11 @@ TYPE_FORWARD( Session ); TYPE_FORWARD( ZonePosition ); TYPE_FORWARD( Land ) +namespace World::Territory::Housing +{ +TYPE_FORWARD( HousingInteriorTerritory ); +} + namespace World::Manager { TYPE_FORWARD( HousingMgr ); diff --git a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp index 46ca2fe3..4db1441c 100644 --- a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp @@ -7,12 +7,16 @@ #include "Actor/Player.h" #include "Territory/Zone.h" -#include "Territory/HousingZone.h" #include "Territory/ZonePosition.h" #include "Territory/InstanceContent.h" #include "TerritoryMgr.h" +#include "HousingMgr.h" #include "Framework.h" +#include "Territory/Land.h" +#include "Territory/House.h" +#include "Territory/Housing/HousingInteriorTerritory.h" + extern Sapphire::Framework g_fw; Sapphire::World::Manager::TerritoryMgr::TerritoryMgr() : @@ -278,9 +282,75 @@ Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createInstanceContent( return pZone; } -Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createHousingInterior( const Common::LandIdent& landIdent ) +Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::findOrCreateHousingInterior( const Common::LandIdent landIdent ) { + // check if zone already spawned first + auto ident = *reinterpret_cast< const uint64_t* >( &landIdent ); + auto it = m_landIdentToZonePtrMap.find( ident ); + if( it != m_landIdentToZonePtrMap.end() ) + { + return it->second; + } + + // otherwise, create it + auto housingMgr = g_fw.get< Manager::HousingMgr >(); + + auto parentZone = std::dynamic_pointer_cast< HousingZone >( + getZoneByLandSetId( housingMgr->toLandSetId( landIdent.territoryTypeId, landIdent.wardNum ) ) ); + + if( !parentZone ) + return nullptr; + + auto land = parentZone->getLand( landIdent.landId ); + if( !land ) + return nullptr; + + auto house = land->getHouse(); + if( !house ) + return nullptr; + + // get house instance id + uint16_t territoryTypeId = 0; + switch( landIdent.territoryTypeId ) + { + case 339: // mist + territoryTypeId = 282; + break; + + case 340: // lavender beds + territoryTypeId = 342; + break; + + case 341: // goblet + territoryTypeId = 345; + break; + + case 641: // shirogane + territoryTypeId = 649; + break; + + default: + return nullptr; + } + + // zones are sequential in the exd for small, med, large + territoryTypeId += land->getSize(); + + auto terriInfo = getTerritoryDetail( territoryTypeId ); + if( !terriInfo ) + return nullptr; + + auto zone = World::Territory::Housing::make_HousingInteriorTerritory( ident, territoryTypeId, getNextInstanceId(), + terriInfo->name, house->getHouseName() ); + + zone->init(); + + m_landIdentToZonePtrMap[ ident ] = zone; + m_instanceIdToZonePtrMap[ zone->getGuId() ] = zone; + m_zoneSet.insert( { zone } ); + + return zone; } bool Sapphire::World::Manager::TerritoryMgr::removeTerritoryInstance( uint32_t instanceId ) diff --git a/src/servers/sapphire_zone/Manager/TerritoryMgr.h b/src/servers/sapphire_zone/Manager/TerritoryMgr.h index 554201a5..794c87af 100644 --- a/src/servers/sapphire_zone/Manager/TerritoryMgr.h +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.h @@ -98,7 +98,7 @@ namespace Sapphire::World::Manager ZonePtr createInstanceContent( uint32_t contentFinderConditionId ); - ZonePtr createHousingInterior( const Common::LandIdent& landIdent ); + ZonePtr findOrCreateHousingInterior( const Common::LandIdent landIdent ); /*! removes instance by instanceId, return true if successful */ bool removeTerritoryInstance( uint32_t territoryTypeId ); @@ -156,6 +156,7 @@ namespace Sapphire::World::Manager using PlayerIdToInstanceIdMap = std::unordered_map< uint32_t, uint32_t >; using PositionMap = std::unordered_map< int32_t, ZonePositionPtr >; using InstanceIdList = std::vector< uint32_t >; + using LandIdentToZonePtrMap = std::unordered_map< uint64_t, ZonePtr >; /*! map holding details for territory templates */ TerritoryTypeDetailCache m_territoryTypeDetailCacheMap; @@ -178,6 +179,9 @@ namespace Sapphire::World::Manager /*! map storing playerIds to instanceIds, used for instanceContent */ PlayerIdToInstanceIdMap m_playerIdToInstanceMap; + /*! map for storing landident to zones, used for internal housing zones */ + LandIdentToZonePtrMap m_landIdentToZonePtrMap; + /*! internal counter for instanceIds */ uint32_t m_lastInstanceId; diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp index e69de29b..c89a1a1b 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp @@ -0,0 +1,35 @@ +#include "HousingInteriorTerritory.h" +#include "Common.h" + +using namespace Sapphire; +using namespace Sapphire::World::Territory; + +Housing::HousingInteriorTerritory::HousingInteriorTerritory( uint64_t ident, uint16_t territoryTypeId, + uint32_t guId, + const std::string& internalName, + const std::string& contentName ) : + Zone( territoryTypeId, guId, internalName, contentName ), + m_landIdent( ident ) +{ + +} + +Housing::HousingInteriorTerritory::~HousingInteriorTerritory() +{ + +} + +bool Housing::HousingInteriorTerritory::init() +{ + +} + +void Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) +{ + +} + +void Housing::HousingInteriorTerritory::onUpdate( uint32_t currTime ) +{ + +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h index d52f102a..539ebba9 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h @@ -1,4 +1,5 @@ -#include "Zone.h" +#include "ForwardsZone.h" +#include "Territory/Zone.h" namespace Sapphire::World::Territory::Housing { @@ -10,9 +11,14 @@ namespace Sapphire::World::Territory::Housing const std::string& internalName, const std::string& contentName ); + virtual ~HousingInteriorTerritory(); + bool init() override; void onPlayerZoneIn( Entity::Player& player ) override; void onUpdate( uint32_t currTime ) override; - } + + private: + uint64_t m_landIdent; + }; } \ No newline at end of file From 7d042d264e32cc74638bcb5997f3037ba87dfa15 Mon Sep 17 00:00:00 2001 From: AriAvery <41122212+AriAvery@users.noreply.github.com> Date: Sat, 1 Dec 2018 21:40:30 +0100 Subject: [PATCH 140/385] housing instance --- sql/update_land.sql | 3 +- src/common/Common.h | 14 ++++ src/common/Database/ZoneDbConnection.cpp | 2 +- src/common/Network/PacketDef/Ipcs.h | 4 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 20 ++++-- .../common/eobj/HousingEstateEntrance.cpp | 8 ++- .../sapphire_zone/Manager/TerritoryMgr.cpp | 2 +- src/servers/sapphire_zone/Territory/House.cpp | 33 ++++++++- src/servers/sapphire_zone/Territory/House.h | 3 + .../Housing/HousingInteriorTerritory.cpp | 71 ++++++++++++++++++- .../Housing/HousingInteriorTerritory.h | 4 +- .../sapphire_zone/Territory/HousingZone.cpp | 13 ++-- src/servers/sapphire_zone/Territory/Land.cpp | 12 ++++ 13 files changed, 164 insertions(+), 25 deletions(-) diff --git a/sql/update_land.sql b/sql/update_land.sql index 87f14e23..7dc864f6 100644 --- a/sql/update_land.sql +++ b/sql/update_land.sql @@ -1,4 +1,5 @@ ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`; ALTER TABLE `house` ADD `HouseName` binary(23) DEFAULT "" AFTER `Comment`; ALTER TABLE `house` ADD `HousePartModels` BINARY(32) DEFAULT "" AFTER `Endorsements`; -ALTER TABLE `house` ADD `HousePartColours` BINARY(8) DEFAULT "" AFTER `HousePartModels`; \ No newline at end of file +ALTER TABLE `house` ADD `HousePartColours` BINARY(8) DEFAULT "" AFTER `HousePartModels`; +ALTER TABLE `house` ADD `HouseInteriorModels` BINARY(40) DEFAULT "" AFTER `HousePartColours`; \ No newline at end of file diff --git a/src/common/Common.h b/src/common/Common.h index 0eaa4b4f..2ed618a3 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -751,6 +751,20 @@ namespace Sapphire::Common YardSign }; + enum HousingInteriorSlot + { + InteriorWall, + InteriorFloor, + InteriorLight, + InteriorWall_Attic, + InteriorFloor_Attic, + InteriorLight_Attic, + InteriorWall_Basement, + InteriorFloor_Basement, + InteriorLight_Basement, + InteriorLight_Mansion + }; + enum HouseTagSlot { MainTag, diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index 0cc56879..28eba502 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -197,7 +197,7 @@ void Sapphire::Db::ZoneDbConnection::doPrepareStatements() CONNECTION_BOTH ); prepareStatement( HOUSING_HOUSE_UP, - "UPDATE house SET BuildTime = ?, Aetheryte = ?, Comment = ?, HouseName = ?, Endorsements = ?, HousePartModels = ?, HousePartColours = ? WHERE HouseId = ?;", + "UPDATE house SET BuildTime = ?, Aetheryte = ?, Comment = ?, HouseName = ?, Endorsements = ?, HousePartModels = ?, HousePartColours = ?, HouseInteriorModels = ? WHERE HouseId = ?;", CONNECTION_BOTH ); /*prepareStatement( LAND_INS, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 089744ce..ccf2d3c5 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -186,7 +186,7 @@ namespace Sapphire::Network::Packets LandSetInitialize = 0x0220, // updated 4.4 LandUpdate = 0x0221, // updated 4.4 YardObjectSpawn = 0x0222, // updated 4.4 - + HousingIndoorInitialize = 0x0223, LandPriceUpdate = 0x0224, // updated 4.4 LandInfoSign = 0x0225, // updated 4.4 LandRename = 0x0226, // updated 4.4 @@ -197,7 +197,7 @@ namespace Sapphire::Network::Packets HousingLandFlags = 0x0229, // updated 4.4 HousingShowEstateGuestAccess = 0x022A, // updated 4.4 - LandSetYardInitialize = 0x022C, // updated 4.4 + HousingObjectInitialize = 0x022C, // updated 4.4 HousingWardInfo = 0x022F, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 1e8efb03..64bc9a03 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1704,17 +1704,27 @@ struct FFXIVIpcYardObjectMove : FFXIVIpcBasePacket uint16_t unknown3; }; -struct FFXIVIpcLandSetYardInitialize : FFXIVIpcBasePacket< LandSetYardInitialize > +struct FFXIVIpcHousingObjectInitialize : FFXIVIpcBasePacket< HousingObjectInitialize > { - uint32_t unknown1; //always 0xFFFFFFFF - uint32_t unknown2; //always 0xFFFFFFFF - uint8_t unknown3; //always 0xFF + Common::LandIdent landIdent; + int8_t u1; //Outdoor -1 / Indoor 0 - probably indicator uint8_t packetNum; - uint16_t packetTotal; + uint8_t packetTotal; + uint8_t u2; //Outdoor 0 / Indoor 100(?) Common::YardObject object[100]; uint32_t unknown4; //unused }; +struct FFXIVIpcHousingIndoorInitialize : FFXIVIpcBasePacket< HousingIndoorInitialize > +{ + uint16_t u1; + uint16_t u2; + uint16_t u3; + uint16_t u4; + uint32_t indoorItems[10]; +}; + + struct FFXIVIpcHousingWardInfo : FFXIVIpcBasePacket< HousingWardInfo > { Common::LandIdent landIdent; diff --git a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp index 6980d2f6..e534d42e 100644 --- a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp @@ -45,7 +45,13 @@ public: if( result.param2 != 1 ) return; - // param2 == 1, zone into instance + if( result.param2 == 1 ) + { + //player.eventFinish( 131148, 0 ); + //player.eventFinish( this->getId(), 1 ); + player.setPos( {0, 0, 0} ); + player.setInstance( internalZone ); + } } ); } }; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp index 4db1441c..ecf98d26 100644 --- a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp @@ -341,7 +341,7 @@ Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::findOrCreateHousingInt if( !terriInfo ) return nullptr; - auto zone = World::Territory::Housing::make_HousingInteriorTerritory( ident, territoryTypeId, getNextInstanceId(), + auto zone = World::Territory::Housing::make_HousingInteriorTerritory( landIdent, territoryTypeId, getNextInstanceId(), terriInfo->name, house->getHouseName() ); zone->init(); diff --git a/src/servers/sapphire_zone/Territory/House.cpp b/src/servers/sapphire_zone/Territory/House.cpp index 5698635c..c63f7a2c 100644 --- a/src/servers/sapphire_zone/Territory/House.cpp +++ b/src/servers/sapphire_zone/Territory/House.cpp @@ -48,11 +48,18 @@ Sapphire::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, ui auto housePartColours = res->getBlobVector( "HousePartColours" ); auto models = reinterpret_cast< uint32_t* >( &housePartModels[ 0 ] ); - for( auto i = 0; i < 8; i++ ) { m_houseParts[ i ] = { models[ i ], housePartColours[ i ] }; } + + auto houseInteriorModels = res->getBlobVector( "HouseInteriorModels" ); + + models = reinterpret_cast( &houseInteriorModels[0] ); + for( auto i = 0; i < 10; i++ ) + { + m_houseInteriorParts[ i ] = houseInteriorModels[ i ]; + } } } @@ -67,7 +74,7 @@ void Sapphire::House::updateHouseDb() // BuildTime = 1, Aetheryte = 2, Comment = 3, HouseName = 4, Endorsements = 5, // HousePartModels = 6, HousePartColours = 7, HouseId = 8 auto stmt = pDB->getPreparedStatement( Db::HOUSING_HOUSE_UP ); - stmt->setUInt( 8, m_houseId ); + stmt->setUInt( 9, m_houseId ); stmt->setInt64( 1, m_buildTime ); stmt->setInt( 2, 0 ); @@ -94,6 +101,18 @@ void Sapphire::House::updateHouseDb() stmt->setBinary( 6, tmpModels ); stmt->setBinary( 7, colours ); + models.clear(); + + for( auto i = 0; i < 10; i++ ) + { + models.push_back( m_houseInteriorParts[ i ] ); + } + + std::vector< uint8_t > tmp2Models( models.size() * 4 ); + memcpy( tmp2Models.data(), models.data(), tmp2Models.size() ); + + stmt->setBinary( 8, tmp2Models ); + pDB->execute( stmt ); } @@ -127,6 +146,11 @@ uint8_t Sapphire::House::getHousePartColor( Common::HousePartSlot slot ) const return m_houseParts[ slot ].second; } +uint32_t Sapphire::House::getHouseInteriorPart( Common::HousingInteriorSlot slot ) const +{ + return m_houseInteriorParts[ slot ]; +} + void Sapphire::House::setHousePart( Common::HousePartSlot slot, uint32_t id ) { m_houseParts[ slot ].first = id; @@ -137,6 +161,11 @@ void Sapphire::House::setHousePartColor( Common::HousePartSlot slot, uint32_t id m_houseParts[ slot ].second = id; } +void Sapphire::House::setHouseInteriorPart( Common::HousingInteriorSlot slot, uint32_t id ) +{ + m_houseInteriorParts[ slot ] = id; +} + uint32_t Sapphire::House::getHousePart( Common::HousePartSlot slot ) const { return m_houseParts[ slot ].first; diff --git a/src/servers/sapphire_zone/Territory/House.h b/src/servers/sapphire_zone/Territory/House.h index 6a9196d4..183afd1f 100644 --- a/src/servers/sapphire_zone/Territory/House.h +++ b/src/servers/sapphire_zone/Territory/House.h @@ -34,8 +34,10 @@ namespace Sapphire //functions void setHousePart( Common::HousePartSlot slot, uint32_t id ); void setHousePartColor( Common::HousePartSlot slot, uint32_t id ); + void setHouseInteriorPart( Common::HousingInteriorSlot slot, uint32_t id ); uint32_t getHousePart( Common::HousePartSlot slot ) const; uint8_t getHousePartColor( Common::HousePartSlot slot ) const; + uint32_t getHouseInteriorPart( Common::HousingInteriorSlot slot ) const; HousePartsArray const& getHouseParts() const; @@ -51,6 +53,7 @@ namespace Sapphire uint64_t m_buildTime; HousePartsArray m_houseParts; + uint32_t m_houseInteriorParts[10]; std::string m_estateMessage; std::string m_houseName; diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp index c89a1a1b..758274ff 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp @@ -1,10 +1,34 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Actor/Player.h" +#include "Actor/Actor.h" +#include "Actor/EventObject.h" +#include "Manager/HousingMgr.h" +#include "Territory/Land.h" +#include "Territory/House.h" + +#include "Forwards.h" #include "HousingInteriorTerritory.h" -#include "Common.h" +#include "Framework.h" + +extern Sapphire::Framework g_fw; + +using namespace Sapphire::Common; +using namespace Sapphire::Network::Packets; +using namespace Sapphire::Network::Packets::Server; +using namespace Sapphire::World::Manager; using namespace Sapphire; using namespace Sapphire::World::Territory; -Housing::HousingInteriorTerritory::HousingInteriorTerritory( uint64_t ident, uint16_t territoryTypeId, +Housing::HousingInteriorTerritory::HousingInteriorTerritory( Common::LandIdent ident, uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& contentName ) : @@ -21,11 +45,52 @@ Housing::HousingInteriorTerritory::~HousingInteriorTerritory() bool Housing::HousingInteriorTerritory::init() { - + return false; } void Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) { + auto pHousingMgr = g_fw.get< HousingMgr >(); + auto pLog = g_fw.get< Logger >(); + pLog->debug( + "HousingInteriorTerritory::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + + ", Entity#" + std::to_string( player.getId() ) ); + + auto housingIndoorInitializPacket = makeZonePacket< FFXIVIpcHousingIndoorInitialize >( player.getId() ); + housingIndoorInitializPacket->data().u1 = 2578; + housingIndoorInitializPacket->data().u2 = 10; + housingIndoorInitializPacket->data().u3 = 530; + housingIndoorInitializPacket->data().u4 = 266; + + auto landSetId = pHousingMgr->toLandSetId( m_landIdent.territoryTypeId, m_landIdent.wardNum ); + auto pLand = pHousingMgr->getHousingZoneByLandSetId( landSetId )->getLand( m_landIdent.landId ); + auto pHouse = pLand->getHouse(); + + + uint32_t yardPacketNum; + uint32_t yardPacketTotal = 2 + pLand->getSize(); + + for( auto i = 0; i < 10; i++ ) + { + housingIndoorInitializPacket->data().indoorItems[ i ] = pHouse->getHouseInteriorPart( (Common::HousingInteriorSlot)i ); + } + + player.queuePacket( housingIndoorInitializPacket ); + + for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) + { + auto housingObjectInitializPacket = makeZonePacket< FFXIVIpcHousingObjectInitialize >( player.getId() ); + memcpy( &housingObjectInitializPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) ); + housingObjectInitializPacket->data().landIdent.worldId = 67; + housingObjectInitializPacket->data().u1 = 0; + housingObjectInitializPacket->data().u2 = 100; + housingObjectInitializPacket->data().packetNum = yardPacketNum; + housingObjectInitializPacket->data().packetTotal = yardPacketTotal; + + //TODO: Add Objects here + + player.queuePacket( housingObjectInitializPacket ); + } } diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h index 539ebba9..281d4bc4 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h @@ -6,7 +6,7 @@ namespace Sapphire::World::Territory::Housing class HousingInteriorTerritory : public Zone { public: - HousingInteriorTerritory( uint64_t ident, uint16_t territoryTypeId, + HousingInteriorTerritory( Common::LandIdent ident, uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& contentName ); @@ -19,6 +19,6 @@ namespace Sapphire::World::Territory::Housing void onUpdate( uint32_t currTime ) override; private: - uint64_t m_landIdent; + Common::LandIdent m_landIdent; }; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/HousingZone.cpp b/src/servers/sapphire_zone/Territory/HousingZone.cpp index a4f6e49c..57390006 100644 --- a/src/servers/sapphire_zone/Territory/HousingZone.cpp +++ b/src/servers/sapphire_zone/Territory/HousingZone.cpp @@ -96,16 +96,15 @@ void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player ) for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { - auto landsetYardInitializePacket = makeZonePacket< FFXIVIpcLandSetYardInitialize >( player.getId() ); - landsetYardInitializePacket->data().unknown1 = 0xFFFFFFFF; - landsetYardInitializePacket->data().unknown2 = 0xFFFFFFFF; - landsetYardInitializePacket->data().unknown3 = 0xFF; - landsetYardInitializePacket->data().packetNum = yardPacketNum; - landsetYardInitializePacket->data().packetTotal = yardPacketTotal; + auto housingObjectInitializPacket = makeZonePacket< FFXIVIpcHousingObjectInitialize >( player.getId() ); + memset( &housingObjectInitializPacket->data().landIdent, 0xFF, sizeof( Common::LandIdent ) ); + housingObjectInitializPacket->data().u1 = 0xFF; + housingObjectInitializPacket->data().packetNum = yardPacketNum; + housingObjectInitializPacket->data().packetTotal = yardPacketTotal; //TODO: Add Objects here - player.queuePacket( landsetYardInitializePacket ); + player.queuePacket( housingObjectInitializPacket ); } auto landSetMap = makeZonePacket< FFXIVIpcLandSetMap >( player.getId() ); diff --git a/src/servers/sapphire_zone/Territory/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp index 4efe3de7..6319679d 100644 --- a/src/servers/sapphire_zone/Territory/Land.cpp +++ b/src/servers/sapphire_zone/Territory/Land.cpp @@ -337,5 +337,17 @@ bool Sapphire::Land::setPreset( uint32_t itemId ) getHouse()->setHousePart( Common::HousePartSlot::ExteriorWindow, convertItemIdToHousingItemId( housingPreset->exteriorWindow ) ); getHouse()->setHousePart( Common::HousePartSlot::ExteriorDoor, convertItemIdToHousingItemId( housingPreset->exteriorDoor ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall, convertItemIdToHousingItemId( housingPreset->interiorWall ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor, convertItemIdToHousingItemId( housingPreset->interiorFlooring ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight, convertItemIdToHousingItemId( housingPreset->interiorLighting ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorWall ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorFlooring ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorLighting ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall_Basement, convertItemIdToHousingItemId( housingPreset->basementWall ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor_Basement, convertItemIdToHousingItemId( housingPreset->basementFlooring ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Basement, convertItemIdToHousingItemId( housingPreset->basementLighting ) ); + getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Mansion, convertItemIdToHousingItemId( housingPreset->mansionLighting ) ); + + return true; } From b571be8b6fda32d0efca31343bcff4703a45f97a Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 2 Dec 2018 02:01:41 +0100 Subject: [PATCH 141/385] General cleanup work --- src/common/Network/PacketDef/Ipcs.h | 3 - src/common/Util/UtilMath.cpp | 18 +-- src/common/Util/UtilMath.h | 2 +- .../Scripts/common/CmnDefHousingSignboard.cpp | 1 + .../sapphire_zone/Action/ActionCollision.cpp | 4 +- .../sapphire_zone/Action/ActionMount.cpp | 2 +- .../sapphire_zone/Action/ActionTeleport.cpp | 2 +- .../sapphire_zone/Action/EventItemAction.cpp | 2 +- src/servers/sapphire_zone/Actor/Actor.cpp | 8 +- src/servers/sapphire_zone/Actor/Chara.cpp | 6 +- .../sapphire_zone/Actor/EventObject.cpp | 2 +- src/servers/sapphire_zone/Actor/Player.cpp | 10 +- .../DebugCommand/DebugCommandHandler.cpp | 2 +- src/servers/sapphire_zone/ForwardsZone.h | 28 ++-- .../sapphire_zone/Linkshell/Linkshell.cpp | 1 - .../{Linkshell => Manager}/LinkshellMgr.cpp | 11 +- .../{Linkshell => Manager}/LinkshellMgr.h | 12 +- .../sapphire_zone/Manager/TerritoryMgr.cpp | 3 +- .../Network/PacketWrappers/MoveActorPacket.h | 8 +- .../Network/PacketWrappers/NpcSpawnPacket.h | 2 +- .../PacketWrappers/PlayerSpawnPacket.h | 2 +- .../sapphire_zone/Script/ScriptMgr.cpp | 24 ++- src/servers/sapphire_zone/ServerMgr.cpp | 3 +- .../Housing/HousingInteriorTerritory.cpp | 2 +- src/servers/sapphire_zone/Territory/Land.cpp | 2 +- src/servers/sapphire_zone/Territory/Zone.cpp | 25 ++- src/servers/sapphire_zone/Territory/Zone.h | 152 +++++++++--------- src/servers/sapphire_zone/mainGameServer.cpp | 10 +- 28 files changed, 172 insertions(+), 175 deletions(-) rename src/servers/sapphire_zone/{Linkshell => Manager}/LinkshellMgr.cpp (83%) rename src/servers/sapphire_zone/{Linkshell => Manager}/LinkshellMgr.h (68%) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 089744ce..298facb7 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -190,9 +190,7 @@ namespace Sapphire::Network::Packets LandPriceUpdate = 0x0224, // updated 4.4 LandInfoSign = 0x0225, // updated 4.4 LandRename = 0x0226, // updated 4.4 - HousingEstateGreeting = 0x0227, // updated 4.4 - HousingUpdateLandFlagsSlot = 0x0228, // updated 4.4 HousingLandFlags = 0x0229, // updated 4.4 HousingShowEstateGuestAccess = 0x022A, // updated 4.4 @@ -200,7 +198,6 @@ namespace Sapphire::Network::Packets LandSetYardInitialize = 0x022C, // updated 4.4 HousingWardInfo = 0x022F, // updated 4.4 - YardObjectMove = 0x0230, // updated 4.4 SharedEstateSettingsResponse = 0x023C, // updated 4.4 diff --git a/src/common/Util/UtilMath.cpp b/src/common/Util/UtilMath.cpp index 9f89aea9..2b9084a9 100644 --- a/src/common/Util/UtilMath.cpp +++ b/src/common/Util/UtilMath.cpp @@ -1,7 +1,7 @@ #include #include "UtilMath.h" -float Sapphire::Math::Util::distanceSq( float x, float y, float z, float x1, float y1, float z1 ) +float Sapphire::Util::distanceSq( float x, float y, float z, float x1, float y1, float z1 ) { float deltaX = x - x1; float deltaY = y - y1; @@ -10,24 +10,24 @@ float Sapphire::Math::Util::distanceSq( float x, float y, float z, float x1, flo return ( deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ ); } -float Sapphire::Math::Util::distance( float x, float y, float z, float x1, float y1, float z1 ) +float Sapphire::Util::distance( float x, float y, float z, float x1, float y1, float z1 ) { return sqrtf( distanceSq( x, y, z, x1, y1, z1 ) ); } -float Sapphire::Math::Util::distance2DSq( float x, float y, float x1, float y1 ) +float Sapphire::Util::distance2DSq( float x, float y, float x1, float y1 ) { float deltaX = x - x1; float deltaY = y - y1; return ( deltaX * deltaX + deltaY * deltaY ); } -float Sapphire::Math::Util::distance2D( float x, float y, float x1, float y1 ) +float Sapphire::Util::distance2D( float x, float y, float x1, float y1 ) { return sqrtf( distance2DSq( x, y, x1, y1 ) ); } -float Sapphire::Math::Util::calcAngTo( float x, float y, float x1, float y1 ) +float Sapphire::Util::calcAngTo( float x, float y, float x1, float y1 ) { float dx = x - x1; float dy = y - y1; @@ -41,7 +41,7 @@ float Sapphire::Math::Util::calcAngTo( float x, float y, float x1, float y1 ) } } -float Sapphire::Math::Util::calcAngFrom( float x, float y, float x1, float y1 ) +float Sapphire::Util::calcAngFrom( float x, float y, float x1, float y1 ) { float dx = x - x1; float dy = y - y1; @@ -55,17 +55,17 @@ float Sapphire::Math::Util::calcAngFrom( float x, float y, float x1, float y1 ) } } -uint16_t Sapphire::Math::Util::floatToUInt16( float val ) +uint16_t Sapphire::Util::floatToUInt16( float val ) { return static_cast< uint16_t >( 0x8000 + val * 32.767f ); } -uint16_t Sapphire::Math::Util::floatToUInt16Rot( float val ) +uint16_t Sapphire::Util::floatToUInt16Rot( float val ) { return static_cast< uint16_t >( 0x8000 * ( ( val + PI ) ) / PI ); } -uint8_t Sapphire::Math::Util::floatToUInt8Rot( float val ) +uint8_t Sapphire::Util::floatToUInt8Rot( float val ) { return static_cast< uint8_t >( 0x80 * ( ( val + PI ) ) / PI ); } \ No newline at end of file diff --git a/src/common/Util/UtilMath.h b/src/common/Util/UtilMath.h index 1fcf95d4..a726b5d1 100644 --- a/src/common/Util/UtilMath.h +++ b/src/common/Util/UtilMath.h @@ -5,7 +5,7 @@ #define PI 3.14159265358979323846f -namespace Sapphire::Math::Util +namespace Sapphire::Util { float distanceSq( float x, float y, float z, float x1, float y1, float z1 ); diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp index a7f77b4d..650baee8 100644 --- a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/CmnDefHousingSignboard.cpp @@ -83,6 +83,7 @@ public: } } + return LandPurchaseResult::ERR_INTERNAL; }; player.playScene( getId(), 0, HIDE_HOTBAR, 0, 0, callback ); diff --git a/src/servers/sapphire_zone/Action/ActionCollision.cpp b/src/servers/sapphire_zone/Action/ActionCollision.cpp index 92666c73..12b4e815 100644 --- a/src/servers/sapphire_zone/Action/ActionCollision.cpp +++ b/src/servers/sapphire_zone/Action/ActionCollision.cpp @@ -129,8 +129,8 @@ std::set< Sapphire::Entity::ActorPtr > ActionCollision::getActorsHitFromAction( bool ActionCollision::radiusCollision( FFXIVARR_POSITION3 actorPosition, FFXIVARR_POSITION3 aoePosition, uint16_t radius ) { - return Sapphire::Math::Util::distance( actorPosition.x, actorPosition.y, actorPosition.z, - aoePosition.x, aoePosition.y, aoePosition.z ) <= radius; + return Sapphire::Util::distance( actorPosition.x, actorPosition.y, actorPosition.z, + aoePosition.x, aoePosition.y, aoePosition.z ) <= radius; } bool ActionCollision::boxCollision( FFXIVARR_POSITION3 actorPosition, FFXIVARR_POSITION3 aoePosition, uint16_t width, diff --git a/src/servers/sapphire_zone/Action/ActionMount.cpp b/src/servers/sapphire_zone/Action/ActionMount.cpp index c8ec1afb..917b54d8 100644 --- a/src/servers/sapphire_zone/Action/ActionMount.cpp +++ b/src/servers/sapphire_zone/Action/ActionMount.cpp @@ -75,7 +75,7 @@ void Sapphire::Action::ActionMount::onFinish() pPlayer->unsetStateFlag( PlayerStateFlag::Casting ); auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pPlayer->getId(), 4 ); - effectPacket->setRotation( Math::Util::floatToUInt16Rot( pPlayer->getRot() ) ); + effectPacket->setRotation( Util::floatToUInt16Rot( pPlayer->getRot() ) ); Server::EffectEntry effectEntry{}; effectEntry.effectType = ActionEffectType::Mount; diff --git a/src/servers/sapphire_zone/Action/ActionTeleport.cpp b/src/servers/sapphire_zone/Action/ActionTeleport.cpp index 27c3cf84..ce431dd8 100644 --- a/src/servers/sapphire_zone/Action/ActionTeleport.cpp +++ b/src/servers/sapphire_zone/Action/ActionTeleport.cpp @@ -87,7 +87,7 @@ void Sapphire::Action::ActionTeleport::onFinish() pPlayer->setZoningType( ZoneingType::Teleport ); auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pPlayer->getId(), 5 ); - effectPacket->setRotation( Math::Util::floatToUInt16Rot( pPlayer->getRot() ) ); + effectPacket->setRotation( Util::floatToUInt16Rot( pPlayer->getRot() ) ); pPlayer->sendToInRangeSet( effectPacket, true ); diff --git a/src/servers/sapphire_zone/Action/EventItemAction.cpp b/src/servers/sapphire_zone/Action/EventItemAction.cpp index 926af056..7a1607e4 100644 --- a/src/servers/sapphire_zone/Action/EventItemAction.cpp +++ b/src/servers/sapphire_zone/Action/EventItemAction.cpp @@ -73,7 +73,7 @@ void Sapphire::Action::EventItemAction::onFinish() { auto effectPacket = std::make_shared< Server::EffectPacket >( m_pSource->getId(), m_additional, m_id ); effectPacket->setAnimationId( 1 ); - effectPacket->setRotation( Math::Util::floatToUInt16Rot( m_pSource->getRot() ) ); + effectPacket->setRotation( Util::floatToUInt16Rot( m_pSource->getRot() ) ); m_pSource->getAsPlayer()->unsetStateFlag( Common::PlayerStateFlag::Casting ); m_pSource->sendToInRangeSet( effectPacket, true ); diff --git a/src/servers/sapphire_zone/Actor/Actor.cpp b/src/servers/sapphire_zone/Actor/Actor.cpp index dcec0c82..2d119fc8 100644 --- a/src/servers/sapphire_zone/Actor/Actor.cpp +++ b/src/servers/sapphire_zone/Actor/Actor.cpp @@ -268,12 +268,8 @@ Sapphire::Entity::ActorPtr Sapphire::Entity::Actor::getClosestActor() for( const auto& pCurAct : m_inRangeActor ) { - float distance = Math::Util::distance( getPos().x, - getPos().y, - getPos().z, - pCurAct->getPos().x, - pCurAct->getPos().y, - pCurAct->getPos().z ); + float distance = Util::distance( getPos().x, getPos().y, getPos().z, + pCurAct->getPos().x, pCurAct->getPos().y, pCurAct->getPos().z ); if( distance < minDistance ) { diff --git a/src/servers/sapphire_zone/Actor/Chara.cpp b/src/servers/sapphire_zone/Actor/Chara.cpp index b90a81ee..7360628a 100644 --- a/src/servers/sapphire_zone/Actor/Chara.cpp +++ b/src/servers/sapphire_zone/Actor/Chara.cpp @@ -239,7 +239,7 @@ position bool Sapphire::Entity::Chara::face( const Common::FFXIVARR_POSITION3& p ) { float oldRot = getRot(); - float rot = Math::Util::calcAngFrom( getPos().x, getPos().z, p.x, p.z ); + float rot = Util::calcAngFrom( getPos().x, getPos().z, p.x, p.z ); float newRot = PI - rot + ( PI / 2 ); m_pCell = nullptr; @@ -403,7 +403,7 @@ void Sapphire::Entity::Chara::autoAttack( CharaPtr pTarget ) uint32_t variation = static_cast< uint32_t >( 0 + rand() % 4 ); auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 0x336 ); - effectPacket->setRotation( Math::Util::floatToUInt16Rot( getRot() ) ); + effectPacket->setRotation( Util::floatToUInt16Rot( getRot() ) ); Server::EffectEntry effectEntry{}; effectEntry.value = damage; @@ -443,7 +443,7 @@ void Sapphire::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionI // Prepare packet. This is seemingly common for all packets in the action handler. auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), target.getId(), actionId ); - effectPacket->setRotation( Math::Util::floatToUInt16Rot( getRot() ) ); + effectPacket->setRotation( Util::floatToUInt16Rot( getRot() ) ); // Todo: for each actor, calculate how much damage the calculated value should deal to them - 2-step damage calc. we only have 1-step switch( type ) diff --git a/src/servers/sapphire_zone/Actor/EventObject.cpp b/src/servers/sapphire_zone/Actor/EventObject.cpp index 9fa0d54e..35031154 100644 --- a/src/servers/sapphire_zone/Actor/EventObject.cpp +++ b/src/servers/sapphire_zone/Actor/EventObject.cpp @@ -137,7 +137,7 @@ void Sapphire::Entity::EventObject::spawn( Sapphire::Entity::PlayerPtr pTarget ) eobjStatePacket->data().scale = getScale(); eobjStatePacket->data().actorId = getId(); eobjStatePacket->data().housingLink = getHousingLink(); - eobjStatePacket->data().rotation = Math::Util::floatToUInt16Rot( getRot() ); + eobjStatePacket->data().rotation = Util::floatToUInt16Rot( getRot() ); pTarget->queuePacket( eobjStatePacket ); } diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 36d2d47b..038a95b1 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1020,7 +1020,7 @@ void Sapphire::Entity::Player::update( int64_t currTime ) else { auto setActorPosPacket = makeZonePacket< FFXIVIpcActorSetPos >( getId() ); - setActorPosPacket->data().r16 = Math::Util::floatToUInt16Rot( m_queuedZoneing->m_targetRotation ); + setActorPosPacket->data().r16 = Util::floatToUInt16Rot( m_queuedZoneing->m_targetRotation ); setActorPosPacket->data().waitForLoad = 0x04; setActorPosPacket->data().x = targetPos.x; setActorPosPacket->data().y = targetPos.y; @@ -1064,8 +1064,8 @@ void Sapphire::Entity::Player::update( int64_t currTime ) range = 25; - if( Math::Util::distance( getPos().x, getPos().y, getPos().z, - actor->getPos().x, actor->getPos().y, actor->getPos().z ) <= range ) + if( Util::distance( getPos().x, getPos().y, getPos().z, + actor->getPos().x, actor->getPos().y, actor->getPos().z ) <= range ) { if( ( currTime - m_lastAttack ) > mainWeap->getDelay() ) @@ -1438,7 +1438,7 @@ void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget ) if( getClass() == ClassJob::Machinist || getClass() == ClassJob::Bard || getClass() == ClassJob::Archer ) { auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 8 ); - effectPacket->setRotation( Math::Util::floatToUInt16Rot( getRot() ) ); + effectPacket->setRotation( Util::floatToUInt16Rot( getRot() ) ); Server::EffectEntry entry; entry.value = damage; @@ -1452,7 +1452,7 @@ void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget ) else { auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 7 ); - effectPacket->setRotation( Math::Util::floatToUInt16Rot( getRot() ) ); + effectPacket->setRotation( Util::floatToUInt16Rot( getRot() ) ); Server::EffectEntry entry; entry.value = damage; diff --git a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp index 5e9de090..2eaa57ed 100644 --- a/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp +++ b/src/servers/sapphire_zone/DebugCommand/DebugCommandHandler.cpp @@ -666,7 +666,7 @@ void Sapphire::DebugCommandHandler::nudge( char* data, Entity::Player& player, s setActorPosPacket->data().x = player.getPos().x; setActorPosPacket->data().y = player.getPos().y; setActorPosPacket->data().z = player.getPos().z; - setActorPosPacket->data().r16 = Math::Util::floatToUInt16Rot( player.getRot() ); + setActorPosPacket->data().r16 = Util::floatToUInt16Rot( player.getRot() ); player.queuePacket( setActorPosPacket ); } } diff --git a/src/servers/sapphire_zone/ForwardsZone.h b/src/servers/sapphire_zone/ForwardsZone.h index 5e2e1e9b..585eb46c 100644 --- a/src/servers/sapphire_zone/ForwardsZone.h +++ b/src/servers/sapphire_zone/ForwardsZone.h @@ -16,7 +16,8 @@ x ## Ptr make_ ## x( Args &&...args ) { \ return std::make_shared< x >( std::forward< Args >( args ) ... ); }\ typedef std::vector< x > x ## PtrList; -namespace Sapphire { +namespace Sapphire +{ TYPE_FORWARD( Cell ); TYPE_FORWARD( Zone ); TYPE_FORWARD( HousingZone ); @@ -27,6 +28,7 @@ TYPE_FORWARD( ItemContainer ); TYPE_FORWARD( Session ); TYPE_FORWARD( ZonePosition ); TYPE_FORWARD( Land ) +TYPE_FORWARD( Linkshell ) namespace World::Territory::Housing { @@ -38,12 +40,14 @@ namespace World::Manager TYPE_FORWARD( HousingMgr ); } -namespace StatusEffect { +namespace StatusEffect +{ TYPE_FORWARD( StatusEffect ); TYPE_FORWARD( StatusEffectContainer ); } -namespace Entity { +namespace Entity +{ TYPE_FORWARD( Actor ); TYPE_FORWARD( Chara ); TYPE_FORWARD( Player ); @@ -52,12 +56,14 @@ TYPE_FORWARD( BNpcTemplate ); TYPE_FORWARD( BNpc ); } -namespace Event { +namespace Event +{ TYPE_FORWARD( Director ); TYPE_FORWARD( EventHandler ); } -namespace Action { +namespace Action +{ TYPE_FORWARD( Action ); TYPE_FORWARD( ActionTeleport ); TYPE_FORWARD( ActionCast ); @@ -66,7 +72,8 @@ TYPE_FORWARD( EventAction ); TYPE_FORWARD( EventItemAction ); } -namespace Network { +namespace Network +{ TYPE_FORWARD( Hive ); TYPE_FORWARD( Acceptor ); TYPE_FORWARD( Connection ); @@ -74,17 +81,20 @@ TYPE_FORWARD( GameConnection ); TYPE_FORWARD( SessionConnection ); TYPE_FORWARD( CustomMsgClientConnection ); -namespace Packets { +namespace Packets +{ TYPE_FORWARD( GamePacket ); TYPE_FORWARD( FFXIVPacketBase ); } } -namespace ContentFinder { +namespace ContentFinder +{ TYPE_FORWARD( ContentFinder ); } -namespace Scripting { +namespace Scripting +{ class NativeScriptMgr; } diff --git a/src/servers/sapphire_zone/Linkshell/Linkshell.cpp b/src/servers/sapphire_zone/Linkshell/Linkshell.cpp index 0d6bcb3e..2a111217 100644 --- a/src/servers/sapphire_zone/Linkshell/Linkshell.cpp +++ b/src/servers/sapphire_zone/Linkshell/Linkshell.cpp @@ -1,6 +1,5 @@ #include "Linkshell.h" - Sapphire::Linkshell::Linkshell( uint64_t id, const std::string& name, uint64_t masterId, diff --git a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.cpp b/src/servers/sapphire_zone/Manager/LinkshellMgr.cpp similarity index 83% rename from src/servers/sapphire_zone/Linkshell/LinkshellMgr.cpp rename to src/servers/sapphire_zone/Manager/LinkshellMgr.cpp index a0909468..7f8d8b07 100644 --- a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.cpp +++ b/src/servers/sapphire_zone/Manager/LinkshellMgr.cpp @@ -1,18 +1,17 @@ #include #include -#include "Linkshell.h" +#include "Linkshell/Linkshell.h" #include "Framework.h" #include "LinkshellMgr.h" extern Sapphire::Framework g_fw; -Sapphire::LinkshellMgr::LinkshellMgr() +Sapphire::World::Manager::LinkshellMgr::LinkshellMgr() { - } -bool Sapphire::LinkshellMgr::loadLinkshells() +bool Sapphire::World::Manager::LinkshellMgr::loadLinkshells() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT LinkshellId, MasterCharacterId, CharacterIdList, " @@ -61,7 +60,7 @@ bool Sapphire::LinkshellMgr::loadLinkshells() } -Sapphire::LinkshellPtr Sapphire::LinkshellMgr::getLinkshellByName( const std::string& name ) +Sapphire::LinkshellPtr Sapphire::World::Manager::LinkshellMgr::getLinkshellByName( const std::string& name ) { auto it = m_linkshellNameMap.find( name ); if( it == m_linkshellNameMap.end() ) @@ -70,7 +69,7 @@ Sapphire::LinkshellPtr Sapphire::LinkshellMgr::getLinkshellByName( const std::st return it->second; } -Sapphire::LinkshellPtr Sapphire::LinkshellMgr::getLinkshellById( uint64_t lsId ) +Sapphire::LinkshellPtr Sapphire::World::Manager::LinkshellMgr::getLinkshellById( uint64_t lsId ) { auto it = m_linkshellIdMap.find( lsId ); if( it == m_linkshellIdMap.end() ) diff --git a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.h b/src/servers/sapphire_zone/Manager/LinkshellMgr.h similarity index 68% rename from src/servers/sapphire_zone/Linkshell/LinkshellMgr.h rename to src/servers/sapphire_zone/Manager/LinkshellMgr.h index 5597dc74..639d64f2 100644 --- a/src/servers/sapphire_zone/Linkshell/LinkshellMgr.h +++ b/src/servers/sapphire_zone/Manager/LinkshellMgr.h @@ -1,14 +1,12 @@ -#ifndef CORE_LINKSHELLMGR_H -#define CORE_LINKSHELLMGR_H +#ifndef SAPPHIRE_LINKSHELLMGR_H +#define SAPPHIRE_LINKSHELLMGR_H #include #include +#include "ForwardsZone.h" -namespace Sapphire +namespace Sapphire::World::Manager { - class Linkshell; - - using LinkshellPtr = std::shared_ptr< Linkshell >; class LinkshellMgr { @@ -27,4 +25,4 @@ namespace Sapphire }; } -#endif //CORE_LINKSHELLMGR_H +#endif //SAPPHIRE_LINKSHELLMGR_H diff --git a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp index 4db1441c..9ac81f7e 100644 --- a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp @@ -297,7 +297,8 @@ Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::findOrCreateHousingInt auto housingMgr = g_fw.get< Manager::HousingMgr >(); auto parentZone = std::dynamic_pointer_cast< HousingZone >( - getZoneByLandSetId( housingMgr->toLandSetId( landIdent.territoryTypeId, landIdent.wardNum ) ) ); + getZoneByLandSetId( housingMgr->toLandSetId( static_cast< uint16_t >( landIdent.territoryTypeId ), + static_cast< uint8_t >( landIdent.wardNum ) ) ) ); if( !parentZone ) return nullptr; diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h index 7a3f05a7..a3e09ddb 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/MoveActorPacket.h @@ -29,14 +29,14 @@ namespace Sapphire::Network::Packets::Server void initialize( Entity::Chara& actor, uint8_t unk1, uint8_t unk2, uint8_t unk3, uint16_t unk4 ) { - m_data.rotation = Math::Util::floatToUInt8Rot( actor.getRot() ); + m_data.rotation = Util::floatToUInt8Rot( actor.getRot() ); m_data.unknown_1 = unk1; m_data.unknown_2 = unk2; m_data.unknown_3 = unk3; m_data.unknown_4 = unk4; - m_data.posX = Math::Util::floatToUInt16( actor.getPos().x ); - m_data.posY = Math::Util::floatToUInt16( actor.getPos().y ); - m_data.posZ = Math::Util::floatToUInt16( actor.getPos().z ); + m_data.posX = Util::floatToUInt16( actor.getPos().x ); + m_data.posY = Util::floatToUInt16( actor.getPos().y ); + m_data.posZ = Util::floatToUInt16( actor.getPos().z ); }; }; diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h index 7975ac87..ce6a0005 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/NpcSpawnPacket.h @@ -53,7 +53,7 @@ namespace Sapphire::Network::Packets::Server m_data.pos.x = bnpc.getPos().x; m_data.pos.y = bnpc.getPos().y; m_data.pos.z = bnpc.getPos().z; - m_data.rotation = Math::Util::floatToUInt16Rot( bnpc.getRot() ); + m_data.rotation = Util::floatToUInt16Rot( bnpc.getRot() ); m_data.enemyType = bnpc.getEnemyType(); m_data.mainWeaponModel = bnpc.getWeaponMain(); diff --git a/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h b/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h index 2e871336..71481112 100644 --- a/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h +++ b/src/servers/sapphire_zone/Network/PacketWrappers/PlayerSpawnPacket.h @@ -65,7 +65,7 @@ namespace Sapphire::Network::Packets::Server m_data.pos.x = player.getPos().x; m_data.pos.y = player.getPos().y; m_data.pos.z = player.getPos().z; - m_data.rotation = Math::Util::floatToUInt16Rot( player.getRot() ); + m_data.rotation = Util::floatToUInt16Rot( player.getRot() ); m_data.title = player.getTitle(); diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index 68432a9d..5095f0b5 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -121,7 +121,7 @@ void Sapphire::Scripting::ScriptMgr::watchDirectories() } bool Sapphire::Scripting::ScriptMgr::loadDir( const std::string& dirname, std::set< std::string >& files, - const std::string& ext ) + const std::string& ext ) { auto pLog = g_fw.get< Logger >(); @@ -190,19 +190,17 @@ bool Sapphire::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t ac } else { - auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId & 0xFFFF0000 ); + script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId & 0xFFFF0000 ); if( !script ) return false; script->onTalk( eventId, player, actorId ); return true; } - - return false; } bool Sapphire::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint32_t eventId, - uint16_t param1, uint16_t param2 ) + uint16_t param1, uint16_t param2 ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) @@ -212,7 +210,7 @@ bool Sapphire::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, u } bool Sapphire::Scripting::ScriptMgr::onWithinRange( Entity::Player& player, uint32_t eventId, uint32_t param1, - float x, float y, float z ) + float x, float y, float z ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) @@ -222,7 +220,7 @@ bool Sapphire::Scripting::ScriptMgr::onWithinRange( Entity::Player& player, uint } bool Sapphire::Scripting::ScriptMgr::onOutsideRange( Entity::Player& player, uint32_t eventId, uint32_t param1, - float x, float y, float z ) + float x, float y, float z ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) @@ -232,7 +230,7 @@ bool Sapphire::Scripting::ScriptMgr::onOutsideRange( Entity::Player& player, uin } bool Sapphire::Scripting::ScriptMgr::onEmote( Entity::Player& player, uint64_t actorId, - uint32_t eventId, uint8_t emoteId ) + uint32_t eventId, uint8_t emoteId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( !script ) @@ -242,15 +240,15 @@ bool Sapphire::Scripting::ScriptMgr::onEmote( Entity::Player& player, uint64_t a } bool Sapphire::Scripting::ScriptMgr::onEventHandlerReturn( Entity::Player& player, uint32_t eventId, - uint16_t subEvent, uint16_t param1, uint16_t param2, - uint16_t param3 ) + uint16_t subEvent, uint16_t param1, uint16_t param2, + uint16_t param3 ) { return false; } bool Sapphire::Scripting::ScriptMgr::onEventHandlerTradeReturn( Entity::Player& player, uint32_t eventId, - uint16_t subEvent, uint16_t param, uint32_t catalogId ) + uint16_t subEvent, uint16_t param, uint32_t catalogId ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( script ) @@ -263,7 +261,7 @@ bool Sapphire::Scripting::ScriptMgr::onEventHandlerTradeReturn( Entity::Player& } bool Sapphire::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32_t eventItemId, - uint32_t eventId, uint32_t castTime, uint64_t targetId ) + uint32_t eventId, uint32_t castTime, uint64_t targetId ) { std::string eventName = "onEventItem"; std::string objName = Event::getEventName( eventId ); @@ -402,7 +400,7 @@ bool Sapphire::Scripting::ScriptMgr::onInstanceUpdate( InstanceContentPtr instan } bool Sapphire::Scripting::ScriptMgr::onInstanceEnterTerritory( InstanceContentPtr instance, Entity::Player& player, - uint32_t eventId, uint16_t param1, uint16_t param2 ) + uint32_t eventId, uint16_t param1, uint16_t param2 ) { auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::InstanceContentScript >( instance->getDirectorId() ); if( script ) diff --git a/src/servers/sapphire_zone/ServerMgr.cpp b/src/servers/sapphire_zone/ServerMgr.cpp index caab736b..bbb1f4d5 100644 --- a/src/servers/sapphire_zone/ServerMgr.cpp +++ b/src/servers/sapphire_zone/ServerMgr.cpp @@ -22,9 +22,10 @@ #include "Session.h" #include "Manager/TerritoryMgr.h" +#include "Manager/LinkshellMgr.h" #include "Script/ScriptMgr.h" -#include "Linkshell/LinkshellMgr.h" + extern Sapphire::Framework g_fw; diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp index c89a1a1b..19974061 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp @@ -21,7 +21,7 @@ Housing::HousingInteriorTerritory::~HousingInteriorTerritory() bool Housing::HousingInteriorTerritory::init() { - + return false; } void Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) diff --git a/src/servers/sapphire_zone/Territory/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp index 4efe3de7..07f6a0b2 100644 --- a/src/servers/sapphire_zone/Territory/Land.cpp +++ b/src/servers/sapphire_zone/Territory/Land.cpp @@ -296,7 +296,7 @@ void Sapphire::Land::update( uint32_t currTime ) if( m_nextDrop < currTime && m_minPrice < m_currentPrice ) { m_nextDrop = currTime + 21600; - m_currentPrice = ( m_currentPrice / 100 ) * 99.58; + m_currentPrice = static_cast< uint32_t >( ( m_currentPrice / 100 ) * 99.58f ); updateLandDb(); } } diff --git a/src/servers/sapphire_zone/Territory/Zone.cpp b/src/servers/sapphire_zone/Territory/Zone.cpp index abdb9a60..2c37892a 100644 --- a/src/servers/sapphire_zone/Territory/Zone.cpp +++ b/src/servers/sapphire_zone/Territory/Zone.cpp @@ -57,7 +57,8 @@ Sapphire::Zone::Zone() : { } -Sapphire::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ) : +Sapphire::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, + const std::string& internalName, const std::string& placeName ) : m_currentWeather( Weather::FairSkies ), m_nextEObjId( 0x400D0000 ) { @@ -278,7 +279,7 @@ void Sapphire::Zone::removeActor( Entity::ActorPtr pActor ) } void Sapphire::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, - Network::Packets::FFXIVPacketBasePtr pPacketEntry ) + Network::Packets::FFXIVPacketBasePtr pPacketEntry ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) @@ -288,12 +289,8 @@ void Sapphire::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t for( auto entry : m_playerMap ) { auto player = entry.second; - float distance = Math::Util::distance( sourcePlayer.getPos().x, - sourcePlayer.getPos().y, - sourcePlayer.getPos().z, - player->getPos().x, - player->getPos().y, - player->getPos().z ); + float distance = Util::distance( sourcePlayer.getPos().x, sourcePlayer.getPos().y, sourcePlayer.getPos().z, + player->getPos().x, player->getPos().y, player->getPos().z ); if( ( distance < range ) && sourcePlayer.getId() != player->getId() ) { @@ -307,8 +304,8 @@ void Sapphire::Zone::queuePacketForRange( Entity::Player& sourcePlayer, uint32_t } void Sapphire::Zone::queuePacketForZone( Entity::Player& sourcePlayer, - Network::Packets::FFXIVPacketBasePtr pPacketEntry, - bool forSelf ) + Network::Packets::FFXIVPacketBasePtr pPacketEntry, + bool forSelf ) { auto pTeriMgr = g_fw.get< TerritoryMgr >(); if( pTeriMgr->isPrivateTerritory( getTerritoryTypeId() ) ) @@ -648,8 +645,8 @@ void Sapphire::Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ) if( !pCurAct || pCurAct == pActor ) continue; - float distance = Math::Util::distance( pCurAct->getPos().x, pCurAct->getPos().y, pCurAct->getPos().z, - pActor->getPos().x, pActor->getPos().y, pActor->getPos().z ); + float distance = Util::distance( pCurAct->getPos().x, pCurAct->getPos().y, pCurAct->getPos().z, + pActor->getPos().x, pActor->getPos().y, pActor->getPos().z ); bool isInRange = ( fRange == 0.0f || distance <= fRange ); bool isInRangeSet = pActor->isInRangeSet( pCurAct ); @@ -750,8 +747,8 @@ uint32_t Sapphire::Zone::getNextEObjId() } Sapphire::Entity::EventObjectPtr Sapphire::Zone::registerEObj( const std::string& name, uint32_t objectId, uint32_t mapLink, - uint8_t state, FFXIVARR_POSITION3 pos, float scale, - float rotation ) + uint8_t state, FFXIVARR_POSITION3 pos, float scale, + float rotation ) { auto eObj = Entity::make_EventObject( getNextEObjId(), objectId, mapLink, state, pos, rotation, name ); eObj->setScale( scale ); diff --git a/src/servers/sapphire_zone/Territory/Zone.h b/src/servers/sapphire_zone/Territory/Zone.h index fabadf8b..13d27e40 100644 --- a/src/servers/sapphire_zone/Territory/Zone.h +++ b/src/servers/sapphire_zone/Territory/Zone.h @@ -19,136 +19,136 @@ namespace Sapphire { -class Session; + class Session; -class ZonePosition; + class ZonePosition; -using SessionSet = std::set< SessionPtr >; -using FestivalPair = std::pair< uint16_t, uint16_t >; + using SessionSet = std::set< SessionPtr >; + using FestivalPair = std::pair< uint16_t, uint16_t >; -namespace Data -{ - struct InstanceContent; - struct TerritoryType; -} + namespace Data + { + struct InstanceContent; + struct TerritoryType; + } -class Zone : public CellHandler< Cell >, public std::enable_shared_from_this< Zone > -{ -protected: - uint32_t m_territoryTypeId; - uint32_t m_guId; + class Zone : public CellHandler< Cell >, public std::enable_shared_from_this< Zone > + { + protected: + uint32_t m_territoryTypeId; + uint32_t m_guId; - std::string m_placeName; - std::string m_internalName; + std::string m_placeName; + std::string m_internalName; - std::unordered_map< int32_t, Entity::PlayerPtr > m_playerMap; - std::unordered_map< int32_t, Entity::BNpcPtr > m_bNpcMap; - std::unordered_map< int32_t, Entity::EventObjectPtr > m_eventObjects; + std::unordered_map< int32_t, Entity::PlayerPtr > m_playerMap; + std::unordered_map< int32_t, Entity::BNpcPtr > m_bNpcMap; + std::unordered_map< int32_t, Entity::EventObjectPtr > m_eventObjects; - SessionSet m_sessionSet; + SessionSet m_sessionSet; - Common::Weather m_currentWeather; - Common::Weather m_weatherOverride; + Common::Weather m_currentWeather; + Common::Weather m_weatherOverride; - uint64_t m_lastMobUpdate; + uint64_t m_lastMobUpdate; - FestivalPair m_currentFestival; - - std::shared_ptr< Data::TerritoryType > m_territoryTypeInfo; + FestivalPair m_currentFestival; - std::map< uint8_t, int32_t > m_weatherRateMap; + std::shared_ptr< Data::TerritoryType > m_territoryTypeInfo; - uint32_t m_nextEObjId; + std::map< uint8_t, int32_t > m_weatherRateMap; -public: - Zone(); + uint32_t m_nextEObjId; - Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ); + public: + Zone(); - virtual ~Zone(); + Zone( uint16_t territoryTypeId, uint32_t guId, const std::string& internalName, const std::string& placeName ); - /*! overrides the zone's weather, set to 0 to unlock */ - void setWeatherOverride( Common::Weather weather ); + virtual ~Zone(); - Common::Weather getCurrentWeather() const; + /*! overrides the zone's weather, set to 0 to unlock */ + void setWeatherOverride( Common::Weather weather ); - const FestivalPair& getCurrentFestival() const; + Common::Weather getCurrentWeather() const; - void setCurrentFestival( uint16_t festivalId, uint16_t additionalFestivalId = 0 ); + const FestivalPair& getCurrentFestival() const; - virtual bool init(); + void setCurrentFestival( uint16_t festivalId, uint16_t additionalFestivalId = 0 ); - virtual void loadCellCache(); + virtual bool init(); - virtual uint32_t getTerritoryTypeId() const; + virtual void loadCellCache(); - virtual void onBeforePlayerZoneIn( Entity::Player& player ) {}; + virtual uint32_t getTerritoryTypeId() const; - virtual void onPlayerZoneIn( Entity::Player& player ); + virtual void onBeforePlayerZoneIn( Entity::Player& player ) {}; - virtual void onFinishLoading( Entity::Player& player ); + virtual void onPlayerZoneIn( Entity::Player& player ); - virtual void onInitDirector( Entity::Player& player ); + virtual void onFinishLoading( Entity::Player& player ); - virtual void onDirectorSync( Entity::Player& player ) {}; + virtual void onInitDirector( Entity::Player& player ); - virtual void onLeaveTerritory( Entity::Player& player ); + virtual void onDirectorSync( Entity::Player& player ) {}; - virtual void onUpdate( uint32_t currTime ); + virtual void onLeaveTerritory( Entity::Player& player ); - virtual void onRegisterEObj( Entity::EventObjectPtr object ) {}; + virtual void onUpdate( uint32_t currTime ); - virtual void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); + virtual void onRegisterEObj( Entity::EventObjectPtr object ) {}; - Common::Weather getNextWeather(); + virtual void onEnterTerritory( Entity::Player& player, uint32_t eventId, uint16_t param1, uint16_t param2 ); - void pushActor( Entity::ActorPtr pActor ); + Common::Weather getNextWeather(); - void removeActor( Entity::ActorPtr pActor ); + void pushActor( Entity::ActorPtr pActor ); - void updateActorPosition( Entity::Actor& pActor ); + void removeActor( Entity::ActorPtr pActor ); - bool isCellActive( uint32_t x, uint32_t y ); + void updateActorPosition( Entity::Actor& pActor ); - void updateCellActivity( uint32_t x, uint32_t y, int32_t radius ); + bool isCellActive( uint32_t x, uint32_t y ); - void updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ); + void updateCellActivity( uint32_t x, uint32_t y, int32_t radius ); - void queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, - Network::Packets::FFXIVPacketBasePtr pPacketEntry ); + void updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ); - void queuePacketForZone( Entity::Player& sourcePlayer, Network::Packets::FFXIVPacketBasePtr pPacketEntry, - bool forSelf = false ); + void queuePacketForRange( Entity::Player& sourcePlayer, uint32_t range, + Network::Packets::FFXIVPacketBasePtr pPacketEntry ); - uint32_t getGuId() const; + void queuePacketForZone( Entity::Player& sourcePlayer, Network::Packets::FFXIVPacketBasePtr pPacketEntry, + bool forSelf = false ); - uint32_t getNextEObjId(); + uint32_t getGuId() const; - const std::string& getName() const; + uint32_t getNextEObjId(); - const std::string& getInternalName() const; + const std::string& getName() const; - std::size_t getPopCount() const; + const std::string& getInternalName() const; - void loadWeatherRates(); + std::size_t getPopCount() const; - bool checkWeather(); - //void updateBnpcs( int64_t tickCount ); + void loadWeatherRates(); - bool update( uint32_t currTime ); + bool checkWeather(); + //void updateBnpcs( int64_t tickCount ); - void updateSessions( bool changedWeather ); + bool update( uint32_t currTime ); - Entity::EventObjectPtr registerEObj( const std::string& name, uint32_t objectId, uint32_t mapLink, - uint8_t state, Common::FFXIVARR_POSITION3 pos, float scale, float rotation ); + void updateSessions( bool changedWeather ); - void registerEObj( Entity::EventObjectPtr object ); + Entity::EventObjectPtr registerEObj( const std::string& name, uint32_t objectId, uint32_t mapLink, + uint8_t state, Common::FFXIVARR_POSITION3 pos, float scale, float rotation ); - Entity::EventObjectPtr getEObj( uint32_t objId ); + void registerEObj( Entity::EventObjectPtr object ); - InstanceContentPtr getAsInstanceContent(); + Entity::EventObjectPtr getEObj( uint32_t objId ); -}; + InstanceContentPtr getAsInstanceContent(); + + }; } diff --git a/src/servers/sapphire_zone/mainGameServer.cpp b/src/servers/sapphire_zone/mainGameServer.cpp index 8e15fbd6..142d094c 100644 --- a/src/servers/sapphire_zone/mainGameServer.cpp +++ b/src/servers/sapphire_zone/mainGameServer.cpp @@ -7,7 +7,7 @@ #include "Script/ScriptMgr.h" #include #include -#include "Linkshell/LinkshellMgr.h" +#include "Manager/LinkshellMgr.h" #include "Manager/TerritoryMgr.h" #include "Manager/HousingMgr.h" #include "DebugCommand/DebugCommandHandler.h" @@ -28,13 +28,13 @@ bool setupFramework() auto pExdData = std::make_shared< Data::ExdDataGenerated >(); auto pScript = std::make_shared< Scripting::ScriptMgr >(); auto pDb = std::make_shared< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pLsMgr = std::make_shared< LinkshellMgr >(); - auto pHousingMgr = std::make_shared< Manager::HousingMgr >(); - auto pTeriMgr = std::make_shared< Manager::TerritoryMgr >(); auto pDebugCom = std::make_shared< DebugCommandHandler >(); auto pConfig = std::make_shared< ConfigMgr >(); auto pPlayerMgr = std::make_shared< Manager::PlayerMgr >(); auto pShopMgr = std::make_shared< Manager::ShopMgr >(); + auto pLsMgr = std::make_shared< Manager::LinkshellMgr >(); + auto pTeriMgr = std::make_shared< Manager::TerritoryMgr >(); + auto pHousingMgr = std::make_shared< Manager::HousingMgr >(); pLogger->setLogPath( "log/SapphireZone" ); pLogger->init(); @@ -44,7 +44,7 @@ bool setupFramework() g_fw.set< Data::ExdDataGenerated >( pExdData ); g_fw.set< Scripting::ScriptMgr >( pScript ); g_fw.set< Db::DbWorkerPool< Db::ZoneDbConnection > >( pDb ); - g_fw.set< LinkshellMgr >( pLsMgr ); + g_fw.set< Manager::LinkshellMgr >( pLsMgr ); g_fw.set< Manager::HousingMgr >( pHousingMgr ); g_fw.set< Manager::TerritoryMgr >( pTeriMgr ); g_fw.set< DebugCommandHandler >( pDebugCom ); From e198705503a5e250047fda96ad3261fd6c12632b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 14:59:24 +1100 Subject: [PATCH 142/385] fix zoning in/out of houses --- src/common/Network/CommonActorControl.h | 1 + .../common/eobj/HousingEstateEntrance.cpp | 12 ++++----- .../CmnDefHousingPersonalRoomEntrance.cpp | 21 ++++++++++++++++ .../{ => housing}/CmnDefHousingSignboard.cpp | 0 .../warptaxi/HousingWarpTaxiExitEstate.cpp | 25 +++++++++++++++++++ src/servers/sapphire_zone/Territory/House.cpp | 4 +-- src/servers/sapphire_zone/Territory/Land.cpp | 21 ++++++++-------- 7 files changed, 65 insertions(+), 19 deletions(-) create mode 100644 src/servers/Scripts/common/housing/CmnDefHousingPersonalRoomEntrance.cpp rename src/servers/Scripts/common/{ => housing}/CmnDefHousingSignboard.cpp (100%) create mode 100644 src/servers/Scripts/common/warptaxi/HousingWarpTaxiExitEstate.cpp diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 357bb54b..208aeb97 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -304,6 +304,7 @@ enum ActorControlType : uint16_t RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, + UpdateEstateLightingLevel = 0x471, CompanionAction = 0x6A4, CompanionSetBarding = 0x6A5, diff --git a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp index e534d42e..7394ac86 100644 --- a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp @@ -42,16 +42,14 @@ public: player.sendDebug( "created zone with guid: " + std::to_string( internalZone->getGuId() ) + "\nname: " + internalZone->getName() ); } + // param2 == 1 when player wants to enter house if( result.param2 != 1 ) return; - if( result.param2 == 1 ) - { - //player.eventFinish( 131148, 0 ); - //player.eventFinish( this->getId(), 1 ); - player.setPos( {0, 0, 0} ); - player.setInstance( internalZone ); - } + player.eventFinish( result.eventId, 1 ); + + player.setPos( { 0.f, 0.f, 0.f } ); + player.setInstance( internalZone ); } ); } }; \ No newline at end of file diff --git a/src/servers/Scripts/common/housing/CmnDefHousingPersonalRoomEntrance.cpp b/src/servers/Scripts/common/housing/CmnDefHousingPersonalRoomEntrance.cpp new file mode 100644 index 00000000..abb5e740 --- /dev/null +++ b/src/servers/Scripts/common/housing/CmnDefHousingPersonalRoomEntrance.cpp @@ -0,0 +1,21 @@ +#include +#include + +using namespace Sapphire; + +class CmnDefHousingPersonalRoomEntrance : public Sapphire::ScriptAPI::EventScript +{ +public: + CmnDefHousingPersonalRoomEntrance() : + Sapphire::ScriptAPI::EventScript( 0x000b00b2 ) + { + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + player.playScene( eventId, 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) + { + + } ); + } +}; \ No newline at end of file diff --git a/src/servers/Scripts/common/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp similarity index 100% rename from src/servers/Scripts/common/CmnDefHousingSignboard.cpp rename to src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp diff --git a/src/servers/Scripts/common/warptaxi/HousingWarpTaxiExitEstate.cpp b/src/servers/Scripts/common/warptaxi/HousingWarpTaxiExitEstate.cpp new file mode 100644 index 00000000..5dd34bf3 --- /dev/null +++ b/src/servers/Scripts/common/warptaxi/HousingWarpTaxiExitEstate.cpp @@ -0,0 +1,25 @@ +#include +#include + +using namespace Sapphire; + +class HousingWarpTaxiExitEstate : public Sapphire::ScriptAPI::EventScript +{ +public: + HousingWarpTaxiExitEstate() : + Sapphire::ScriptAPI::EventScript( 0x0002004d ) + { + } + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + player.playScene( eventId, 0, 0, []( Entity::Player& player, const Event::SceneResult& result ) + { + if( result.param2 == 1 ) + { + player.eventFinish( result.eventId, 1 ); + player.exitInstance(); + } + } ); + } +}; \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/House.cpp b/src/servers/sapphire_zone/Territory/House.cpp index c63f7a2c..d5b20ef2 100644 --- a/src/servers/sapphire_zone/Territory/House.cpp +++ b/src/servers/sapphire_zone/Territory/House.cpp @@ -55,10 +55,10 @@ Sapphire::House::House( uint32_t houseId, uint32_t landSetId, uint8_t landId, ui auto houseInteriorModels = res->getBlobVector( "HouseInteriorModels" ); - models = reinterpret_cast( &houseInteriorModels[0] ); + auto interiorModels = reinterpret_cast< uint32_t* >( &houseInteriorModels[ 0 ] ); for( auto i = 0; i < 10; i++ ) { - m_houseInteriorParts[ i ] = houseInteriorModels[ i ]; + m_houseInteriorParts[ i ] = interiorModels[ i ]; } } } diff --git a/src/servers/sapphire_zone/Territory/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp index 8ba1412c..d61dcaf5 100644 --- a/src/servers/sapphire_zone/Territory/Land.cpp +++ b/src/servers/sapphire_zone/Territory/Land.cpp @@ -332,21 +332,22 @@ bool Sapphire::Land::setPreset( uint32_t itemId ) m_pHouse = make_House( newId, getLandSetId(), getLandId(), getWardNum(), getTerritoryTypeId() ); } + getHouse()->setHousePart( Common::HousePartSlot::ExteriorRoof, convertItemIdToHousingItemId( housingPreset->exteriorRoof ) ); getHouse()->setHousePart( Common::HousePartSlot::ExteriorWall, convertItemIdToHousingItemId( housingPreset->exteriorWall ) ); getHouse()->setHousePart( Common::HousePartSlot::ExteriorWindow, convertItemIdToHousingItemId( housingPreset->exteriorWindow ) ); getHouse()->setHousePart( Common::HousePartSlot::ExteriorDoor, convertItemIdToHousingItemId( housingPreset->exteriorDoor ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall, convertItemIdToHousingItemId( housingPreset->interiorWall ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor, convertItemIdToHousingItemId( housingPreset->interiorFlooring ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight, convertItemIdToHousingItemId( housingPreset->interiorLighting ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorWall ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorFlooring ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorLighting ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorWall_Basement, convertItemIdToHousingItemId( housingPreset->basementWall ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorFloor_Basement, convertItemIdToHousingItemId( housingPreset->basementFlooring ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Basement, convertItemIdToHousingItemId( housingPreset->basementLighting ) ); - getHouse()->setHouseInteriorPart(Common::HousingInteriorSlot::InteriorLight_Mansion, convertItemIdToHousingItemId( housingPreset->mansionLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorWall, convertItemIdToHousingItemId( housingPreset->interiorWall ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorFloor, convertItemIdToHousingItemId( housingPreset->interiorFlooring ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight, convertItemIdToHousingItemId( housingPreset->interiorLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorWall_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorWall ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorFloor_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorFlooring ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight_Attic, convertItemIdToHousingItemId( housingPreset->otherFloorLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorWall_Basement, convertItemIdToHousingItemId( housingPreset->basementWall ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorFloor_Basement, convertItemIdToHousingItemId( housingPreset->basementFlooring ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight_Basement, convertItemIdToHousingItemId( housingPreset->basementLighting ) ); + getHouse()->setHouseInteriorPart( Common::HousingInteriorSlot::InteriorLight_Mansion, convertItemIdToHousingItemId( housingPreset->mansionLighting ) ); return true; From aded517eb06c05539731a50e74f3b2a6c98a928e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 15:32:22 +1100 Subject: [PATCH 143/385] when exiting an instance, return the player to correct ward --- src/servers/sapphire_api/PlayerMinimal.cpp | 2 +- src/servers/sapphire_api/PlayerMinimal.h | 4 +-- src/servers/sapphire_zone/Actor/Actor.h | 2 +- src/servers/sapphire_zone/Actor/Player.cpp | 36 +++++++++++++------ src/servers/sapphire_zone/Actor/Player.h | 4 +-- src/servers/sapphire_zone/Actor/PlayerSql.cpp | 13 +++---- .../sapphire_zone/Territory/HousingZone.cpp | 10 +++--- .../sapphire_zone/Territory/HousingZone.h | 2 +- src/servers/sapphire_zone/Territory/Zone.h | 2 +- 9 files changed, 45 insertions(+), 30 deletions(-) diff --git a/src/servers/sapphire_api/PlayerMinimal.cpp b/src/servers/sapphire_api/PlayerMinimal.cpp index 31e84818..5ca13b9a 100644 --- a/src/servers/sapphire_api/PlayerMinimal.cpp +++ b/src/servers/sapphire_api/PlayerMinimal.cpp @@ -64,7 +64,7 @@ void PlayerMinimal::load( uint32_t charId ) m_guardianDeity = res->getUInt8( "GuardianDeity" ); m_class = res->getUInt8( "Class" ); m_contentId = res->getUInt64( "ContentId" ); - m_zoneId = res->getUInt16( "TerritoryType" ); + m_territoryTypeId = res->getUInt16( "TerritoryType" ); res.reset(); diff --git a/src/servers/sapphire_api/PlayerMinimal.h b/src/servers/sapphire_api/PlayerMinimal.h index 7cbaade8..dda3202e 100644 --- a/src/servers/sapphire_api/PlayerMinimal.h +++ b/src/servers/sapphire_api/PlayerMinimal.h @@ -131,7 +131,7 @@ namespace Sapphire uint32_t getZoneId() const { - return m_zoneId; + return m_territoryTypeId; } uint32_t getTribe() const @@ -185,7 +185,7 @@ namespace Sapphire uint8_t m_tribe; - uint16_t m_zoneId; + uint16_t m_territoryTypeId; uint64_t m_modelMainWeapon; uint64_t m_modelSubWeapon; diff --git a/src/servers/sapphire_zone/Actor/Actor.h b/src/servers/sapphire_zone/Actor/Actor.h index bacb63e0..5f20797d 100644 --- a/src/servers/sapphire_zone/Actor/Actor.h +++ b/src/servers/sapphire_zone/Actor/Actor.h @@ -30,7 +30,7 @@ namespace Sapphire::Entity /*! Type of the actor */ Common::ObjKind m_objKind; /*! Id of the zone the actor currently is in */ - uint32_t m_zoneId; + uint32_t m_territoryTypeId; /*! Ptr to the ZoneObj the actor belongs to */ ZonePtr m_pCurrentZone; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 038a95b1..ead5d2d4 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -128,7 +128,7 @@ uint32_t Sapphire::Entity::Player::getMaxMp() uint16_t Sapphire::Entity::Player::getZoneId() const { - return m_zoneId; + return m_territoryTypeId; } uint32_t Sapphire::Entity::Player::getTerritoryId() const @@ -414,9 +414,9 @@ void Sapphire::Entity::Player::setZone( uint32_t zoneId ) // todo: this will require proper handling, for now just return the player to their previous area m_pos = m_prevPos; m_rot = m_prevRot; - m_zoneId = m_prevZoneId; + m_territoryTypeId = m_prevTerritoryTypeId; - if( !pTeriMgr->movePlayer( m_zoneId, getAsPlayer() ) ) + if( !pTeriMgr->movePlayer( m_territoryTypeId, getAsPlayer() ) ) return; } @@ -442,12 +442,15 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance ) auto pTeriMgr = g_fw.get< TerritoryMgr >(); + auto currentZone = getCurrentZone(); + // zoning within the same zone won't cause the prev data to be overwritten - if( instance->getTerritoryTypeId() != m_zoneId ) + if( instance->getTerritoryTypeId() != m_territoryTypeId ) { m_prevPos = m_pos; m_prevRot = m_rot; - m_prevZoneId = m_zoneId; + m_prevTerritoryTypeId = currentZone->getTerritoryTypeId(); + m_prevTerritoryId = getTerritoryId(); } if( !pTeriMgr->movePlayer( instance, getAsPlayer() ) ) @@ -461,12 +464,23 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance ) bool Sapphire::Entity::Player::exitInstance() { auto pTeriMgr = g_fw.get< TerritoryMgr >(); - if( !pTeriMgr->movePlayer( m_prevZoneId, getAsPlayer() ) ) - return false; + + // check if housing zone + if( pTeriMgr->isHousingTerritory( m_prevTerritoryTypeId ) ) + { + if( !pTeriMgr->movePlayer( pTeriMgr->getZoneByLandSetId( m_prevTerritoryId ), getAsPlayer() ) ) + return false; + } + else + { + if( !pTeriMgr->movePlayer( m_prevTerritoryTypeId, getAsPlayer() ) ) + return false; + } m_pos = m_prevPos; m_rot = m_prevRot; - m_zoneId = m_prevZoneId; + m_territoryTypeId = m_prevTerritoryTypeId; + m_territoryId = m_prevTerritoryId; sendZonePackets(); @@ -1232,7 +1246,7 @@ void Sapphire::Entity::Player::setLoadingComplete( bool bComplete ) void Sapphire::Entity::Player::performZoning( uint16_t zoneId, const Common::FFXIVARR_POSITION3& pos, float rotation ) { m_pos = pos; - m_zoneId = zoneId; + m_territoryTypeId = zoneId; m_bMarkedForZoning = true; setRot( rotation ); setZone( zoneId ); @@ -1530,12 +1544,12 @@ void Sapphire::Entity::Player::setEorzeaTimeOffset( uint64_t timestamp ) void Sapphire::Entity::Player::setTerritoryTypeId( uint32_t territoryTypeId ) { - m_zoneId = territoryTypeId; + m_territoryTypeId = territoryTypeId; } uint32_t Sapphire::Entity::Player::getTerritoryTypeId() const { - return m_zoneId; + return m_territoryTypeId; } void Sapphire::Entity::Player::sendZonePackets() diff --git a/src/servers/sapphire_zone/Actor/Player.h b/src/servers/sapphire_zone/Actor/Player.h index a80cdc6f..8532e21a 100644 --- a/src/servers/sapphire_zone/Actor/Player.h +++ b/src/servers/sapphire_zone/Actor/Player.h @@ -945,8 +945,8 @@ namespace Sapphire::Entity InventoryMap m_storageMap; Common::FFXIVARR_POSITION3 m_prevPos; - uint32_t m_prevZoneType; - uint32_t m_prevZoneId; + uint32_t m_prevTerritoryTypeId; + uint32_t m_prevTerritoryId; float m_prevRot; uint8_t m_voice; diff --git a/src/servers/sapphire_zone/Actor/PlayerSql.cpp b/src/servers/sapphire_zone/Actor/PlayerSql.cpp index b19fc331..136ddd40 100644 --- a/src/servers/sapphire_zone/Actor/PlayerSql.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerSql.cpp @@ -52,7 +52,8 @@ bool Sapphire::Entity::Player::load( uint32_t charId, SessionPtr pSession ) auto zoneId = res->getUInt( "TerritoryType" ); m_territoryId = res->getUInt( "TerritoryId" ); - m_prevZoneId = res->getUInt( "OTerritoryType" ); + m_prevTerritoryTypeId = res->getUInt( "OTerritoryType" ); + m_prevTerritoryId = res->getUInt( "OTerritoryId" ); // Position m_pos.x = res->getFloat( "PosX" ); @@ -75,7 +76,7 @@ bool Sapphire::Entity::Player::load( uint32_t charId, SessionPtr pSession ) // if none found, revert to previous zone and position if( !pCurrZone ) { - zoneId = m_prevZoneId; + zoneId = m_prevTerritoryTypeId; m_pos.x = m_prevPos.x; m_pos.y = m_prevPos.y; m_pos.z = m_prevPos.z; @@ -92,7 +93,7 @@ bool Sapphire::Entity::Player::load( uint32_t charId, SessionPtr pSession ) pCurrZone = pTeriMgr->getZoneByTerritoryTypeId( zoneId ); } - m_zoneId = zoneId; + m_territoryTypeId = zoneId; // TODO: logic for instances needs to be added here // see if a valid zone could be found for the character @@ -370,15 +371,15 @@ void Sapphire::Entity::Player::updateSql() stmt->setInt( 16, static_cast< uint32_t >( m_bNewGame ) ); stmt->setInt( 17, static_cast< uint32_t >( m_bNewAdventurer ) ); - stmt->setInt( 18, m_zoneId ); // TerritoryType + stmt->setInt( 18, m_territoryTypeId ); // TerritoryType stmt->setInt( 19, m_territoryId ); // TerritoryId stmt->setDouble( 20, m_pos.x ); stmt->setDouble( 21, m_pos.y ); stmt->setDouble( 22, m_pos.z ); stmt->setDouble( 23, getRot() ); - stmt->setInt( 24, m_prevZoneId ); // OTerritoryType - stmt->setInt( 25, m_prevZoneType ); // OTerritoryId + stmt->setInt( 24, m_prevTerritoryTypeId ); // OTerritoryType + stmt->setInt( 25, m_prevTerritoryId ); // OTerritoryId stmt->setDouble( 26, m_prevPos.x ); stmt->setDouble( 27, m_prevPos.y ); stmt->setDouble( 28, m_prevPos.z ); diff --git a/src/servers/sapphire_zone/Territory/HousingZone.cpp b/src/servers/sapphire_zone/Territory/HousingZone.cpp index 57390006..b5304093 100644 --- a/src/servers/sapphire_zone/Territory/HousingZone.cpp +++ b/src/servers/sapphire_zone/Territory/HousingZone.cpp @@ -32,7 +32,7 @@ Sapphire::HousingZone::HousingZone( uint8_t wardNum, const std::string& contentName ) : Zone( territoryTypeId, guId, internalName, contentName ), m_wardNum( wardNum ), - m_zoneId( territoryTypeId ), + m_territoryTypeId( territoryTypeId ), m_landSetId( ( static_cast< uint32_t >( territoryTypeId ) << 16 ) | wardNum ) { @@ -49,13 +49,13 @@ bool Sapphire::HousingZone::init() } int housingIndex; - if( m_zoneId == 339 ) + if( m_territoryTypeId == 339 ) housingIndex = 0; - else if( m_zoneId == 340 ) + else if( m_territoryTypeId == 340 ) housingIndex = 1; - else if( m_zoneId == 341 ) + else if( m_territoryTypeId == 341 ) housingIndex = 2; - else if( m_zoneId == 641 ) + else if( m_territoryTypeId == 641 ) housingIndex = 3; auto pExdData = g_fw.get< Data::ExdDataGenerated >(); diff --git a/src/servers/sapphire_zone/Territory/HousingZone.h b/src/servers/sapphire_zone/Territory/HousingZone.h index 9f0ab003..985bbbba 100644 --- a/src/servers/sapphire_zone/Territory/HousingZone.h +++ b/src/servers/sapphire_zone/Territory/HousingZone.h @@ -56,7 +56,7 @@ namespace Sapphire LandPtrMap m_landPtrMap; uint8_t m_wardNum; uint32_t m_landSetId; - uint32_t m_zoneId; + uint32_t m_territoryTypeId; }; } diff --git a/src/servers/sapphire_zone/Territory/Zone.h b/src/servers/sapphire_zone/Territory/Zone.h index 13d27e40..717973a2 100644 --- a/src/servers/sapphire_zone/Territory/Zone.h +++ b/src/servers/sapphire_zone/Territory/Zone.h @@ -16,7 +16,7 @@ #include #include -namespace Sapphire +namespace Sapphire { class Session; From f589ff081547aa596c7597a3789854493dd7fc97 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 16:42:46 +1100 Subject: [PATCH 144/385] cleanup and document storeroom status actrl --- src/common/Network/CommonActorControl.h | 23 +++++++++++++++---- .../Housing/HousingInteriorTerritory.cpp | 22 +++++++++--------- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 208aeb97..e15c95c3 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -207,23 +207,38 @@ enum ActorControlType : uint16_t Dismount = 0x3A0, // Duty Recorder - BeginReplayAck = 0x3A1, + BeginReplayAck = 0x3A1, EndReplayAck = 0x3A2, // Housing - ShowHousingItemUI = 0x3F7, + ShowHousingItemUI = 0x3F7, ShowBuildPresetUI = 0x3E9, BuildPresetResponse = 0x3ED, + /*! + * param1 = outdoor furnishings + * u8 0 - relocation available, 1 = available + * u8 1 - outoor furnishings placed + * u8 2 - outdoor furnishings in storeroom + * u8 3 - outdoor funishings limit + * param2 = indoor furnishings + * u16 0 - relocation available, 1 = available + * u16 1 - furnishings placed + * param3 = indoor furnishings + * u16 0 - in storeroom + * u16 1 - indoor furnishings limit + */ + HousingStoreroomStatus = 0x419, + // PvP Duel - SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client) + SetPvPState = 0x5E0, // param3 must be 6 to engage a duel (hardcoded in the client) EndDuelSession = 0x5E1, // because someone went oob? StartDuelCountdown = 0x5E2, // begins a countdown; also does some duel bgm thing. StartDuel = 0x5E3, // actually all it does is set the challenger actor id; DuelResultScreen = 0x5E4, // win/lose thing, also reset a target id just like what EndDuelSession does. // Duty Action - SetDutyActionId = 0x5E8, // ContentExAction + SetDutyActionId = 0x5E8, // ContentExAction SetDutyActionHud = 0x5E9, // disable/enable SetDutyActionActive = 0x5EA, SetDutyActionRemaining = 0x5EB, diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp index 758274ff..009c8d35 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp @@ -56,26 +56,26 @@ void Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) "HousingInteriorTerritory::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + ", Entity#" + std::to_string( player.getId() ) ); - auto housingIndoorInitializPacket = makeZonePacket< FFXIVIpcHousingIndoorInitialize >( player.getId() ); - housingIndoorInitializPacket->data().u1 = 2578; - housingIndoorInitializPacket->data().u2 = 10; - housingIndoorInitializPacket->data().u3 = 530; - housingIndoorInitializPacket->data().u4 = 266; + auto indoorInitPacket = makeZonePacket< FFXIVIpcHousingIndoorInitialize >( player.getId() ); + indoorInitPacket->data().u1 = 0; + indoorInitPacket->data().u2 = 0; + indoorInitPacket->data().u3 = 0; + indoorInitPacket->data().u4 = 0; auto landSetId = pHousingMgr->toLandSetId( m_landIdent.territoryTypeId, m_landIdent.wardNum ); auto pLand = pHousingMgr->getHousingZoneByLandSetId( landSetId )->getLand( m_landIdent.landId ); auto pHouse = pLand->getHouse(); + for( auto i = 0; i < 10; i++ ) + { + indoorInitPacket->data().indoorItems[ i ] = pHouse->getHouseInteriorPart( (Common::HousingInteriorSlot)i ); + } + uint32_t yardPacketNum; uint32_t yardPacketTotal = 2 + pLand->getSize(); - for( auto i = 0; i < 10; i++ ) - { - housingIndoorInitializPacket->data().indoorItems[ i ] = pHouse->getHouseInteriorPart( (Common::HousingInteriorSlot)i ); - } - - player.queuePacket( housingIndoorInitializPacket ); + player.queuePacket( indoorInitPacket ); for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { From 150eb3317b9ca40703956a839f1044c26aea86e1 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 17:27:59 +1100 Subject: [PATCH 145/385] minor cleanup and track house zone player activity --- .../common/eobj/HousingEstateEntrance.cpp | 1 + .../Housing/HousingInteriorTerritory.cpp | 23 +++++++++++-------- .../Housing/HousingInteriorTerritory.h | 3 +++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp index 7394ac86..b92ca7b9 100644 --- a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp @@ -35,6 +35,7 @@ public: ident.landId = eobj.getHousingLink() >> 8; ident.territoryTypeId = zone->getTerritoryTypeId(); ident.wardNum = zone->getWardNum(); + ident.worldId = 67; auto internalZone = terriMgr->findOrCreateHousingInterior( ident ); if( internalZone ) diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp index 009c8d35..373d725a 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp @@ -35,7 +35,7 @@ Housing::HousingInteriorTerritory::HousingInteriorTerritory( Common::LandIdent i Zone( territoryTypeId, guId, internalName, contentName ), m_landIdent( ident ) { - + m_lastActivityTime = static_cast< uint32_t >( Util::getTimeSeconds() ); } Housing::HousingInteriorTerritory::~HousingInteriorTerritory() @@ -79,22 +79,27 @@ void Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) for( yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { - auto housingObjectInitializPacket = makeZonePacket< FFXIVIpcHousingObjectInitialize >( player.getId() ); - memcpy( &housingObjectInitializPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) ); - housingObjectInitializPacket->data().landIdent.worldId = 67; - housingObjectInitializPacket->data().u1 = 0; - housingObjectInitializPacket->data().u2 = 100; - housingObjectInitializPacket->data().packetNum = yardPacketNum; - housingObjectInitializPacket->data().packetTotal = yardPacketTotal; + auto objectInitPacket = makeZonePacket< FFXIVIpcHousingObjectInitialize >( player.getId() ); + memcpy( &objectInitPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) ); + objectInitPacket->data().u1 = 0; + objectInitPacket->data().u2 = 100; + objectInitPacket->data().packetNum = yardPacketNum; + objectInitPacket->data().packetTotal = yardPacketTotal; //TODO: Add Objects here - player.queuePacket( housingObjectInitializPacket ); + player.queuePacket( objectInitPacket ); } } void Housing::HousingInteriorTerritory::onUpdate( uint32_t currTime ) { + if( m_playerMap.size() > 0 ) + m_lastActivityTime = currTime; +} +uint32_t Housing::HousingInteriorTerritory::getLastActivityTime() const +{ + return m_lastActivityTime; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h index 281d4bc4..e5be57a9 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h @@ -18,7 +18,10 @@ namespace Sapphire::World::Territory::Housing void onPlayerZoneIn( Entity::Player& player ) override; void onUpdate( uint32_t currTime ) override; + uint32_t getLastActivityTime() const; + private: Common::LandIdent m_landIdent; + uint32_t m_lastActivityTime; }; } \ No newline at end of file From b91f41ba2987ab7bfb972a769abe72d7ee9b6a87 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 18:05:50 +1100 Subject: [PATCH 146/385] remove house instances that haven't had a player for 60 seconds --- .../sapphire_zone/Manager/TerritoryMgr.cpp | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp index 5b4de6b8..7859f7cf 100644 --- a/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Manager/TerritoryMgr.cpp @@ -446,6 +446,29 @@ void Sapphire::World::Manager::TerritoryMgr::updateTerritoryInstances( uint32_t { zone->update( currentTime ); } + + auto pLog = g_fw.get< Logger >(); + + // remove internal house zones with nobody in them + for( auto it = m_landIdentToZonePtrMap.begin(); it != m_landIdentToZonePtrMap.end(); ) + { + auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( it->second ); + assert( zone ); // wtf?? + + auto diff = std::difftime( currentTime, zone->getLastActivityTime() ); + + // todo: make this timeout configurable, though should be pretty relaxed in any case + if( diff > 60 ) + { + pLog->info( "Removing HousingInteriorTerritory#" + std::to_string( zone->getGuId() ) + " - has been inactive for 60 seconds" ); + + // remove zone from maps + m_zoneSet.erase( zone ); + it = m_landIdentToZonePtrMap.erase( it ); + } + else + it++; + } } Sapphire::World::Manager::TerritoryMgr::InstanceIdList Sapphire::World::Manager::TerritoryMgr::getInstanceContentIdList( uint16_t instanceContentId ) const From 78fd15f0af4346382e1f350d176bfda109756c94 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 18:50:06 +1100 Subject: [PATCH 147/385] only spawn/lookup house instance if player chooses to enter --- src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp index b92ca7b9..a576bc19 100644 --- a/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/servers/Scripts/common/eobj/HousingEstateEntrance.cpp @@ -23,6 +23,10 @@ public: player.playScene( eventId, 0, 0, [this, eobj]( Entity::Player& player, const Event::SceneResult& result ) { + // param2 == 1 when player wants to enter house + if( result.param2 != 1 ) + return; + auto terriMgr = getFramework()->get< Sapphire::World::Manager::TerritoryMgr >(); if( !terriMgr ) return; @@ -43,10 +47,6 @@ public: player.sendDebug( "created zone with guid: " + std::to_string( internalZone->getGuId() ) + "\nname: " + internalZone->getName() ); } - // param2 == 1 when player wants to enter house - if( result.param2 != 1 ) - return; - player.eventFinish( result.eventId, 1 ); player.setPos( { 0.f, 0.f, 0.f } ); From 29dbc7fb19718de3f24ec12f621276314d34a110 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 19:44:38 +1100 Subject: [PATCH 148/385] fix housing furnishings menu not closing properly --- .../Network/Handlers/ClientTriggerHandler.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index c1160246..277ac909 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -411,7 +411,13 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX } case ClientTriggerType::RequestHousingItemUI: { - uint8_t ward = ( param12 & 0xFF00 ) >> 8; + // close ui + if( param11 == 1 ) + break; + + // param12 is 0 when inside a house + + uint8_t ward = ( param12 >> 16 ) & 0xFF; uint8_t plot = ( param12 & 0xFF ); auto pShowHousingItemUIPacket = makeActorControl142( player.getId(), ShowHousingItemUI, 0, plot ); From 61ee5bb16a3d394f5ad74b3e60b1a56ecc085a33 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 21:08:38 +1100 Subject: [PATCH 149/385] fix wrong placename when buying plot and some logmessage cleanup --- .../common/housing/CmnDefHousingSignboard.cpp | 18 +++++++----------- src/servers/sapphire_zone/Territory/Zone.cpp | 5 +++++ src/servers/sapphire_zone/Territory/Zone.h | 2 ++ 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp b/src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp index 650baee8..8b0ba8e8 100644 --- a/src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp +++ b/src/servers/Scripts/common/housing/CmnDefHousingSignboard.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "Framework.h" @@ -47,37 +48,32 @@ public: { auto screenMsgPkt = makeActorControl143( player.getId(), ActorControl::DutyQuestScreenMsg, m_id, 0x98 ); player.queuePacket( screenMsgPkt ); - auto screenMsgPkt2 = makeActorControl143( player.getId(), ActorControl::LogMsg, 0x0D16, 0x1AA, - activeLand.ward + 1, activeLand.plot + 1 ); - player.queuePacket( screenMsgPkt2 ); + + player.sendLogMessage( 0x0D16, pTerritory->getTerritoryTypeInfo()->placeName, activeLand.ward + 1, activeLand.plot + 1 ); break; } case LandPurchaseResult::ERR_NOT_ENOUGH_GIL: { - auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 3314 ); - player.queuePacket( errorMsg ); + player.sendLogMessage( 3314 ); break; } case LandPurchaseResult::ERR_NOT_AVAILABLE: { - auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 3312 ); - player.queuePacket( errorMsg ); + player.sendLogMessage( 3312 ); break; } case LandPurchaseResult::ERR_NO_MORE_LANDS_FOR_CHAR: { - auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 3313 ); - player.queuePacket( errorMsg ); + player.sendLogMessage( 3313 ); break; } case LandPurchaseResult::ERR_INTERNAL: { - auto errorMsg = makeActorControl143( player.getId(), ActorControl::LogMsg, 1995 ); - player.queuePacket( errorMsg ); + player.sendLogMessage( 1995 ); break; } } diff --git a/src/servers/sapphire_zone/Territory/Zone.cpp b/src/servers/sapphire_zone/Territory/Zone.cpp index 2c37892a..eedbe037 100644 --- a/src/servers/sapphire_zone/Territory/Zone.cpp +++ b/src/servers/sapphire_zone/Territory/Zone.cpp @@ -756,3 +756,8 @@ Sapphire::Entity::EventObjectPtr Sapphire::Zone::registerEObj( const std::string return eObj; } + +Sapphire::Data::TerritoryTypePtr Sapphire::Zone::getTerritoryTypeInfo() const +{ + return m_territoryTypeInfo; +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/Zone.h b/src/servers/sapphire_zone/Territory/Zone.h index 717973a2..132b797d 100644 --- a/src/servers/sapphire_zone/Territory/Zone.h +++ b/src/servers/sapphire_zone/Territory/Zone.h @@ -76,6 +76,8 @@ namespace Sapphire void setCurrentFestival( uint16_t festivalId, uint16_t additionalFestivalId = 0 ); + std::shared_ptr< Data::TerritoryType > getTerritoryTypeInfo() const; + virtual bool init(); virtual void loadCellCache(); From 48c0f96ce6772095884f36dc338d420bc383b2b2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 23:26:21 +1100 Subject: [PATCH 150/385] some marketboard shit --- src/common/Network/PacketDef/Ipcs.h | 6 +++++- src/common/Network/PacketDef/Zone/ClientZoneDef.h | 7 +++++++ src/common/Network/PacketDef/Zone/ServerZoneDef.h | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 3ed9e23c..9b4e072b 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -97,10 +97,12 @@ namespace Sapphire::Network::Packets ReqMoogleMailLetter = 0x011A, // updated 4.4 MailLetterNotification = 0x011B, // updated 4.4 - ExamineFreeCompanyInfo = 0x013A, // updated 4.1 + MarketBoardItemSummaryListResponse = 0x0125, // updated 4.4 + CharaFreeCompanyTag = 0x0127, // updated 4.4 FreeCompanyBoardMsg = 0x0128, // updated 4.4 FreeCompanyInfo = 0x0129, // updated 4.4 + ExamineFreeCompanyInfo = 0x013A, // updated 4.1 StatusEffectList = 0x0149, // updated 4.4 Effect = 0x014C, // updated 4.4 @@ -258,6 +260,8 @@ namespace Sapphire::Network::Packets LinkshellListHandler = 0x00F4, // updated 4.3 + MarketBoardRequestItemListings = 0x00FE, // updated 4.4 + SearchMarketboard = 0x0103, // updated 4.3 ReqExamineFcInfo = 0x010F, // updated 4.1 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 07fc7d88..b2b33033 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -233,6 +233,13 @@ struct FFXIVIpcSetSharedEstateSettings : /* 0029 */ char padding3[0x7]; }; +struct FFXIVIpcMarketBoardRequestItemListings : + FFXIVIpcBasePacket< MarketBoardRequestItemListings > +{ + /* 0000 */ uint32_t itemCatalogId; + /* 0004 */ uint32_t padding; +}; + } } } diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 64bc9a03..cf60c0bc 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1830,6 +1830,21 @@ struct FFXIVIpcDuelChallenge : char otherName[32]; }; +struct FFXIVIpcMarketBoardItemSummaryListResponse : + FFXIVIpcBasePacket< MarketBoardItemSummaryListResponse > +{ + struct MarketBoardItemSummary + { + uint32_t itemId; + uint32_t quantity; + } items[20]; + + uint32_t itemIndexEnd; + uint32_t padding1; + uint32_t itemIndexStart; + uint32_t padding2; +}; + } /* Server */ } /* Packets */ From b3810069d03001e29d0dc99622c900211b8bde0a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 2 Dec 2018 23:40:18 +1100 Subject: [PATCH 151/385] marketboard packets --- src/common/Network/PacketDef/Ipcs.h | 3 ++- .../Network/PacketDef/Zone/ServerZoneDef.h | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 9b4e072b..836a7668 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -97,7 +97,8 @@ namespace Sapphire::Network::Packets ReqMoogleMailLetter = 0x011A, // updated 4.4 MailLetterNotification = 0x011B, // updated 4.4 - MarketBoardItemSummaryListResponse = 0x0125, // updated 4.4 + MarketBoardItemListingCountResponse = 0x011C, // updated 4.4 + MarketBoardSearchResultResponse = 0x0125, // updated 4.4 CharaFreeCompanyTag = 0x0127, // updated 4.4 FreeCompanyBoardMsg = 0x0128, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index cf60c0bc..700b372c 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1830,12 +1830,12 @@ struct FFXIVIpcDuelChallenge : char otherName[32]; }; -struct FFXIVIpcMarketBoardItemSummaryListResponse : - FFXIVIpcBasePacket< MarketBoardItemSummaryListResponse > +struct FFXIVIpcMarketBoardSearchResultResponse : + FFXIVIpcBasePacket< MarketBoardSearchResultResponse > { - struct MarketBoardItemSummary + struct MarketBoardItem { - uint32_t itemId; + uint32_t itemCatalogId; uint32_t quantity; } items[20]; @@ -1845,6 +1845,16 @@ struct FFXIVIpcMarketBoardItemSummaryListResponse : uint32_t padding2; }; +struct FFFXIVIpcMarketBoardItemListingCountResponse : + FFXIVIpcBasePacket< MarketBoardItemListingCountResponse > +{ + uint32_t itemCatalogId; + uint32_t unknown1; // does some shit if nonzero + uint16_t unknown2; + uint16_t quantity; // high/low u8s read separately? + uint32_t padding3; +}; + } /* Server */ } /* Packets */ From c30ce5deb1656d99061907167957b1931821f14e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 3 Dec 2018 00:11:26 +1100 Subject: [PATCH 152/385] market board item history packet --- src/common/Network/PacketDef/Ipcs.h | 7 +++-- .../Network/PacketDef/Zone/ServerZoneDef.h | 29 ++++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 836a7668..72debdad 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -97,8 +97,10 @@ namespace Sapphire::Network::Packets ReqMoogleMailLetter = 0x011A, // updated 4.4 MailLetterNotification = 0x011B, // updated 4.4 - MarketBoardItemListingCountResponse = 0x011C, // updated 4.4 - MarketBoardSearchResultResponse = 0x0125, // updated 4.4 + MarketBoardItemListingCount = 0x011C, // updated 4.4 + MarketBoardItemListing = 0x011D, // updated 4.4 + MarketBoardItemListingHistory = 0x0121, // updated 4.4 + MarketBoardSearchResult = 0x0125, // updated 4.4 CharaFreeCompanyTag = 0x0127, // updated 4.4 FreeCompanyBoardMsg = 0x0128, // updated 4.4 @@ -262,6 +264,7 @@ namespace Sapphire::Network::Packets LinkshellListHandler = 0x00F4, // updated 4.3 MarketBoardRequestItemListings = 0x00FE, // updated 4.4 + MarketBoardRequestScopedItemListings = 0x00FF, // updated 4.4 SearchMarketboard = 0x0103, // updated 4.3 ReqExamineFcInfo = 0x010F, // updated 4.1 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 700b372c..2db26254 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1830,8 +1830,8 @@ struct FFXIVIpcDuelChallenge : char otherName[32]; }; -struct FFXIVIpcMarketBoardSearchResultResponse : - FFXIVIpcBasePacket< MarketBoardSearchResultResponse > +struct FFXIVIpcMarketBoardSearchResult : + FFXIVIpcBasePacket< MarketBoardSearchResult > { struct MarketBoardItem { @@ -1845,8 +1845,8 @@ struct FFXIVIpcMarketBoardSearchResultResponse : uint32_t padding2; }; -struct FFFXIVIpcMarketBoardItemListingCountResponse : - FFXIVIpcBasePacket< MarketBoardItemListingCountResponse > +struct FFFXIVIpcMarketBoardItemListingCount : + FFXIVIpcBasePacket< MarketBoardItemListingCount > { uint32_t itemCatalogId; uint32_t unknown1; // does some shit if nonzero @@ -1855,6 +1855,27 @@ struct FFFXIVIpcMarketBoardItemListingCountResponse : uint32_t padding3; }; +struct FFXIVIpcMarketBoardItemListingHistory : + FFXIVIpcBasePacket< MarketBoardItemListingHistory > +{ + uint32_t itemCatalogId; + uint32_t itemCatalogId2; + + struct MarketListing + { + uint32_t salePrice; + time_t purchaseTime; + uint32_t quantity; + uint16_t unknown1; + uint8_t unknown2; + + char sellerName[32]; + + uint8_t unknown3; + uint32_t itemCatalogId; + } listing[20]; +}; + } /* Server */ } /* Packets */ From 0b137d740f70fa095f2e209679b8880ca790e25e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 3 Dec 2018 00:23:07 +1100 Subject: [PATCH 153/385] make the client marketboard ipc names clearer --- src/common/Network/PacketDef/Ipcs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 72debdad..51a4c4bf 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -263,8 +263,8 @@ namespace Sapphire::Network::Packets LinkshellListHandler = 0x00F4, // updated 4.3 - MarketBoardRequestItemListings = 0x00FE, // updated 4.4 - MarketBoardRequestScopedItemListings = 0x00FF, // updated 4.4 + MarketBoardRequestItemInformation = 0x00FE, // updated 4.4 + MarketBoardRequestItemListings = 0x00FF, // updated 4.4 SearchMarketboard = 0x0103, // updated 4.3 ReqExamineFcInfo = 0x010F, // updated 4.1 From 2c89d7923d7d5a571546b39d8735ed4d61fe4d8d Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 4 Dec 2018 21:47:27 +1100 Subject: [PATCH 154/385] housing containers --- src/common/Common.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/common/Common.h b/src/common/Common.h index 2ed618a3..6ac99a0c 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -221,7 +221,10 @@ namespace Sapphire::Common FreeCompanyBag2 = 20002, FreeCompanyGil = 22000, FreeCompanyCrystal = 22001, - HousingOutdoorItems = 25001 + + HousingExternalAppearance = 25000, + HousingOutdoorItems = 25001, + HousingInternalAppearance = 25002, }; enum ContainerType : uint16_t From ed3ada40206e3ff032361cdfa29ac146eb329a8e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 4 Dec 2018 22:20:41 +1100 Subject: [PATCH 155/385] show house greetings on ward selection ui --- src/common/Common.h | 2 +- .../sapphire_zone/Manager/HousingMgr.cpp | 41 +++++++++++++++++-- .../sapphire_zone/Manager/HousingMgr.h | 2 + .../Network/Handlers/ClientTriggerHandler.cpp | 22 ++++++++++ 4 files changed, 63 insertions(+), 4 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 6ac99a0c..1c695917 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -864,7 +864,7 @@ namespace Sapphire::Common { IsEstateOwned = 1, IsPublicEstate = 2, - HasEstateMessage = 4, + HasEstateGreeting = 4, EstateFlagUnknown = 8, IsFreeCompanyEstate = 16, }; diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.cpp b/src/servers/sapphire_zone/Manager/HousingMgr.cpp index e58922b2..60f04b8a 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Manager/HousingMgr.cpp @@ -244,6 +244,9 @@ void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& pla wardInfoPacket->data().landIdent.wardNum = wardId; wardInfoPacket->data().landIdent.territoryTypeId = territoryTypeId; + // todo: properly get worldId + wardInfoPacket->data().landIdent.worldId = 67; + for( int i = 0; i < 60; i++ ) { auto land = hZone->getLand( i ); @@ -258,20 +261,26 @@ void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& pla if( land->getState() == Common::HouseState::forSale ) continue; + if( auto house = land->getHouse() ) + { + if( !house->getHouseGreeting().empty() ) + entry.infoFlags |= WardlandFlags::HasEstateGreeting; + } + switch( land->getLandType() ) { case LandType::FreeCompany: - entry.infoFlags = Common::WardlandFlags::IsEstateOwned | Common::WardlandFlags::IsFreeCompanyEstate; + entry.infoFlags |= Common::WardlandFlags::IsEstateOwned | Common::WardlandFlags::IsFreeCompanyEstate; // todo: send FC name break; case LandType::Private: - entry.infoFlags = Common::WardlandFlags::IsEstateOwned; + entry.infoFlags |= Common::WardlandFlags::IsEstateOwned; auto owner = land->getPlayerOwner(); - std::string playerName = g_fw.get< Sapphire::ServerMgr >()->getPlayerNameFromDb( owner ); + auto playerName = g_fw.get< Sapphire::ServerMgr >()->getPlayerNameFromDb( owner ); memcpy( &entry.estateOwnerName, playerName.c_str(), playerName.size() ); break; @@ -284,6 +293,32 @@ void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& pla player.queuePacket( wardInfoPacket ); } +void Sapphire::World::Manager::HousingMgr::sendEstateGreeting( Entity::Player& player, const Common::LandIdent ident ) +{ + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); + auto hZone = getHousingZoneByLandSetId( landSetId ); + + if( !hZone ) + return; + + auto land = hZone->getLand( ident.landId ); + if( !land ) + return; + + auto house = land->getHouse(); + if( !house ) + return; + + auto greetingPacket = makeZonePacket< FFXIVIpcHousingEstateGreeting >( player.getId() ); + + greetingPacket->data().landIdent = ident; + + auto greeting = house->getHouseGreeting(); + memcpy( &greetingPacket->data().message, greeting.c_str(), greeting.size() ); + + player.queuePacket( greetingPacket ); +} + void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ) { auto hZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.h b/src/servers/sapphire_zone/Manager/HousingMgr.h index 73e67125..f0e3c170 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.h +++ b/src/servers/sapphire_zone/Manager/HousingMgr.h @@ -43,6 +43,8 @@ namespace Sapphire::World::Manager void requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + void sendEstateGreeting( Entity::Player& player, const Common::LandIdent ident ); + }; } diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 277ac909..482e10c6 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -427,6 +427,28 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX break; } + case ClientTriggerType::RequestEstateGreeting: + { + uint16_t territoryTypeId = param11 & 0xFFFF; + uint16_t worldId = param11 >> 16; + + uint8_t ward = ( param12 >> 16 ) & 0xFF; + uint8_t plot = ( param12 & 0xFF ); + + auto housingMgr = g_fw.get< HousingMgr >(); + if( !housingMgr ) + break; + + Common::LandIdent ident; + ident.territoryTypeId = territoryTypeId; + ident.worldId = worldId; + ident.wardNum = ward; + ident.landId = plot; + + housingMgr->sendEstateGreeting( player, ident ); + + break; + } default: { From cee0ca87b47b4949275e8ce7c355289a37f1b28e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 4 Dec 2018 22:27:54 +1100 Subject: [PATCH 156/385] fix shops only charging you the cost of 1 item even if you buy multiple --- src/servers/sapphire_zone/Manager/ShopMgr.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Manager/ShopMgr.cpp b/src/servers/sapphire_zone/Manager/ShopMgr.cpp index bc37488c..9eb4ed09 100644 --- a/src/servers/sapphire_zone/Manager/ShopMgr.cpp +++ b/src/servers/sapphire_zone/Manager/ShopMgr.cpp @@ -22,13 +22,15 @@ bool Sapphire::World::Manager::ShopMgr::purchaseGilShopItem( Entity::Player& pla if( !item ) return false; - if( player.getCurrency( Common::CurrencyType::Gil ) < item->priceMid ) + auto price = item->priceMid * quantity; + + if( player.getCurrency( Common::CurrencyType::Gil ) < price ) return false; if( !player.addItem( gilShopItem->item, quantity ) ) return false; - player.removeCurrency( Common::CurrencyType::Gil, item->priceMid ); + player.removeCurrency( Common::CurrencyType::Gil, price ); return true; } \ No newline at end of file From 60e643dd0e94c6dce59ca9d4c6b6a46c11de8c7a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 4 Dec 2018 23:00:49 +1100 Subject: [PATCH 157/385] housing item containers and some minor cleanup/refactoring --- sql/houseiteminventory.sql | 9 ++++ src/common/Common.h | 9 ++-- src/servers/sapphire_zone/Territory/Land.cpp | 57 ++++++++++---------- src/servers/sapphire_zone/Territory/Land.h | 8 +-- 4 files changed, 48 insertions(+), 35 deletions(-) create mode 100644 sql/houseiteminventory.sql diff --git a/sql/houseiteminventory.sql b/sql/houseiteminventory.sql new file mode 100644 index 00000000..3746e672 --- /dev/null +++ b/sql/houseiteminventory.sql @@ -0,0 +1,9 @@ +CREATE TABLE `houseiteminventory` ( + `landIdent` BIGINT(20) UNSIGNED NOT NULL, + `containerId` INT(10) UNSIGNED NOT NULL, + `itemId` INT(20) NOT NULL, + INDEX `landIdent` (`landIdent`) +) +COLLATE='latin1_swedish_ci' +ENGINE=InnoDB +; diff --git a/src/common/Common.h b/src/common/Common.h index 1c695917..14de2012 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -223,8 +223,9 @@ namespace Sapphire::Common FreeCompanyCrystal = 22001, HousingExternalAppearance = 25000, - HousingOutdoorItems = 25001, + HousingOutdoorItemStoreroom = 25001, HousingInternalAppearance = 25002, + HousingIndoorItemStoreroom = 25003, }; enum ContainerType : uint16_t @@ -826,9 +827,9 @@ namespace Sapphire::Common enum HouseSize : uint8_t { - small, - medium, - big + Cottage, + House, + Mansion }; enum HouseState : uint8_t diff --git a/src/servers/sapphire_zone/Territory/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp index d61dcaf5..4ef3bae8 100644 --- a/src/servers/sapphire_zone/Territory/Land.cpp +++ b/src/servers/sapphire_zone/Territory/Land.cpp @@ -45,7 +45,7 @@ Sapphire::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, { memset( &m_tag, 0x00, 3 ); - load(); + init(); } Sapphire::Land::~Land() @@ -53,7 +53,7 @@ Sapphire::Land::~Land() } -void Sapphire::Land::load() +void Sapphire::Land::init() { auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); auto res = pDb->query( "SELECT * FROM land WHERE LandSetId = " + std::to_string( m_landSetId ) + " " @@ -98,7 +98,34 @@ void Sapphire::Land::load() m_mapMarkerPosition.z = info->z; } - init(); + switch( m_size ) + { + case HouseSize::Cottage: + m_maxPlacedExternalItems = 20; + m_maxPlacedInternalItems = 200; + break; + case HouseSize::House: + m_maxPlacedExternalItems = 30; + m_maxPlacedInternalItems = 300; + break; + case HouseSize::Mansion: + m_maxPlacedExternalItems = 40; + m_maxPlacedInternalItems = 400; + break; + default: + break; + } + + // init item containers + auto setupContainer = [ this ]( InventoryType type, uint8_t maxSize ) + { + m_landInventoryMap[ type ] = make_ItemContainer( type, maxSize, "houseiteminventory", true, true ); + }; + + setupContainer( InventoryType::HousingExternalAppearance, 8 ); + setupContainer( InventoryType::HousingInternalAppearance, 8 ); + setupContainer( InventoryType::HousingOutdoorItemStoreroom, m_maxPlacedExternalItems ); + setupContainer( InventoryType::HousingIndoorItemStoreroom, m_maxPlacedInternalItems ); } uint32_t Sapphire::Land::convertItemIdToHousingItemId( uint32_t itemId ) @@ -223,11 +250,6 @@ uint32_t Sapphire::Land::getPlayerOwner() return m_ownerPlayerId; } -uint32_t Sapphire::Land::getMaxItems() -{ - return m_maxItems; -} - uint32_t Sapphire::Land::getDevaluationTime() { return m_nextDrop - static_cast< uint32_t >( Util::getTimeSeconds() ); @@ -248,25 +270,6 @@ uint8_t Sapphire::Land::getLandTag( uint8_t slot ) return m_tag[ slot ]; } -void Sapphire::Land::init() -{ - - switch( m_size ) - { - case HouseSize::small: - m_maxItems = 20; - break; - case HouseSize::medium: - m_maxItems = 30; - break; - case HouseSize::big: - m_maxItems = 40; - break; - default: - break; - } -} - void Sapphire::Land::updateLandDb() { uint32_t houseId = 0; diff --git a/src/servers/sapphire_zone/Territory/Land.h b/src/servers/sapphire_zone/Territory/Land.h index 3720354a..1b4b2fa1 100644 --- a/src/servers/sapphire_zone/Territory/Land.h +++ b/src/servers/sapphire_zone/Territory/Land.h @@ -18,7 +18,7 @@ namespace Sapphire Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, Sapphire::Data::HousingLandSetPtr info ); virtual ~Land(); - void load(); + using LandInventoryMap = std::unordered_map< uint32_t, ItemContainerPtr >; //Primary state void setSize( uint8_t size ); @@ -53,7 +53,6 @@ namespace Sapphire void updateLandDb(); void update( uint32_t currTime ); - uint32_t getMaxItems(); uint32_t getCurrentPrice() const; uint32_t getMaxPrice() const; uint32_t getDevaluationTime(); @@ -87,8 +86,9 @@ namespace Sapphire Sapphire::HousePtr m_pHouse; //item storage - Sapphire::ItemContainerPtr ItemsOutdoorContainer; - uint32_t m_maxItems; + LandInventoryMap m_landInventoryMap; + uint32_t m_maxPlacedExternalItems; + uint32_t m_maxPlacedInternalItems; //price uint32_t m_initPrice; From 23226f0e441ae127e744bb8d7c30b38f58f94752 Mon Sep 17 00:00:00 2001 From: Mordred Date: Fri, 7 Dec 2018 00:06:59 +0100 Subject: [PATCH 158/385] Fixed small event issues. Changed sapphire to use new DB setup. Database has to be created using the schema.sql and inserts.sql --- sql/schema/inserts.sql | 9185 +++++++++++++++++ sql/schema/schema.sql | 565 + src/common/Database/ZoneDbConnection.cpp | 10 +- src/dbm/DbManager.cpp | 54 +- src/servers/Scripts/quest/ManFst001.cpp | 1 + src/servers/Scripts/quest/ManSea001.cpp | 1 + src/servers/Scripts/quest/ManWil001.cpp | 1 + src/servers/sapphire_api/PlayerMinimal.cpp | 16 +- src/servers/sapphire_api/SapphireAPI.cpp | 2 +- .../sapphire_zone/Actor/PlayerEvent.cpp | 83 +- 10 files changed, 9858 insertions(+), 60 deletions(-) create mode 100644 sql/schema/inserts.sql create mode 100644 sql/schema/schema.sql diff --git a/sql/schema/inserts.sql b/sql/schema/inserts.sql new file mode 100644 index 00000000..dc9568b9 --- /dev/null +++ b/sql/schema/inserts.sql @@ -0,0 +1,9185 @@ + +INSERT INTO `accounts` (`account_id`, `account_name`, `account_pass`, `account_created`, `account_status`) VALUES +(1, 'Admin', 'Admin', 0, 2); + + +INSERT INTO `bnpctemplate` (`Id`, `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES +(1, 'littleladybug_49', 49, 49, 0, 0, 1, 4, 4, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(2, 'beecloud_57', 57, 395, 0, 0, 1, 4, 4, 60, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(3, 'watersprite_59', 59, 56, 0, 0, 1, 4, 4, 385, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(4, 'tinymandragora_118', 118, 405, 0, 0, 1, 4, 4, 297, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(5, 'wildjackal_138', 138, 399, 0, 0, 2, 4, 4, 160, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(6, 'woundedaurochs_323', 323, 358, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(7, 'megalocrab_326', 326, 561, 0, 0, 1, 4, 4, 148, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(8, 'lostlamb_338', 338, 392, 0, 0, 1, 4, 4, 287, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(9, 'pukhatchling_341', 341, 401, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(10, 'bogy_342', 342, 404, 0, 0, 1, 4, 4, 264, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(11, 'wharfrat_347', 347, 417, 0, 0, 1, 4, 4, 24, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(12, 'groundedpirate_348', 348, 421, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), +(13, 'groundedraider_349', 349, 418, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), +(14, 'CaptainPetyrPigeontoe_350', 350, 419, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100014b010304016b3b2b000001023b83000200006400320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), +(15, 'pugil_383', 383, 640, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(16, 'wespe_385', 385, 641, 0, 0, 1, 4, 4, 359, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(17, 'goblingambler_769', 769, 3099, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), +(18, 'strikingdummy_901', 901, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(19, 'mosslessgoobbue_1447', 1447, 354, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(20, 'SkogsFru_3184', 3184, 2928, 0, 0, 1, 4, 0, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(21, 'galago_5', 5, 408, 0, 0, 1, 4, 4, 31, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(22, 'nestingbuzzard_12', 12, 299, 0, 0, 1, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(23, 'cavebat_38', 38, 364, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(24, 'windsprite_133', 133, 115, 0, 0, 1, 4, 4, 383, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(25, 'lightningsprite_135', 135, 117, 0, 0, 1, 4, 4, 384, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(26, 'Morabymole_205', 205, 409, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(27, 'firefly_306', 306, 129, 0, 0, 1, 4, 4, 78, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(28, 'rivertoad_313', 313, 349, 0, 0, 1, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(29, 'aurelia_324', 324, 563, 0, 0, 1, 4, 4, 279, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(30, 'wilddodo_339', 339, 393, 0, 0, 1, 4, 4, 173, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(31, 'packrat_351', 351, 1101, 0, 0, 2, 4, 4, 26, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(32, 'koboldpotman_751', 751, 378, 4297588937, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), +(33, 'kobolddustman_752', 752, 368, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), +(34, 'koboldsupplicant_754', 754, 372, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), +(35, 'Qiqirneggdigger_771', 771, 350, 0, 0, 2, 4, 4, 14, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), +(36, 'Cepheus_855', 855, 1058, 0, 0, 2, 4, 4, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(37, 'Barbastelle_3185', 3185, 2929, 0, 0, 1, 4, 0, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(38, 'grassraptor_2', 2, 411, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(39, 'gigantoad_26', 26, 26, 0, 0, 2, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(40, '2ndCohorthoplomachus_55', 55, 1821, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(41, '2ndCohortlaquearius_61', 61, 1822, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(42, '2ndCohorteques_62', 62, 1823, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(43, '2ndCohortsecutor_63', 63, 1824, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(44, '2ndCohortsignifer_64', 64, 1825, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(45, 'junglecoeurl_117', 117, 352, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(46, 'dungmidgeswarm_136', 136, 396, 0, 0, 1, 4, 4, 58, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(47, 'giantpelican_178', 178, 366, 0, 0, 2, 4, 4, 154, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(48, '2ndCohortvanguard_201', 201, 1826, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(49, 'Bloodshorebell_312', 312, 361, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(50, 'apkallu_314', 314, 341, 0, 0, 1, 4, 4, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(51, 'goobbue_320', 320, 353, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(52, 'mildewedgoobbue_321', 321, 355, 0, 0, 2, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(53, 'largebuffalo_322', 322, 1313, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(54, 'snipper_325', 325, 560, 0, 0, 2, 4, 4, 149, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(55, 'koboldpatrolman_328', 328, 379, 8592556233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), +(56, 'koboldpitman_329', 329, 369, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), +(57, 'koboldmissionary_331', 331, 373, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), +(58, 'corkbulb_384', 384, 684, 0, 0, 1, 4, 4, 358, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(59, 'colibri_386', 386, 639, 0, 0, 2, 4, 4, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(60, 'BloodyMary_3186', 3186, 2930, 0, 0, 1, 4, 0, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(61, 'arborbuzzard_12', 12, 13, 0, 0, 2, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(62, 'deadmansmoan_20', 20, 1854, 25772425417, 0, 2, 4, 4, 17, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), +(63, 'roseling_22', 22, 400, 0, 0, 1, 4, 4, 48, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(64, 'duskbat_38', 38, 363, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(65, 'plasmoid_46', 46, 46, 0, 0, 1, 4, 4, 80, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(66, 'axolotl_139', 139, 1831, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(67, 'Rothlytpelican_181', 181, 1181, 0, 0, 2, 4, 4, 157, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(68, 'sewermole_205', 205, 410, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(69, 'hedgemole_206', 206, 403, 0, 0, 1, 4, 4, 283, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(70, 'seawasp_312', 312, 360, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(71, 'fatdodo_340', 340, 394, 0, 0, 1, 4, 4, 174, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(72, 'pukhatchling_341', 341, 402, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(73, 'Rhotanobuccaneer_348', 348, 420, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), +(74, 'Rhotanobuccaneer_349', 349, 420, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), +(75, 'preyingmantis_396', 396, 1852, 0, 0, 2, 4, 4, 376, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(76, 'killermantis_397', 397, 644, 0, 0, 2, 4, 4, 374, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(77, 'lammergeyer_403', 403, 1853, 0, 0, 2, 4, 4, 41, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(78, 'shelfscaleSahagin_765', 765, 386, 4295688693, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), +(79, 'shelfclawSahagin_766', 766, 384, 0, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), +(80, 'Sapsashelfspine_767', 767, 1829, 4295688693, 4295426149, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000), +(81, 'shoaltoothSahagin_768', 768, 2526, 51539673889, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020002000000000000000000000000000000000000000000000000000000000000000000), +(82, 'goblinhunter_769', 769, 225, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), +(83, 'shelfscaleReaver_773', 773, 347, 17182949577, 12885033061, 2, 4, 4, 0, 0, 0x05000132090101011a0101000001000100000000003200321045, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000), +(84, 'shelfclawReaver_774', 774, 345, 21474967853, 21474967903, 2, 4, 4, 0, 0, 0x0500013209020901ab15040000010115830300020064004b1045, 0x1700660008000d000800480008003f00080064000000000000000000000000000000000000000000), +(85, 'shelfeyeReaver_776', 776, 559, 30064902745, 4295033530, 2, 4, 4, 0, 0, 0x0500013209010c01149203000001029202020202006400321445, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000), +(86, 'Sapsaelbst_2832', 2832, 2527, 0, 0, 2, 4, 4, 182, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(87, 'whelkballista_2835', 2835, 2530, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(88, 'freshwhelkballista_2836', 2836, 2531, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(89, 'reinforcedwhelkballista_2837', 2837, 2532, 0, 0, 2, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(90, 'DarkHelmet_3187', 3187, 2931, 0, 0, 1, 4, 0, 722, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), +(91, 'coeurlpup_28', 28, 28, 0, 0, 2, 4, 4, 69, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(92, 'bumblebeetle_36', 36, 296, 0, 0, 1, 4, 4, 56, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(93, 'salamander_139', 139, 391, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(94, 'forestyarzon_159', 159, 381, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(95, 'wildwolf_303', 303, 1180, 0, 0, 2, 4, 4, 159, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(96, 'koboldpickman_329', 329, 370, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), +(97, 'koboldsidesman_330', 330, 376, 4295033533, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000), +(98, 'MamoolJabreeder_343', 343, 414, 4295033033, 4295426149, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), +(99, 'MamoolJaexecutioner_344', 344, 413, 4295033233, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), +(100, 'MamoolJainfiltrator_345', 345, 416, 4295033333, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), +(101, 'MamoolJasophist_346', 346, 415, 51539673889, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000), +(102, 'stoneshell_382', 382, 638, 0, 0, 1, 4, 4, 355, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(103, 'mudpugil_383', 383, 642, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(104, 'uragnite_389', 389, 643, 0, 0, 1, 4, 4, 364, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(105, 'Myradrosh_3188', 3188, 2932, 0, 0, 1, 4, 0, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(106, '3rdCohorthoplomachus_55', 55, 53, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(107, '3rdCohortlaquearius_61', 61, 58, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(108, '3rdCohorteques_62', 62, 59, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(109, '3rdCohortsecutor_63', 63, 60, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(110, '3rdCohortsignifer_64', 64, 61, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(111, 'earthsprite_131', 131, 113, 0, 0, 1, 4, 4, 386, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(112, 'basilisk_173', 173, 304, 0, 0, 2, 4, 4, 135, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(113, 'ahriman_183', 183, 242, 0, 0, 2, 4, 4, 168, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(114, 'quartzdoblyn_188', 188, 275, 0, 0, 1, 4, 4, 177, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(115, 'magitekvanguard_200', 200, 269, 0, 0, 2, 4, 4, 213, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(116, 'grenade_327', 327, 270, 0, 0, 2, 4, 4, 101, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(117, 'FlameSergeantDalvag_3183', 3183, 2927, 0, 0, 1, 4, 0, 717, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000040001000000000000000000000000000000000000000000000000000000000000000000), +(118, 'antelopestag_4', 4, 4, 0, 0, 1, 4, 4, 62, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(119, 'ked_8', 8, 8, 0, 0, 2, 4, 4, 54, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(120, 'midlandcondor_13', 13, 566, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(121, 'wildhog_16', 16, 15, 0, 0, 2, 4, 4, 45, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(122, 'kedtrap_23', 23, 23, 0, 0, 2, 4, 4, 49, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(123, 'treant_24', 24, 24, 0, 0, 2, 4, 4, 104, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(124, 'adamantoise_34', 34, 34, 0, 0, 1, 4, 4, 94, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(125, 'hoverflyswarm_41', 41, 168, 0, 0, 1, 4, 4, 59, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(126, 'will-o-the-wisp_45', 45, 45, 0, 0, 1, 4, 4, 79, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(127, 'goblinthug_52', 52, 50, 8592556233, 0, 2, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), +(128, 'Coeurlclawpoacher_79', 79, 140, 38654902773, 0, 2, 4, 4, 0, 0, 0x0401013208030201150c05000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), +(129, 'Coeurlclawhunter_81', 81, 139, 17179935321, 4295033530, 2, 4, 4, 0, 0, 0x04010132080301014a0c1e000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), +(130, 'Redbellylookout_84', 84, 52, 21474902217, 8590393445, 2, 4, 4, 0, 0, 0x02000132040102013a8a06000000028a02000302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), +(131, 'Redbellylarcener_86', 86, 172, 12885033261, 12885033311, 2, 4, 4, 0, 0, 0x0200013204010701224e06000000024e01020302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), +(132, 'Redbellysharpeye_87', 87, 83, 8590131801, 4295033530, 2, 4, 4, 0, 0, 0x0200013204030401282605000000022685010102003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), +(133, 'lesserkalong_130', 130, 112, 0, 0, 1, 4, 4, 99, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(134, 'deepvoiddeathmouse_143', 143, 170, 0, 0, 1, 4, 4, 27, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(135, 'riveryarzon_159', 159, 226, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(136, 'bigmouthorobon_302', 302, 235, 0, 0, 1, 4, 4, 270, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(137, 'stroper_304', 304, 238, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(138, 'revenant_305', 305, 236, 0, 0, 2, 4, 4, 265, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(139, 'Coeurlclawcutter_311', 311, 169, 17182556361, 17180328037, 2, 4, 4, 0, 0, 0x040101320801060189241e000000032403040301003201320000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), +(140, 'nix_27', 27, 27, 0, 0, 2, 4, 4, 127, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(141, '5thCohorthoplomachus_55', 55, 1809, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(142, '5thCohortlaquearius_61', 61, 1810, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(143, '5thCohorteques_62', 62, 1811, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(144, '5thCohortsecutor_63', 63, 1812, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(145, '5thCohortsignifer_64', 64, 1813, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), +(146, 'mudpuppy_139', 139, 645, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(147, 'morbol_140', 140, 237, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(148, '5thCohortvanguard_201', 201, 1814, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(149, 'hippogryph_645', 645, 789, 0, 0, 2, 4, 4, 134, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(150, 'hapalit_647', 647, 793, 0, 0, 2, 4, 4, 188, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(151, 'gigasshramana_727', 727, 647, 4295040839, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), +(152, 'gigasbonze_728', 728, 646, 4295106370, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), +(153, 'gigassozu_729', 729, 648, 4295040844, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), +(154, 'lakecobra_777', 777, 1851, 0, 0, 2, 4, 4, 235, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(155, 'LeechKing_3191', 3191, 2935, 0, 0, 1, 4, 0, 600, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(156, 'blackbat_1037', 1037, 38, 0, 0, 3, 4, 2, 98, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(157, 'caveaurelia_1038', 1038, 1210, 0, 0, 3, 4, 2, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(158, 'foper_7439', 7439, 5674, 0, 0, 2, 4, 4, 1906, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(159, 'spinner_7442', 7442, 5677, 0, 0, 2, 4, 4, 1542, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(160, 'velociraptor_2', 2, 412, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(161, 'ringtail_6', 6, 407, 0, 0, 1, 4, 4, 32, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(162, 'highlandcondor_13', 13, 398, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(163, 'basaltgolem_30', 30, 365, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(164, 'pteroc_65', 65, 62, 0, 0, 1, 4, 4, 131, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(165, 'coeurl_117', 117, 106, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(166, 'syntheticdoblyn_189', 189, 1836, 0, 0, 2, 4, 4, 178, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(167, 'UGhamaroroundsman_755', 755, 1832, 17182490825, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), +(168, 'UGhamaroquarryman_756', 756, 1833, 8590000529, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), +(169, 'elitebedesman_757', 757, 2521, 30064837309, 0, 2, 8, 2, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000), +(170, 'koboldpriest_758', 758, 371, 30065755013, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), +(171, 'youngcoeurl_2269', 2269, 2192, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(172, 'bombincubator_2833', 2833, 2528, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(173, 'prototypebombincubator_2834', 2834, 2529, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(174, 'UGhamarogolem_2838', 2838, 2522, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(175, 'Vuokho_3189', 3189, 2933, 0, 0, 1, 4, 0, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(176, 'strikingdummy_8016', 8016, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(177, 'cocoon_6358', 6358, 6275, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(178, 'Shinryu_6531', 6531, 5640, 0, 0, 3, 4, 0, 1893, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(179, 'tail_6930', 6930, 5789, 0, 0, 3, 4, 0, 1926, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(180, 'cocoon_6931', 6931, 6275, 0, 0, 3, 4, 0, 2007, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(181, 'ginryu_6932', 6932, 6272, 0, 0, 3, 4, 0, 1891, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(182, '(仮)鎖_6933', 6933, 6279, 0, 0, 3, 4, 0, 2054, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(183, 'icicle_6934', 6934, 6278, 0, 0, 3, 4, 0, 764, 393224, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(184, 'eyeofthestorm_6935', 6935, 6277, 0, 0, 3, 4, 0, 1453, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(185, 'hakkinryu_7299', 7299, 6273, 0, 0, 3, 4, 0, 1985, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(186, 'massivecocoon_7302', 7302, 6276, 0, 0, 3, 4, 0, 2008, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(187, 'saitaisui_6358', 6358, 7206, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(188, 'Otengu_8662', 8662, 7200, 4295827266, 0, 3, 4, 0, 2187, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(189, 'tenguember_8663', 8663, 7201, 0, 0, 3, 4, 0, 2281, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(190, 'Daidarabotchi_8664', 8664, 7202, 0, 0, 3, 4, 0, 2217, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(191, 'QitianDasheng_8665', 8665, 7203, 0, 0, 3, 4, 0, 2211, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(192, 'shadowofthesage_8666', 8666, 7204, 0, 0, 3, 4, 0, 2211, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(193, 'saitaisui_8737', 8737, 7206, 4295302988, 0, 3, 4, 3, 2218, 8, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(194, 'geomantickiyofusa_8738', 8738, 7207, 4295434050, 0, 3, 4, 1, 1813, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(195, 'geomanticapa_8739', 8739, 7208, 0, 0, 3, 4, 3, 1867, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(196, 'torrent_8740', 8740, 7209, 0, 0, 3, 4, 3, 1202, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(197, 'geomanticdhara_8741', 8741, 7210, 0, 0, 3, 4, 3, 1819, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(198, 'geomanticanila_8742', 8742, 7211, 0, 0, 3, 4, 4, 1923, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(199, '_8743', 8743, 108, 0, 0, 1, 4, 0, 1453, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(200, 'riverunkiu_8744', 8744, 7212, 0, 0, 3, 4, 2, 1719, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(201, 'jinmenju_8745', 8745, 7213, 0, 0, 3, 4, 0, 1281, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(202, 'riverhikagiri_8746', 8746, 7214, 0, 0, 3, 4, 3, 572, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(203, 'riverray_8747', 8747, 7215, 0, 0, 3, 4, 0, 1346, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(204, 'riverscorpion_8748', 8748, 7216, 0, 0, 3, 4, 2, 1057, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(205, 'dragonhornbill_8749', 8749, 7217, 0, 0, 3, 4, 2, 1944, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(206, 'dragonbifang_8750', 8750, 7218, 0, 0, 3, 4, 2, 953, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(207, 'whitebaboon_8751', 8751, 7219, 0, 0, 3, 4, 2, 2270, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(208, 'dragonweasel_8752', 8752, 7220, 0, 0, 3, 4, 3, 1948, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(209, 'servantofthesage_8754', 8754, 7205, 0, 0, 3, 4, 0, 2270, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), +(210, 'saitaisui_8780', 8780, 7206, 4295302988, 0, 1, 4, 0, 2218, 12, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000); + + +INSERT INTO `discoveryinfo` (`id`, `map_id`, `discover_id`) VALUES +(1367775, 4, 2), +(1367776, 4, 2), +(1367777, 4, 2), +(1367778, 4, 1), +(1367779, 4, 2), +(1367780, 4, 3), +(1367785, 4, 3), +(1367793, 4, 2), +(1367798, 4, 1), +(1367800, 4, 2), +(1367801, 4, 2), +(1367823, 4, 2), +(1420009, 4, 5), +(1420010, 4, 5), +(1420011, 4, 2), +(1420012, 4, 5), +(1420013, 4, 5), +(1436587, 4, 2), +(1436597, 4, 5), +(1436598, 4, 5), +(1436599, 4, 5), +(1436600, 4, 2), +(1436601, 4, 2), +(1436602, 4, 2), +(1436603, 4, 2), +(1436604, 4, 2), +(1436605, 4, 2), +(1436606, 4, 2), +(2052662, 4, 7), +(2052668, 4, 8), +(2052672, 4, 13), +(2052682, 4, 9), +(2052693, 4, 12), +(2052695, 4, 12), +(2052698, 4, 10), +(2052699, 4, 10), +(2052705, 4, 11), +(2052706, 4, 11), +(2052708, 4, 10), +(2052710, 4, 6), +(2052711, 4, 6), +(2052714, 4, 5), +(2052716, 4, 5), +(2052721, 4, 5), +(2052722, 4, 5), +(2052724, 4, 5), +(2065858, 9, 1), +(2065859, 9, 6), +(2065860, 9, 6), +(2065861, 9, 3), +(2065866, 9, 4), +(2065867, 9, 4), +(2065868, 9, 4), +(2065869, 9, 4), +(2065870, 9, 4), +(2065871, 9, 2), +(2065872, 9, 7), +(2065873, 9, 9), +(2065875, 9, 9), +(2065877, 9, 5), +(2065879, 9, 3), +(2065880, 9, 5), +(2065882, 9, 8), +(2065883, 9, 8), +(2065961, 5, 1), +(2065962, 5, 1), +(2065963, 5, 1), +(2065970, 5, 2), +(2065974, 5, 17), +(2065975, 5, 13), +(2065981, 5, 16), +(2065986, 5, 4), +(2065987, 5, 5), +(2065988, 5, 5), +(2065992, 5, 4), +(2065994, 5, 4), +(2065995, 5, 5), +(2065996, 5, 4), +(2065997, 5, 3), +(2065998, 5, 3), +(2065999, 5, 3), +(2066000, 5, 3), +(2066001, 5, 3), +(2066002, 5, 6), +(2066003, 5, 6), +(2066004, 5, 7), +(2066007, 5, 7), +(2066011, 5, 7), +(2066013, 5, 9), +(2066018, 5, 10), +(2066019, 5, 10), +(2066021, 5, 10), +(2066022, 5, 12), +(2066023, 5, 12), +(2066024, 5, 15), +(2066027, 5, 11), +(2066029, 5, 19), +(2066030, 5, 18), +(2112183, 9, 6), +(2112184, 9, 6), +(2112186, 9, 7), +(2112188, 9, 5), +(2112189, 9, 4), +(2152921, 4, 3), +(2152922, 4, 3), +(2152923, 4, 4), +(2152925, 4, 4), +(2152926, 4, 1), +(2152928, 4, 2), +(2152930, 4, 5), +(2152931, 4, 5), +(2152933, 4, 5), +(2152934, 4, 5), +(2152935, 4, 5), +(2152936, 4, 5), +(2152937, 4, 5), +(2152938, 4, 5), +(2152939, 4, 8), +(2152941, 4, 8), +(2152942, 4, 8), +(2152943, 4, 8), +(2152944, 4, 7), +(2152945, 4, 7), +(2152946, 4, 7), +(2152949, 4, 7), +(2152950, 4, 7), +(2152951, 4, 7), +(2152952, 4, 7), +(2152953, 4, 7), +(2152954, 4, 7), +(2152955, 4, 8), +(2152956, 4, 9), +(2152957, 4, 11), +(2152963, 4, 11), +(2152965, 4, 11), +(2152966, 4, 13), +(2152967, 4, 13), +(2264614, 7, 1), +(2264620, 7, 1), +(2264625, 7, 1), +(2264626, 7, 2), +(2264633, 7, 3), +(2264634, 7, 3), +(2264636, 7, 3), +(2264637, 7, 3), +(2264640, 7, 10), +(2264642, 7, 10), +(2264643, 7, 10), +(2264649, 7, 11), +(2264653, 7, 12), +(2264660, 7, 12), +(2264662, 7, 13), +(2264669, 7, 2), +(2264671, 7, 14), +(2264672, 7, 15), +(2264673, 7, 16), +(2264674, 7, 4), +(2264675, 7, 5), +(2264676, 7, 6), +(2264682, 7, 8), +(2264685, 7, 9), +(2264705, 7, 1), +(2264721, 7, 1), +(2264728, 7, 1), +(2264731, 7, 3), +(2264736, 7, 8), +(2264772, 7, 16), +(2264773, 7, 7), +(2264775, 7, 11), +(2264791, 7, 15), +(2264796, 7, 3), +(2264798, 7, 16), +(2264807, 7, 1), +(2280307, 6, 1), +(2280313, 6, 2), +(2280316, 6, 3), +(2280318, 6, 3), +(2280320, 6, 4), +(2280327, 6, 4), +(2280330, 6, 4), +(2280347, 6, 5), +(2280351, 6, 5), +(2280358, 6, 5), +(2280362, 6, 6), +(2280365, 6, 7), +(2280369, 6, 7), +(2280371, 6, 8), +(2280375, 6, 15), +(2280388, 6, 13), +(2280391, 6, 14), +(2280395, 6, 14), +(2280400, 6, 9), +(2280402, 6, 10), +(2280403, 6, 10), +(2280404, 6, 12), +(2280406, 6, 11), +(2280409, 6, 1), +(2280410, 6, 2), +(2280414, 6, 4), +(2280425, 6, 3), +(2280426, 6, 3), +(2280428, 6, 2), +(2280430, 6, 9), +(2280432, 6, 9), +(2280448, 6, 10), +(2280451, 6, 12), +(2280453, 6, 11), +(2280455, 6, 7), +(2280456, 6, 5), +(2280458, 6, 8), +(2280461, 6, 16), +(2280464, 6, 6), +(2299601, 6, 6), +(2308332, 5, 1), +(2308333, 5, 3), +(2308340, 5, 3), +(2308346, 5, 3), +(2308354, 5, 5), +(2308355, 5, 4), +(2308361, 5, 8), +(2308363, 5, 16), +(2308364, 5, 13), +(2308366, 5, 17), +(2341847, 7, 4), +(2341870, 7, 6), +(2341892, 7, 10), +(2349784, 4, 5), +(2349791, 4, 2), +(2349792, 4, 5), +(2349794, 4, 5), +(2349857, 4, 5), +(2349858, 4, 5), +(2349860, 4, 5), +(2351856, 6, 4), +(2351858, 6, 4), +(2351870, 6, 4), +(2381027, 6, 4), +(2381028, 6, 4), +(2381029, 6, 10), +(2381030, 6, 8), +(2381031, 6, 6), +(2381032, 6, 7), +(2381033, 6, 4), +(2381034, 6, 4), +(2381035, 6, 4), +(2381036, 6, 4), +(2381037, 6, 4), +(2381038, 6, 4), +(2381039, 6, 7), +(2381040, 6, 13), +(2381041, 6, 7), +(2381044, 6, 4), +(2422825, 6, 4), +(2453661, 6, 4), +(2453677, 7, 1), +(2453678, 7, 13), +(2453679, 7, 15), +(2453681, 7, 13), +(2453682, 7, 13), +(2453685, 7, 5), +(2453686, 7, 8), +(2453687, 7, 8), +(2453688, 7, 8), +(2453689, 7, 8), +(2453690, 7, 8), +(2465005, 4, 4), +(2465008, 4, 6), +(2465009, 4, 6), +(2465010, 4, 2), +(2465013, 4, 2), +(2465017, 4, 10), +(2465018, 4, 13), +(2465019, 4, 10), +(2465025, 4, 9), +(2465028, 4, 9), +(2465029, 4, 9), +(2465059, 5, 3), +(2465060, 5, 19), +(2465061, 5, 19), +(2465064, 5, 12), +(2465069, 5, 15), +(2465072, 5, 17), +(2496282, 4, 11), +(2496289, 4, 5), +(2496437, 4, 2), +(2499345, 7, 1), +(2563317, 5, 1), +(2563790, 6, 5), +(2563792, 6, 5), +(2563798, 6, 4), +(2563804, 6, 12), +(2563859, 6, 9), +(2563867, 6, 9), +(2563868, 6, 9), +(2563872, 6, 9), +(2563875, 6, 9), +(2563882, 7, 1), +(2564149, 4, 11), +(2564152, 4, 11), +(2564171, 4, 11), +(2622826, 4, 5), +(2622881, 4, 11), +(2622884, 4, 11), +(2622886, 4, 11), +(2652480, 4, 1), +(2652490, 4, 1), +(2763450, 6, 7), +(2763451, 6, 7), +(2763452, 6, 7), +(2927639, 5, 6), +(3643234, 16, 1), +(3643236, 16, 1), +(3643414, 16, 2), +(3643415, 16, 2), +(3643457, 16, 3), +(3643485, 16, 3), +(3643486, 16, 3), +(3643487, 16, 3), +(3643488, 16, 3), +(3643489, 16, 4), +(3643491, 16, 6), +(3643495, 16, 7), +(3643496, 16, 7), +(3643498, 16, 7), +(3643499, 16, 7), +(3643500, 16, 10), +(3643501, 16, 7), +(3643502, 16, 10), +(3643503, 16, 10), +(3643504, 16, 10), +(3643505, 16, 10), +(3643506, 16, 9), +(3643507, 16, 9), +(3643509, 16, 8), +(3643556, 16, 2), +(3643588, 16, 2), +(3643589, 16, 2), +(3643590, 16, 1), +(3643597, 16, 3), +(3643598, 16, 4), +(3643602, 16, 5), +(3643604, 16, 9), +(3643605, 16, 8), +(3643606, 16, 10), +(3643607, 16, 8), +(3643649, 21, 1), +(3643706, 21, 1), +(3643707, 21, 3), +(3643708, 21, 1), +(3643709, 21, 2), +(3643715, 21, 4), +(3643728, 21, 4), +(3643815, 21, 5), +(3643825, 21, 5), +(3643831, 21, 3), +(3643841, 21, 6), +(3643859, 21, 7), +(3643862, 21, 5), +(3643864, 21, 8), +(3643865, 21, 5), +(3643871, 21, 8), +(3643879, 21, 6), +(3645046, 21, 10), +(3645058, 21, 10), +(3645548, 21, 9), +(3645576, 21, 9), +(3645590, 21, 11), +(3645591, 21, 9), +(3645607, 21, 9), +(3645675, 21, 11), +(3645684, 21, 11), +(3645746, 21, 12), +(3645751, 21, 13), +(3645793, 21, 12), +(3645800, 21, 12), +(3646818, 21, 1), +(3646820, 21, 1), +(3646848, 21, 3), +(3646849, 21, 3), +(3647060, 21, 4), +(3647062, 21, 5), +(3647073, 21, 6), +(3647079, 21, 7), +(3647131, 21, 8), +(3647136, 21, 10), +(3647138, 21, 6), +(3647142, 21, 9), +(3647308, 21, 12), +(3649749, 21, 6), +(3649760, 21, 6), +(3692932, 16, 2), +(3692933, 16, 1), +(3692941, 16, 7), +(3692942, 16, 2), +(3692943, 16, 7), +(3692944, 16, 7), +(3692948, 16, 2), +(3692961, 16, 3), +(3692965, 16, 3), +(3692973, 16, 4), +(3692975, 16, 4), +(3692976, 16, 4), +(3692977, 16, 4), +(3693075, 16, 4), +(3693080, 16, 4), +(3693104, 16, 6), +(3693126, 16, 5), +(3693128, 16, 5), +(3693148, 16, 7), +(3693159, 16, 7), +(3693168, 16, 7), +(3693169, 16, 7), +(3693181, 16, 10), +(3693182, 16, 7), +(3693189, 16, 8), +(3693190, 16, 8), +(3746497, 9, 1), +(3746504, 9, 10), +(3746513, 9, 1), +(3746515, 9, 11), +(3746546, 9, 7), +(3746643, 9, 8), +(3746648, 9, 12), +(3746649, 9, 13), +(3746650, 9, 13), +(3762950, 9, 2), +(3784410, 9, 1), +(3784508, 9, 2), +(3784514, 9, 2), +(3784517, 9, 2), +(3784520, 9, 2), +(3784522, 9, 2), +(3784563, 9, 7), +(3784565, 9, 7), +(3861103, 16, 2), +(3861106, 16, 2), +(3861109, 16, 2), +(3861111, 16, 2), +(3861113, 16, 2), +(3899968, 7, 15), +(3907414, 4, 5), +(3907879, 4, 1), +(3907888, 4, 1), +(3907897, 4, 2), +(3907899, 4, 2), +(3907901, 4, 2), +(3907902, 4, 2), +(3907903, 4, 2), +(3907908, 4, 2), +(3907909, 4, 2), +(3908308, 4, 9), +(3908312, 4, 9), +(3908313, 4, 9), +(3923782, 16, 3), +(3923784, 16, 3), +(3923785, 16, 3), +(3923789, 16, 3), +(3923790, 16, 3), +(3925825, 4, 11), +(3929402, 4, 1), +(3975004, 15, 1), +(3975007, 15, 2), +(3975011, 15, 3), +(3975015, 15, 6), +(3975127, 15, 1), +(3975132, 15, 1), +(3975135, 15, 3), +(3975138, 15, 2), +(3975183, 15, 3), +(3975188, 15, 3), +(3975191, 15, 3), +(3975192, 15, 3), +(3975196, 15, 4), +(3975198, 15, 4), +(3975202, 15, 4), +(3975204, 15, 4), +(3975205, 15, 4), +(3975208, 15, 4), +(3975212, 15, 4), +(3975215, 15, 3), +(3975217, 15, 3), +(3975223, 15, 3), +(3975229, 15, 3), +(3975232, 15, 3), +(3975233, 15, 5), +(3975242, 15, 5), +(3975244, 15, 5), +(3975251, 15, 6), +(3975256, 15, 5), +(3975261, 15, 7), +(3975267, 15, 6), +(3975272, 15, 6), +(3975278, 15, 6), +(3975282, 15, 6), +(3975283, 15, 6), +(3975285, 15, 6), +(4091012, 31, 1), +(4091018, 31, 2), +(4091019, 31, 2), +(4092388, 31, 1), +(4092418, 31, 3), +(4092425, 31, 4), +(4092429, 31, 4), +(4092430, 31, 7), +(4092431, 31, 9), +(4092432, 31, 8), +(4092433, 31, 4), +(4092435, 31, 7), +(4092436, 31, 4), +(4092437, 31, 4), +(4092438, 31, 10), +(4092439, 31, 10), +(4092440, 31, 10), +(4092444, 31, 11), +(4092449, 31, 11), +(4092471, 31, 3), +(4092472, 31, 3), +(4092534, 31, 1), +(4092536, 31, 2), +(4092537, 31, 2), +(4092538, 31, 3), +(4092539, 31, 3), +(4092540, 31, 4), +(4092541, 31, 4), +(4092542, 31, 7), +(4092543, 31, 7), +(4092544, 31, 8), +(4092545, 31, 4), +(4092546, 31, 9), +(4092547, 31, 10), +(4092548, 31, 11), +(4098244, 20, 1), +(4098246, 20, 2), +(4098252, 20, 2), +(4098653, 20, 2), +(4098655, 20, 3), +(4098662, 20, 5), +(4098665, 20, 6), +(4098675, 20, 6), +(4098680, 20, 7), +(4098686, 20, 8), +(4098719, 20, 10), +(4098723, 20, 10), +(4098733, 20, 12), +(4098786, 20, 1), +(4098790, 20, 1), +(4098794, 20, 1), +(4098812, 20, 1), +(4098843, 20, 4), +(4098858, 20, 2), +(4098869, 20, 2), +(4098978, 20, 5), +(4098984, 20, 3), +(4098990, 20, 3), +(4098991, 20, 3), +(4098996, 20, 4), +(4099007, 20, 4), +(4099014, 20, 7), +(4099017, 20, 6), +(4099024, 20, 6), +(4099214, 20, 6), +(4099220, 20, 6), +(4099234, 20, 6), +(4099313, 20, 8), +(4099338, 20, 8), +(4099357, 20, 8), +(4099376, 20, 9), +(4099424, 20, 10), +(4099430, 20, 10), +(4099464, 20, 12), +(4101783, 24, 1), +(4101846, 24, 2), +(4101870, 24, 3), +(4101889, 24, 4), +(4101896, 24, 4), +(4101900, 24, 5), +(4101904, 24, 5), +(4101907, 24, 6), +(4101914, 24, 8), +(4102354, 24, 1), +(4102358, 24, 1), +(4102359, 24, 1), +(4102360, 24, 1), +(4102361, 24, 2), +(4102365, 24, 3), +(4102371, 24, 3), +(4102372, 24, 3), +(4102373, 24, 3), +(4102375, 24, 6), +(4102377, 24, 4), +(4102378, 24, 4), +(4102379, 24, 4), +(4102381, 24, 8), +(4103415, 31, 4), +(4107623, 41, 8), +(4121883, 45, 1), +(4121897, 45, 2), +(4121909, 45, 3), +(4121915, 45, 3), +(4121922, 45, 4), +(4123952, 45, 4), +(4123953, 45, 5), +(4125929, 45, 6), +(4125941, 45, 7), +(4125947, 45, 8), +(4125950, 45, 8), +(4125987, 45, 9), +(4125993, 45, 10), +(4126016, 45, 11), +(4126017, 45, 8), +(4126028, 45, 11), +(4126039, 45, 12), +(4126040, 45, 13), +(4126043, 45, 13), +(4126044, 45, 13), +(4126049, 45, 14), +(4126052, 45, 15), +(4126375, 45, 2), +(4126377, 45, 3), +(4126378, 45, 7), +(4126383, 45, 11), +(4126384, 45, 11), +(4126386, 45, 11), +(4126394, 45, 15), +(4127125, 45, 8), +(4127126, 45, 8), +(4127132, 45, 9), +(4127137, 45, 12), +(4127141, 45, 12), +(4142953, 41, 10), +(4142959, 41, 13), +(4142960, 41, 9), +(4143007, 41, 8), +(4143009, 41, 9), +(4143011, 41, 8), +(4143012, 41, 11), +(4143014, 41, 9), +(4143143, 41, 13), +(4143144, 41, 13), +(4143146, 41, 13), +(4143147, 41, 13), +(4143154, 41, 13), +(4161435, 15, 1), +(4161439, 15, 3), +(4161440, 15, 3), +(4161442, 15, 3), +(4161449, 15, 4), +(4161453, 15, 4), +(4161456, 15, 6), +(4161457, 15, 6), +(4161462, 15, 5), +(4162133, 17, 1), +(4162142, 17, 3), +(4162143, 17, 4), +(4162144, 17, 5), +(4162145, 17, 6), +(4162147, 17, 8), +(4162148, 17, 9), +(4162150, 17, 11), +(4162153, 17, 12), +(4162154, 17, 13), +(4162155, 17, 13), +(4162317, 17, 10), +(4162319, 17, 7), +(4162320, 17, 6), +(4162321, 17, 6), +(4162322, 17, 12), +(4162323, 17, 4), +(4162324, 17, 5), +(4162325, 17, 2), +(4162326, 17, 2), +(4162328, 17, 2), +(4162329, 17, 1), +(4164611, 17, 12), +(4164620, 17, 6), +(4164648, 17, 8), +(4164654, 17, 8), +(4164656, 17, 8), +(4164663, 17, 10), +(4164693, 17, 6), +(4164698, 17, 4), +(4164699, 17, 4), +(4164700, 17, 5), +(4164701, 17, 5), +(4164706, 17, 5), +(4164707, 17, 5), +(4164708, 17, 5), +(4164715, 17, 2), +(4164723, 17, 1), +(4164725, 17, 2), +(4164727, 17, 2), +(4164728, 17, 2), +(4164731, 17, 4), +(4164732, 17, 4), +(4164735, 17, 1), +(4164739, 17, 3), +(4164740, 17, 1), +(4164742, 17, 1), +(4164846, 18, 2), +(4164858, 18, 1), +(4164859, 18, 1), +(4164861, 18, 1), +(4164905, 18, 3), +(4164912, 18, 4), +(4164914, 18, 4), +(4164917, 18, 5), +(4164923, 18, 6), +(4164924, 18, 7), +(4164926, 18, 7), +(4164929, 18, 7), +(4164931, 18, 8), +(4164934, 18, 6), +(4164937, 18, 9), +(4164938, 18, 9), +(4164940, 18, 10), +(4164942, 18, 11), +(4164944, 18, 11), +(4164947, 18, 13), +(4164950, 18, 15), +(4164952, 18, 16), +(4164953, 18, 17), +(4164955, 18, 18), +(4164956, 18, 18), +(4164957, 18, 18), +(4164958, 18, 19), +(4165006, 18, 1), +(4165007, 18, 1), +(4165009, 18, 1), +(4165010, 18, 1), +(4165044, 18, 3), +(4165045, 18, 3), +(4165048, 18, 2), +(4165049, 18, 2), +(4165050, 18, 2), +(4165051, 18, 2), +(4165052, 18, 2), +(4165053, 18, 2), +(4165054, 18, 2), +(4165055, 18, 2), +(4165056, 18, 1), +(4165057, 18, 3), +(4165058, 18, 3), +(4165059, 18, 3), +(4165061, 18, 4), +(4165063, 18, 4), +(4165064, 18, 4), +(4165065, 18, 4), +(4165066, 18, 4), +(4165079, 18, 7), +(4165089, 18, 7), +(4165091, 18, 6), +(4165095, 18, 7), +(4165097, 18, 8), +(4165098, 18, 8), +(4165101, 18, 9), +(4165132, 18, 10), +(4165138, 18, 11), +(4165141, 18, 13), +(4165146, 18, 4), +(4165147, 18, 14), +(4165587, 18, 13), +(4165761, 19, 1), +(4165762, 19, 3), +(4165763, 19, 4), +(4165767, 19, 2), +(4165768, 19, 1), +(4165770, 19, 3), +(4165774, 19, 1), +(4165784, 19, 7), +(4165786, 19, 6), +(4165787, 19, 6), +(4165788, 19, 7), +(4165789, 19, 1), +(4165790, 19, 4), +(4165791, 19, 1), +(4165792, 19, 3), +(4165793, 19, 7), +(4165795, 19, 7), +(4165798, 19, 1), +(4165826, 19, 2), +(4165830, 30, 1), +(4165834, 30, 3), +(4165838, 30, 6), +(4165843, 30, 1), +(4165845, 30, 4), +(4165862, 30, 3), +(4165870, 30, 5), +(4170242, 8, 1), +(4170252, 8, 2), +(4170268, 8, 2), +(4170279, 8, 3), +(4170285, 8, 4), +(4170288, 8, 5), +(4170294, 8, 6), +(4170300, 8, 7), +(4170349, 8, 8), +(4170358, 8, 9), +(4170364, 8, 10), +(4170368, 8, 11), +(4170389, 8, 11), +(4170407, 8, 4), +(4170413, 8, 6), +(4170416, 8, 3), +(4170420, 8, 5), +(4170421, 8, 5), +(4170429, 8, 9), +(4170439, 8, 10), +(4170443, 8, 11), +(4170448, 8, 11), +(4175720, 16, 7), +(4191057, 6, 4), +(4191058, 6, 5), +(4191060, 6, 5), +(4191062, 6, 4), +(4191063, 6, 4), +(4191065, 6, 4), +(4191066, 6, 7), +(4191069, 6, 7), +(4191070, 6, 6), +(4191075, 6, 5), +(4191081, 6, 6), +(4200506, 17, 4), +(4200508, 17, 2), +(4203968, 20, 5), +(4203976, 20, 5), +(4203984, 20, 5), +(4204051, 21, 11), +(4204061, 21, 3), +(4204069, 21, 6), +(4204078, 21, 12), +(4204084, 21, 12), +(4204092, 21, 6), +(4218112, 20, 2), +(4218256, 20, 6), +(4218258, 20, 6), +(4218268, 21, 6), +(4230667, 32, 1), +(4230669, 32, 2), +(4230670, 32, 3), +(4230673, 32, 6), +(4230674, 32, 6), +(4230675, 32, 6), +(4230676, 32, 7), +(4230677, 32, 9), +(4230682, 32, 4), +(4230684, 32, 6), +(4230685, 32, 6), +(4230686, 32, 6), +(4230687, 32, 7), +(4230689, 32, 9), +(4230690, 32, 1), +(4235276, 38, 2), +(4235277, 38, 4), +(4235282, 38, 6), +(4235309, 38, 7), +(4235312, 38, 10), +(4236358, 15, 6), +(4237484, 38, 3), +(4237485, 38, 4), +(4237487, 38, 8), +(4237488, 38, 10), +(4238993, 86, 6), +(4238994, 86, 7), +(4238996, 86, 7), +(4239000, 86, 7), +(4239001, 86, 7), +(4239002, 86, 8), +(4239003, 86, 9), +(4239004, 86, 10), +(4239005, 86, 10), +(4239009, 86, 12), +(4241594, 20, 1), +(4241611, 21, 1), +(4241612, 21, 2), +(4241928, 45, 12), +(4242048, 45, 7), +(4242604, 15, 1), +(4242605, 15, 1), +(4242609, 15, 1), +(4242610, 15, 1), +(4247747, 53, 1), +(4247847, 53, 1), +(4247850, 53, 1), +(4247852, 53, 1), +(4247856, 53, 1), +(4247877, 53, 2), +(4247879, 53, 2), +(4247884, 53, 3), +(4247885, 53, 2), +(4247888, 53, 3), +(4247906, 53, 4), +(4247927, 53, 4), +(4248224, 53, 5), +(4248230, 53, 5), +(4248232, 53, 5), +(4248236, 53, 5), +(4248241, 53, 5), +(4248262, 53, 6), +(4248265, 53, 6), +(4248272, 53, 7), +(4248277, 53, 7), +(4248291, 53, 8), +(4248293, 53, 9), +(4248308, 53, 9), +(4248340, 53, 6), +(4248346, 53, 10), +(4248351, 53, 10), +(4248359, 53, 11), +(4248390, 53, 12), +(4248398, 53, 12), +(4248402, 53, 12), +(4248430, 53, 12), +(4248444, 53, 13), +(4248486, 53, 13), +(4248488, 53, 13), +(4248490, 53, 14), +(4248491, 53, 15), +(4248517, 53, 16), +(4248520, 53, 16), +(4248523, 53, 16), +(4248529, 53, 16), +(4248537, 53, 16), +(4248539, 53, 17), +(4248613, 53, 16), +(4248638, 53, 16), +(4248684, 53, 16), +(4248689, 53, 18), +(4248796, 53, 19), +(4248833, 53, 19), +(4248837, 53, 19), +(4248842, 53, 20), +(4248886, 53, 21), +(4248889, 53, 21), +(4248890, 53, 21), +(4248892, 53, 22), +(4248922, 53, 1), +(4248924, 53, 1), +(4248926, 53, 1), +(4248931, 53, 1), +(4248933, 53, 1), +(4248935, 53, 1), +(4248936, 53, 1), +(4248942, 53, 1), +(4248943, 53, 1), +(4248947, 53, 1), +(4248950, 53, 1), +(4248965, 53, 3), +(4248968, 53, 3), +(4248971, 53, 3), +(4248972, 53, 4), +(4248975, 53, 4), +(4248976, 53, 4), +(4248982, 53, 4), +(4248988, 53, 4), +(4249002, 53, 5), +(4249008, 53, 5), +(4249027, 53, 7), +(4249037, 53, 9), +(4249038, 53, 9), +(4249041, 53, 9), +(4249047, 53, 8), +(4249060, 53, 19), +(4249068, 53, 19), +(4249070, 53, 18), +(4249075, 53, 18), +(4249078, 53, 16), +(4249084, 53, 16), +(4249089, 53, 16), +(4249092, 53, 20), +(4249093, 53, 1), +(4249094, 53, 20), +(4249565, 53, 10), +(4249569, 53, 12), +(4249570, 53, 12), +(4249572, 53, 12), +(4249573, 53, 12), +(4249574, 53, 12), +(4249577, 53, 12), +(4249587, 53, 12), +(4249589, 53, 12), +(4249605, 53, 15), +(4249617, 53, 14), +(4249639, 53, 1), +(4249643, 53, 1), +(4251428, 53, 4), +(4262477, 38, 6), +(4262478, 38, 6), +(4278339, 43, 2), +(4278406, 43, 2), +(4278410, 43, 2), +(4278415, 43, 4), +(4278417, 43, 5), +(4278419, 43, 5), +(4278420, 43, 5), +(4278432, 43, 5), +(4278438, 43, 4), +(4278461, 43, 7), +(4278472, 43, 8), +(4278474, 43, 8), +(4278494, 43, 8), +(4279992, 43, 9), +(4280840, 43, 10), +(4282568, 43, 11), +(4282573, 43, 12), +(4282574, 43, 13), +(4282585, 43, 14), +(4282592, 43, 13), +(4282598, 43, 16), +(4283510, 43, 8), +(4283661, 43, 10), +(4284218, 43, 2), +(4284220, 43, 8), +(4284346, 43, 9), +(4284350, 43, 10), +(4284353, 43, 12), +(4284354, 43, 13), +(4284356, 43, 11), +(4284479, 43, 14), +(4284483, 43, 16), +(4284485, 43, 8), +(4284655, 71, 1), +(4284668, 71, 7), +(4284672, 71, 10), +(4284679, 71, 3), +(4287170, 86, 8), +(4287171, 86, 8), +(4287437, 71, 9), +(4287440, 71, 12), +(4303212, 71, 13), +(4303238, 71, 2), +(4303276, 71, 1), +(4303280, 71, 2), +(4303285, 71, 6), +(4303288, 71, 10), +(4310468, 19, 1), +(4310490, 19, 4), +(4310494, 19, 4), +(4311173, 19, 3), +(4311182, 19, 4), +(4313896, 32, 4), +(4313898, 32, 8), +(4313956, 38, 3), +(4313961, 38, 5), +(4313968, 38, 7), +(4313975, 103, 15), +(4317154, 71, 4), +(4317155, 71, 5), +(4317176, 71, 3), +(4317193, 71, 8), +(4317200, 71, 11), +(4322392, 47, 1), +(4322393, 47, 2), +(4322394, 47, 2), +(4322395, 47, 2), +(4322396, 47, 3), +(4322398, 47, 2), +(4322399, 47, 3), +(4322400, 47, 3), +(4322404, 47, 4), +(4322408, 47, 4), +(4322411, 47, 4), +(4322417, 47, 6), +(4322427, 47, 7), +(4322428, 47, 7), +(4322429, 47, 7), +(4322431, 47, 8), +(4322434, 47, 7), +(4322439, 47, 5), +(4322441, 47, 15), +(4322442, 47, 10), +(4322444, 47, 10), +(4322445, 47, 10), +(4322449, 47, 11), +(4322453, 47, 11), +(4322455, 47, 13), +(4322458, 47, 12), +(4322459, 47, 12), +(4322841, 103, 12), +(4322860, 37, 1), +(4322861, 37, 1), +(4322862, 37, 1), +(4322864, 37, 1), +(4322867, 37, 3), +(4322868, 37, 3), +(4322870, 37, 3), +(4322871, 37, 4), +(4322872, 37, 5), +(4322969, 37, 5), +(4322970, 37, 5), +(4322971, 37, 6), +(4322973, 37, 6), +(4322974, 37, 7), +(4322975, 37, 8), +(4322976, 37, 8), +(4322977, 37, 8), +(4322978, 37, 8), +(4322979, 37, 9), +(4323354, 85, 11), +(4323360, 85, 11), +(4323383, 85, 8), +(4323387, 85, 8), +(4323412, 85, 8), +(4323414, 85, 8), +(4323419, 85, 9), +(4323420, 85, 9), +(4323427, 85, 10), +(4323428, 85, 10), +(4323429, 85, 10), +(4323431, 85, 11), +(4323432, 85, 8), +(4328706, 103, 13), +(4328707, 103, 12), +(4328816, 103, 12), +(4328833, 103, 12), +(4328892, 103, 13), +(4328894, 103, 13), +(4328897, 103, 15), +(4328902, 103, 15), +(4332187, 21, 6), +(4332188, 21, 6), +(4332189, 21, 6), +(4332518, 20, 6), +(4332767, 53, 12), +(4332770, 53, 12), +(4333235, 20, 9), +(4334276, 20, 4), +(4334728, 16, 3), +(4334730, 16, 7), +(4334751, 30, 5), +(4334881, 21, 7), +(4334882, 21, 13), +(4334885, 7, 7), +(4335536, 5, 2), +(4335666, 43, 2), +(4335670, 43, 8), +(4373250, 20, 10), +(4373251, 20, 10), +(4373252, 20, 10), +(4373253, 20, 10), +(4374258, 18, 15), +(4374678, 16, 7), +(4374738, 20, 8), +(4374739, 20, 8), +(4395364, 134, 12), +(4404417, 134, 12), +(4404426, 134, 12), +(4404431, 134, 12), +(4404435, 134, 12), +(4404439, 134, 12), +(4404440, 134, 12), +(4404442, 134, 12), +(4404445, 134, 12), +(4404450, 134, 12), +(4404451, 134, 12), +(4404452, 134, 12), +(4481391, 142, 12), +(4481392, 142, 15), +(4481393, 142, 11), +(4481404, 142, 11), +(4481407, 142, 13), +(4481409, 142, 12), +(4481412, 142, 15), +(4481413, 142, 15), +(4481414, 142, 15), +(4481415, 142, 15), +(4481416, 142, 15), +(4481418, 142, 15), +(4488408, 139, 12), +(4488410, 139, 12), +(4488411, 139, 12), +(4488413, 139, 14), +(4488416, 139, 13), +(4488417, 139, 12), +(4488419, 139, 11), +(4488420, 139, 12), +(4488421, 139, 13), +(4488422, 139, 13), +(4488423, 139, 14), +(4488425, 139, 14), +(4488427, 139, 13), +(4488428, 139, 13), +(4488429, 139, 12), +(4488430, 139, 12), +(4488431, 139, 12), +(4488432, 139, 12), +(4488433, 139, 14), +(4488435, 139, 11), +(4488438, 139, 12), +(4489186, 71, 3), +(4489187, 71, 3), +(4489188, 71, 3), +(4489189, 71, 3), +(4489190, 71, 3), +(4489192, 71, 3), +(4489193, 71, 3), +(4489194, 71, 3), +(4489195, 71, 3), +(4489236, 71, 1), +(4489237, 71, 10), +(4515268, 142, 11), +(4515306, 142, 12), +(4515308, 142, 12), +(4515382, 142, 13), +(4515386, 142, 15), +(4515612, 139, 12), +(4515623, 139, 13), +(4515624, 139, 13), +(4515625, 139, 13), +(4515681, 139, 12), +(4515697, 139, 12), +(4515699, 139, 13), +(4515701, 139, 14), +(4515702, 139, 14), +(4515703, 139, 13), +(4515704, 139, 13), +(4515705, 139, 13), +(4515706, 139, 12), +(4515707, 139, 12), +(4515708, 139, 12), +(4515709, 139, 12), +(4515711, 139, 14), +(4515713, 139, 11), +(4516011, 139, 12), +(4517194, 139, 12), +(4559071, 157, 1), +(4559075, 157, 3), +(4559076, 157, 4), +(4559077, 157, 4), +(4559078, 157, 5), +(4559085, 157, 6), +(4559086, 157, 6), +(4559087, 157, 7), +(4559088, 157, 5), +(4559091, 157, 8), +(4559092, 157, 8), +(4559093, 157, 10), +(4559094, 157, 9), +(4569450, 145, 1), +(4569451, 145, 5), +(4569461, 145, 3), +(4569464, 145, 3), +(4569465, 145, 4), +(4569471, 145, 10), +(4569472, 145, 11), +(4569479, 145, 6), +(4586009, 4, 7), +(4627320, 145, 6), +(4627322, 145, 7), +(4627324, 145, 7), +(4627332, 145, 9), +(4630742, 145, 11), +(4634055, 151, 4), +(4634056, 151, 6), +(4634059, 151, 1), +(4634062, 151, 1), +(4634065, 151, 2), +(4634083, 151, 4), +(4634094, 151, 5), +(4634095, 151, 6), +(4634104, 151, 7), +(4634106, 151, 7), +(4634712, 151, 6), +(4634715, 151, 7), +(4635476, 148, 1), +(4635477, 148, 2), +(4635478, 148, 3), +(4635479, 148, 5), +(4635480, 148, 6), +(4639200, 151, 4), +(4639204, 151, 8), +(4639208, 151, 6), +(4660176, 165, 1), +(4660177, 165, 1), +(4660178, 165, 2), +(4660179, 165, 2), +(4660180, 165, 3), +(4660181, 165, 3), +(4660182, 165, 4), +(4660183, 165, 5), +(4660184, 165, 6), +(4660185, 165, 7), +(4660186, 165, 8), +(4660187, 165, 9), +(4660189, 165, 11), +(4660190, 165, 2), +(4660194, 165, 3), +(4660195, 165, 11), +(4660197, 165, 12), +(4660198, 165, 13), +(4665752, 18, 11), +(4665756, 18, 11), +(4665759, 18, 11), +(4665766, 18, 11), +(4665773, 18, 11), +(4665788, 30, 4), +(4695119, 148, 5), +(4721268, 157, 10), +(4721270, 157, 11), +(4721271, 157, 11), +(4721272, 157, 12), +(4721273, 157, 13), +(4755366, 18, 18), +(4755385, 165, 11), +(4755389, 165, 12), +(4755390, 165, 13), +(4757557, 168, 4), +(4757558, 168, 5), +(4757560, 168, 5), +(4757561, 168, 6), +(4757563, 168, 8), +(4757565, 168, 9), +(4757566, 168, 10), +(4757569, 168, 11), +(4759603, 164, 12), +(4759604, 164, 12), +(4759652, 164, 13), +(4759654, 164, 14), +(4760563, 164, 12), +(4760674, 164, 12), +(4760676, 164, 12), +(4760683, 164, 12), +(4760685, 164, 12), +(4760689, 164, 14), +(4768065, 169, 1), +(4768067, 169, 1), +(4768073, 169, 7), +(4768082, 169, 8), +(4768083, 169, 8), +(4768084, 169, 8), +(4768085, 169, 9), +(4768087, 169, 1), +(4768094, 169, 7), +(4768099, 169, 6), +(4768100, 169, 8), +(4768101, 169, 8), +(4768102, 169, 9), +(4768103, 169, 7), +(4889986, 7, 10), +(4889987, 7, 3), +(4889991, 7, 3), +(4889995, 7, 3), +(4890336, 182, 1), +(4890497, 182, 1), +(4890506, 182, 3), +(4890535, 182, 3), +(4890651, 182, 3), +(4890664, 182, 12), +(4890679, 182, 9), +(4890766, 182, 9), +(4890770, 182, 10), +(4890776, 182, 10), +(4890780, 182, 11), +(4890784, 182, 12), +(4890786, 182, 13), +(4890788, 182, 14), +(4890791, 182, 15), +(4902564, 190, 6), +(4902565, 190, 6), +(4902566, 190, 7), +(4902567, 190, 8), +(4902568, 190, 8), +(4902569, 190, 8), +(4902571, 190, 10), +(4902572, 190, 11), +(4902573, 190, 8), +(4972550, 168, 1), +(4972551, 168, 2), +(4980983, 174, 1), +(4980985, 174, 2), +(4980993, 174, 2), +(4980994, 174, 4), +(4980995, 174, 4), +(4980997, 174, 5), +(4980998, 174, 5), +(4980999, 174, 5), +(4981002, 174, 6), +(4981003, 174, 6), +(4981004, 174, 7), +(4981005, 174, 7), +(4981006, 174, 7), +(4981007, 174, 8), +(4981009, 174, 9), +(4981010, 174, 10), +(4982004, 169, 2), +(4982007, 169, 3), +(4982009, 169, 3), +(4982039, 169, 4), +(4982041, 169, 5), +(4982050, 169, 5), +(4982051, 169, 6), +(5018506, 169, 3), +(5018517, 169, 4), +(5018518, 169, 4), +(5018519, 169, 5), +(5018520, 169, 5), +(5018524, 169, 7), +(5018525, 169, 7), +(5018526, 169, 9), +(5018528, 169, 9), +(5032226, 182, 3), +(5034828, 182, 15), +(5034833, 182, 15), +(5034834, 182, 15), +(5119555, 169, 3), +(5119560, 169, 3), +(5321547, 190, 11), +(5321639, 190, 7), +(5348496, 182, 10), +(5476910, 182, 3), +(5485941, 182, 9), +(5579669, 203, 10), +(5680661, 203, 10), +(5681112, 203, 9), +(5681115, 203, 11), +(5681121, 203, 10), +(5681124, 85, 11), +(5681153, 203, 10), +(5681166, 203, 11), +(5759673, 243, 1), +(5759683, 243, 5), +(5759685, 243, 5), +(5759692, 243, 6), +(5759696, 243, 7), +(5759698, 243, 9), +(5759701, 243, 11), +(5759705, 243, 12), +(5759706, 243, 14), +(5759708, 243, 14), +(5762435, 243, 4), +(5762437, 243, 8), +(5762441, 243, 14), +(5795788, 252, 3), +(5795795, 252, 3), +(5795796, 252, 3), +(5840909, 252, 5), +(5840914, 252, 6), +(5840915, 252, 7), +(5840920, 252, 10), +(5840923, 252, 6), +(5858542, 239, 5), +(5864957, 230, 1), +(5865261, 230, 2), +(5865270, 230, 2), +(5865275, 230, 5), +(5865286, 230, 1), +(5865289, 230, 2), +(5868146, 243, 2), +(5868148, 243, 3), +(5868150, 243, 4), +(5868156, 243, 8), +(5868159, 243, 9), +(5868162, 243, 13), +(5868163, 243, 15), +(5874028, 237, 3), +(5874029, 237, 4), +(5874030, 237, 1), +(5874031, 237, 2), +(5874032, 237, 3), +(5878769, 248, 1), +(5879221, 241, 1), +(5896017, 211, 15), +(5908552, 252, 12), +(5908839, 248, 1), +(5908841, 248, 2), +(5908844, 248, 2), +(5908846, 248, 3), +(5908848, 248, 3), +(5908851, 248, 5), +(5908859, 248, 6), +(5908863, 248, 6), +(5908868, 248, 6), +(5908869, 248, 6), +(5909356, 248, 3), +(5909364, 248, 1), +(5909385, 248, 1), +(5909746, 211, 15), +(5909768, 211, 15), +(5909769, 211, 15), +(5909770, 211, 15), +(5909773, 211, 15), +(5909778, 211, 15), +(5909929, 214, 13), +(5909946, 214, 13), +(5909947, 214, 13), +(5909948, 214, 13), +(5909950, 214, 13), +(5909951, 214, 13), +(5909952, 214, 13), +(5909953, 214, 13), +(5909980, 214, 13), +(5910101, 216, 28), +(5910102, 216, 28), +(5910115, 216, 28), +(5910122, 216, 28), +(5910126, 216, 28), +(5910127, 216, 28), +(5910134, 216, 28), +(5910141, 216, 28), +(5910144, 216, 28), +(5910157, 216, 28), +(5910168, 216, 28), +(5910298, 255, 3), +(5910299, 255, 4), +(5910301, 239, 3), +(5910302, 239, 2), +(5910303, 239, 3), +(5910305, 239, 2), +(5910306, 239, 2), +(5910307, 239, 2), +(5910308, 239, 2), +(5911128, 241, 2), +(5911129, 241, 2), +(5911131, 241, 3), +(5911132, 241, 3), +(5911133, 241, 3), +(5911136, 241, 4), +(5911137, 241, 4), +(5911139, 241, 4), +(5911141, 241, 4), +(5911142, 241, 5), +(5911143, 241, 6), +(5911144, 241, 6), +(5911145, 241, 6), +(5911146, 241, 6), +(5911147, 241, 6), +(5911148, 241, 7), +(5911151, 241, 6), +(5911154, 241, 8), +(5911155, 241, 7), +(5911158, 241, 8), +(5911159, 241, 10), +(5911164, 241, 11), +(5911166, 241, 12), +(5911167, 241, 12), +(5911168, 241, 12), +(5911169, 241, 12), +(5911173, 241, 13), +(5911174, 241, 13), +(5911175, 241, 13), +(5911176, 241, 13), +(5911184, 241, 14), +(5911193, 241, 12), +(5911200, 241, 13), +(5911204, 241, 12), +(5911207, 241, 13), +(5911208, 241, 15), +(5913190, 213, 6), +(5913193, 214, 13), +(5913203, 216, 28), +(5915489, 211, 15), +(5915512, 211, 15), +(5915513, 211, 15), +(5915517, 211, 15), +(5915539, 211, 15), +(5915553, 211, 15), +(5915580, 211, 15), +(5915598, 211, 15), +(5915620, 211, 15), +(5915630, 211, 15), +(5915631, 211, 15), +(5915632, 211, 15), +(5915635, 211, 15), +(5915734, 211, 15), +(5915736, 211, 15), +(5915737, 211, 15), +(5915739, 211, 15), +(5915740, 211, 15), +(5915742, 211, 15), +(5917284, 211, 15), +(5917285, 211, 15), +(5917286, 211, 15), +(5917287, 211, 15), +(5917288, 211, 15), +(5917289, 211, 15), +(5917290, 211, 15), +(5917292, 211, 15), +(5917294, 211, 15), +(5917313, 211, 15), +(5917314, 211, 15), +(5917315, 211, 15), +(5917318, 211, 15), +(5917319, 211, 15), +(5917320, 211, 15), +(5917322, 211, 15), +(5917323, 211, 15), +(5917330, 211, 15), +(5917338, 211, 15), +(5917350, 211, 15), +(5917360, 211, 15), +(5917362, 211, 15), +(5917363, 211, 15), +(5917364, 211, 15), +(5919748, 213, 6), +(5919753, 213, 6), +(5919755, 213, 6), +(5919756, 213, 6), +(5919791, 213, 6), +(5919812, 213, 6), +(5919814, 213, 6), +(5919815, 213, 6), +(5919816, 213, 6), +(5919818, 213, 6), +(5919824, 213, 6), +(5919826, 213, 6), +(5919832, 213, 6), +(5919835, 213, 6), +(5919848, 213, 6), +(5919851, 213, 6), +(5919853, 213, 6), +(5919854, 213, 6), +(5919855, 213, 6), +(5919859, 213, 6), +(5919860, 213, 6), +(5919868, 213, 6), +(5919870, 213, 6), +(5919908, 213, 6), +(5919912, 213, 6), +(5919927, 213, 6), +(5919931, 213, 6), +(5919973, 213, 6), +(5920107, 213, 6), +(5920109, 213, 6), +(5920110, 213, 6), +(5920131, 213, 6), +(5920132, 213, 6), +(5920134, 213, 6), +(5920142, 213, 6), +(5920147, 213, 6), +(5921241, 214, 13), +(5921242, 214, 13), +(5921246, 214, 13), +(5921247, 214, 13), +(5921249, 214, 13), +(5921250, 214, 13), +(5921251, 214, 13), +(5921252, 214, 13), +(5921253, 214, 13), +(5921254, 214, 13), +(5921260, 214, 13), +(5921262, 214, 13), +(5921264, 214, 13), +(5921265, 214, 13), +(5921266, 214, 13), +(5921267, 214, 13), +(5921268, 214, 13), +(5921273, 214, 13), +(5921274, 214, 13), +(5921275, 214, 13), +(5921276, 214, 13), +(5921277, 214, 13), +(5921278, 214, 13), +(5921279, 214, 13), +(5921280, 214, 13), +(5921281, 214, 13), +(5921283, 214, 13), +(5921287, 214, 13), +(5921288, 214, 13), +(5921290, 214, 13), +(5921292, 214, 13), +(5921858, 216, 28), +(5921871, 216, 28), +(5921880, 216, 28), +(5921881, 216, 28), +(5921882, 216, 28), +(5921937, 216, 28), +(5921940, 216, 28), +(5921941, 216, 28), +(5921942, 216, 28), +(5921945, 216, 28), +(5921953, 216, 28), +(5921955, 216, 28), +(5921956, 216, 28), +(5921962, 216, 28), +(5921966, 216, 28), +(5921968, 216, 28), +(5921969, 216, 28), +(5921970, 216, 28), +(5921980, 216, 28), +(5921981, 216, 28), +(5921982, 216, 28), +(5921987, 216, 28), +(5921988, 216, 28), +(5921996, 216, 28), +(5921998, 216, 28), +(5921999, 216, 28), +(5922000, 216, 28), +(5922002, 216, 28), +(5922004, 216, 28), +(5922005, 216, 28), +(5922006, 216, 28), +(5922007, 216, 28), +(5922008, 216, 28), +(5922009, 216, 28), +(5922010, 216, 28), +(5922013, 216, 28), +(5922559, 216, 28), +(5922560, 216, 28), +(5925606, 211, 15), +(5925609, 211, 15), +(5925610, 211, 15), +(5925611, 211, 15), +(5925612, 211, 15), +(5925613, 211, 15), +(5925616, 211, 15), +(5925618, 211, 15), +(5925619, 211, 15), +(5925620, 211, 15), +(5925622, 211, 15), +(5925623, 211, 15), +(5925808, 211, 15), +(5925812, 211, 15), +(5925813, 211, 15), +(5925814, 211, 15), +(5925815, 211, 15), +(5925817, 211, 15), +(5925819, 211, 15), +(5925820, 211, 15), +(5925821, 211, 15), +(5925823, 211, 15), +(5925825, 211, 15), +(5925827, 211, 15), +(5925830, 211, 15), +(5925835, 211, 15), +(5925836, 211, 15), +(5925837, 211, 15), +(5925838, 211, 15), +(5925840, 211, 15), +(5925841, 211, 15), +(5925842, 211, 15), +(5925844, 211, 15), +(5925845, 211, 15), +(5925848, 211, 15), +(5925849, 211, 15), +(5925850, 211, 15), +(5925852, 211, 15), +(5925854, 211, 15), +(5925858, 211, 15), +(5925860, 211, 15), +(5926068, 211, 15), +(5926069, 211, 15), +(5926070, 211, 15), +(5926071, 211, 15), +(5926072, 211, 15), +(5926073, 211, 15), +(5926074, 211, 15), +(5926075, 211, 15), +(5926076, 211, 15), +(5926078, 211, 15), +(5926079, 211, 15), +(5926080, 211, 15), +(5926081, 211, 15), +(5926082, 211, 15), +(5926083, 211, 15), +(5926085, 211, 15), +(5926086, 211, 15), +(5926088, 211, 15), +(5926090, 211, 15), +(5926091, 211, 15), +(5926092, 211, 15), +(5926093, 211, 15), +(5926094, 211, 15), +(5926095, 211, 15), +(5926096, 211, 15), +(5926097, 211, 15), +(5926099, 211, 15), +(5926100, 211, 15), +(5926103, 211, 15), +(5926104, 211, 15), +(5926105, 211, 15), +(5926106, 211, 15), +(5926107, 211, 15), +(5926109, 211, 15), +(5926110, 211, 15), +(5926111, 211, 15), +(5926112, 211, 15), +(5926113, 211, 15), +(5926114, 211, 15), +(5926115, 211, 15), +(5926117, 211, 15), +(5926118, 211, 15), +(5926119, 211, 15), +(5926128, 211, 15), +(5926129, 211, 15), +(5926130, 211, 15), +(5926131, 211, 15), +(5926132, 211, 15), +(5926133, 211, 15), +(5926134, 211, 15), +(5926135, 211, 15), +(5926136, 211, 15), +(5926138, 211, 15), +(5926139, 211, 15), +(5926141, 211, 15), +(5926142, 211, 15), +(5926143, 211, 15), +(5926144, 211, 15), +(5926146, 211, 15), +(5926157, 211, 15), +(5926158, 211, 15), +(5926160, 211, 15), +(5926161, 211, 15), +(5926162, 211, 15), +(5926163, 211, 15), +(5926164, 211, 15), +(5926563, 211, 15), +(5926566, 211, 15), +(5926610, 211, 15), +(5926611, 211, 15), +(5926614, 211, 15), +(5926615, 211, 15), +(5926616, 211, 15), +(5926619, 211, 15), +(5926622, 211, 15), +(5926623, 211, 15), +(5926627, 211, 15), +(5926630, 211, 15), +(5926637, 211, 15), +(5926639, 211, 15), +(5926644, 211, 15), +(5926651, 211, 15), +(5926653, 211, 15), +(5926654, 211, 15), +(5926663, 211, 15), +(5926665, 211, 15), +(5926666, 211, 15), +(5926667, 211, 15), +(5926668, 211, 15), +(5926670, 211, 15), +(5926671, 211, 15), +(5926672, 211, 15), +(5926674, 211, 15), +(5926676, 211, 15), +(5926680, 211, 15), +(5926681, 211, 15), +(5926683, 211, 15), +(5926685, 211, 15), +(5926686, 211, 15), +(5926687, 211, 15), +(5926696, 211, 15), +(5926702, 211, 15), +(5926709, 211, 15), +(5926710, 211, 15), +(5926711, 211, 15), +(5926713, 211, 15), +(5926717, 211, 15), +(5926718, 211, 15), +(5926720, 211, 15), +(5926723, 211, 15), +(5926724, 211, 15), +(5926727, 211, 15), +(5926729, 211, 15), +(5926734, 211, 15), +(5926736, 211, 15), +(5926737, 211, 15), +(5926739, 211, 15), +(5926740, 211, 15), +(5926742, 211, 15), +(5926744, 211, 15), +(5926745, 211, 15), +(5926753, 211, 15), +(5926757, 211, 15), +(5926758, 211, 15), +(5926759, 211, 15), +(5926760, 211, 15), +(5927843, 248, 1), +(5927869, 248, 5), +(5927903, 248, 1), +(5927964, 241, 1), +(5927966, 241, 5), +(5927968, 241, 6), +(5927969, 241, 7), +(5927970, 241, 8), +(5927971, 241, 10), +(5927972, 241, 14), +(5927973, 241, 15), +(5930418, 213, 6), +(5930419, 213, 6), +(5930420, 213, 6), +(5930421, 213, 6), +(5930422, 213, 6), +(5930423, 213, 6), +(5930424, 213, 6), +(5930425, 213, 6), +(5930426, 213, 6), +(5930427, 213, 6), +(5930428, 213, 6), +(5930429, 213, 6), +(5930430, 213, 6), +(5930431, 213, 6), +(5930432, 213, 6), +(5930433, 213, 6), +(5930434, 213, 6), +(5930435, 213, 6), +(5930436, 213, 6), +(5930437, 213, 6), +(5930438, 213, 6), +(5930439, 213, 6), +(5930440, 213, 6), +(5930441, 213, 6), +(5930442, 213, 6), +(5930443, 213, 6), +(5930444, 213, 6), +(5930445, 213, 6), +(5930446, 213, 6), +(5930447, 213, 6), +(5930448, 213, 6), +(5930449, 213, 6), +(5930450, 213, 6), +(5930451, 213, 6), +(5930452, 213, 6), +(5930453, 213, 6), +(5930454, 213, 6), +(5930455, 213, 6), +(5930456, 213, 6), +(5930457, 213, 6), +(5930458, 213, 6), +(5930459, 213, 6), +(5930460, 213, 6), +(5930461, 213, 6), +(5930462, 213, 6), +(5930463, 213, 6), +(5930464, 213, 6), +(5930465, 213, 6), +(5930466, 213, 6), +(5930467, 213, 6), +(5930468, 213, 6), +(5930469, 213, 6), +(5930470, 213, 6), +(5930471, 213, 6), +(5930472, 213, 6), +(5930473, 213, 6), +(5930474, 213, 6), +(5930475, 213, 6), +(5930476, 213, 6), +(5930477, 213, 6), +(5930478, 213, 6), +(5930479, 213, 6), +(5930480, 213, 6), +(5930481, 213, 6), +(5930482, 213, 6), +(5930483, 213, 6), +(5930484, 213, 6), +(5930485, 213, 6), +(5930486, 213, 6), +(5930487, 213, 6), +(5930488, 213, 6), +(5930489, 213, 6), +(5930490, 213, 6), +(5930491, 213, 6), +(5930492, 213, 6), +(5930493, 213, 6), +(5930494, 213, 6), +(5930495, 213, 6), +(5930496, 213, 6), +(5930497, 213, 6), +(5930498, 213, 6), +(5930499, 213, 6), +(5930500, 213, 6), +(5933083, 216, 28), +(5933084, 216, 28), +(5933085, 216, 28), +(5933086, 216, 28), +(5933087, 216, 28), +(5933088, 216, 28), +(5933089, 216, 28), +(5933090, 216, 28), +(5933091, 216, 28), +(5933092, 216, 28), +(5933093, 216, 28), +(5933094, 216, 28), +(5933095, 216, 28), +(5933096, 216, 28), +(5933097, 216, 28), +(5933098, 216, 28), +(5933099, 216, 28), +(5933100, 216, 28), +(5933101, 216, 28), +(5933102, 216, 28), +(5933103, 216, 28), +(5933104, 216, 28), +(5933105, 216, 28), +(5933106, 216, 28), +(5933107, 216, 28), +(5933108, 216, 28), +(5933109, 216, 28), +(5933110, 216, 28), +(5933111, 216, 28), +(5933112, 216, 28), +(5933113, 216, 28), +(5933114, 216, 28), +(5933115, 216, 28), +(5933116, 216, 28), +(5933117, 216, 28), +(5933118, 216, 28), +(5933119, 216, 28), +(5933120, 216, 28), +(5933121, 216, 28), +(5933122, 216, 28), +(5933123, 216, 28), +(5933124, 216, 28), +(5933125, 216, 28), +(5933126, 216, 28), +(5933127, 216, 28), +(5933128, 216, 28), +(5933129, 216, 28), +(5933130, 216, 28), +(5933131, 216, 28), +(5933132, 216, 28), +(5933133, 216, 28), +(5933134, 216, 28), +(5933135, 216, 28), +(5933136, 216, 28), +(5933137, 216, 28), +(5933138, 216, 28), +(5933139, 216, 28), +(5933140, 216, 28), +(5933141, 216, 28), +(5933142, 216, 28), +(5933143, 216, 28), +(5933144, 216, 28), +(5933145, 216, 28), +(5933146, 216, 28), +(5933147, 216, 28), +(5933148, 216, 28), +(5933149, 216, 28), +(5933150, 216, 28), +(5933151, 216, 28), +(5933152, 216, 28), +(5933153, 216, 28), +(5933154, 216, 28), +(5933155, 216, 28), +(5933156, 216, 28), +(5933157, 216, 28), +(5933158, 216, 28), +(5933159, 216, 28), +(5933160, 216, 28), +(5933161, 216, 28), +(5933162, 216, 28), +(5933163, 216, 28), +(5933164, 216, 28), +(5933165, 216, 28), +(5933166, 216, 28), +(5933167, 216, 28), +(5933168, 216, 28), +(5933169, 216, 28), +(5933170, 216, 28), +(5933171, 216, 28), +(5933172, 216, 28), +(5933173, 216, 28), +(5933174, 216, 28), +(5933175, 216, 28), +(5933176, 216, 28), +(5933177, 216, 28), +(5933178, 216, 28), +(5933179, 216, 28), +(5933180, 216, 28), +(5933181, 216, 28), +(5933182, 216, 28), +(5933183, 216, 28), +(5933184, 216, 28), +(5933185, 216, 28), +(5933186, 216, 28), +(5933187, 216, 28), +(5933188, 216, 28), +(5933189, 216, 28), +(5933190, 216, 28), +(5933191, 216, 28), +(5933192, 216, 28), +(5933193, 216, 28), +(5933194, 216, 28), +(5933195, 216, 28), +(5933196, 216, 28), +(5933197, 216, 28), +(5933198, 216, 28), +(5933199, 216, 28), +(5933200, 216, 28), +(5933201, 216, 28), +(5933202, 216, 28), +(5933203, 216, 28), +(5933204, 216, 28), +(5933205, 216, 28), +(5933206, 216, 28), +(5933207, 216, 28), +(5933208, 216, 28), +(5933209, 216, 28), +(5933210, 216, 28), +(5933211, 216, 28), +(5933212, 216, 28), +(5933213, 216, 28), +(5933214, 216, 28), +(5933215, 216, 28), +(5933216, 216, 28), +(5933217, 216, 28), +(5933218, 216, 28), +(5933371, 214, 13), +(5933372, 214, 13), +(5933373, 214, 13), +(5933374, 214, 13), +(5933375, 214, 13), +(5933376, 214, 13), +(5933377, 214, 13), +(5933378, 214, 13), +(5933379, 214, 13), +(5933380, 214, 13), +(5933381, 214, 13), +(5933382, 214, 13), +(5933383, 214, 13), +(5933384, 214, 13), +(5933385, 214, 13), +(5933386, 214, 13), +(5933387, 214, 13), +(5933388, 214, 13), +(5933389, 214, 13), +(5933390, 214, 13), +(5933391, 214, 13), +(5933392, 214, 13), +(5933393, 214, 13), +(5933394, 214, 13), +(5933395, 214, 13), +(5933396, 214, 13), +(5933397, 214, 13), +(5933398, 214, 13), +(5933399, 214, 13), +(5933400, 214, 13), +(5933401, 214, 13), +(5933402, 214, 13), +(5933403, 214, 13), +(5933404, 214, 13), +(5933405, 214, 13), +(5933406, 214, 13), +(5933407, 214, 13), +(5933408, 214, 13), +(5933409, 214, 13), +(5933410, 214, 13), +(5933411, 214, 13), +(5933412, 214, 13), +(5933413, 214, 13), +(5933414, 214, 13), +(5933415, 214, 13), +(5933416, 214, 13), +(5933417, 214, 13), +(5933418, 214, 13), +(5933419, 214, 13), +(5933420, 214, 13), +(5933421, 214, 13), +(5933422, 214, 13), +(5933423, 214, 13), +(5933424, 214, 13), +(5933425, 214, 13), +(5933426, 214, 13), +(5933427, 214, 13), +(5933428, 214, 13), +(5933429, 214, 13), +(5933430, 214, 13), +(5933431, 214, 13), +(5933432, 214, 13), +(5933433, 214, 13), +(5933434, 214, 13), +(5933435, 214, 13), +(5933436, 214, 13), +(5933437, 214, 13), +(5933438, 214, 13), +(5933439, 214, 13), +(5933440, 214, 13), +(5933441, 214, 13), +(5933442, 214, 13), +(5933443, 214, 13), +(5933444, 214, 13), +(5933445, 214, 13), +(5933446, 214, 13), +(5933447, 214, 13), +(5933448, 214, 13), +(5933449, 214, 13), +(5933450, 214, 13), +(5933451, 214, 13), +(5933452, 214, 13), +(5933453, 214, 13), +(5933454, 214, 13), +(5933455, 214, 13), +(5933456, 214, 13), +(5933457, 214, 13), +(5933458, 214, 13), +(5933459, 214, 13), +(5933460, 214, 13), +(5933461, 214, 13), +(5933462, 214, 13), +(5933463, 214, 13), +(5933464, 214, 13), +(5933465, 214, 13), +(5933466, 214, 13), +(5933467, 214, 13), +(5933468, 214, 13), +(5933469, 214, 13), +(5933470, 214, 13), +(5933471, 214, 13), +(5933472, 214, 13), +(5933473, 214, 13), +(5933474, 214, 13), +(5933475, 214, 13), +(5933476, 214, 13), +(5933477, 214, 13), +(5933478, 214, 13), +(5933479, 214, 13), +(5933480, 214, 13), +(5933481, 214, 13), +(5933482, 214, 13), +(5933483, 214, 13), +(5933484, 214, 13), +(5933485, 214, 13), +(5933486, 214, 13), +(5933487, 214, 13), +(5933488, 214, 13), +(5933489, 214, 13), +(5933490, 214, 13), +(5933491, 214, 13), +(5933492, 214, 13), +(5933493, 214, 13), +(5933494, 214, 13), +(5933495, 214, 13), +(5933496, 214, 13), +(5933497, 214, 13), +(5933498, 214, 13), +(5933499, 214, 13), +(5934961, 211, 15), +(5934962, 211, 15), +(5934964, 211, 15), +(5934965, 211, 15), +(5935045, 213, 6), +(5935100, 214, 13), +(5935104, 214, 13), +(5935105, 214, 13), +(5935119, 214, 13), +(5935490, 216, 28), +(5935520, 216, 28), +(5935521, 216, 28), +(5935525, 216, 28), +(5936097, 216, 28), +(5936102, 216, 28), +(5936113, 216, 28), +(5936125, 216, 28), +(5936127, 216, 28), +(5936562, 213, 6), +(5937520, 252, 3), +(5937536, 252, 10), +(5937626, 211, 15), +(5937643, 211, 15), +(5937644, 211, 15), +(5937659, 211, 15), +(5937660, 211, 15), +(5937661, 211, 15), +(5937662, 211, 15), +(5937663, 211, 15), +(5937665, 211, 15), +(5937666, 211, 15), +(5937667, 211, 15), +(5937668, 211, 15), +(5937669, 211, 15), +(5937670, 211, 15), +(5937671, 211, 15), +(5937672, 211, 15), +(5937673, 211, 15), +(5937674, 211, 15), +(5937675, 211, 15), +(5937676, 211, 15), +(5937677, 211, 15), +(5937678, 211, 15), +(5937679, 211, 15), +(5937680, 211, 15), +(5937681, 211, 15), +(5937682, 211, 15), +(5937683, 211, 15), +(5937684, 211, 15), +(5937685, 211, 15), +(5937686, 211, 15), +(5937687, 211, 15), +(5937688, 211, 15), +(5937689, 211, 15), +(5937690, 211, 15), +(5937691, 211, 15), +(5937692, 211, 15), +(5937788, 213, 6), +(5937789, 213, 6), +(5937791, 213, 6), +(5937798, 213, 6), +(5937800, 213, 6), +(5937801, 213, 6), +(5937802, 213, 6), +(5937803, 213, 6), +(5937804, 213, 6), +(5937805, 213, 6), +(5938265, 213, 6), +(5938270, 213, 6), +(5938281, 213, 6), +(5938291, 213, 6), +(5938292, 213, 6), +(5938293, 213, 6), +(5938296, 213, 6), +(5938298, 213, 6), +(5938299, 213, 6), +(5938300, 213, 6), +(5938302, 213, 6), +(5938305, 213, 6), +(5938307, 213, 6), +(5938308, 213, 6), +(5938310, 213, 6), +(5938311, 213, 6), +(5938314, 213, 6), +(5938315, 213, 6), +(5938317, 213, 6), +(5938318, 213, 6), +(5938319, 213, 6), +(5938321, 213, 6), +(5938323, 213, 6), +(5938344, 214, 13), +(5938387, 214, 13), +(5938388, 214, 13), +(5938389, 214, 13), +(5938390, 214, 13), +(5938391, 214, 13), +(5938392, 214, 13), +(5938393, 214, 13), +(5938394, 214, 13), +(5938395, 214, 13), +(5938396, 214, 13), +(5938397, 214, 13), +(5938398, 214, 13), +(5938399, 214, 13), +(5938400, 214, 13), +(5938401, 214, 13), +(5938402, 214, 13), +(5938403, 214, 13), +(5938404, 214, 13), +(5938405, 214, 13), +(5938406, 214, 13), +(5938407, 214, 13), +(5938408, 214, 13), +(5938409, 214, 13), +(5938410, 214, 13), +(5938411, 214, 13), +(5938412, 214, 13), +(5938413, 214, 13), +(5938414, 214, 13), +(5938416, 214, 13), +(5938417, 214, 13), +(5938418, 214, 13), +(5938419, 214, 13), +(5938781, 216, 28), +(5938782, 216, 28), +(5938783, 216, 28), +(5938784, 216, 28), +(5938785, 216, 28), +(5938786, 216, 28), +(5938787, 216, 28), +(5938788, 216, 28), +(5938789, 216, 28), +(5938790, 216, 28), +(5938791, 216, 28), +(5938792, 216, 28), +(5938793, 216, 28), +(5938794, 216, 28), +(5938795, 216, 28), +(5938796, 216, 28), +(5938797, 216, 28), +(5938798, 216, 28), +(5938799, 216, 28), +(5938800, 216, 28), +(5938801, 216, 28), +(5938802, 216, 28), +(5938803, 216, 28), +(5938804, 216, 28), +(5938805, 216, 28), +(5938806, 216, 28), +(5938807, 216, 28), +(5938808, 216, 28), +(5938809, 216, 28), +(5938810, 216, 28), +(5938811, 216, 28), +(5938812, 216, 28), +(5938813, 216, 28), +(5938814, 216, 28), +(5938815, 216, 28), +(5938816, 216, 28), +(5953591, 248, 1), +(5953592, 248, 3), +(5960788, 216, 28), +(5960797, 211, 15), +(5960798, 211, 15), +(5960799, 211, 15), +(5960800, 211, 15), +(5960801, 211, 15), +(5960802, 211, 15), +(5960803, 211, 15), +(5960805, 211, 15), +(5960806, 211, 15), +(5960807, 211, 15), +(5964409, 262, 1), +(5964410, 262, 1), +(5964418, 262, 1), +(5964439, 262, 2), +(5964441, 262, 1), +(5964449, 262, 1), +(5964457, 262, 1), +(6032372, 262, 2), +(6046582, 255, 3), +(6070090, 273, 9), +(6070269, 273, 9), +(6070278, 273, 9), +(6095410, 272, 13), +(6098955, 272, 12), +(6123737, 276, 12), +(6123738, 276, 1), +(6123739, 276, 1), +(6123740, 276, 1), +(6123741, 276, 1), +(6123742, 276, 1), +(6123743, 276, 1), +(6123744, 276, 1), +(6123745, 276, 1), +(6123746, 276, 12), +(6161036, 276, 12), +(6161039, 276, 1), +(6161040, 276, 1), +(6161041, 276, 1), +(6161042, 276, 1), +(6161048, 276, 17), +(6161083, 279, 12), +(6163807, 276, 1), +(6163808, 276, 19), +(6163809, 276, 20), +(6163810, 276, 21), +(6163811, 276, 9), +(6163812, 276, 8), +(6163813, 276, 7), +(6163814, 276, 6), +(6163815, 276, 4), +(6163816, 276, 16), +(6163817, 276, 16), +(6163818, 276, 16), +(6170636, 276, 17), +(6170637, 276, 2), +(6170638, 276, 2), +(6170639, 276, 3), +(6170640, 276, 2), +(6170641, 276, 3), +(6170642, 276, 3), +(6170643, 276, 3), +(6170644, 276, 10), +(6170645, 276, 10), +(6170646, 276, 10), +(6170647, 276, 11), +(6170648, 276, 11), +(6170649, 276, 2), +(6170650, 276, 11), +(6170651, 276, 1), +(6170652, 276, 1), +(6170653, 276, 4), +(6170654, 276, 4), +(6170655, 276, 6), +(6170656, 276, 6), +(6170657, 276, 5), +(6170658, 276, 7), +(6170659, 276, 7), +(6170660, 276, 8), +(6170661, 276, 8), +(6170662, 276, 9), +(6170663, 276, 12), +(6170664, 276, 13), +(6170665, 276, 14), +(6170666, 276, 15), +(6170667, 276, 16), +(6170668, 276, 1), +(6170669, 276, 19), +(6170670, 276, 20), +(6170671, 276, 21), +(6170672, 276, 9), +(6170673, 276, 8), +(6170674, 276, 7), +(6170675, 276, 6), +(6170676, 276, 4), +(6170677, 276, 1), +(6171334, 276, 17), +(6171335, 276, 12), +(6171336, 276, 13), +(6171337, 276, 12), +(6171338, 276, 11), +(6171339, 276, 8), +(6171340, 276, 5), +(6171341, 276, 1), +(6171342, 276, 12), +(6234179, 297, 1), +(6234181, 297, 3), +(6234182, 297, 4), +(6234184, 297, 5), +(6234185, 297, 6), +(6234186, 297, 7), +(6234187, 297, 8), +(6234188, 297, 8), +(6234189, 297, 9), +(6234190, 297, 10), +(6236450, 279, 13), +(6236452, 279, 14), +(6236476, 286, 3), +(6236478, 286, 1), +(6236479, 286, 2), +(6236480, 286, 3), +(6236481, 286, 4), +(6236486, 286, 5), +(6236497, 288, 5), +(6236500, 288, 5), +(6236501, 288, 6), +(6236502, 288, 6), +(6236519, 289, 2), +(6238456, 213, 6), +(6238457, 213, 6), +(6238459, 213, 6), +(6242634, 279, 12), +(6242635, 279, 13), +(6242683, 279, 14), +(6268735, 303, 15), +(6268736, 303, 15), +(6271621, 303, 15), +(6280057, 297, 2), +(6280060, 297, 2), +(6280251, 297, 12), +(6280417, 297, 1), +(6280446, 297, 4), +(6280447, 297, 5), +(6280449, 297, 7), +(6280451, 297, 5), +(6280453, 297, 12), +(6288695, 303, 15), +(6331526, 312, 12), +(6402356, 313, 6), +(6402704, 313, 11), +(6407718, 214, 13), +(6407719, 214, 13), +(6407720, 214, 13), +(6407721, 214, 13), +(6407722, 214, 13), +(6421882, 297, 8), +(6515982, 313, 11), +(6564487, 340, 12), +(6599910, 356, 12), +(6599911, 356, 1), +(6599912, 356, 1), +(6599913, 356, 1), +(6599914, 356, 1), +(6599915, 356, 1), +(6599916, 356, 1), +(6599917, 356, 1), +(6599918, 356, 1), +(6599919, 356, 12), +(6599920, 356, 12), +(6599922, 356, 1), +(6599923, 356, 1), +(6599924, 356, 1), +(6599925, 356, 1), +(6599926, 356, 17), +(6599927, 356, 1), +(6599928, 356, 19), +(6599929, 356, 20), +(6599930, 356, 21), +(6599931, 356, 9), +(6599932, 356, 8), +(6599933, 356, 7), +(6599934, 356, 6), +(6599935, 356, 4), +(6599936, 356, 16), +(6599937, 356, 16), +(6599938, 356, 16), +(6599939, 356, 17), +(6599940, 356, 2), +(6599941, 356, 2), +(6599942, 356, 3), +(6599943, 356, 2), +(6599944, 356, 3), +(6599945, 356, 3), +(6599946, 356, 3), +(6599947, 356, 10), +(6599948, 356, 10), +(6599949, 356, 10), +(6599950, 356, 11), +(6599951, 356, 11), +(6599952, 356, 2), +(6599953, 356, 11), +(6599954, 356, 1), +(6599955, 356, 1), +(6599956, 356, 4), +(6599957, 356, 4), +(6599958, 356, 6), +(6599959, 356, 6), +(6599960, 356, 5), +(6599961, 356, 7), +(6599962, 356, 7), +(6599963, 356, 8), +(6599964, 356, 8), +(6599965, 356, 9), +(6599966, 356, 12), +(6599967, 356, 13), +(6599968, 356, 14), +(6599969, 356, 15), +(6599970, 356, 16), +(6599971, 356, 1), +(6599972, 356, 19), +(6599973, 356, 20), +(6599974, 356, 21), +(6599975, 356, 9), +(6599976, 356, 8), +(6599977, 356, 7), +(6599978, 356, 6), +(6599979, 356, 4), +(6599980, 356, 1), +(6599981, 356, 17), +(6599982, 356, 12), +(6599983, 356, 13), +(6599984, 356, 12), +(6599985, 356, 11), +(6599986, 356, 8), +(6599987, 356, 5), +(6599988, 356, 1), +(6599989, 356, 12), +(6622965, 356, 17), +(6627252, 345, 13), +(6627266, 345, 13), +(6740473, 345, 13), +(6782060, 352, 12), +(6784914, 356, 2), +(6784915, 356, 2), +(6787121, 356, 3), +(6886431, 356, 2), +(6890477, 389, 1), +(6891617, 336, 1), +(6891627, 336, 1), +(6891637, 336, 2), +(6891692, 336, 3), +(6891694, 336, 5), +(6893032, 336, 6), +(6893241, 336, 7), +(6893758, 336, 9), +(6893761, 336, 11), +(6893762, 336, 11), +(6922034, 375, 1), +(6942997, 371, 13), +(6942999, 354, 10), +(6943038, 372, 30), +(6943043, 367, 8), +(6943044, 368, 21), +(6943045, 369, 17), +(6950667, 359, 1), +(6950676, 359, 2), +(6950680, 359, 3), +(6950685, 359, 4), +(6950720, 359, 4), +(6950723, 359, 5), +(6950726, 359, 6), +(6950727, 359, 7), +(6950728, 359, 8), +(6950731, 359, 8), +(6950777, 359, 9), +(6950784, 359, 9), +(6950788, 359, 10), +(6950798, 359, 11), +(6950799, 359, 12), +(6950811, 359, 14), +(6950815, 359, 15), +(6950824, 359, 15), +(6950847, 359, 8), +(6950853, 359, 8), +(6951063, 361, 9), +(6953721, 367, 2), +(6953722, 367, 4), +(6953723, 367, 3), +(6953726, 367, 3), +(6953738, 367, 5), +(6953772, 367, 1), +(6953773, 367, 1), +(6953776, 367, 1), +(6953780, 367, 6), +(6953786, 367, 7), +(6953788, 367, 8), +(6953789, 367, 2), +(6953790, 367, 10), +(6953792, 367, 22), +(6953800, 367, 23), +(6953802, 367, 27), +(6953804, 367, 19), +(6953807, 367, 21), +(6953811, 367, 24), +(6953814, 367, 27), +(6953815, 367, 27), +(6953816, 367, 27), +(6953817, 367, 27), +(6953818, 367, 27), +(6953819, 367, 27), +(6953820, 367, 27), +(6954096, 367, 1), +(6954100, 367, 1), +(6954246, 389, 3), +(6954248, 389, 4), +(6954278, 367, 1), +(6954280, 367, 3), +(6954281, 367, 3), +(6954284, 367, 4), +(6954287, 367, 5), +(6954295, 367, 6), +(6954296, 367, 6), +(6954297, 367, 5), +(6954298, 367, 6), +(6954300, 367, 8), +(6954302, 367, 8), +(6954311, 367, 8), +(6954328, 367, 11), +(6954522, 367, 4), +(6954780, 367, 11), +(6954781, 367, 11), +(6954784, 367, 11), +(6954791, 367, 11), +(6955593, 367, 15), +(6955601, 367, 15), +(6955610, 367, 18), +(6955618, 367, 18), +(6955619, 367, 18), +(6955623, 367, 22), +(6955625, 367, 22), +(6955627, 367, 22), +(6955631, 367, 22), +(6955632, 367, 22), +(6955633, 367, 22), +(6955643, 367, 17), +(6955645, 367, 17), +(6955646, 367, 17), +(6955647, 367, 17), +(6955648, 367, 17), +(6955649, 367, 17), +(6955650, 367, 22), +(6955651, 367, 28), +(6955652, 367, 28), +(6955653, 367, 28), +(6955654, 367, 28), +(6955655, 367, 28), +(6955656, 367, 28), +(6955657, 367, 28), +(6955658, 367, 28), +(6955659, 367, 28), +(6955660, 367, 28), +(6955661, 367, 28), +(6955662, 367, 22), +(6955663, 367, 28), +(6955664, 367, 28), +(6955666, 367, 28), +(6955667, 367, 20), +(6957295, 375, 1), +(6957309, 375, 2), +(6957314, 375, 2), +(6957316, 375, 2), +(6957345, 375, 4), +(6957347, 375, 5), +(6957348, 375, 5), +(6957349, 375, 6), +(6957357, 375, 6), +(6957359, 375, 7), +(6957361, 375, 8), +(6957363, 375, 8), +(6957364, 375, 10), +(6957365, 375, 10), +(6957366, 375, 11), +(6957367, 375, 11), +(6957368, 375, 12), +(6957369, 375, 13), +(6957370, 375, 13), +(6958837, 368, 1), +(6958838, 368, 16), +(6958839, 368, 13), +(6958840, 368, 13), +(6958841, 368, 13), +(6958842, 368, 17), +(6958843, 368, 17), +(6959180, 368, 18), +(6959190, 368, 30), +(6959196, 368, 29), +(6959201, 368, 29), +(6959202, 368, 29), +(6959204, 368, 29), +(6959205, 368, 29), +(6959210, 368, 28), +(6959270, 368, 20), +(6959276, 368, 20), +(6959284, 368, 20), +(6959315, 368, 20), +(6959321, 368, 20), +(6959322, 368, 20), +(6959332, 368, 20), +(6959337, 368, 21), +(6959418, 368, 9), +(6959448, 368, 6), +(6967602, 368, 22), +(6967981, 368, 22), +(6968551, 368, 22), +(6969053, 368, 22), +(6969094, 368, 8), +(6969098, 368, 8), +(6969100, 368, 8), +(6969102, 368, 8), +(6969105, 368, 8), +(6969117, 368, 8), +(6969118, 368, 8), +(6969119, 368, 8), +(6969120, 368, 8), +(6969121, 368, 8), +(6969122, 368, 8), +(6969455, 396, 1), +(6969457, 396, 2), +(6969461, 396, 2), +(6969463, 396, 3), +(6969464, 396, 3), +(6969467, 396, 3), +(6969468, 396, 3), +(6969470, 396, 5), +(6969475, 396, 6), +(6969478, 396, 6), +(6969486, 396, 7), +(6969492, 396, 7), +(6969496, 396, 7), +(6969507, 396, 7), +(6969509, 396, 8), +(6969513, 396, 7), +(6969517, 396, 9), +(6969520, 396, 10), +(6969521, 396, 10), +(6969607, 396, 11), +(6969611, 396, 12), +(6969612, 396, 13), +(6969618, 368, 24), +(6969620, 368, 22), +(6969622, 368, 22), +(6969626, 368, 26), +(6969630, 368, 25), +(6969632, 368, 25), +(6969633, 368, 25), +(6969635, 368, 25), +(6970815, 369, 29), +(6970818, 369, 30), +(6970820, 369, 28), +(6970822, 369, 28), +(6970824, 369, 26), +(6970826, 369, 28), +(6970827, 369, 28), +(6970858, 369, 30), +(6970860, 369, 30), +(6970861, 369, 21), +(6970863, 369, 22), +(6971003, 369, 15), +(6971057, 369, 13), +(6971058, 369, 15), +(6971059, 369, 12), +(6971060, 369, 13), +(6971062, 369, 13), +(6971063, 369, 1), +(6971064, 369, 1), +(6971065, 369, 2), +(6971068, 369, 2), +(6971069, 369, 2), +(6971070, 369, 2), +(6971072, 369, 2), +(6971073, 369, 2), +(6971075, 369, 13), +(6971077, 369, 26), +(6971084, 369, 17), +(6971185, 369, 5), +(6971191, 369, 5), +(6971193, 369, 6), +(6971194, 369, 6), +(6971199, 369, 4), +(6971201, 369, 4), +(6971202, 369, 4), +(6971218, 369, 7), +(6971225, 369, 3), +(6971339, 369, 3), +(6971342, 369, 3), +(6971343, 369, 4), +(6971345, 369, 9), +(6971346, 369, 9), +(6971347, 369, 8), +(6971349, 369, 8), +(6971350, 369, 8), +(6971351, 369, 9), +(6971352, 369, 9), +(6971353, 369, 9), +(6971386, 369, 8), +(6971395, 369, 8), +(6971398, 369, 8), +(6971399, 369, 8), +(6971401, 369, 8), +(6971402, 369, 8), +(6971404, 369, 8), +(6971406, 369, 8), +(6971407, 369, 8), +(6971412, 369, 19), +(6971414, 369, 19), +(6971416, 369, 19), +(6971418, 369, 19), +(6971424, 369, 20), +(6971428, 369, 21), +(6971432, 369, 21), +(6971460, 369, 18), +(6971461, 369, 16), +(6971463, 369, 16), +(6971464, 369, 1), +(6971465, 369, 1), +(6971466, 369, 1), +(6971467, 369, 1), +(6971468, 369, 1), +(6971471, 369, 13), +(6971479, 369, 27), +(6971482, 369, 27), +(6971969, 369, 27), +(6971973, 369, 26), +(6971977, 369, 25), +(6971980, 369, 25), +(6971982, 369, 25), +(6971983, 369, 25), +(6971984, 369, 25), +(6971985, 369, 25), +(6971986, 369, 25), +(6971989, 369, 15), +(6971991, 369, 13), +(6971993, 369, 13), +(6971994, 369, 15), +(6971996, 369, 17), +(6971998, 369, 17), +(6972099, 371, 4), +(6972116, 371, 4), +(6972119, 371, 2), +(6972120, 371, 2), +(6972122, 371, 3), +(6972123, 371, 2), +(6972124, 371, 10), +(6972127, 371, 1), +(6972129, 371, 10), +(6972130, 371, 1), +(6972131, 371, 27), +(6972132, 371, 7), +(6972136, 371, 2), +(6972138, 371, 1), +(6972141, 371, 2); +INSERT INTO `discoveryinfo` (`id`, `map_id`, `discover_id`) VALUES +(6972145, 371, 2), +(6972153, 371, 4), +(6972155, 371, 3), +(6972157, 371, 3), +(6972158, 371, 3), +(6972169, 371, 10), +(6972171, 371, 12), +(6972175, 371, 12), +(6972176, 371, 12), +(6972422, 371, 12), +(6972423, 371, 12), +(6972424, 371, 12), +(6973154, 371, 12), +(6973156, 371, 12), +(6973157, 371, 11), +(6973158, 371, 11), +(6973160, 371, 11), +(6973163, 371, 11), +(6973166, 371, 11), +(6973168, 371, 22), +(6973172, 371, 21), +(6973186, 371, 20), +(6973189, 371, 23), +(6973192, 371, 23), +(6973193, 371, 24), +(6973200, 371, 26), +(6973201, 371, 23), +(6973209, 371, 28), +(6973213, 371, 30), +(6973214, 371, 29), +(6973215, 371, 23), +(6973223, 371, 29), +(6973224, 371, 29), +(6973225, 371, 17), +(6973231, 371, 17), +(6973232, 371, 16), +(6973233, 371, 15), +(6973236, 371, 16), +(6973237, 371, 16), +(6973238, 371, 17), +(6973241, 371, 17), +(6973242, 371, 16), +(6973243, 371, 17), +(6973251, 371, 13), +(6973906, 371, 8), +(6973923, 371, 8), +(6973969, 371, 7), +(6973991, 371, 7), +(6973998, 371, 7), +(6974005, 371, 19), +(6974006, 371, 19), +(6974007, 371, 19), +(6975746, 371, 12), +(6976755, 354, 5), +(6976758, 354, 3), +(6976760, 354, 10), +(6976762, 354, 9), +(6976763, 354, 8), +(6976765, 354, 28), +(6976768, 354, 30), +(6976773, 354, 21), +(6976823, 354, 10), +(6977088, 354, 23), +(6977089, 354, 22), +(6977100, 354, 24), +(6977101, 354, 24), +(6977102, 354, 25), +(6977106, 354, 19), +(6977145, 354, 18), +(6977146, 354, 17), +(6977148, 354, 1), +(6977200, 354, 3), +(6977202, 354, 6), +(6977203, 354, 6), +(6977204, 354, 6), +(6977205, 354, 3), +(6977208, 354, 6), +(6977254, 354, 28), +(6977257, 354, 30), +(6977258, 354, 30), +(6977260, 354, 30), +(6977261, 354, 30), +(6977262, 354, 30), +(6977275, 354, 30), +(6977280, 354, 30), +(6977285, 354, 30), +(6977286, 354, 30), +(6977287, 354, 30), +(6977290, 354, 30), +(6977293, 354, 30), +(6977335, 354, 30), +(6977436, 354, 28), +(6977459, 354, 26), +(6977464, 354, 26), +(6977465, 354, 26), +(6977467, 354, 26), +(6977470, 354, 26), +(6977472, 354, 26), +(6977478, 354, 25), +(6977481, 354, 25), +(6977488, 354, 25), +(6977489, 354, 25), +(6977495, 354, 24), +(6977497, 354, 24), +(6977499, 354, 22), +(6977502, 354, 22), +(6977509, 354, 22), +(6977514, 354, 22), +(6977518, 354, 22), +(6977533, 354, 22), +(6977552, 354, 22), +(6977561, 354, 10), +(6977566, 354, 16), +(6977567, 354, 16), +(6977570, 354, 19), +(6977576, 354, 19), +(6977579, 354, 19), +(6977581, 354, 13), +(6977586, 354, 12), +(6977591, 354, 12), +(6977592, 354, 12), +(6977594, 354, 13), +(6977649, 354, 19), +(6977651, 354, 19), +(6979969, 372, 3), +(6979985, 372, 3), +(6979987, 372, 3), +(6980003, 372, 3), +(6980011, 372, 5), +(6980019, 372, 5), +(6980024, 372, 8), +(6980026, 372, 8), +(6980073, 372, 5), +(6980078, 372, 30), +(6980079, 372, 30), +(6980080, 372, 30), +(6980082, 372, 30), +(6980083, 372, 30), +(6980084, 372, 30), +(6980087, 372, 30), +(6980090, 372, 30), +(6980108, 372, 21), +(6980117, 372, 20), +(6980124, 372, 20), +(6980126, 372, 20), +(6980128, 372, 18), +(6980134, 372, 17), +(6980135, 372, 17), +(6980136, 372, 17), +(6980137, 372, 17), +(6980138, 372, 16), +(6980140, 372, 15), +(6980142, 372, 16), +(6980143, 372, 16), +(6980145, 372, 15), +(6980150, 372, 1), +(6980155, 372, 2), +(6980157, 372, 29), +(6980160, 372, 29), +(6980161, 372, 29), +(6980187, 372, 22), +(6980188, 372, 26), +(6980190, 372, 7), +(6980212, 372, 30), +(6980214, 372, 9), +(6980218, 372, 11), +(6980223, 372, 7), +(6980229, 372, 8), +(6980250, 372, 8), +(6980251, 372, 8), +(6980252, 372, 3), +(6980253, 372, 3), +(6980256, 372, 3), +(6980257, 372, 3), +(6980258, 372, 3), +(6980259, 372, 17), +(6980260, 372, 19), +(6980262, 372, 18), +(6980263, 372, 18), +(6980264, 372, 18), +(6980265, 372, 18), +(6980266, 372, 18), +(6980267, 372, 18), +(6980271, 372, 18), +(6980273, 372, 18), +(6980275, 372, 30), +(6980277, 372, 22), +(6980283, 372, 20), +(6980284, 372, 23), +(6980285, 372, 25), +(6980311, 372, 26), +(6980313, 372, 26), +(6980323, 372, 25), +(6980325, 372, 25), +(6980333, 372, 24), +(6980334, 372, 25), +(6980336, 372, 25), +(6980337, 372, 26), +(6980347, 372, 27), +(6980355, 372, 27), +(6980357, 372, 27), +(6980358, 372, 2), +(6980359, 372, 2), +(6980366, 372, 1), +(6980368, 372, 2), +(6980383, 372, 25), +(6980387, 372, 26), +(6983070, 336, 3), +(6983076, 336, 7), +(6987034, 367, 1), +(6987035, 367, 1), +(6987036, 367, 1), +(6987037, 367, 2), +(6987038, 367, 2), +(6987039, 367, 2), +(6987040, 367, 2), +(6987041, 367, 3), +(6987042, 367, 3), +(6987043, 367, 3), +(6987044, 367, 4), +(6987045, 367, 4), +(6987046, 367, 4), +(6987047, 367, 5), +(6987048, 367, 5), +(6987049, 367, 5), +(6987050, 367, 6), +(6987051, 367, 6), +(6987052, 367, 6), +(6987053, 367, 7), +(6987054, 367, 7), +(6987055, 367, 7), +(6987056, 367, 8), +(6987057, 367, 8), +(6987058, 367, 8), +(6987059, 367, 2), +(6987060, 367, 10), +(6987061, 367, 11), +(6987062, 367, 11), +(6987063, 367, 11), +(6987064, 367, 11), +(6987065, 367, 11), +(6987067, 367, 25), +(6987068, 367, 25), +(6987070, 367, 13), +(6987071, 367, 13), +(6987072, 367, 13), +(6987073, 367, 12), +(6987074, 367, 14), +(6987075, 367, 14), +(6987076, 367, 15), +(6987077, 367, 15), +(6987078, 367, 15), +(6987079, 367, 24), +(6987080, 367, 25), +(6987081, 367, 25), +(6987082, 367, 26), +(6987083, 367, 27), +(6987084, 367, 27), +(6987085, 367, 27), +(6987086, 367, 27), +(6987087, 367, 28), +(6987088, 367, 28), +(6987089, 367, 28), +(6987090, 367, 28), +(6987091, 367, 28), +(6987092, 367, 30), +(6987093, 367, 30), +(6987094, 367, 30), +(6987095, 367, 29), +(6987096, 367, 23), +(6987097, 367, 23), +(6987098, 367, 8), +(6987099, 367, 16), +(6987100, 367, 16), +(6987101, 367, 17), +(6987102, 367, 17), +(6987103, 367, 22), +(6987104, 367, 22), +(6987105, 367, 22), +(6987106, 367, 21), +(6987107, 367, 21), +(6987108, 367, 18), +(6987109, 367, 18), +(6987110, 367, 19), +(6987111, 367, 20), +(6987112, 367, 10), +(6987113, 367, 10), +(6989593, 368, 1), +(6989594, 368, 1), +(6989595, 368, 1), +(6989596, 368, 1), +(6989597, 368, 3), +(6989598, 368, 3), +(6989599, 368, 2), +(6989600, 368, 1), +(6989601, 368, 2), +(6989602, 368, 2), +(6989603, 368, 14), +(6989604, 368, 14), +(6989605, 368, 14), +(6989606, 368, 15), +(6989607, 368, 15), +(6989608, 368, 15), +(6989609, 368, 17), +(6989610, 368, 17), +(6989611, 368, 17), +(6989612, 368, 16), +(6989613, 368, 16), +(6989614, 368, 16), +(6989615, 368, 16), +(6989616, 368, 16), +(6989617, 368, 18), +(6989618, 368, 18), +(6989619, 368, 18), +(6989620, 368, 18), +(6989621, 368, 18), +(6989622, 368, 30), +(6989623, 368, 30), +(6989624, 368, 30), +(6989625, 368, 30), +(6989626, 368, 30), +(6989627, 368, 29), +(6989628, 368, 29), +(6989629, 368, 31), +(6989630, 368, 28), +(6989631, 368, 28), +(6989632, 368, 19), +(6989633, 368, 19), +(6989634, 368, 20), +(6989635, 368, 20), +(6989636, 368, 19), +(6989637, 368, 20), +(6989638, 368, 27), +(6989639, 368, 27), +(6989640, 368, 27), +(6989641, 368, 26), +(6989642, 368, 26), +(6989643, 368, 26), +(6989644, 368, 24), +(6989645, 368, 24), +(6989646, 368, 25), +(6989647, 368, 25), +(6989648, 368, 25), +(6989649, 368, 25), +(6989650, 368, 25), +(6989651, 368, 23), +(6989652, 368, 21), +(6989653, 368, 21), +(6989654, 368, 21), +(6989655, 368, 21), +(6989656, 368, 11), +(6989657, 368, 11), +(6989658, 368, 11), +(6989659, 368, 11), +(6989660, 368, 11), +(6989661, 368, 11), +(6989662, 368, 11), +(6989663, 368, 11), +(6989664, 368, 13), +(6989665, 368, 12), +(6989666, 368, 4), +(6989667, 368, 4), +(6989668, 368, 4), +(6989669, 368, 5), +(6989670, 368, 5), +(6989671, 368, 5), +(6989672, 368, 10), +(6989673, 368, 10), +(6989674, 368, 10), +(6989675, 368, 22), +(6989676, 368, 22), +(6989677, 368, 22), +(6989678, 368, 22), +(6989679, 368, 9), +(6989680, 368, 9), +(6989681, 368, 9), +(6989682, 368, 8), +(6989683, 368, 7), +(6989685, 368, 6), +(6994517, 375, 1), +(6994518, 375, 2), +(6994519, 375, 4), +(6994521, 375, 8), +(6994536, 375, 12), +(6994537, 375, 13), +(6994636, 396, 5), +(6994637, 396, 9), +(6994638, 396, 11), +(6994639, 396, 13), +(6997567, 389, 1), +(6997901, 368, 17), +(6997902, 368, 17), +(6997903, 368, 15), +(6997904, 368, 16), +(6997905, 368, 16), +(6997906, 368, 11), +(6997907, 368, 2), +(6997908, 368, 20), +(6997909, 368, 16), +(6997910, 368, 20), +(6997911, 368, 28), +(6997912, 368, 21), +(6997913, 368, 21), +(6997914, 368, 22), +(6997915, 368, 22), +(6997916, 368, 22), +(6997917, 368, 9), +(6997918, 368, 26), +(6997919, 368, 20), +(6998414, 372, 8), +(6998415, 372, 8), +(6998416, 372, 18), +(6998468, 372, 3), +(6998470, 369, 1), +(6998471, 369, 1), +(6998472, 369, 1), +(6998474, 369, 1), +(6998479, 369, 1), +(6998483, 369, 2), +(6998486, 369, 2), +(6998487, 369, 2), +(6998488, 369, 2), +(6998490, 369, 2), +(6998491, 369, 1), +(6998492, 369, 3), +(6998493, 369, 3), +(6998494, 369, 3), +(6998495, 369, 3), +(6998496, 369, 3), +(6998499, 369, 4), +(6998502, 369, 4), +(6998503, 369, 4), +(6998504, 369, 4), +(6998506, 369, 5), +(6998507, 369, 5), +(6998508, 369, 5), +(6998509, 369, 5), +(6998510, 369, 6), +(6998512, 369, 6), +(6998513, 369, 6), +(6998514, 369, 6), +(6998515, 369, 6), +(6998523, 369, 6), +(6998529, 369, 7), +(6998530, 369, 7), +(6998533, 369, 7), +(6998535, 369, 20), +(6998536, 369, 20), +(6998537, 369, 20), +(6998538, 369, 20), +(6998541, 369, 19), +(6998543, 369, 19), +(6998545, 369, 19), +(6998546, 369, 19), +(6998547, 369, 19), +(6998548, 369, 20), +(6998551, 369, 19), +(6998552, 369, 21), +(6998553, 369, 21), +(6998555, 369, 21), +(6998556, 369, 21), +(6998559, 369, 31), +(6998561, 369, 31), +(6998565, 369, 21), +(6998569, 369, 30), +(6998571, 369, 30), +(6998573, 369, 29), +(6998575, 369, 28), +(6998576, 369, 28), +(6998577, 369, 28), +(6998579, 369, 28), +(6998580, 369, 28), +(6998581, 369, 28), +(6998582, 369, 26), +(6998583, 369, 28), +(6998592, 369, 28), +(6998593, 369, 28), +(6998594, 369, 27), +(6998595, 369, 27), +(6998596, 369, 27), +(6998598, 369, 26), +(6998599, 369, 26), +(6998600, 369, 26), +(6998601, 369, 25), +(6998603, 369, 25), +(6998605, 369, 25), +(6998607, 369, 14), +(6998608, 369, 14), +(6998609, 369, 14), +(6998610, 369, 14), +(6998611, 369, 14), +(6998612, 369, 15), +(6998613, 369, 15), +(6998618, 369, 15), +(6998620, 369, 25), +(6998622, 369, 13), +(6998623, 369, 13), +(6998625, 369, 13), +(6998627, 369, 12), +(6998628, 369, 12), +(6998637, 369, 12), +(6998638, 369, 12), +(6998639, 369, 12), +(6998640, 369, 11), +(6998641, 369, 3), +(6998642, 369, 10), +(6998643, 369, 10), +(6998644, 369, 10), +(6998646, 369, 10), +(6998647, 369, 9), +(6998648, 369, 9), +(6998649, 369, 9), +(6998653, 369, 8), +(6998654, 369, 8), +(6998655, 369, 8), +(6998656, 369, 8), +(6998657, 369, 22), +(6998658, 369, 22), +(6998659, 369, 22), +(6998661, 369, 18), +(6998666, 369, 17), +(6998667, 369, 17), +(6998668, 369, 17), +(6998669, 369, 23), +(6998670, 369, 24), +(6998676, 369, 24), +(6998682, 369, 16), +(6998684, 369, 1), +(6998685, 369, 1), +(6998686, 369, 1), +(6998687, 369, 1), +(6998688, 369, 1), +(6998689, 369, 2), +(6998690, 369, 2), +(6998691, 369, 2), +(6998692, 369, 2), +(6998693, 369, 2), +(6998694, 369, 1), +(6998695, 369, 3), +(6998696, 369, 3), +(6998697, 369, 3), +(6998698, 369, 3), +(6998699, 369, 3), +(6998700, 369, 4), +(6998701, 369, 4), +(6998702, 369, 4), +(6998703, 369, 4), +(6998704, 369, 5), +(6998705, 369, 5), +(6998706, 369, 5), +(6998707, 369, 5), +(6998708, 369, 6), +(6998709, 369, 6), +(6998710, 369, 6), +(6998711, 369, 6), +(6998712, 369, 6), +(6998713, 369, 6), +(6998714, 369, 7), +(6998715, 369, 7), +(6998716, 369, 7), +(6998717, 369, 20), +(6998718, 369, 20), +(6998719, 369, 20), +(6998720, 369, 20), +(6998722, 369, 19), +(6998723, 369, 19), +(6998724, 369, 19), +(6998725, 369, 19), +(6998726, 369, 19), +(6998727, 369, 20), +(6998728, 369, 19), +(6998729, 369, 21), +(6998730, 369, 21), +(6998731, 369, 21), +(6998732, 369, 21), +(6998735, 369, 31), +(6998736, 369, 31), +(6998737, 369, 21), +(6998738, 369, 30), +(6998739, 369, 30), +(6998740, 369, 29), +(6998741, 369, 28), +(6998742, 369, 28), +(6998743, 369, 28), +(6998744, 369, 28), +(6998745, 369, 28), +(6998746, 369, 28), +(6998747, 369, 26), +(6998748, 369, 28), +(6998749, 369, 28), +(6998750, 369, 28), +(6998751, 369, 27), +(6998752, 369, 27), +(6998753, 369, 27), +(6998754, 369, 26), +(6998755, 369, 26), +(6998756, 369, 26), +(6998757, 369, 25), +(6998758, 369, 25), +(6998759, 369, 25), +(6998760, 369, 14), +(6998761, 369, 14), +(6998762, 369, 14), +(6998763, 369, 14), +(6998764, 369, 14), +(6998765, 369, 15), +(6998766, 369, 15), +(6998767, 369, 15), +(6998768, 369, 25), +(6998769, 369, 13), +(6998770, 369, 13), +(6998771, 369, 13), +(6998772, 369, 12), +(6998773, 369, 12), +(6998774, 369, 12), +(6998775, 369, 12), +(6998776, 369, 12), +(6998777, 369, 11), +(6998778, 369, 3), +(6998779, 369, 10), +(6998780, 369, 10), +(6998781, 369, 10), +(6998782, 369, 10), +(6998783, 369, 9), +(6998784, 369, 9), +(6998785, 369, 9), +(6998786, 369, 8), +(6998787, 369, 8), +(6998788, 369, 8), +(6998789, 369, 8), +(6998790, 369, 22), +(6998791, 369, 22), +(6998792, 369, 22), +(6998793, 369, 18), +(6998794, 369, 17), +(6998795, 369, 17), +(6998796, 369, 17), +(6998797, 369, 23), +(6998798, 369, 24), +(6998799, 369, 24), +(6998800, 369, 16), +(6998818, 371, 1), +(6998896, 371, 1), +(6998897, 371, 1), +(6998898, 371, 1), +(6998899, 371, 2), +(6998900, 371, 2), +(6998901, 371, 2), +(6998902, 371, 2), +(6998946, 371, 3), +(6998947, 371, 3), +(6998982, 371, 3), +(6998983, 371, 3), +(6998984, 371, 3), +(6998986, 371, 4), +(6998987, 371, 4), +(6998988, 371, 4), +(6998990, 371, 4), +(6998991, 371, 4), +(6999007, 371, 6), +(6999008, 371, 6), +(6999009, 371, 6), +(6999010, 371, 6), +(6999011, 371, 15), +(6999012, 371, 15), +(6999013, 371, 15), +(6999014, 371, 5), +(6999015, 371, 16), +(6999016, 371, 16), +(6999017, 371, 16), +(6999020, 371, 17), +(6999021, 371, 17), +(6999022, 371, 17), +(6999023, 371, 17), +(6999024, 371, 17), +(6999025, 371, 17), +(6999026, 371, 29), +(6999028, 371, 29), +(6999029, 371, 30), +(6999030, 371, 27), +(6999032, 371, 27), +(6999034, 371, 27), +(6999147, 371, 28), +(6999150, 371, 23), +(6999152, 371, 23), +(6999153, 371, 23), +(6999154, 371, 23), +(6999156, 371, 23), +(6999157, 371, 23), +(6999158, 371, 23), +(6999159, 371, 23), +(6999160, 371, 23), +(6999163, 371, 23), +(6999166, 371, 23), +(6999169, 371, 24), +(6999170, 371, 24), +(6999171, 371, 24), +(6999172, 371, 24), +(6999173, 371, 26), +(6999174, 371, 26), +(6999175, 371, 23), +(6999176, 371, 25), +(6999177, 371, 21), +(6999179, 371, 21), +(6999180, 371, 21), +(6999181, 371, 21), +(6999182, 371, 21), +(6999183, 371, 21), +(6999184, 371, 22), +(6999185, 371, 12), +(6999186, 371, 12), +(6999188, 371, 12), +(6999189, 371, 12), +(6999190, 371, 12), +(6999191, 371, 12), +(6999192, 371, 11), +(6999193, 371, 11), +(6999194, 371, 11), +(6999195, 371, 10), +(6999196, 371, 10), +(6999197, 371, 10), +(6999200, 371, 10), +(6999201, 371, 10), +(6999202, 371, 9), +(6999203, 371, 9), +(6999204, 371, 9), +(6999206, 371, 8), +(6999207, 371, 8), +(6999209, 371, 8), +(6999212, 371, 7), +(6999213, 371, 7), +(6999214, 371, 7), +(6999216, 371, 14), +(6999217, 371, 19), +(6999218, 371, 19), +(6999219, 371, 7), +(6999220, 371, 19), +(6999221, 371, 18), +(6999222, 371, 20), +(6999223, 371, 23), +(6999224, 371, 13), +(6999476, 371, 1), +(6999477, 371, 1), +(6999478, 371, 1), +(6999479, 371, 1), +(6999480, 371, 2), +(6999481, 371, 2), +(6999482, 371, 2), +(6999483, 371, 2), +(6999484, 371, 3), +(6999485, 371, 3), +(6999486, 371, 3), +(6999487, 371, 3), +(6999488, 371, 3), +(6999489, 371, 4), +(6999490, 371, 4), +(6999491, 371, 4), +(6999492, 371, 4), +(6999493, 371, 4), +(6999494, 371, 6), +(6999495, 371, 6), +(6999496, 371, 6), +(6999497, 371, 6), +(6999498, 371, 15), +(6999499, 371, 15), +(6999500, 371, 15), +(6999501, 371, 5), +(6999502, 371, 16), +(6999503, 371, 16), +(6999504, 371, 16), +(6999505, 371, 17), +(6999506, 371, 17), +(6999507, 371, 17), +(6999508, 371, 17), +(6999509, 371, 17), +(6999510, 371, 17), +(6999511, 371, 29), +(6999512, 371, 29), +(6999513, 371, 30), +(6999514, 371, 27), +(6999515, 371, 27), +(6999516, 371, 27), +(6999517, 371, 28), +(6999518, 371, 23), +(6999519, 371, 23), +(6999520, 371, 23), +(6999521, 371, 23), +(6999522, 371, 23), +(6999523, 371, 23), +(6999524, 371, 23), +(6999525, 371, 23), +(6999526, 371, 23), +(6999527, 371, 23), +(6999528, 371, 23), +(6999529, 371, 24), +(6999530, 371, 24), +(6999531, 371, 24), +(6999532, 371, 24), +(6999533, 371, 26), +(6999534, 371, 26), +(6999535, 371, 23), +(6999536, 371, 25), +(6999537, 371, 21), +(6999538, 371, 21), +(6999539, 371, 21), +(6999540, 371, 21), +(6999541, 371, 21), +(6999542, 371, 21), +(6999543, 371, 22), +(6999544, 371, 12), +(6999545, 371, 12), +(6999546, 371, 12), +(6999547, 371, 12), +(6999548, 371, 12), +(6999549, 371, 12), +(6999550, 371, 11), +(6999551, 371, 11), +(6999552, 371, 11), +(6999553, 371, 10), +(6999554, 371, 10), +(6999555, 371, 10), +(6999556, 371, 10), +(6999557, 371, 10), +(6999558, 371, 9), +(6999559, 371, 9), +(6999560, 371, 9), +(6999561, 371, 8), +(6999562, 371, 8), +(6999563, 371, 8), +(6999564, 371, 7), +(6999565, 371, 7), +(6999566, 371, 7), +(6999567, 371, 14), +(6999568, 371, 19), +(6999569, 371, 19), +(6999570, 371, 7), +(6999571, 371, 19), +(6999572, 371, 18), +(6999573, 371, 20), +(6999574, 371, 23), +(6999575, 371, 13), +(7001712, 354, 1), +(7002280, 354, 1), +(7002282, 354, 1), +(7002283, 354, 1), +(7002284, 354, 3), +(7002286, 354, 3), +(7002287, 354, 3), +(7002289, 354, 3), +(7002290, 354, 3), +(7002292, 354, 3), +(7002297, 354, 4), +(7002298, 354, 4), +(7002324, 354, 6), +(7002325, 354, 6), +(7002327, 354, 3), +(7002328, 354, 2), +(7002329, 354, 2), +(7002333, 354, 8), +(7002334, 354, 8), +(7002335, 354, 8), +(7002336, 354, 7), +(7002337, 354, 30), +(7002338, 354, 30), +(7002339, 354, 30), +(7002360, 354, 30), +(7002361, 354, 29), +(7002363, 354, 9), +(7002364, 354, 9), +(7002365, 354, 10), +(7002366, 354, 10), +(7002370, 354, 10), +(7002371, 354, 10), +(7002372, 354, 10), +(7002373, 354, 9), +(7002374, 354, 9), +(7002376, 354, 28), +(7002378, 354, 28), +(7002382, 354, 28), +(7002385, 354, 28), +(7002387, 354, 27), +(7002388, 354, 27), +(7002390, 354, 26), +(7002391, 354, 26), +(7002392, 354, 25), +(7002393, 354, 26), +(7002394, 354, 25), +(7002395, 354, 25), +(7002396, 354, 25), +(7002397, 354, 25), +(7002398, 354, 24), +(7002399, 354, 24), +(7002401, 354, 24), +(7002404, 354, 24), +(7002410, 354, 23), +(7002412, 354, 23), +(7002413, 354, 23), +(7002414, 354, 23), +(7002415, 354, 23), +(7002416, 354, 23), +(7002417, 354, 23), +(7002418, 354, 22), +(7002419, 354, 19), +(7002420, 354, 22), +(7002422, 354, 21), +(7002423, 354, 17), +(7002424, 354, 17), +(7002425, 354, 17), +(7002426, 354, 16), +(7002427, 354, 17), +(7002428, 354, 16), +(7002430, 354, 16), +(7002431, 354, 16), +(7002432, 354, 16), +(7002434, 354, 15), +(7002436, 354, 15), +(7002437, 354, 15), +(7002439, 354, 19), +(7002694, 354, 19), +(7002695, 354, 19), +(7002696, 354, 19), +(7002697, 354, 19), +(7002698, 354, 18), +(7002700, 354, 20), +(7002701, 354, 20), +(7002703, 354, 20), +(7002705, 354, 11), +(7002708, 354, 11), +(7002710, 354, 14), +(7002711, 354, 14), +(7002712, 354, 14), +(7002713, 354, 13), +(7002714, 354, 12), +(7002715, 354, 1), +(7002716, 354, 1), +(7002717, 354, 1), +(7002718, 354, 1), +(7002719, 354, 3), +(7002720, 354, 3), +(7002721, 354, 3), +(7002722, 354, 3), +(7002723, 354, 3), +(7002725, 354, 3), +(7002726, 354, 4), +(7002727, 354, 4), +(7002730, 354, 6), +(7002731, 354, 6), +(7002732, 354, 3), +(7002733, 354, 2), +(7002734, 354, 2), +(7002735, 354, 8), +(7002736, 354, 8), +(7002737, 354, 8), +(7002738, 354, 7), +(7002739, 354, 30), +(7002740, 354, 30), +(7002741, 354, 30), +(7002742, 354, 30), +(7002743, 354, 29), +(7002744, 354, 9), +(7002745, 354, 9), +(7002746, 354, 10), +(7002747, 354, 10), +(7002748, 354, 10), +(7002749, 354, 10), +(7002750, 354, 10), +(7002751, 354, 9), +(7002752, 354, 9), +(7002753, 354, 28), +(7002754, 354, 28), +(7002755, 354, 28), +(7002756, 354, 28), +(7002757, 354, 27), +(7002758, 354, 27), +(7002759, 354, 26), +(7002760, 354, 26), +(7002761, 354, 25), +(7002762, 354, 26), +(7002763, 354, 25), +(7002764, 354, 25), +(7002765, 354, 25), +(7002766, 354, 25), +(7002767, 354, 24), +(7002768, 354, 24), +(7002769, 354, 24), +(7002770, 354, 24), +(7002771, 354, 23), +(7002772, 354, 23), +(7002773, 354, 23), +(7002774, 354, 23), +(7002775, 354, 23), +(7002776, 354, 23), +(7002777, 354, 23), +(7002778, 354, 22), +(7002779, 354, 19), +(7002780, 354, 22), +(7002781, 354, 21), +(7002782, 354, 17), +(7002783, 354, 17), +(7002784, 354, 17), +(7002785, 354, 16), +(7002786, 354, 17), +(7002787, 354, 16), +(7002789, 354, 16), +(7002790, 354, 16), +(7002791, 354, 16), +(7002793, 354, 15), +(7002794, 354, 15), +(7002795, 354, 15), +(7002796, 354, 19), +(7002797, 354, 19), +(7002798, 354, 19), +(7002799, 354, 19), +(7002800, 354, 19), +(7002801, 354, 18), +(7002802, 354, 20), +(7002803, 354, 20), +(7002804, 354, 20), +(7002805, 354, 11), +(7002806, 354, 11), +(7002807, 354, 14), +(7002808, 354, 14), +(7002809, 354, 14), +(7002810, 354, 13), +(7002811, 354, 12), +(7005090, 372, 1), +(7005094, 372, 1), +(7005096, 372, 1), +(7005098, 372, 1), +(7005107, 372, 1), +(7005115, 372, 5), +(7005118, 372, 5), +(7005165, 372, 5), +(7005166, 372, 5), +(7005167, 372, 5), +(7005168, 372, 8), +(7005169, 372, 8), +(7005170, 372, 18), +(7005171, 372, 8), +(7005172, 372, 3), +(7005173, 372, 3), +(7005174, 372, 3), +(7005175, 372, 3), +(7005176, 372, 9), +(7005177, 372, 9), +(7005179, 372, 9), +(7005180, 372, 9), +(7005181, 372, 10), +(7005183, 372, 15), +(7005184, 372, 14), +(7005186, 372, 14), +(7005210, 372, 14), +(7005211, 372, 14), +(7005212, 372, 14), +(7005213, 372, 14), +(7005214, 372, 14), +(7005215, 372, 11), +(7005217, 372, 11), +(7005240, 372, 7), +(7005401, 372, 7), +(7005404, 372, 7), +(7005406, 372, 6), +(7005408, 372, 12), +(7005409, 372, 12), +(7005410, 372, 12), +(7005411, 372, 12), +(7005412, 372, 13), +(7005413, 372, 13), +(7005414, 372, 13), +(7005415, 372, 13), +(7005417, 372, 15), +(7005418, 372, 15), +(7005419, 372, 15), +(7005420, 372, 15), +(7005422, 372, 18), +(7005423, 372, 18), +(7005424, 372, 18), +(7005425, 372, 18), +(7005426, 372, 16), +(7005427, 372, 19), +(7005429, 372, 19), +(7005431, 372, 19), +(7005432, 372, 19), +(7005433, 372, 19), +(7005434, 372, 19), +(7005435, 372, 19), +(7005436, 372, 19), +(7005437, 372, 19), +(7005438, 372, 17), +(7005441, 372, 17), +(7005442, 372, 17), +(7005444, 372, 17), +(7005445, 372, 20), +(7005446, 372, 20), +(7005447, 372, 20), +(7005451, 372, 20), +(7005452, 372, 21), +(7005453, 372, 21), +(7005454, 372, 21), +(7005455, 372, 23), +(7005456, 372, 23), +(7005457, 372, 23), +(7005458, 372, 23), +(7005459, 372, 23), +(7005460, 372, 23), +(7005465, 372, 22), +(7005468, 372, 22), +(7005469, 372, 22), +(7005470, 372, 22), +(7005471, 372, 22), +(7005472, 372, 22), +(7005473, 372, 22), +(7005474, 372, 22), +(7005475, 372, 22), +(7005477, 372, 24), +(7005481, 372, 24), +(7005482, 372, 24), +(7005584, 372, 25), +(7005585, 372, 25), +(7005586, 372, 30), +(7005587, 372, 30), +(7005588, 372, 30), +(7005589, 372, 4), +(7005590, 372, 4), +(7005591, 372, 4), +(7005592, 372, 30), +(7005593, 372, 2), +(7005594, 372, 2), +(7005595, 372, 2), +(7005596, 372, 29), +(7005598, 372, 29), +(7005600, 372, 27), +(7005601, 372, 27), +(7005602, 372, 27), +(7005606, 372, 28), +(7005607, 372, 28), +(7005608, 372, 26), +(7005609, 372, 10), +(7005610, 372, 14), +(7007424, 372, 1), +(7007425, 372, 1), +(7007426, 372, 1), +(7007427, 372, 1), +(7007428, 372, 1), +(7007429, 372, 5), +(7007430, 372, 5), +(7007431, 372, 5), +(7007432, 372, 5), +(7007433, 372, 5), +(7007434, 372, 8), +(7007435, 372, 8), +(7007436, 372, 18), +(7007437, 372, 8), +(7007438, 372, 3), +(7007439, 372, 3), +(7007440, 372, 3), +(7007441, 372, 3), +(7007442, 372, 9), +(7007443, 372, 9), +(7007444, 372, 9), +(7007445, 372, 9), +(7007446, 372, 10), +(7007447, 372, 15), +(7007448, 372, 14), +(7007449, 372, 14), +(7007450, 372, 14), +(7007451, 372, 14), +(7007452, 372, 14), +(7007453, 372, 14), +(7007454, 372, 14), +(7007455, 372, 11), +(7007456, 372, 11), +(7007457, 372, 7), +(7007458, 372, 7), +(7007459, 372, 7), +(7007460, 372, 6), +(7007461, 372, 12), +(7007462, 372, 12), +(7007463, 372, 12), +(7007464, 372, 12), +(7007465, 372, 13), +(7007466, 372, 13), +(7007467, 372, 13), +(7007468, 372, 13), +(7007469, 372, 15), +(7007470, 372, 15), +(7007471, 372, 15), +(7007472, 372, 15), +(7007473, 372, 18), +(7007474, 372, 18), +(7007475, 372, 18), +(7007476, 372, 18), +(7007477, 372, 16), +(7007478, 372, 19), +(7007479, 372, 19), +(7007480, 372, 19), +(7007481, 372, 19), +(7007482, 372, 19), +(7007483, 372, 19), +(7007484, 372, 19), +(7007485, 372, 19), +(7007486, 372, 19), +(7007487, 372, 17), +(7007488, 372, 17), +(7007489, 372, 17), +(7007490, 372, 17), +(7007491, 372, 20), +(7007492, 372, 20), +(7007493, 372, 20), +(7007494, 372, 20), +(7007495, 372, 21), +(7007496, 372, 21), +(7007497, 372, 21), +(7007498, 372, 23), +(7007499, 372, 23), +(7007500, 372, 23), +(7007501, 372, 23), +(7007502, 372, 23), +(7007503, 372, 23), +(7007504, 372, 22), +(7007505, 372, 22), +(7007506, 372, 22), +(7007507, 372, 22), +(7007508, 372, 22), +(7007509, 372, 22), +(7007510, 372, 22), +(7007511, 372, 22), +(7007512, 372, 22), +(7007513, 372, 24), +(7007514, 372, 24), +(7007515, 372, 24), +(7007516, 372, 25), +(7007517, 372, 25), +(7007518, 372, 30), +(7007519, 372, 30), +(7007520, 372, 30), +(7007521, 372, 4), +(7007522, 372, 4), +(7007523, 372, 4), +(7007524, 372, 30), +(7007525, 372, 2), +(7007526, 372, 2), +(7007527, 372, 2), +(7007528, 372, 29), +(7007529, 372, 29), +(7007530, 372, 27), +(7007531, 372, 27), +(7007532, 372, 27), +(7007533, 372, 28), +(7007534, 372, 28), +(7007535, 372, 26), +(7007536, 372, 10), +(7007537, 372, 14), +(7008614, 368, 17), +(7008615, 368, 17), +(7008616, 368, 17), +(7008617, 368, 17), +(7008977, 372, 16), +(7011528, 369, 23), +(7011608, 368, 16), +(7011609, 368, 16), +(7011611, 368, 16), +(7011612, 368, 16), +(7011613, 368, 16), +(7011909, 369, 23), +(7011910, 369, 16), +(7011911, 369, 16), +(7011912, 369, 17), +(7011913, 369, 18), +(7011914, 369, 22), +(7011915, 369, 24), +(7011916, 369, 17), +(7011917, 369, 24), +(7011918, 369, 16), +(7011919, 369, 24), +(7011920, 369, 16), +(7011921, 369, 18), +(7011922, 369, 16), +(7011923, 369, 10), +(7015554, 371, 12), +(7015555, 371, 12), +(7015556, 371, 12), +(7015557, 371, 12), +(7015559, 371, 12), +(7015560, 371, 12), +(7015561, 371, 12), +(7015562, 371, 12), +(7015563, 371, 1), +(7015564, 371, 1), +(7015565, 371, 1), +(7015639, 371, 1), +(7015809, 371, 29), +(7015810, 371, 29), +(7015811, 371, 29), +(7015831, 371, 29), +(7017072, 368, 21), +(7017073, 368, 21), +(7017074, 368, 21), +(7017821, 368, 21), +(7017822, 368, 21), +(7017823, 368, 21), +(7017824, 368, 21), +(7017825, 368, 21), +(7018030, 372, 8), +(7018032, 372, 8), +(7021959, 354, 6), +(7022000, 371, 8), +(7022001, 371, 8), +(7022002, 371, 8), +(7022080, 369, 13), +(7022081, 369, 13), +(7022082, 369, 10), +(7022083, 369, 10), +(7022084, 369, 10), +(7022085, 369, 10), +(7022086, 369, 3), +(7022088, 369, 3), +(7022089, 369, 3), +(7022221, 372, 1), +(7022434, 371, 21), +(7022435, 371, 7), +(7022436, 371, 6), +(7022437, 371, 15), +(7022438, 371, 5), +(7022439, 371, 5), +(7022472, 369, 12), +(7022480, 369, 12), +(7022482, 369, 12), +(7022484, 369, 12), +(7031210, 369, 31), +(7031211, 369, 31), +(7031212, 369, 31), +(7031213, 369, 31), +(7031219, 369, 31), +(7031225, 369, 31), +(7031226, 369, 30), +(7031228, 369, 31), +(7031229, 369, 31), +(7031230, 369, 31), +(7031233, 369, 30), +(7031341, 369, 31), +(7031346, 369, 31), +(7031381, 369, 31), +(7031993, 369, 30), +(7032050, 369, 21), +(7032051, 369, 21), +(7036942, 369, 30), +(7082919, 415, 14), +(7082925, 415, 14), +(7082926, 415, 14), +(7171388, 415, 15), +(7171970, 439, 1), +(7171972, 439, 2), +(7171973, 439, 3), +(7171974, 439, 4), +(7171977, 439, 7), +(7171981, 439, 11), +(7171982, 439, 11), +(7171983, 439, 6), +(7171987, 439, 7), +(7171988, 439, 7), +(7171997, 439, 4), +(7171998, 439, 9), +(7171999, 439, 13), +(7247207, 445, 1), +(7257150, 414, 1), +(7309598, 414, 1), +(7309601, 414, 2), +(7309602, 414, 2), +(7309603, 414, 2), +(7309608, 414, 2), +(7309609, 414, 2), +(7309615, 414, 13), +(7309629, 414, 13), +(7309632, 414, 12), +(7309633, 414, 12), +(7309634, 414, 12), +(7309640, 414, 12), +(7309641, 414, 11), +(7309642, 414, 11), +(7309679, 414, 8), +(7309688, 414, 9), +(7309690, 414, 9), +(7309692, 414, 9), +(7309694, 414, 9), +(7309695, 414, 7), +(7309697, 414, 7), +(7309698, 414, 7), +(7309699, 414, 7), +(7310021, 414, 5), +(7310031, 414, 5), +(7310032, 414, 5), +(7310046, 414, 10), +(7310052, 414, 3), +(7310119, 414, 7), +(7310228, 414, 12), +(7310233, 414, 11), +(7310337, 414, 5), +(7329610, 414, 10), +(7329613, 414, 12), +(7329615, 414, 12), +(7329616, 414, 12), +(7329617, 414, 13), +(7329620, 414, 13), +(7329621, 414, 13), +(7329623, 414, 2), +(7329624, 414, 2), +(7329625, 414, 2), +(7329626, 414, 2), +(7329627, 414, 2), +(7329629, 414, 2), +(7329630, 414, 2), +(7329631, 414, 2), +(7329635, 414, 4), +(7329639, 414, 5), +(7329641, 414, 7), +(7329643, 414, 7), +(7329644, 414, 7), +(7329645, 414, 7), +(7329646, 414, 7), +(7329648, 414, 7), +(7329650, 414, 8), +(7329651, 414, 8), +(7329653, 414, 8), +(7329654, 414, 2), +(7329655, 414, 9), +(7329656, 414, 9), +(7329658, 414, 9); + + +INSERT INTO `land` (`LandSetId`, `LandId`, `Type`, `Size`, `Status`, `LandPrice`, `UpdateTime`, `OwnerId`, `HouseId`, `UPDATE_DATE`) VALUES +(22216704, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:14'), +(22216704, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:15'), +(22216704, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:16'), +(22216704, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216704, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216705, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216705, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:17'), +(22216705, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:17'), +(22216705, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:18'), +(22216705, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:19'), +(22216705, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216705, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:20'), +(22216706, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:21'), +(22216706, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:22'), +(22216706, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:23'), +(22216707, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:24'), +(22216707, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216707, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216708, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216708, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216708, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:25'), +(22216708, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216708, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216708, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:25'), +(22216708, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:26'), +(22216708, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:27'), +(22216708, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216708, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:28'), +(22216709, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:29'), +(22216709, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:30'), +(22216709, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216709, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:31'), +(22216709, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216709, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:31'), +(22216710, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:32'), +(22216710, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:33'), +(22216710, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216710, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:34'), +(22216710, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216710, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:34'), +(22216711, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:35'), +(22216711, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216711, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:36'), +(22216712, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:37'), +(22216712, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:38'), +(22216712, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216712, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:39'), +(22216713, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:40'), +(22216713, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:41'), +(22216713, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216713, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:42'), +(22216714, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:43'), +(22216714, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:44'), +(22216714, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216714, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216715, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216715, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216715, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:45'), +(22216715, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216715, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216715, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:45'), +(22216715, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:46'), +(22216715, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:47'), +(22216715, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216715, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:48'), +(22216716, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:49'), +(22216716, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:50'); +INSERT INTO `land` (`LandSetId`, `LandId`, `Type`, `Size`, `Status`, `LandPrice`, `UpdateTime`, `OwnerId`, `HouseId`, `UPDATE_DATE`) VALUES +(22216716, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216716, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216717, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:50'), +(22216717, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:51'), +(22216717, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:52'), +(22216717, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216717, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:53'), +(22216718, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:54'), +(22216718, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:55'), +(22216718, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216718, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216718, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:56'), +(22216718, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216718, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:56'), +(22216719, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:57'), +(22216719, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216719, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216720, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216720, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:58'), +(22216720, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:58'), +(22216720, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:28:59'), +(22216720, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:00'), +(22216720, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216720, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 0, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 1, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 2, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 3, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 4, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 5, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 6, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 7, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 8, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 9, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:01'), +(22216721, 13, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 14, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 15, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 16, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 18, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 21, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 22, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 23, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 25, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 28, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 29, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 30, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 31, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 32, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 33, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 34, 0, 2, 1, 50000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 35, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:02'), +(22216721, 36, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 37, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 38, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 39, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 43, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 44, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 45, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 46, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 48, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 51, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 52, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 53, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 55, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:03'), +(22216721, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:04'), +(22216721, 58, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22216721, 59, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:04'), +(22282240, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:05'), +(22282240, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:06'), +(22282240, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:07'), +(22282241, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:08'), +(22282241, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282241, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282242, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282242, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282242, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282242, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:09'), +(22282242, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:10'), +(22282242, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:11'), +(22282242, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282242, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282243, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282243, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282243, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282243, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:12'), +(22282243, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:13'), +(22282243, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:14'), +(22282243, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282243, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282244, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282244, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282244, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282244, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282244, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:15'), +(22282244, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:16'), +(22282244, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:17'), +(22282244, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282244, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282245, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282245, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:18'), +(22282245, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:19'), +(22282245, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:20'), +(22282245, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282245, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:21'), +(22282246, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:22'), +(22282246, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:23'), +(22282246, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:24'), +(22282246, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:25'), +(22282246, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282246, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282246, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282246, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:25'), +(22282247, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:26'), +(22282247, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:27'), +(22282247, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:27'); +INSERT INTO `land` (`LandSetId`, `LandId`, `Type`, `Size`, `Status`, `LandPrice`, `UpdateTime`, `OwnerId`, `HouseId`, `UPDATE_DATE`) VALUES +(22282247, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282247, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:28'), +(22282247, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282247, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282247, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282247, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:28'), +(22282248, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:29'), +(22282248, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:30'), +(22282248, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:31'), +(22282248, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282248, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282248, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282248, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:31'), +(22282249, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:32'), +(22282249, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:33'), +(22282249, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:34'), +(22282249, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282249, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282249, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282249, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:34'), +(22282250, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:35'), +(22282250, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:36'), +(22282250, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282250, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:37'), +(22282251, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:38'), +(22282251, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:39'), +(22282251, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282251, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282252, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282252, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282252, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282252, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282252, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282252, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:40'), +(22282252, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:41'), +(22282252, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:42'), +(22282252, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282252, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282253, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282253, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282253, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282253, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:43'), +(22282253, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:44'), +(22282253, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:45'), +(22282253, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:46'), +(22282253, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:47'), +(22282254, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:48'), +(22282254, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282254, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282255, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:49'), +(22282255, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:50'), +(22282255, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:51'), +(22282255, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282255, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:52'), +(22282256, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:53'), +(22282256, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:54'), +(22282256, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:55'), +(22282256, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282256, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 0, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 1, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 2, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 3, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 4, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 5, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 7, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 9, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 10, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 12, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 14, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 15, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:56'), +(22282257, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 17, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 18, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 19, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 20, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 23, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 24, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 25, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 26, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 27, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 28, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 29, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 30, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 31, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 32, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 33, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:57'), +(22282257, 34, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 35, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 37, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 39, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 40, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 42, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 44, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 45, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 47, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 48, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 49, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 50, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 53, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 54, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:58'), +(22282257, 55, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:29:59'), +(22282257, 56, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:59'), +(22282257, 57, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:29:59'), +(22282257, 58, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:59'), +(22282257, 59, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:29:59'), +(22347776, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:00'), +(22347776, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:01'), +(22347776, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:02'), +(22347776, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347776, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347776, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:02'), +(22347776, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:02'), +(22347776, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:02'), +(22347776, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:02'), +(22347777, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:03'), +(22347777, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:04'), +(22347777, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347777, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347777, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:05'), +(22347777, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:05'), +(22347777, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:05'), +(22347777, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:05'), +(22347778, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:06'), +(22347778, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:07'), +(22347778, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:08'); +INSERT INTO `land` (`LandSetId`, `LandId`, `Type`, `Size`, `Status`, `LandPrice`, `UpdateTime`, `OwnerId`, `HouseId`, `UPDATE_DATE`) VALUES +(22347778, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:08'), +(22347778, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:08'), +(22347779, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:09'), +(22347779, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:10'), +(22347779, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:11'), +(22347779, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:11'), +(22347780, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:12'), +(22347780, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:13'), +(22347780, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:14'), +(22347780, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:14'), +(22347781, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:15'), +(22347781, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:16'), +(22347781, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347781, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:17'), +(22347781, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347781, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347781, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:17'), +(22347781, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:17'), +(22347781, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:17'), +(22347781, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:17'), +(22347782, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:18'), +(22347782, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:19'), +(22347782, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:20'), +(22347782, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:20'), +(22347783, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:21'), +(22347783, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:22'), +(22347783, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:23'), +(22347783, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:23'), +(22347784, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:24'), +(22347784, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:25'), +(22347784, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347784, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:26'), +(22347784, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347784, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347784, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:26'), +(22347784, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:26'), +(22347784, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:26'), +(22347784, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:26'), +(22347785, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:27'), +(22347785, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:28'), +(22347785, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:29'), +(22347786, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:30'), +(22347786, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:31'), +(22347786, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347787, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347787, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:31'), +(22347787, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:31'), +(22347787, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:32'), +(22347787, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:33'), +(22347787, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:34'), +(22347787, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347788, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:34'), +(22347788, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:35'), +(22347788, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:36'), +(22347788, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:37'), +(22347788, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347789, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:37'), +(22347789, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:37'), +(22347789, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:38'), +(22347789, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:39'), +(22347789, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:40'), +(22347789, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:41'), +(22347789, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:41'), +(22347790, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:42'), +(22347790, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:43'), +(22347790, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347791, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347791, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:43'), +(22347791, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347791, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347791, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347791, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:43'), +(22347791, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:44'), +(22347791, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:45'); +INSERT INTO `land` (`LandSetId`, `LandId`, `Type`, `Size`, `Status`, `LandPrice`, `UpdateTime`, `OwnerId`, `HouseId`, `UPDATE_DATE`) VALUES +(22347791, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:45'), +(22347791, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347791, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:46'), +(22347791, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347791, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347791, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:46'), +(22347791, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:46'), +(22347791, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:46'), +(22347791, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:46'), +(22347792, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:47'), +(22347792, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:48'), +(22347792, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:49'), +(22347792, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:49'), +(22347792, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 0, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 1, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 2, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 3, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 4, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 5, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 6, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 7, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 8, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 9, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 10, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 11, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 12, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 13, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 14, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 15, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 17, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:49'), +(22347793, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 19, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 20, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 21, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 22, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 23, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 24, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 25, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 26, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 27, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 29, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 30, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 31, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 32, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 33, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 34, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 35, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 36, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 37, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 38, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 39, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 40, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:50'), +(22347793, 41, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 42, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 43, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 44, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 45, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 47, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 49, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 50, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 51, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 52, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 53, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 54, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 55, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 56, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 57, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:51'), +(22347793, 59, 0, 2, 1, 47500000, 0, 0, 0, '2018-12-02 23:30:51'), +(42008576, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:51'), +(42008576, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:51'), +(42008576, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:51'), +(42008576, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:51'), +(42008576, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:52'), +(42008576, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:53'), +(42008576, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:54'), +(42008576, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008577, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:54'), +(42008577, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:55'), +(42008577, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:56'), +(42008577, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008577, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:57'), +(42008578, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:58'), +(42008578, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:30:59'), +(42008578, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008578, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:00'), +(42008579, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:01'), +(42008579, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:02'), +(42008579, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:03'), +(42008580, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:04'), +(42008580, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:05'), +(42008580, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008580, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:06'), +(42008581, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:07'), +(42008581, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:08'), +(42008581, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008581, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008581, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008581, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:09'), +(42008582, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:10'), +(42008582, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:11'), +(42008582, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008583, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008583, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:11'), +(42008583, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:11'), +(42008583, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:12'), +(42008583, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:13'), +(42008583, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008583, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:14'), +(42008584, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:15'), +(42008584, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:16'), +(42008584, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008584, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008584, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008584, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008584, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008584, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:17'), +(42008585, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:18'), +(42008585, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:19'), +(42008585, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008585, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008585, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008585, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008585, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008585, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008585, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008585, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:20'), +(42008586, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:21'), +(42008586, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:22'); +INSERT INTO `land` (`LandSetId`, `LandId`, `Type`, `Size`, `Status`, `LandPrice`, `UpdateTime`, `OwnerId`, `HouseId`, `UPDATE_DATE`) VALUES +(42008586, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:22'), +(42008586, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:22'), +(42008587, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:23'), +(42008587, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:24'), +(42008587, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:25'), +(42008587, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008587, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:26'), +(42008588, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:27'), +(42008588, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:28'), +(42008588, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:28'), +(42008589, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:29'), +(42008589, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:30'), +(42008589, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:31'), +(42008589, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008590, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008590, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:31'), +(42008590, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:31'), +(42008590, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:31'), +(42008590, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:32'), +(42008590, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:33'), +(42008590, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008590, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:34'), +(42008591, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:35'), +(42008591, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:36'), +(42008591, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:36'), +(42008592, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:37'), +(42008592, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:38'), +(42008592, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:39'), +(42008592, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:39'), +(42008593, 0, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 1, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 2, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 3, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 4, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 5, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 6, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 7, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 8, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 9, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 10, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 11, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 12, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 13, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 14, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 15, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 16, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 17, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 18, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 19, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 20, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:40'), +(42008593, 21, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 22, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 23, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 24, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 25, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 26, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 27, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 28, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 29, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 30, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 31, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 32, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 33, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 34, 0, 0, 1, 3375000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 35, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 36, 0, 2, 1, 42500000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 37, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 38, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 39, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 40, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 41, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 42, 0, 1, 1, 17000000, 0, 0, 0, '2018-12-02 23:31:41'), +(42008593, 43, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 44, 0, 1, 1, 18000000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 45, 0, 2, 1, 40000000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 46, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 47, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 48, 0, 1, 1, 20000000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 49, 0, 0, 1, 3562500, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 50, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 51, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 52, 0, 0, 1, 3750000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 53, 0, 1, 1, 19000000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 54, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 55, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 56, 0, 0, 1, 3000000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 57, 0, 1, 1, 16000000, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 58, 0, 0, 1, 3187500, 0, 0, 0, '2018-12-02 23:31:42'), +(42008593, 59, 0, 2, 1, 45000000, 0, 0, 0, '2018-12-02 23:31:42'); + + +INSERT INTO `landset` (`LandSetId`, `LandId_0`, `LandId_1`, `LandId_2`, `LandId_3`, `LandId_4`, `LandId_5`, `LandId_6`, `LandId_7`, `LandId_8`, `LandId_9`, `LandId_10`, `LandId_11`, `LandId_12`, `LandId_13`, `LandId_14`, `LandId_15`, `LandId_16`, `LandId_17`, `LandId_18`, `LandId_19`, `LandId_20`, `LandId_21`, `LandId_22`, `LandId_23`, `LandId_24`, `LandId_25`, `LandId_26`, `LandId_27`, `LandId_28`, `LandId_29`, `LandId_30`, `LandId_31`, `LandId_32`, `LandId_33`, `LandId_34`, `LandId_35`, `LandId_36`, `LandId_37`, `LandId_38`, `LandId_39`, `LandId_40`, `LandId_41`, `LandId_42`, `LandId_43`, `LandId_44`, `LandId_45`, `LandId_46`, `LandId_47`, `LandId_48`, `LandId_49`, `LandId_50`, `LandId_51`, `LandId_52`, `LandId_53`, `LandId_54`, `LandId_55`, `LandId_56`, `LandId_57`, `LandId_58`, `LandId_59`, `UPDATE_DATE`) VALUES +(22216704, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216705, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216707, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216708, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216709, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216710, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216712, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216713, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216715, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216717, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216718, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216719, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216720, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22216721, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282241, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282243, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282244, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282254, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22282257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347778, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347779, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347780, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347782, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347785, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(22347793, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008584, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008587, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008590, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008592, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL), +(42008593, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL); + + +INSERT INTO `zonepositions` (`id`, `target_zone_id`, `pos_x`, `pos_y`, `pos_z`, `pos_o`, `radius`) VALUES +(1317556, 133, 16.3201, 8.34547, -91.7458, 2.48019, 2), +(1317554, 133, 140.8, 11.15, -22.6, 2.5, 2), +(1317535, 132, 10.2559, 1.03707, -11.7784, -0.43944, 2), +(1317558, 133, -130.42, 5.5, -36.36, -1.69019, 2), +(1317552, 148, 129.341, 26.9524, -311.06, -0.01836, 2), +(1317623, 132, 149.42, -11.2378, 157.749, -1.66604, 2), +(1317628, 152, -515.845, 18.4252, 271.573, 2.83271, 2), +(1320077, 148, 384, -3, -184, -1, 2), +(1317540, 132, -104, 1, 12.6, 0.3, 2), +(1320086, 148, 158, -24, 546, -3, 2), +(1317630, 153, -366, 29, -241, 0.8, 2), +(1332303, 152, -165, 6, 450, -1.4, 2), +(1320082, 153, 275.5, 11.1, -258.7, -0.8, 2), +(1317533, 132, 99.2226, 4.78645, 16.5797, -0.741859, 2), +(1317542, 154, 452, -1, 196, -1, 2), +(1320072, 133, -205, 10, -96, 1.6, 2), +(1317633, 154, 14.8739, -55.3396, 527.905, -2.44165, 2), +(1359064, 132, 40.1767, 1.19993, 33.5491, -2.0572, 2), +(1359244, 152, -196.215, 3.10004, 291.934, 1.0742, 2), +(1359648, 153, 185.686, 9.21862, -74.6898, -0.828473, 2), +(1359652, 154, -31.4935, -39.9006, 238.436, -1.95462, 2), +(3693843, 129, -96.5371, 18.5462, 0.164331, 1.55699, 2), +(3693863, 130, -144.305, -3.15489, -163.06, 0.844608, 2), +(3860373, 135, 156.876, 14.0959, 680.845, -3.01048, 2), +(3961173, 137, 491.614, 18.236, 474.858, -2.71565, 2), +(3965407, 138, 651.437, 9.39925, 507.082, -0.015805, 2), +(4142002, 139, 437.484, 4.21339, 84.1072, 0, 2), +(4142062, 180, -117.633, 64.3225, -219.456, 0, 2), +(3965476, 140, 73.0305, 45.9193, -232.058, -0.837415, 2), +(3965498, 145, -379.737, -59, 142.563, -1.60992, 2), +(3965549, 146, -153.169, 26.3166, -418.709, -0.966313, 2), +(3965676, 147, 28.5353, 6.97858, 454.249, -1.59139, 2), +(3965792, 155, 228.603, 312, -238.728, -0.872663, 2), +(3965896, 156, 47.7514, 20.4912, -667.904, -1.5964, 2), +(2563653, 132, 165.172, -2.53922, 83.0344, 2.28249, 2), +(2563690, 133, 101.232, 8.36029, -108.339, -1.72413, 2), +(2563700, 133, 117.217, 11.5772, -231.311, 2.29494, 2), +(2563702, 133, -146.938, 3.99984, -13.7873, -1.46085, 2), +(2563740, 133, -307.932, 7.06028, -174.981, 1.41482, 2), +(2563748, 133, -73.8652, 6.99362, -136.568, 1.13622, 2), +(2563810, 148, 128.68, 25.6247, -302.237, -0.407334, 2), +(2563828, 154, 448.667, -0.881895, 198.039, -0.81543, 2), +(4205005, 134, 224, 113.1, -261, 0.71968, 2), +(4205026, 141, -16.1511, -1.87702, -163.139, 3.13206, 2), +(4265667, 250, 40.9851, 5.6, -23.4832, 0, 2), +(3724283, 148, -502.084, 73.8739, -349.12, 0.022136, 2), +(1406089, 155, 7.46379, 184.824, 573.833, -2.9039, 2), +(1406085, 154, -366.571, -7.6982, 194.777, 0.759619, 2), +(4176152, 153, -282.699, -0.13973, 692.715, 2.57545, 2), +(1320088, 145, 366.689, 31.0121, -291.751, -0.526007, 2), +(1406087, 156, 120.007, 31.4998, -765.044, -0.804052, 2), +(1418272, 155, -228.277, 218.179, 698.528, -2.42958, 2), +(1418277, 147, -102.023, 84.4271, -411.113, -0.874677, 2), +(4295875, 156, -421.317, -3.21682, -122.225, -2.80336, 2), +(3876614, 134, -36.4611, 36.6508, 150.243, 1.98843, 2), +(2464045, 129, 58.7886, 20, -0.066879, -1.53495, 2), +(2453662, 134, 194.511, 65.2717, 285.229, -1.59811, 2), +(2464048, 135, 235.118, 73.7873, -338.534, 0.887104, 2), +(2453729, 134, -372.325, 33.3472, -595.069, 0.942594, 2), +(2464054, 138, 810.028, 49.9019, 384.635, -2.54678, 2), +(2210360, 135, -46.1092, 73.9411, 116.089, 1.54535, 2), +(2443382, 128, 24.9766, 44.5, 175.56, -3.13474, 2), +(4323017, 135, 596.704, 61.6635, -112.685, -2.81539, 2), +(2453713, 135, 571.106, 96.3, -518.642, -0.05646, 2), +(2453673, 137, -132.425, 69.3748, 739.518, -3.13744, 2), +(2453708, 135, 693.492, 79.5221, -382.789, -0.232514, 2), +(2453666, 137, 246.611, 56.1687, 831.572, 2.89764, 2), +(2372269, 130, 42.3246, 4, -158.943, -0.273386, 2), +(2377056, 141, -114.159, 18.3778, 332.705, 2.8655, 2), +(2376310, 130, 91.1395, 4, -111.101, -2.27906, 2), +(2377064, 131, 94.3718, 4, -108.09, 0.815058, 2), +(2376964, 130, 58.4986, 8, -88.0199, -2.27798, 2), +(2377068, 131, 67.2002, 8, -80.4213, 0.854852, 2), +(2376969, 130, -12.143, 10, -44.8101, -2.89781, 2), +(2377071, 131, -7.5771, 12.5628, -27.816, 0.26209, 2), +(2369965, 130, -176.583, 14, -14.6283, 1.56838, 2), +(2377075, 140, 465.194, 96.6206, 159.051, -1.73197, 2), +(2379246, 130, -123.162, 9.99999, -8.84062, -1.56451, 2), +(2377082, 131, -107.435, 6.98457, -9.0397, 1.57633, 2), +(2379249, 130, -121.899, 10.0722, 9.43441, -1.5354, 2), +(2377078, 131, -106.993, 6.98457, 9.39492, 1.58387, 2), +(2372279, 131, 159.45, 4, 42.6079, -1.86339, 2), +(2376287, 141, 20.1486, 18.3778, 565.384, 1.34262, 2), +(2210427, 128, -3.02154, 43, -27.8195, 1.52636, 2), +(2210364, 129, -2.24011, 20.0008, 27.8738, 1.54483, 2), +(2210434, 128, -92.7087, 35.5, 104.59, 0.839544, 2), +(2210376, 129, -89.9423, 20.6775, 111.428, -3.09037, 2), +(2210411, 128, -70.0571, 40.6609, -125.182, 2.3762, 2), +(2210368, 129, -84.1969, 18.0003, -22.3949, 0.030137, 2), +(2453691, 134, -166.683, 35.0913, -726.536, -0.302407, 2), +(2464051, 137, -108.773, 70.3399, 46.5696, 1.79447, 2), +(2453742, 137, 80.4418, 80.0177, -115.679, 0.063873, 2), +(2453717, 139, 717.879, 0.468218, 208.285, -3.11069, 2), +(2453747, 138, 408.384, 27.5189, -5.33734, -0.320773, 2), +(2453733, 139, -472.983, 1.43406, 283.031, 2.36451, 2), +(4057217, 139, -350.797, 47.4884, -14.5283, -1.14213, 2), +(4056858, 148, -326.559, 51.2799, -87.2374, -2.82522, 2), +(4057229, 139, 289.163, 41.1628, -198.013, 0.64875, 2), +(4056861, 148, 238.76, 54.7158, -252.767, -1.7284, 2), +(2376981, 141, -398.28, -0.789985, 99.3511, 1.96518, 2), +(2372291, 140, 258.5, 52.6883, -4.64944, -0.456935, 2), +(2377124, 141, 226.726, 2.7533, 669.653, -2.22354, 2), +(2372323, 146, -423.482, 12.8616, -422.811, 0.697403, 2), +(2377115, 141, 446.556, -17.9999, -174.403, -0.73727, 2), +(2372300, 145, -559.838, -19.777, 335.605, 2.10368, 2), +(2377133, 141, -26.9884, 33, -486.807, 0.127408, 2), +(2372337, 147, 36.6025, 5.93622, 506.673, 3.10036, 2), +(2377127, 145, -173.756, -45.2898, 483.95, -2.64246, 2), +(2377118, 146, -27.6321, 16.1257, -760.456, -0.049568, 2), +(1359242, 148, 5.5, -1.2, 39, 2, 2), +(5866176, 397, 469.424, 224.482, 878.862, 2.871, 2), +(5866084, 418, -187.517, 14.727, -57.656, 0.855, 2), +(5866221, 418, 154.928, -19.477, 55.268, -0.73, 2), +(5866257, 419, 256.628, -13.734, -103.892, -1.439, 2), +(5866245, 419, -18.889, -12.57, -68.431, -1.771, 2), +(5866233, 418, -61.586, 18.543, -92.179, -0.651, 2), +(5866262, 419, 19.538, -12.472, -68.271, 2.03, 2), +(5866230, 418, -154.269, 28.129, -132.983, -0.0197, 2), +(5866241, 419, -310.907, -24.644, -67.234, 2.203, 2), +(5866236, 418, 55.03, 27.575, -73.413, 0.242, 2), +(5877389, 418, -64.611, 8.113, 33.657, 1.315, 2), +(6905480, 635, 71.855, 0, 90.949, 90.94, 2), +(6905243, 612, -625.769, 130, -499.801, -2.776, 2), +(6905262, 612, 417.205, 114.272, 235.743, -0.195, 2), +(6905281, 620, 121.319, 118.155, -735.75, -2.59, 2), +(6905290, 620, -264.638, 257.78, 754.837, -2.283, 2), +(6905383, 621, -649.236, 50, -7.226, -2.841, 2), +(6905404, 621, 600.419, 80.999, 650.526, 1.105, 2), +(6905785, 628, 36.879, 4.499, -38.675, 1.443, 2), +(6905517, 613, 340.799, -119.983, -259.297, 1.787, 2), +(6905556, 613, 97.253, 3.0741, -578.398, -2.061, 2), +(6905594, 614, 430.091, 68.028, -76.178, 2.976, 2), +(6905606, 614, 240.855, 4.903, -405.901, 0.848, 2), +(6905720, 622, 553.881, -19.505, 354.754, 3.004, 2), +(6905736, 622, 77.954, 114.904, 54.161, 3.124, 2), +(5877470, 397, 475.573, 212.539, 724.138, -3.088, 2), +(5877548, 401, -614.543, -122.5, 560.65, -2.967, 2), +(5877554, 401, -602.771, -51.051, -402.786, -2.478, 2), +(5877573, 402, -732.918, -186.96, -600.872, 0.791, 2), +(5877684, 478, 78.692, 207.827, -11.564, -2.42, 2), +(5877731, 398, 527.068, -51.275, 44.389, 2.778, 2), +(5877743, 398, -295.193, -21.131, 30.783, -1.449, 2), +(5877767, 400, 244.675, -42.223, 589.172, 1.071, 2), +(5877776, 400, -577.575, 48.808, 305.611, -0.752, 2), +(4168380, 130, 65.298, 4, -118.459, -0.312, 2), +(4168385, 130, -154.348, 14.005, 70.563, -0.192, 2), +(4169078, 131, -52.238, 10, 10.248, -0.679, 2), +(4203093, 131, -20.026, 14.049, 74.811, 2.875, 2), +(4169094, 131, 30.708, 12.056, 111.8, 1.098, 2), +(4194547, 131, 91.638, 12, 59.42, -2.105, 2), +(6953712, 131, 131.552, 4, -31.932, 0.23, 2), +(4203094, 131, 3.728, 29.999, -23.907, 1.886, 2), +(4169099, 131, -99.958, 41, 88.312, 1.483, 2), +(6390350, 130, -26.465, 83, -17.332, -0.148, 2), +(4169491, 140, 467.013, 96.62, 159.009, -1.692, 2), +(4169494, 141, -115.018, 18.377, 333.546, 2.882, 2), +(4169496, 141, 18.549, 18.377, 565.206, 1.345, 2), +(4170478, 128, 15.792, 40, 71.464, 3.027, 2), +(4170467, 128, -55.892, 42, -129.285, -2.857, 2), +(4170361, 129, -335.144, 11.999, 53.509, -0.002, 2), +(4170387, 129, -180.396, 4, 180.309, 0.386, 2), +(4203091, 128, -3.309, 44, -218.191, -1.517, 2), +(4203092, 129, -213.582, 16, 48.801, -0.006, 2), +(6390356, 128, -11.685, 91.499, -13.191, -0.377, 2), +(4170499, 134, -39.562, 36.039, 152.972, 2.041, 2), +(4170784, 135, -39.271, 71.504, 116.516, 1.587, 2), +(6100648, 478, -74.827, 209.524, -23.346, 2.854, 2), +(5865600, 478, 135.482, 207, 114.076, -2.166, 2), +(5865605, 478, 79.813, 203.98, 132.018, 2.558, 2), +(5865668, 399, -221.2, 104.271, -599.535, 0.268, 2), +(5865672, 399, -221.2, 155.809, -516.036, 0.295, 2), +(5865598, 399, -221.2, 104.271, -599.535, 0.268, 2), +(5865604, 399, -533.153, 153.074, -487.968, 0.18, 2), +(5916706, 418, -111.521, 15.14, -29.188, 0.0077, 2), +(5916705, 418, 47.713, 23.979, 1.144, 1.457, 2), +(5916704, 418, 47.701, -12.02, 67.738, 2.057, 2), +(5916727, 155, -161.481, 304.153, -321.403, 0.795, 2), +(5916708, 419, 0.000456, 16.015, -35.806, -0.0296, 2), +(5916724, 419, 80.156, 10.054, -123.9, -2.445, 2), +(5916722, 419, -80.517, 10.054, -123.315, 2.468, 2), +(5916717, 419, -136.889, -12.634, -16.757, 0.978, 2), +(5916716, 419, 136.079, -9.234, -66.426, -0.989, 2), +(6905273, 612, 475.811, 61.576, -555.551, -1.274, 2), +(6905297, 620, -653.588, 51.867, -790.168, 1.1366, 2), +(6906489, 635, -82.295, 0, 8.925, 1.77, 2), +(6906492, 635, 100.312, 2.731, -113.366, -0.481, 2); diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql new file mode 100644 index 00000000..ce590bd4 --- /dev/null +++ b/sql/schema/schema.sql @@ -0,0 +1,565 @@ + +CREATE TABLE `accounts` ( + `account_id` int(11) NOT NULL DEFAULT '0', + `account_name` varchar(255) COLLATE latin1_general_ci NOT NULL, + `account_pass` varchar(255) COLLATE latin1_general_ci NOT NULL, + `account_created` int(11) NOT NULL DEFAULT '0', + `account_status` tinyint(4) NOT NULL DEFAULT '0', + PRIMARY KEY (`account_id`), + UNIQUE KEY `accountname` (`account_name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `bnpctemplate` ( + `Id` int(11) NOT NULL AUTO_INCREMENT, + `Name` varchar(32) NOT NULL, + `bNPCBaseId` int(10) DEFAULT NULL, + `bNPCNameId` int(10) NOT NULL, + `mainWeaponModel` bigint(20) DEFAULT NULL, + `secWeaponModel` bigint(20) DEFAULT NULL, + `aggressionMode` int(3) DEFAULT NULL, + `enemyType` int(3) DEFAULT NULL, + `pose` int(3) DEFAULT NULL, + `modelChara` int(5) DEFAULT NULL, + `displayFlags` int(10) DEFAULT NULL, + `Look` binary(26) DEFAULT NULL, + `Models` binary(40) DEFAULT NULL, + PRIMARY KEY (`Id`), + KEY `templatename` (`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charainfo` ( + `AccountId` int(11) NOT NULL, + `CharacterId` int(20) NOT NULL, + `ContentId` bigint(20) DEFAULT NULL, + `Name` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, + `Hp` bigint(20) DEFAULT '200', + `Mp` bigint(20) DEFAULT '200', + `Tp` bigint(20) DEFAULT '0', + `Gp` bigint(20) DEFAULT '0', + `Mode` smallint(6) DEFAULT '0', + `Mount` smallint(6) DEFAULT '0', + `InvincibleGM` smallint(6) DEFAULT '0', + `Voice` smallint(6) DEFAULT '0', + `Customize` binary(26) DEFAULT NULL, + `ModelMainWeapon` decimal(20,0) DEFAULT '0', + `ModelSubWeapon` decimal(20,0) DEFAULT '0', + `ModelSystemWeapon` decimal(20,0) DEFAULT '0', + `ModelEquip` binary(40) DEFAULT NULL, + `EmoteModeType` smallint(6) DEFAULT '0', + `FirstLoginTime` decimal(20,0) DEFAULT '0', + `Language` bigint(20) DEFAULT '0', + `IsNewGame` smallint(6) DEFAULT '1', + `IsNewAdventurer` int(1) NOT NULL DEFAULT '1', + `TerritoryType` int(11) DEFAULT '0', + `TerritoryId` decimal(20,0) DEFAULT '0', + `PosX` float DEFAULT '0', + `PosY` float DEFAULT '0', + `PosZ` float DEFAULT '0', + `PosR` float DEFAULT '0', + `OTerritoryType` int(11) DEFAULT '0', + `OTerritoryId` decimal(20,0) DEFAULT '0', + `OPosX` float DEFAULT '0', + `OPosY` float DEFAULT '0', + `OPosZ` float DEFAULT '0', + `OPosR` float DEFAULT '0', + `GuardianDeity` int(3) DEFAULT '0', + `BirthDay` int(3) DEFAULT '0', + `BirthMonth` int(3) DEFAULT '0', + `Class` int(3) DEFAULT '0', + `Status` int(3) DEFAULT '0', + `TotalPlayTime` int(10) DEFAULT '0', + `FirstClass` int(3) DEFAULT '0', + `HomePoint` int(3) DEFAULT '0', + `FavoritePoint` binary(3) DEFAULT NULL, + `RestPoint` int(10) DEFAULT '0', + `StartTown` int(3) DEFAULT '0', + `ActiveTitle` int(5) DEFAULT '0', + `TitleList` binary(48) DEFAULT NULL, + `Achievement` binary(16) DEFAULT NULL, + `Aetheryte` binary(17) DEFAULT NULL, + `HowTo` binary(33) DEFAULT NULL, + `Minions` binary(40) DEFAULT NULL, + `Mounts` binary(17) DEFAULT NULL, + `Orchestrion` binary(40) DEFAULT NULL, + `EquippedMannequin` int(5) DEFAULT '0', + `ConfigFlags` smallint(5) NOT NULL DEFAULT '0', + `QuestCompleteFlags` varbinary(396) DEFAULT NULL, + `OpeningSequence` int(3) DEFAULT '0', + `QuestTracking` binary(10) DEFAULT NULL, + `GrandCompany` int(3) DEFAULT '0', + `GrandCompanyRank` binary(3) DEFAULT NULL, + `Discovery` varbinary(421) DEFAULT NULL, + `GMRank` int(3) DEFAULT '0', + `EquipDisplayFlags` int(3) DEFAULT '0', + `Pose` int(3) DEFAULT '0', + `Unlocks` binary(64) DEFAULT NULL, + `CFPenaltyUntil` int(11) DEFAULT NULL, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`CharacterId`), + KEY `index` (`AccountId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `characlass` ( + `CharacterId` int(20) NOT NULL DEFAULT '0', + `ClassIdx` int(3) DEFAULT '0', + `Exp` int(10) DEFAULT '0', + `Lvl` int(5) DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`,`ClassIdx`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charaglobalitem` ( + `CharacterId` int(20) NOT NULL DEFAULT '0', + `itemId` int(20) NOT NULL DEFAULT '0', + `storageId` int(5) NOT NULL DEFAULT '0', + `containerIndex` int(5) NOT NULL DEFAULT '0', + `stack` int(10) DEFAULT '1', + `catalogId` int(10) DEFAULT '0', + `reservedFlag` int(10) DEFAULT '0', + `signatureId` int(20) DEFAULT '0', + `flags` int(3) DEFAULT '0', + `durability` int(5) DEFAULT '30000', + `refine` int(5) DEFAULT '0', + `materia_0` int(5) DEFAULT '0', + `materia_1` int(5) DEFAULT '0', + `materia_2` int(5) DEFAULT '0', + `materia_3` int(5) DEFAULT '0', + `materia_4` int(5) DEFAULT '0', + `stain` int(3) DEFAULT '0', + `pattern` int(10) DEFAULT '0', + `buffer_0` int(3) DEFAULT '0', + `buffer_1` int(3) DEFAULT '0', + `buffer_2` int(3) DEFAULT '0', + `buffer_3` int(3) DEFAULT '0', + `buffer_4` int(3) DEFAULT '0', + `deleted` int(1) DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`,`itemId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charainfoblacklist` ( + `CharacterId` int(20) NOT NULL, + `CharacterIdList` blob, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charainfolinkshell` ( + `CharacterId` int(20) NOT NULL, + `LinkshellIdList` binary(64) DEFAULT NULL, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charainfosearch` ( + `CharacterId` int(20) DEFAULT NULL, + `SelectClassId` int(3) DEFAULT '0', + `SelectRegion` int(3) DEFAULT '0', + `SearchComment` binary(193) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charaitemcrystal` ( + `CharacterId` int(20) DEFAULT '0', + `storageId` int(10) DEFAULT '2001', + `type` int(5) DEFAULT '0', + `idx` int(5) NOT NULL , + `container_0` int(20) DEFAULT '0', + `container_1` int(20) DEFAULT '0', + `container_2` int(20) DEFAULT '0', + `container_3` int(20) DEFAULT '0', + `container_4` int(20) DEFAULT '0', + `container_5` int(20) DEFAULT '0', + `container_6` int(20) DEFAULT '0', + `container_7` int(20) DEFAULT '0', + `container_8` int(20) DEFAULT '0', + `container_9` int(20) DEFAULT '0', + `container_10` int(20) DEFAULT '0', + `container_11` int(20) DEFAULT '0', + `container_12` int(20) DEFAULT '0', + `container_13` int(20) DEFAULT '0', + `container_14` int(20) DEFAULT '0', + `container_15` int(20) DEFAULT '0', + `container_16` int(20) DEFAULT '0', + `container_17` int(20) DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`,`storageId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charaitemcurrency` ( + `CharacterId` int(20) NOT NULL, + `storageId` int(10) DEFAULT '2000', + `type` int(5) DEFAULT '0', + `idx` int(5) NOT NULL, + `container_0` int(20) DEFAULT '0', + `container_1` int(20) DEFAULT '0', + `container_2` int(20) DEFAULT '0', + `container_3` int(20) DEFAULT '0', + `container_4` int(20) DEFAULT '0', + `container_5` int(20) DEFAULT '0', + `container_6` int(20) DEFAULT '0', + `container_7` int(20) DEFAULT '0', + `container_8` int(20) DEFAULT '0', + `container_9` int(20) DEFAULT '0', + `container_10` int(20) DEFAULT '0', + `container_11` int(20) DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`,`storageId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charaitemgearset` ( + `CharacterId` int(20) NOT NULL, + `storageId` int(10) NOT NULL, + `type` int(5) DEFAULT '0', + `idx` int(5) NOT NULL, + `container_0` int(20) DEFAULT '0', + `container_1` int(20) DEFAULT '0', + `container_2` int(20) DEFAULT '0', + `container_3` int(20) DEFAULT '0', + `container_4` int(20) DEFAULT '0', + `container_5` int(20) DEFAULT '0', + `container_6` int(20) DEFAULT '0', + `container_7` int(20) DEFAULT '0', + `container_8` int(20) DEFAULT '0', + `container_9` int(20) DEFAULT '0', + `container_10` int(20) DEFAULT '0', + `container_11` int(20) DEFAULT '0', + `container_12` int(20) DEFAULT '0', + `container_13` int(20) DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`,`storageId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charaiteminventory` ( + `CharacterId` int(20) NOT NULL, + `storageId` int(10) NOT NULL, + `type` int(5) DEFAULT '0', + `idx` int(5) NOT NULL, + `container_0` int(20) DEFAULT '0', + `container_1` int(20) DEFAULT '0', + `container_2` int(20) DEFAULT '0', + `container_3` int(20) DEFAULT '0', + `container_4` int(20) DEFAULT '0', + `container_5` int(20) DEFAULT '0', + `container_6` int(20) DEFAULT '0', + `container_7` int(20) DEFAULT '0', + `container_8` int(20) DEFAULT '0', + `container_9` int(20) DEFAULT '0', + `container_10` int(20) DEFAULT '0', + `container_11` int(20) DEFAULT '0', + `container_12` int(20) DEFAULT '0', + `container_13` int(20) DEFAULT '0', + `container_14` int(20) DEFAULT '0', + `container_15` int(20) DEFAULT '0', + `container_16` int(20) DEFAULT '0', + `container_17` int(20) DEFAULT '0', + `container_18` int(20) DEFAULT '0', + `container_19` int(20) DEFAULT '0', + `container_20` int(20) DEFAULT '0', + `container_21` int(20) DEFAULT '0', + `container_22` int(20) DEFAULT '0', + `container_23` int(20) DEFAULT '0', + `container_24` int(20) DEFAULT '0', + `container_25` int(20) DEFAULT '0', + `container_26` int(20) DEFAULT '0', + `container_27` int(20) DEFAULT '0', + `container_28` int(20) DEFAULT '0', + `container_29` int(20) DEFAULT '0', + `container_30` int(20) DEFAULT '0', + `container_31` int(20) DEFAULT '0', + `container_32` int(20) DEFAULT '0', + `container_33` int(20) DEFAULT '0', + `container_34` int(20) DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`,`storageId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charaquest` ( + `CharacterId` int(20) DEFAULT '0', + `slotId` int(20) DEFAULT '0', + `QuestId` int(5) DEFAULT '0', + `Sequence` int(3) DEFAULT '0', + `Flags` int(3) DEFAULT '0', + `Variables_0` int(3) DEFAULT '0', + `Variables_1` int(3) DEFAULT '0', + `Variables_2` int(3) DEFAULT '0', + `Variables_3` int(3) DEFAULT '0', + `Variables_4` int(3) DEFAULT '0', + `Variables_5` int(3) DEFAULT '0', + `Variables_6` int(3) DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`,`slotId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `charastatus` ( + `CharacterId` int(20) DEFAULT NULL, + `Recast_0` binary(24) DEFAULT NULL, + `Recast_1` binary(24) DEFAULT NULL, + `Recast_2` binary(24) DEFAULT NULL, + `Recast_3` binary(24) DEFAULT NULL, + `Recast_4` binary(24) DEFAULT NULL, + `Recast_5` binary(24) DEFAULT NULL, + `Recast_6` binary(24) DEFAULT NULL, + `Recast_7` binary(24) DEFAULT NULL, + `Recast_8` binary(24) DEFAULT NULL, + `Recast_9` binary(24) DEFAULT NULL, + `Recast_10` binary(24) DEFAULT NULL, + `Recast_11` binary(24) DEFAULT NULL, + `Recast_12` binary(24) DEFAULT NULL, + `Recast_13` binary(24) DEFAULT NULL, + `Recast_14` binary(24) DEFAULT NULL, + `Recast_15` binary(24) DEFAULT NULL, + `Recast_16` binary(24) DEFAULT NULL, + `Recast_17` binary(24) DEFAULT NULL, + `Recast_18` binary(24) DEFAULT NULL, + `Recast_19` binary(24) DEFAULT NULL, + `Recast_20` binary(24) DEFAULT NULL, + `Recast_21` binary(24) DEFAULT NULL, + `Recast_22` binary(24) DEFAULT NULL, + `Recast_23` binary(24) DEFAULT NULL, + `Recast_24` binary(24) DEFAULT NULL, + `Recast_25` binary(24) DEFAULT NULL, + `Recast_26` binary(24) DEFAULT NULL, + `Recast_27` binary(24) DEFAULT NULL, + `Recast_28` binary(24) DEFAULT NULL, + `Recast_29` binary(24) DEFAULT NULL, + `Recast_30` binary(24) DEFAULT NULL, + `Recast_31` binary(24) DEFAULT NULL, + `Recast_32` binary(24) DEFAULT NULL, + `Recast_33` binary(24) DEFAULT NULL, + `Recast_34` binary(24) DEFAULT NULL, + `Recast_35` binary(24) DEFAULT NULL, + `Recast_36` binary(24) DEFAULT NULL, + `Recast_37` binary(24) DEFAULT NULL, + `Recast_38` binary(24) DEFAULT NULL, + `Recast_39` binary(24) DEFAULT NULL, + `Recast_40` binary(24) DEFAULT NULL, + `Recast_41` binary(24) DEFAULT NULL, + `Recast_42` binary(24) DEFAULT NULL, + `Recast_43` binary(24) DEFAULT NULL, + `Recast_44` binary(24) DEFAULT NULL, + `Recast_45` binary(24) DEFAULT NULL, + `Recast_46` binary(24) DEFAULT NULL, + `Recast_47` binary(24) DEFAULT NULL, + `Recast_48` binary(24) DEFAULT NULL, + `Recast_49` binary(24) DEFAULT NULL, + `Recast_50` binary(24) DEFAULT NULL, + `Recast_51` binary(24) DEFAULT NULL, + `Recast_52` binary(24) DEFAULT NULL, + `Recast_53` binary(24) DEFAULT NULL, + `Status_0` binary(78) DEFAULT NULL, + `Status_1` binary(78) DEFAULT NULL, + `Status_2` binary(78) DEFAULT NULL, + `Status_3` binary(78) DEFAULT NULL, + `Status_4` binary(78) DEFAULT NULL, + `Status_5` binary(78) DEFAULT NULL, + `Status_6` binary(78) DEFAULT NULL, + `Status_7` binary(78) DEFAULT NULL, + `Status_8` binary(78) DEFAULT NULL, + `Status_9` binary(78) DEFAULT NULL, + `Status_10` binary(78) DEFAULT NULL, + `Status_11` binary(78) DEFAULT NULL, + `Status_12` binary(78) DEFAULT NULL, + `Status_13` binary(78) DEFAULT NULL, + `Status_14` binary(78) DEFAULT NULL, + `Status_15` binary(78) DEFAULT NULL, + `Status_16` binary(78) DEFAULT NULL, + `Status_17` binary(78) DEFAULT NULL, + `Status_18` binary(78) DEFAULT NULL, + `Status_19` binary(78) DEFAULT NULL, + `Status_20` binary(78) DEFAULT NULL, + `Status_21` binary(78) DEFAULT NULL, + `Status_22` binary(78) DEFAULT NULL, + `Status_23` binary(78) DEFAULT NULL, + `Status_24` binary(78) DEFAULT NULL, + `Status_25` binary(78) DEFAULT NULL, + `Status_26` binary(78) DEFAULT NULL, + `Status_27` binary(78) DEFAULT NULL, + `Status_28` binary(78) DEFAULT NULL, + `Status_29` binary(78) DEFAULT NULL, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`CharacterId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `dbupdate` ( + `name` varchar(128) NOT NULL, + `executionTime` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`name`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `discoveryinfo` ( + `id` int(10) NOT NULL, + `map_id` int(3) NOT NULL, + `discover_id` int(3) NOT NULL, + PRIMARY KEY(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `house` ( + `HouseId` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, + `LandSetId` int(10) UNSIGNED DEFAULT NULL, + `BuildTime` bigint(20) DEFAULT NULL, + `Aetheryte` smallint(6) DEFAULT NULL, + `Welcome` smallint(6) DEFAULT NULL, + `Comment` binary(193) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + `HouseName` binary(23) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + `Endorsements` bigint(20) DEFAULT NULL, + `HousePartModels` binary(32) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + `HousePartColours` binary(8) DEFAULT '\0\0\0\0\0\0\0\0', + `HouseInteriorModels` binary(40) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`HouseId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `housepartsitem` ( + `HouseId` bigint(20) UNSIGNED DEFAULT NULL, + `itemId` bigint(20) UNSIGNED DEFAULT NULL, + `CharacterId` bigint(20) UNSIGNED DEFAULT NULL, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`HouseId`), + KEY `index` (`CharacterId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `housepartsstorage` ( + `LandSetId` bigint(20) UNSIGNED DEFAULT NULL, + `HouseId` bigint(20) UNSIGNED DEFAULT NULL, + `storageId` bigint(20) DEFAULT NULL, + `type` int(11) DEFAULT NULL, + `index` int(11) DEFAULT NULL, + `container_0` bigint(20) UNSIGNED DEFAULT NULL, + `container_1` bigint(20) UNSIGNED DEFAULT NULL, + `container_2` bigint(20) UNSIGNED DEFAULT NULL, + `container_3` bigint(20) UNSIGNED DEFAULT NULL, + `container_4` bigint(20) UNSIGNED DEFAULT NULL, + `container_5` bigint(20) UNSIGNED DEFAULT NULL, + `container_6` bigint(20) UNSIGNED DEFAULT NULL, + `container_7` bigint(20) UNSIGNED DEFAULT NULL, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`LandSetId`,`HouseId`,`storageId`,`index`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `infolinkshell` ( + `LinkshellId` bigint(20) NOT NULL AUTO_INCREMENT, + `MasterCharacterId` int(20) DEFAULT NULL, + `CharacterIdList` blob, + `LinkshellName` varchar(32) DEFAULT NULL, + `LeaderIdList` blob, + `InviteIdList` blob, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`LinkshellId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `land` ( + `LandSetId` bigint(20) UNSIGNED NOT NULL, + `LandId` bigint(20) UNSIGNED NOT NULL, + `Type` smallint(6) NOT NULL DEFAULT '0', + `Size` smallint(6) DEFAULT NULL, + `Status` smallint(6) DEFAULT NULL, + `LandPrice` bigint(20) DEFAULT NULL, + `UpdateTime` bigint(20) DEFAULT NULL, + `OwnerId` bigint(20) UNSIGNED DEFAULT NULL, + `HouseId` bigint(20) UNSIGNED DEFAULT NULL, + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`LandSetId`, `LandId`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `landset` ( + `LandSetId` bigint(20) UNSIGNED NOT NULL, + `LandId_0` bigint(20) UNSIGNED DEFAULT '0', + `LandId_1` bigint(20) UNSIGNED DEFAULT '0', + `LandId_2` bigint(20) UNSIGNED DEFAULT '0', + `LandId_3` bigint(20) UNSIGNED DEFAULT '0', + `LandId_4` bigint(20) UNSIGNED DEFAULT '0', + `LandId_5` bigint(20) UNSIGNED DEFAULT '0', + `LandId_6` bigint(20) UNSIGNED DEFAULT '0', + `LandId_7` bigint(20) UNSIGNED DEFAULT '0', + `LandId_8` bigint(20) UNSIGNED DEFAULT '0', + `LandId_9` bigint(20) UNSIGNED DEFAULT '0', + `LandId_10` bigint(20) UNSIGNED DEFAULT '0', + `LandId_11` bigint(20) UNSIGNED DEFAULT '0', + `LandId_12` bigint(20) UNSIGNED DEFAULT '0', + `LandId_13` bigint(20) UNSIGNED DEFAULT '0', + `LandId_14` bigint(20) UNSIGNED DEFAULT '0', + `LandId_15` bigint(20) UNSIGNED DEFAULT '0', + `LandId_16` bigint(20) UNSIGNED DEFAULT '0', + `LandId_17` bigint(20) UNSIGNED DEFAULT '0', + `LandId_18` bigint(20) UNSIGNED DEFAULT '0', + `LandId_19` bigint(20) UNSIGNED DEFAULT '0', + `LandId_20` bigint(20) UNSIGNED DEFAULT '0', + `LandId_21` bigint(20) UNSIGNED DEFAULT '0', + `LandId_22` bigint(20) UNSIGNED DEFAULT '0', + `LandId_23` bigint(20) UNSIGNED DEFAULT '0', + `LandId_24` bigint(20) UNSIGNED DEFAULT '0', + `LandId_25` bigint(20) UNSIGNED DEFAULT '0', + `LandId_26` bigint(20) UNSIGNED DEFAULT '0', + `LandId_27` bigint(20) UNSIGNED DEFAULT '0', + `LandId_28` bigint(20) UNSIGNED DEFAULT '0', + `LandId_29` bigint(20) UNSIGNED DEFAULT '0', + `LandId_30` bigint(20) UNSIGNED DEFAULT '0', + `LandId_31` bigint(20) UNSIGNED DEFAULT '0', + `LandId_32` bigint(20) UNSIGNED DEFAULT '0', + `LandId_33` bigint(20) UNSIGNED DEFAULT '0', + `LandId_34` bigint(20) UNSIGNED DEFAULT '0', + `LandId_35` bigint(20) UNSIGNED DEFAULT '0', + `LandId_36` bigint(20) UNSIGNED DEFAULT '0', + `LandId_37` bigint(20) UNSIGNED DEFAULT '0', + `LandId_38` bigint(20) UNSIGNED DEFAULT '0', + `LandId_39` bigint(20) UNSIGNED DEFAULT '0', + `LandId_40` bigint(20) UNSIGNED DEFAULT '0', + `LandId_41` bigint(20) UNSIGNED DEFAULT '0', + `LandId_42` bigint(20) UNSIGNED DEFAULT '0', + `LandId_43` bigint(20) UNSIGNED DEFAULT '0', + `LandId_44` bigint(20) UNSIGNED DEFAULT '0', + `LandId_45` bigint(20) UNSIGNED DEFAULT '0', + `LandId_46` bigint(20) UNSIGNED DEFAULT '0', + `LandId_47` bigint(20) UNSIGNED DEFAULT '0', + `LandId_48` bigint(20) UNSIGNED DEFAULT '0', + `LandId_49` bigint(20) UNSIGNED DEFAULT '0', + `LandId_50` bigint(20) UNSIGNED DEFAULT '0', + `LandId_51` bigint(20) UNSIGNED DEFAULT '0', + `LandId_52` bigint(20) UNSIGNED DEFAULT '0', + `LandId_53` bigint(20) UNSIGNED DEFAULT '0', + `LandId_54` bigint(20) UNSIGNED DEFAULT '0', + `LandId_55` bigint(20) UNSIGNED DEFAULT '0', + `LandId_56` bigint(20) UNSIGNED DEFAULT '0', + `LandId_57` bigint(20) UNSIGNED DEFAULT '0', + `LandId_58` bigint(20) UNSIGNED DEFAULT '0', + `LandId_59` bigint(20) UNSIGNED DEFAULT '0', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`LandSetId`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `houseiteminventory` ( + `landIdent` BIGINT(20) UNSIGNED NOT NULL, + `containerId` INT(10) UNSIGNED NOT NULL, + `itemId` INT(20) NOT NULL, + INDEX `landIdent` (`landIdent`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `spawngroup` ( + `id` int(10) NOT NULL AUTO_INCREMENT, + `territoryTypeId` int(5) NOT NULL, + `bNpcTemplateId` int(10) NOT NULL, + `level` int(3) NOT NULL, + `maxHp` int(10) NOT NULL, + `gimmickId` int(10) NOT NULL, + PRIMARY KEY(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + +CREATE TABLE `uniqueiddata` ( + `NextId` int(20) NOT NULL AUTO_INCREMENT, + `IdName` varchar(16) DEFAULT 'NOT SET', + `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY(`NextId`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8; + +CREATE TABLE `zonepositions` ( + `id` int(11) NOT NULL, + `target_zone_id` int(11) NOT NULL, + `pos_x` float NOT NULL, + `pos_y` float NOT NULL, + `pos_z` float NOT NULL, + `pos_o` float NOT NULL, + `radius` int(11) NOT NULL DEFAULT '2', + PRIMARY KEY(`id`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index 28eba502..25b8e037 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -142,19 +142,19 @@ void Sapphire::Db::ZoneDbConnection::doPrepareStatements() /// QUEST INFO prepareStatement( CHARA_QUEST_INS, - "INSERT INTO charaquestnew ( CharacterId, SlotId, QuestId, Sequence, Flags, Variables_0, " + "INSERT INTO charaquest ( CharacterId, SlotId, QuestId, Sequence, Flags, Variables_0, " "Variables_1, Variables_2, Variables_3, Variables_4, " "Variables_5, Variables_6 ) VALUES( ?,?,?,?,?,?,?,?,?,?,?,? );", CONNECTION_ASYNC ); - prepareStatement( CHARA_QUEST_UP, "UPDATE charaquestnew SET Sequence = ?, Flags = ?, Variables_0 = ?, " + prepareStatement( CHARA_QUEST_UP, "UPDATE charaquest SET Sequence = ?, Flags = ?, Variables_0 = ?, " "Variables_1 = ?, Variables_2 = ?, Variables_3 = ?, " "Variables_4 = ?, Variables_5 = ?, Variables_6 = ? " "WHERE CharacterId = ? AND QuestId = ?;", CONNECTION_ASYNC ); - prepareStatement( CHARA_QUEST_DEL, "DELETE FROM charaquestnew WHERE CharacterId = ? AND QuestId = ?;", + prepareStatement( CHARA_QUEST_DEL, "DELETE FROM charaquest WHERE CharacterId = ? AND QuestId = ?;", CONNECTION_ASYNC ); - prepareStatement( CHARA_SEL_QUEST, "SELECT * FROM charaquestnew WHERE CharacterId = ?;", CONNECTION_SYNC ); + prepareStatement( CHARA_SEL_QUEST, "SELECT * FROM charaquest WHERE CharacterId = ?;", CONNECTION_SYNC ); /// CLASS INFO prepareStatement( CHARA_CLASS_SEL, "SELECT ClassIdx, Exp, Lvl FROM characlass WHERE CharacterId = ?;", @@ -188,7 +188,7 @@ void Sapphire::Db::ZoneDbConnection::doPrepareStatements() CONNECTION_BOTH ); prepareStatement( CHARA_ITEMGLOBAL_DELETE, - "UPDATE charaglobalitem SET IS_DELETE = 1 WHERE ItemId = ?;", + "UPDATE charaglobalitem SET deleted = 1 WHERE ItemId = ?;", CONNECTION_BOTH ); /// HOUSING diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index 908895b6..f1b264b1 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -1,5 +1,10 @@ #include "DbManager.h" #include +#include +#include +#include +#include + DbManager::DbManager( const std::string& host, const std::string& database, const std::string& user, const std::string& pw, uint16_t port ) : m_host( host ), m_database( database ), @@ -114,10 +119,18 @@ bool DbManager::performAction() bool DbManager::modeInit() { + const std::string schemaFile = "sql/schema/schema.sql"; + const std::string insertFile = "sql/schema/inserts.sql"; + bool result = false; if( selectSchema() ) { + // TODO: allow init if database is empty + // select count(*) + // from information_schema.tables + // where table_type = 'BASE TABLE' + // and table_schema = 'your_database_name_here' m_lastError = "Database already existing, use mode first to remove it."; return false; } @@ -125,12 +138,41 @@ bool DbManager::modeInit() if( !execute( "CREATE DATABASE " + m_database ) ) return false; - if( !execute( "CREATE TABLE `dbversion` (\n" - " `major` int(11) NOT NULL,\n" - " `minor` int(11) NOT NULL\n" - ") ENGINE=InnoDB DEFAULT CHARSET=latin1;" ) ) + if( !selectSchema() ) + { + m_lastError = "Database not created."; + return false; + } + + std::ifstream t( schemaFile ); + if( !t.is_open() ) + { + m_lastError = "File " + schemaFile + " does not exist!"; + return false; + } + std::string content( ( std::istreambuf_iterator< char >( t ) ), + ( std::istreambuf_iterator< char >( ) ) ); + std::string delimiter = ";"; + + size_t pos = 0; + std::string token; + while( ( pos = content.find( delimiter ) ) != std::string::npos ) + { + token = content.substr( 1, pos ); + size_t pos1 = token.find_first_not_of( "\r\n" ); + token = token.substr( pos1, token.size() ); + size_t pos2 = token.find_first_of( "\r\n" ); + std::cout << token.substr( 0, pos2 - 1 ) << std::endl; + + if( !execute( token ) ) + return false; + + content.erase(0, pos + delimiter.length()); + } + + // we do not actually want this to stay atm... + if( !execute( "DROP DATABASE " + m_database ) ) return false; - - return false; + return true; } diff --git a/src/servers/Scripts/quest/ManFst001.cpp b/src/servers/Scripts/quest/ManFst001.cpp index 8b5b7e95..a6a1fc7f 100644 --- a/src/servers/Scripts/quest/ManFst001.cpp +++ b/src/servers/Scripts/quest/ManFst001.cpp @@ -60,6 +60,7 @@ private: { player.updateQuest( getId(), SEQ_FINISH ); + player.eventStart( result.actorId, OPENING_EVENT_HANDLER, Event::EventHandler::Nest, 0, 0 ); player.playScene( OPENING_EVENT_HANDLER, 0x1E, HIDE_HOTBAR | NO_DEFAULT_CAMERA, 0, 0 ); }; diff --git a/src/servers/Scripts/quest/ManSea001.cpp b/src/servers/Scripts/quest/ManSea001.cpp index 27db50f1..db0e5628 100644 --- a/src/servers/Scripts/quest/ManSea001.cpp +++ b/src/servers/Scripts/quest/ManSea001.cpp @@ -61,6 +61,7 @@ private: player.playScene( getId(), 3, NONE, [ & ]( Entity::Player& player, const Event::SceneResult& result ) { + player.eventStart( result.actorId, OPENING_EVENT_HANDLER, Event::EventHandler::Nest, 0, 0 ); player.playScene( OPENING_EVENT_HANDLER, 0x1E, HIDE_HOTBAR | NO_DEFAULT_CAMERA, 1, 0 ); } ); } diff --git a/src/servers/Scripts/quest/ManWil001.cpp b/src/servers/Scripts/quest/ManWil001.cpp index d497b08f..cd9e3974 100644 --- a/src/servers/Scripts/quest/ManWil001.cpp +++ b/src/servers/Scripts/quest/ManWil001.cpp @@ -56,6 +56,7 @@ private: player.playScene( getId(), 2, HIDE_HOTBAR, [ & ]( Entity::Player& player, const Event::SceneResult& result ) { + player.eventStart( result.actorId, OPENING_EVENT_HANDLER, Event::EventHandler::Nest, 0, 0 ); player.playScene( OPENING_EVENT_HANDLER, 0x1E, HIDE_HOTBAR | NO_DEFAULT_CAMERA, 0, 0 ); } ); } diff --git a/src/servers/sapphire_api/PlayerMinimal.cpp b/src/servers/sapphire_api/PlayerMinimal.cpp index 5ca13b9a..1c12470d 100644 --- a/src/servers/sapphire_api/PlayerMinimal.cpp +++ b/src/servers/sapphire_api/PlayerMinimal.cpp @@ -250,14 +250,6 @@ void PlayerMinimal::saveAsNew() // "HomePoint, StartTown, Discovery, HowTo, QuestCompleteFlags, Unlocks, QuestTracking, " // "Aetheryte, GMRank, UPDATE_DATE ) - // CharacterId, ClassIdx, Exp, Lvl - auto stmtClass = g_charaDb.getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_INS ); - stmtClass->setInt( 1, m_id ); - stmtClass->setInt( 2, g_exdDataGen.get< Sapphire::Data::ClassJob >( m_class )->expArrayIndex ); - stmtClass->setInt( 3, 0 ); - stmtClass->setInt( 4, 1 ); - g_charaDb.directExecute( stmtClass ); - auto stmt = g_charaDb.getPreparedStatement( Db::ZoneDbStatements::CHARA_INS ); stmt->setInt( 1, m_accountId ); stmt->setInt( 2, m_id ); @@ -294,6 +286,14 @@ void PlayerMinimal::saveAsNew() stmt->setBinary( 33, orchestrion ); g_charaDb.directExecute( stmt ); + // CharacterId, ClassIdx, Exp, Lvl + auto stmtClass = g_charaDb.getPreparedStatement( Db::ZoneDbStatements::CHARA_CLASS_INS ); + stmtClass->setInt( 1, m_id ); + stmtClass->setInt( 2, g_exdDataGen.get< Sapphire::Data::ClassJob >( m_class )->expArrayIndex ); + stmtClass->setInt( 3, 0 ); + stmtClass->setInt( 4, 1 ); + g_charaDb.directExecute( stmtClass ); + auto stmtSearchInfo = g_charaDb.getPreparedStatement( Db::ZoneDbStatements::CHARA_SEARCHINFO_INS ); stmtSearchInfo->setInt( 1, m_id ); g_charaDb.directExecute( stmtSearchInfo ); diff --git a/src/servers/sapphire_api/SapphireAPI.cpp b/src/servers/sapphire_api/SapphireAPI.cpp index d6b0065d..25bd3f06 100644 --- a/src/servers/sapphire_api/SapphireAPI.cpp +++ b/src/servers/sapphire_api/SapphireAPI.cpp @@ -206,7 +206,7 @@ void Sapphire::Network::SapphireAPI::deleteCharacter( std::string name, uint32_t g_charaDb.execute( "DELETE FROM charaitemcrystal WHERE CharacterId LIKE '" + std::to_string( id ) + "';" ); g_charaDb.execute( "DELETE FROM charaiteminventory WHERE CharacterId LIKE '" + std::to_string( id ) + "';" ); g_charaDb.execute( "DELETE FROM charaitemgearset WHERE CharacterId LIKE '" + std::to_string( id ) + "';" ); - g_charaDb.execute( "DELETE FROM charaquestnew WHERE CharacterId LIKE '" + std::to_string( id ) + "';" ); + g_charaDb.execute( "DELETE FROM charaquest WHERE CharacterId LIKE '" + std::to_string( id ) + "';" ); } std::vector< Sapphire::PlayerMinimal > Sapphire::Network::SapphireAPI::getCharList( uint32_t accountId ) diff --git a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp index 935a9e92..428e8ee4 100644 --- a/src/servers/sapphire_zone/Actor/PlayerEvent.cpp +++ b/src/servers/sapphire_zone/Actor/PlayerEvent.cpp @@ -69,7 +69,7 @@ void Sapphire::Entity::Player::checkEvent( uint32_t eventId ) void Sapphire::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t scene, uint32_t flags, uint32_t eventParam3, - uint32_t eventParam4, uint32_t eventParam5 ) + uint32_t eventParam4, uint32_t eventParam5 ) { if( flags & 0x02 ) setStateFlag( PlayerStateFlag::WatchingCutscene ); @@ -85,14 +85,14 @@ void Sapphire::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t sce pEvent->setPlayedScene( true ); pEvent->setEventReturnCallback( nullptr ); auto eventPlay = std::make_shared< DirectorPlayScenePacket >( getId(), getId(), pEvent->getId(), - scene, flags, eventParam3, eventParam4, eventParam5 ); + scene, flags, eventParam3, eventParam4, eventParam5 ); queuePacket( eventPlay ); } void Sapphire::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId, - Event::EventHandler::EventType eventType, uint8_t eventParam1, - uint32_t eventParam2, Event::EventHandler::EventFinishCallback callback ) + Event::EventHandler::EventType eventType, uint8_t eventParam1, + uint32_t eventParam2, Event::EventHandler::EventFinishCallback callback ) { auto newEvent = Event::make_EventHandler( this, actorId, eventId, eventType, eventParam2 ); @@ -104,21 +104,21 @@ void Sapphire::Entity::Player::eventStart( uint64_t actorId, uint32_t eventId, setStateFlag( PlayerStateFlag::InNpcEvent ); auto eventStart = std::make_shared< EventStartPacket >( getId(), actorId, eventId, - eventType, eventParam1, eventParam2 ); + eventType, eventParam1, eventParam2 ); queuePacket( eventStart ); } void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, - uint32_t flags, uint32_t eventParam2, - uint32_t eventParam3 ) + uint32_t flags, uint32_t eventParam2, + uint32_t eventParam3 ) { playScene( eventId, scene, flags, eventParam2, eventParam3, nullptr ); } void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, - uint32_t flags, Event::EventHandler::SceneReturnCallback eventCallback ) + uint32_t flags, Event::EventHandler::SceneReturnCallback eventCallback ) { playScene( eventId, scene, flags, 0, 0, eventCallback ); } @@ -129,14 +129,14 @@ void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, uint } void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, - uint32_t flags, uint32_t eventParam2, - uint32_t eventParam3, Event::EventHandler::SceneReturnCallback eventCallback ) + uint32_t flags, uint32_t eventParam2, + uint32_t eventParam3, Event::EventHandler::SceneReturnCallback eventCallback ) { playScene( eventId, scene, flags, eventParam2, eventParam3, 0, eventCallback ); } void Sapphire::Entity::Player::playGilShop( uint32_t eventId, uint32_t flags, - Event::EventHandler::SceneReturnCallback eventCallback ) + Event::EventHandler::SceneReturnCallback eventCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); if( !pEvent ) @@ -174,36 +174,26 @@ Sapphire::Event::EventHandlerPtr Sapphire::Entity::Player::bootstrapSceneEvent( } void Sapphire::Entity::Player::playScene( uint32_t eventId, uint32_t scene, - uint32_t flags, uint32_t eventParam2, - uint32_t eventParam3, uint32_t eventParam4, - Event::EventHandler::SceneReturnCallback eventCallback ) + uint32_t flags, uint32_t eventParam2, + uint32_t eventParam3, uint32_t eventParam4, + Event::EventHandler::SceneReturnCallback eventCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); if( !pEvent ) return; - if( pEvent->getEventType() == Event::EventHandler::Nest ) - { - auto events = eventList(); - - for( auto it : events ) - { - it.second->setPlayedScene( true ); - } - } - pEvent->setPlayedScene( true ); pEvent->setEventReturnCallback( eventCallback ); pEvent->setSceneChainCallback( nullptr ); auto eventPlay = std::make_shared< EventPlayPacket >( getId(), pEvent->getActorId(), pEvent->getId(), - scene, flags, eventParam2, eventParam3, eventParam4 ); + scene, flags, eventParam2, eventParam3, eventParam4 ); queuePacket( eventPlay ); } void Sapphire::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, - uint32_t eventParam2, uint32_t eventParam3, uint32_t eventParam4, - Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) + uint32_t eventParam2, uint32_t eventParam3, uint32_t eventParam4, + Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) { auto pEvent = bootstrapSceneEvent( eventId, flags ); if( !pEvent ) @@ -213,20 +203,20 @@ void Sapphire::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, pEvent->setSceneChainCallback( sceneChainCallback ); pEvent->setEventReturnCallback( nullptr ); auto eventPlay = std::make_shared< EventPlayPacket >( getId(), pEvent->getActorId(), pEvent->getId(), - scene, flags, eventParam2, eventParam3, eventParam4 ); + scene, flags, eventParam2, eventParam3, eventParam4 ); queuePacket( eventPlay ); } void Sapphire::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, - uint32_t eventParam2, uint32_t eventParam3, - Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) + uint32_t eventParam2, uint32_t eventParam3, + Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) { playSceneChain( eventId, scene, flags, eventParam2, eventParam3, 0, sceneChainCallback ); } void Sapphire::Entity::Player::playSceneChain( uint32_t eventId, uint32_t scene, uint32_t flags, - Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) + Sapphire::Event::EventHandler::SceneChainCallback sceneChainCallback ) { playSceneChain( eventId, scene, flags, 0, 0, 0, sceneChainCallback ); } @@ -260,7 +250,20 @@ void Sapphire::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlaye if( callback ) callback( *this, pEvent->getActorId() ); - + else + { + auto events = eventList(); + for( auto it : events ) + { + if( !it.second->hasPlayedScene() ) + { + queuePacket( std::make_shared< EventFinishPacket >( getId(), it.second->getId(), + it.second->getEventType(), + it.second->getEventParam() ) ); + removeEvent( it.second->getId() ); + } + } + } break; } default: @@ -281,10 +284,10 @@ void Sapphire::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlaye } void Sapphire::Entity::Player::eventActionStart( uint32_t eventId, - uint32_t action, - ActionCallback finishCallback, - ActionCallback interruptCallback, - uint64_t additional ) + uint32_t action, + ActionCallback finishCallback, + ActionCallback interruptCallback, + uint64_t additional ) { auto pEventAction = Action::make_EventAction( getAsChara(), eventId, action, finishCallback, interruptCallback, additional ); @@ -312,10 +315,10 @@ void Sapphire::Entity::Player::eventActionStart( uint32_t eventId, void Sapphire::Entity::Player::eventItemActionStart( uint32_t eventId, - uint32_t action, - ActionCallback finishCallback, - ActionCallback interruptCallback, - uint64_t additional ) + uint32_t action, + ActionCallback finishCallback, + ActionCallback interruptCallback, + uint64_t additional ) { Action::ActionPtr pEventItemAction = Action::make_EventItemAction( getAsChara(), eventId, action, finishCallback, interruptCallback, additional ); From 60f5fd580ec3d6486f8450a7418076d21093d7de Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 5 Dec 2018 16:55:14 +1100 Subject: [PATCH 159/385] cleanup housing ClientTrigger handling --- src/common/Common.h | 8 +-- .../sapphire_zone/Manager/HousingMgr.cpp | 68 +++++++++---------- .../sapphire_zone/Manager/HousingMgr.h | 14 ++-- .../Network/Handlers/ClientTriggerHandler.cpp | 58 ++++------------ 4 files changed, 60 insertions(+), 88 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 14de2012..b4aa0760 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -803,10 +803,10 @@ namespace Sapphire::Common struct LandIdent { - int16_t landId; //00 - int16_t wardNum; //02 - int16_t territoryTypeId; //04 - int16_t worldId; //06 + uint16_t landId; //00 + uint16_t wardNum; //02 + uint16_t territoryTypeId; //04 + uint16_t worldId; //06 }; struct LandFlagSet diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.cpp b/src/servers/sapphire_zone/Manager/HousingMgr.cpp index 60f04b8a..1f7b7f39 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Manager/HousingMgr.cpp @@ -73,17 +73,17 @@ Sapphire::LandPtr Sapphire::World::Manager::HousingMgr::getLandByOwnerId( uint32 return hZone->getLand( res->getUInt( 2 ) ); } -void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) +void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& player, const Common::LandIdent ident ) { - player.setActiveLand( plotId, wardId ); + player.setActiveLand( ident.landId, ident.wardNum ); - auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto hZone = getHousingZoneByLandSetId( landSetId ); if( !hZone ) return; - auto land = hZone->getLand( plotId ); + auto land = hZone->getLand( ident.landId ); if( !land ) { land = getLandByOwnerId( player.getId() ); @@ -96,10 +96,7 @@ void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& pl //memcpy( &landInfoSignPacket->data().estateName, land->getLandName().c_str(), land->getLandName().size() ); landInfoSignPacket->data().houseSize = land->getSize(); landInfoSignPacket->data().houseType = static_cast< uint8_t >( land->getLandType() ); - landInfoSignPacket->data().landIdent.landId = land->getLandId(); - landInfoSignPacket->data().landIdent.wardNum = land->getWardNum(); - landInfoSignPacket->data().landIdent.worldId = 67; - landInfoSignPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + landInfoSignPacket->data().landIdent = ident; landInfoSignPacket->data().houseIconAdd = land->getSharing(); landInfoSignPacket->data().ownerId = player.getContentId(); // should be real owner contentId, not player.contentId() @@ -114,17 +111,17 @@ void Sapphire::World::Manager::HousingMgr::sendLandSignOwned( Entity::Player& pl player.queuePacket( landInfoSignPacket ); } -void Sapphire::World::Manager::HousingMgr::sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ) +void Sapphire::World::Manager::HousingMgr::sendLandSignFree( Entity::Player& player, const Common::LandIdent ident ) { - player.setActiveLand( plotId, wardId ); + player.setActiveLand( ident.landId, ident.wardNum ); - auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto hZone = getHousingZoneByLandSetId( landSetId ); if( !hZone ) return; - auto land = hZone->getLand( plotId ); + auto land = hZone->getLand( ident.landId ); auto plotPricePacket = makeZonePacket< Server::FFXIVIpcLandPriceUpdate >( player.getId() ); plotPricePacket->data().price = land->getCurrentPrice(); plotPricePacket->data().timeLeft = land->getDevaluationTime(); @@ -362,15 +359,15 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl eobj->setHousingLink( plotNum << 8 ); } -void Sapphire::World::Manager::HousingMgr::requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::World::Manager::HousingMgr::requestEstateRename( Entity::Player& player, const Common::LandIdent ident ) { - auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto hZone = getHousingZoneByLandSetId( landSetId ); if( !hZone ) return; - auto land = hZone->getLand( plotId ); + auto land = hZone->getLand( ident.landId ); auto house = land->getHouse(); if( !house ) @@ -378,24 +375,21 @@ void Sapphire::World::Manager::HousingMgr::requestEstateRename( Entity::Player& auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() ); - landRenamePacket->data().landIdent.landId = land->getLandId(); - landRenamePacket->data().landIdent.wardNum = land->getWardNum(); - landRenamePacket->data().landIdent.worldId = 67; - landRenamePacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + landRenamePacket->data().landIdent = ident; memcpy( &landRenamePacket->data().houseName, house->getHouseName().c_str(), 20 ); player.queuePacket( landRenamePacket ); } -void Sapphire::World::Manager::HousingMgr::requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::World::Manager::HousingMgr::requestEstateEditGreeting( Entity::Player& player, const Common::LandIdent ident ) { - auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto hZone = getHousingZoneByLandSetId( landSetId ); if( !hZone ) return; - auto land = hZone->getLand( plotId ); + auto land = hZone->getLand( ident.landId ); if( !land ) return; @@ -405,16 +399,13 @@ void Sapphire::World::Manager::HousingMgr::requestEstateEditGreeting( Entity::Pl auto estateGreetingPacket = makeZonePacket< Server::FFXIVIpcHousingEstateGreeting >( player.getId() ); - estateGreetingPacket->data().landIdent.landId = land->getLandId(); - estateGreetingPacket->data().landIdent.wardNum = land->getWardNum(); - estateGreetingPacket->data().landIdent.worldId = 67; - estateGreetingPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId(); + estateGreetingPacket->data().landIdent = ident; memcpy( &estateGreetingPacket->data().message, house->getHouseGreeting().c_str(), sizeof( estateGreetingPacket->data().message ) ); player.queuePacket( estateGreetingPacket ); } -void Sapphire::World::Manager::HousingMgr::updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ) +void Sapphire::World::Manager::HousingMgr::updateEstateGreeting( Entity::Player& player, const Common::LandIdent ident, const std::string& greeting ) { auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto zone = getHousingZoneByLandSetId( landSetId ); @@ -440,15 +431,15 @@ void Sapphire::World::Manager::HousingMgr::updateEstateGreeting( Entity::Player& player.sendLogMessage( 3381 ); } -void Sapphire::World::Manager::HousingMgr::requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ) +void Sapphire::World::Manager::HousingMgr::requestEstateEditGuestAccess( Entity::Player& player, const Common::LandIdent ident ) { - auto landSetId = toLandSetId( territoryTypeId, wardId ); + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); auto hZone = getHousingZoneByLandSetId( landSetId ); if( !hZone ) return; - auto land = hZone->getLand( plotId ); + auto land = hZone->getLand( ident.landId ); if( !land ) return; @@ -457,11 +448,18 @@ void Sapphire::World::Manager::HousingMgr::requestEstateEditGuestAccess( Entity: return; auto packet = makeZonePacket< FFXIVIpcHousingShowEstateGuestAccess >( player.getId() ); - - packet->data().ident.landId = plotId; - packet->data().ident.territoryTypeId = territoryTypeId; - packet->data().ident.wardNum = wardId; - packet->data().ident.worldId = worldId; + packet->data().ident = ident; player.queuePacket( packet ); } + +Sapphire::Common::LandIdent Sapphire::World::Manager::HousingMgr::clientTriggerParamsToLandIdent( uint32_t param11, uint32_t param12 ) const +{ + Common::LandIdent ident; + ident.worldId = param11 >> 16; + ident.territoryTypeId = param11 & 0xFFFF; + ident.wardNum = param12 >> 16; + ident.landId = param12 & 0xFFFF; + + return ident; +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.h b/src/servers/sapphire_zone/Manager/HousingMgr.h index f0e3c170..9745b2f1 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.h +++ b/src/servers/sapphire_zone/Manager/HousingMgr.h @@ -26,22 +26,24 @@ namespace Sapphire::World::Manager Sapphire::Data::HousingZonePtr getHousingZoneByLandSetId( uint32_t id ); Sapphire::LandPtr getLandByOwnerId( uint32_t id ); - void sendLandSignOwned( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); - void sendLandSignFree( Entity::Player& player, uint8_t wardId, uint8_t plotId, uint16_t territoryTypeId ); + void sendLandSignOwned( Entity::Player& player, const Common::LandIdent ident ); + void sendLandSignFree( Entity::Player& player, const Common::LandIdent ident ); LandPurchaseResult purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + Common::LandIdent clientTriggerParamsToLandIdent( uint32_t param11, uint32_t param12 ) const; + void sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ); bool relinquishLand( Entity::Player& player, uint8_t plot ); void buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ); - void requestEstateRename( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + void requestEstateRename( Entity::Player& player, const Common::LandIdent ident ); - void requestEstateEditGreeting( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); - void updateEstateGreeting( Entity::Player& player, const Common::LandIdent& ident, const std::string& greeting ); + void requestEstateEditGreeting( Entity::Player& player, const Common::LandIdent ident ); + void updateEstateGreeting( Entity::Player& player, const Common::LandIdent ident, const std::string& greeting ); - void requestEstateEditGuestAccess( Entity::Player& player, uint16_t territoryTypeId, uint16_t worldId, uint8_t wardId, uint8_t plotId ); + void requestEstateEditGuestAccess( Entity::Player& player, const Common::LandIdent ident ); void sendEstateGreeting( Entity::Player& player, const Common::LandIdent ident ); diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 482e10c6..1e309533 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -325,22 +325,20 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX } case ClientTriggerType::RequestLandSignFree: { - auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); - auto plot = static_cast< uint8_t >( param12 & 0xFF ); - auto territoryId = static_cast< uint16_t >( param11 & 0xFFFF ); - auto pHousingMgr = g_fw.get< HousingMgr >(); - pHousingMgr->sendLandSignFree( player, ward, plot, territoryId ); + + auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); + pHousingMgr->sendLandSignFree( player, ident ); + break; } case ClientTriggerType::RequestLandSignOwned: { - auto ward = static_cast< uint8_t >( ( param12 & 0xFF00 ) >> 8 ); - auto plot = static_cast< uint8_t >( param12 & 0xFF ); - auto territoryId = static_cast< uint16_t >( param11 & 0xFFFF ); - auto pHousingMgr = g_fw.get< HousingMgr >(); - pHousingMgr->sendLandSignOwned( player, ward, plot, territoryId ); + + auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); + pHousingMgr->sendLandSignOwned( player, ident ); + break; } case ClientTriggerType::RequestWardLandInfo: @@ -363,49 +361,34 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX } case ClientTriggerType::RequestEstateRename: { - uint16_t territoryTypeId = param11 & 0xFFFF; - uint16_t worldId = param11 >> 16; - - uint8_t ward = ( param12 >> 16 ) & 0xFF; - uint8_t plot = ( param12 & 0xFF ); - auto pHousingMgr = g_fw.get< HousingMgr >(); if( !pHousingMgr ) break; - pHousingMgr->requestEstateRename( player, territoryTypeId, worldId, ward, plot ); + auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); + pHousingMgr->requestEstateRename( player, ident ); break; } case ClientTriggerType::RequestEstateEditGreeting: { - uint16_t territoryTypeId = param11 & 0xFFFF; - uint16_t worldId = param11 >> 16; - - uint8_t ward = ( param12 >> 16 ) & 0xFF; - uint8_t plot = ( param12 & 0xFF ); - auto pHousingMgr = g_fw.get< HousingMgr >(); if( !pHousingMgr ) break; - pHousingMgr->requestEstateEditGreeting( player, territoryTypeId, worldId, ward, plot ); + auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); + pHousingMgr->requestEstateEditGreeting( player, ident ); break; } case ClientTriggerType::RequestEstateEditGuestAccessSettings: { - uint16_t territoryTypeId = param11 & 0xFFFF; - uint16_t worldId = param11 >> 16; - - uint8_t ward = ( param12 >> 16 ) & 0xFF; - uint8_t plot = ( param12 & 0xFF ); - auto pHousingMgr = g_fw.get< HousingMgr >(); if( !pHousingMgr ) break; - pHousingMgr->requestEstateEditGuestAccess( player, territoryTypeId, worldId, ward, plot ); + auto ident = pHousingMgr->clientTriggerParamsToLandIdent( param11, param12 ); + pHousingMgr->requestEstateEditGuestAccess( player, ident ); break; } @@ -429,22 +412,11 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX } case ClientTriggerType::RequestEstateGreeting: { - uint16_t territoryTypeId = param11 & 0xFFFF; - uint16_t worldId = param11 >> 16; - - uint8_t ward = ( param12 >> 16 ) & 0xFF; - uint8_t plot = ( param12 & 0xFF ); - auto housingMgr = g_fw.get< HousingMgr >(); if( !housingMgr ) break; - Common::LandIdent ident; - ident.territoryTypeId = territoryTypeId; - ident.worldId = worldId; - ident.wardNum = ward; - ident.landId = plot; - + auto ident = housingMgr->clientTriggerParamsToLandIdent( param11, param12 ); housingMgr->sendEstateGreeting( player, ident ); break; From b49b5ab15ae299f588c0469064188c00a54186fa Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 5 Dec 2018 19:58:43 +1100 Subject: [PATCH 160/385] handle internal/external housing storeroom inventory requests --- src/common/Network/CommonActorControl.h | 3 +- .../sapphire_zone/Manager/HousingMgr.cpp | 42 +++++++++++++++++++ .../sapphire_zone/Manager/HousingMgr.h | 10 +++++ .../Network/Handlers/ClientTriggerHandler.cpp | 29 +++++++++++++ .../Housing/HousingInteriorTerritory.cpp | 7 +++- .../Housing/HousingInteriorTerritory.h | 2 + src/servers/sapphire_zone/Territory/Land.cpp | 9 ++++ src/servers/sapphire_zone/Territory/Land.h | 4 +- 8 files changed, 103 insertions(+), 3 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index e15c95c3..f90c9a70 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -311,12 +311,13 @@ enum ActorControlType : uint16_t RequestLandSignOwned = 0x452, RequestWardLandInfo = 0x453, RequestLandRelinquish = 0x454, + RequestExternalHousingInventory = 0x0458, RequestEstateRename = 0x45A, RequestEstateEditGreeting = 0x45B, RequestEstateGreeting = 0x45C, // sends FFXIVIpcHousingEstateGreeting in return RequestEstateEditGuestAccessSettings = 0x45D, RequestEstateTagSettings = 0x45F, - + RequestInternalHousingInventory = 0x0461, RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, UpdateEstateLightingLevel = 0x471, diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.cpp b/src/servers/sapphire_zone/Manager/HousingMgr.cpp index 1f7b7f39..1f5f6bab 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Manager/HousingMgr.cpp @@ -17,6 +17,7 @@ #include "TerritoryMgr.h" #include "Territory/Zone.h" #include "Territory/HousingZone.h" +#include "Territory/Housing/HousingInteriorTerritory.h" #include "HousingMgr.h" #include "Territory/Land.h" #include "Framework.h" @@ -462,4 +463,45 @@ Sapphire::Common::LandIdent Sapphire::World::Manager::HousingMgr::clientTriggerP ident.landId = param12 & 0xFFFF; return ident; +} + +void Sapphire::World::Manager::HousingMgr::sendHousingInventory( Entity::Player& player, uint16_t inventoryType, uint8_t plotNum ) +{ + Sapphire::LandPtr targetLand; + + // plotNum will be 255 in the event that it's an internal zone + // and we have to switch up our way of getting the LandPtr + if( plotNum == 255 ) + { + auto internalZone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ); + if( !internalZone ) + return; + + auto ident = internalZone->getIdent(); + + auto landSetId = toLandSetId( ident.territoryTypeId, ident.wardNum ); + auto exteriorZone = getHousingZoneByLandSetId( landSetId ); + + if( !exteriorZone ) + return; + + targetLand = exteriorZone->getLand( ident.landId ); + } + else + { + auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); + if( !zone ) + return; + + targetLand = zone->getLand( plotNum ); + } + + if( !targetLand ) + return; + + // todo: add proper permissions checks + if( targetLand->getPlayerOwner() != player.getId() ) + return; + + player.sendDebug( "got inventory for plot: " + targetLand->getHouse()->getHouseName() ); } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.h b/src/servers/sapphire_zone/Manager/HousingMgr.h index 9745b2f1..e0f5c232 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.h +++ b/src/servers/sapphire_zone/Manager/HousingMgr.h @@ -30,6 +30,9 @@ namespace Sapphire::World::Manager void sendLandSignFree( Entity::Player& player, const Common::LandIdent ident ); LandPurchaseResult purchaseLand( Entity::Player& player, uint8_t plot, uint8_t state ); + /*! + * @brief Converts param1 of a client trigger into a Common::LandIndent + */ Common::LandIdent clientTriggerParamsToLandIdent( uint32_t param11, uint32_t param12 ) const; void sendWardLandInfo( Entity::Player& player, uint8_t wardId, uint16_t territoryTypeId ); @@ -47,6 +50,13 @@ namespace Sapphire::World::Manager void sendEstateGreeting( Entity::Player& player, const Common::LandIdent ident ); + /*! + * @brief Sends the house inventory for the specified type to a player. + * + * This enforces permissions on the inventory too so random players can't request a houses items + */ + void sendHousingInventory( Entity::Player& player, uint16_t inventoryType, uint8_t plotNum ); + }; } diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 1e309533..13c3f640 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -421,6 +421,35 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX break; } + case ClientTriggerType::RequestExternalHousingInventory: + { + if( param2 != 1 ) + return; + + uint8_t plot = ( param12 & 0xFF ); + + auto housingMgr = g_fw.get< HousingMgr >(); + if( !housingMgr ) + break; + + housingMgr->sendHousingInventory( player, Common::InventoryType::HousingOutdoorItemStoreroom, plot ); + + break; + } + case ClientTriggerType::RequestInternalHousingInventory: + { + // only sent if param1 is 1, because the client sends this with 0 when you open the ui for whatever reason + if( param1 != 1 ) + return; + + auto housingMgr = g_fw.get< HousingMgr >(); + if( !housingMgr ) + break; + + housingMgr->sendHousingInventory( player, Common::InventoryType::HousingIndoorItemStoreroom, 255 ); + + break; + } default: { diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp index 373d725a..da5c399d 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.cpp @@ -68,7 +68,7 @@ void Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) for( auto i = 0; i < 10; i++ ) { - indoorInitPacket->data().indoorItems[ i ] = pHouse->getHouseInteriorPart( (Common::HousingInteriorSlot)i ); + indoorInitPacket->data().indoorItems[ i ] = pHouse->getHouseInteriorPart( static_cast< Common::HousingInteriorSlot >( i ) ); } @@ -102,4 +102,9 @@ void Housing::HousingInteriorTerritory::onUpdate( uint32_t currTime ) uint32_t Housing::HousingInteriorTerritory::getLastActivityTime() const { return m_lastActivityTime; +} + +const Common::LandIdent Housing::HousingInteriorTerritory::getIdent() const +{ + return m_landIdent; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h index e5be57a9..f8287df8 100644 --- a/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h +++ b/src/servers/sapphire_zone/Territory/Housing/HousingInteriorTerritory.h @@ -20,6 +20,8 @@ namespace Sapphire::World::Territory::Housing uint32_t getLastActivityTime() const; + const Common::LandIdent getIdent() const; + private: Common::LandIdent m_landIdent; uint32_t m_lastActivityTime; diff --git a/src/servers/sapphire_zone/Territory/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp index 4ef3bae8..31071b76 100644 --- a/src/servers/sapphire_zone/Territory/Land.cpp +++ b/src/servers/sapphire_zone/Territory/Land.cpp @@ -355,3 +355,12 @@ bool Sapphire::Land::setPreset( uint32_t itemId ) return true; } + +Sapphire::ItemContainerPtr Sapphire::Land::getInventory( uint16_t inventoryType ) const +{ + auto container = m_landInventoryMap.find( inventoryType ); + if( container == m_landInventoryMap.end() ) + return nullptr; + + return container->second; +} \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/Land.h b/src/servers/sapphire_zone/Territory/Land.h index 1b4b2fa1..b509ea07 100644 --- a/src/servers/sapphire_zone/Territory/Land.h +++ b/src/servers/sapphire_zone/Territory/Land.h @@ -18,7 +18,7 @@ namespace Sapphire Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, Sapphire::Data::HousingLandSetPtr info ); virtual ~Land(); - using LandInventoryMap = std::unordered_map< uint32_t, ItemContainerPtr >; + using LandInventoryMap = std::unordered_map< uint16_t, ItemContainerPtr >; //Primary state void setSize( uint8_t size ); @@ -61,6 +61,8 @@ namespace Sapphire void setLandTag( uint8_t slot, uint8_t tag ); uint8_t getLandTag( uint8_t slot ); + ItemContainerPtr getInventory( uint16_t inventoryType ) const; + private: uint32_t convertItemIdToHousingItemId( uint32_t itemId ); void init(); From 60e372b2321f7ba3b47b41a07aec35e822cd153f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Wed, 5 Dec 2018 21:29:33 +1100 Subject: [PATCH 161/385] adjust size type in itemcontainer to accommodate larger inventories --- .../sapphire_zone/Inventory/ItemContainer.cpp | 18 +++++++++--------- .../sapphire_zone/Inventory/ItemContainer.h | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/servers/sapphire_zone/Inventory/ItemContainer.cpp b/src/servers/sapphire_zone/Inventory/ItemContainer.cpp index 775b122e..e5ad2d1a 100644 --- a/src/servers/sapphire_zone/Inventory/ItemContainer.cpp +++ b/src/servers/sapphire_zone/Inventory/ItemContainer.cpp @@ -11,7 +11,7 @@ extern Sapphire::Framework g_fw; -Sapphire::ItemContainer::ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, +Sapphire::ItemContainer::ItemContainer( uint16_t storageId, uint16_t maxSize, const std::string& tableName, bool isMultiStorage, bool isPersistentStorage ) : m_id( storageId ), m_size( maxSize ), @@ -32,12 +32,12 @@ uint16_t Sapphire::ItemContainer::getId() const return m_id; } -uint8_t Sapphire::ItemContainer::getEntryCount() const +uint16_t Sapphire::ItemContainer::getEntryCount() const { - return static_cast< uint8_t >( m_itemMap.size() ); + return static_cast< uint16_t >( m_itemMap.size() ); } -void Sapphire::ItemContainer::removeItem( uint8_t slotId ) +void Sapphire::ItemContainer::removeItem( uint16_t slotId ) { auto pLog = g_fw.get< Logger >(); auto pDb = g_fw.get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); @@ -68,9 +68,9 @@ const Sapphire::ItemMap& Sapphire::ItemContainer::getItemMap() const return m_itemMap; } -int8_t Sapphire::ItemContainer::getFreeSlot() +int16_t Sapphire::ItemContainer::getFreeSlot() { - for( uint8_t slotId = 0; slotId < m_size; slotId++ ) + for( uint16_t slotId = 0; slotId < m_size; slotId++ ) { ItemMap::iterator it = m_itemMap.find( slotId ); if( it == m_itemMap.end() || @@ -80,7 +80,7 @@ int8_t Sapphire::ItemContainer::getFreeSlot() return -1; } -Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint8_t slotId ) +Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint16_t slotId ) { if( ( slotId > m_size ) ) @@ -93,7 +93,7 @@ Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint8_t slotId ) return m_itemMap[ slotId ]; } -void Sapphire::ItemContainer::setItem( uint8_t slotId, ItemPtr pItem ) +void Sapphire::ItemContainer::setItem( uint16_t slotId, ItemPtr pItem ) { if( slotId > m_size ) return; @@ -101,7 +101,7 @@ void Sapphire::ItemContainer::setItem( uint8_t slotId, ItemPtr pItem ) m_itemMap[ slotId ] = pItem; } -uint8_t Sapphire::ItemContainer::getMaxSize() const +uint16_t Sapphire::ItemContainer::getMaxSize() const { return m_size; } diff --git a/src/servers/sapphire_zone/Inventory/ItemContainer.h b/src/servers/sapphire_zone/Inventory/ItemContainer.h index 39d21510..295fa51a 100644 --- a/src/servers/sapphire_zone/Inventory/ItemContainer.h +++ b/src/servers/sapphire_zone/Inventory/ItemContainer.h @@ -8,34 +8,34 @@ namespace Sapphire { - using ItemMap = std::map< uint8_t, ItemPtr >; + using ItemMap = std::map< uint16_t, ItemPtr >; class ItemContainer { public: - ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, bool isMultiStorage, + ItemContainer( uint16_t storageId, uint16_t maxSize, const std::string& tableName, bool isMultiStorage, bool isPersistentStorage = true ); ~ItemContainer(); uint16_t getId() const; - uint8_t getEntryCount() const; + uint16_t getEntryCount() const; - void removeItem( uint8_t slotId ); + void removeItem( uint16_t slotId ); ItemMap& getItemMap(); const ItemMap& getItemMap() const; - ItemPtr getItem( uint8_t slotId ); + ItemPtr getItem( uint16_t slotId ); - void setItem( uint8_t slotId, ItemPtr item ); + void setItem( uint16_t slotId, ItemPtr item ); - int8_t getFreeSlot(); + int16_t getFreeSlot(); - uint8_t getMaxSize() const; + uint16_t getMaxSize() const; std::string getTableName() const; @@ -45,7 +45,7 @@ namespace Sapphire private: uint16_t m_id; - uint8_t m_size; + uint16_t m_size; std::string m_tableName; bool m_bMultiStorage; bool m_isPersistentStorage; From 703049e14f4a424b19e483b004f52ef1fe2eda8d Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 7 Dec 2018 20:11:59 +1100 Subject: [PATCH 162/385] refactor getInventory -> getItemContainer --- src/servers/sapphire_zone/Territory/Land.cpp | 2 +- src/servers/sapphire_zone/Territory/Land.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Territory/Land.cpp b/src/servers/sapphire_zone/Territory/Land.cpp index 31071b76..84bd215f 100644 --- a/src/servers/sapphire_zone/Territory/Land.cpp +++ b/src/servers/sapphire_zone/Territory/Land.cpp @@ -356,7 +356,7 @@ bool Sapphire::Land::setPreset( uint32_t itemId ) return true; } -Sapphire::ItemContainerPtr Sapphire::Land::getInventory( uint16_t inventoryType ) const +Sapphire::ItemContainerPtr Sapphire::Land::getItemContainer( uint16_t inventoryType ) const { auto container = m_landInventoryMap.find( inventoryType ); if( container == m_landInventoryMap.end() ) diff --git a/src/servers/sapphire_zone/Territory/Land.h b/src/servers/sapphire_zone/Territory/Land.h index b509ea07..7d3ee6a1 100644 --- a/src/servers/sapphire_zone/Territory/Land.h +++ b/src/servers/sapphire_zone/Territory/Land.h @@ -61,7 +61,7 @@ namespace Sapphire void setLandTag( uint8_t slot, uint8_t tag ); uint8_t getLandTag( uint8_t slot ); - ItemContainerPtr getInventory( uint16_t inventoryType ) const; + ItemContainerPtr getItemContainer( uint16_t inventoryType ) const; private: uint32_t convertItemIdToHousingItemId( uint32_t itemId ); From 795c8280d5ed1d611be9fb7c26e95166d06db536 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 7 Dec 2018 20:12:20 +1100 Subject: [PATCH 163/385] fix db schema so characters get created correctly --- sql/schema/schema.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql index ce590bd4..c9e1e547 100644 --- a/sql/schema/schema.sql +++ b/sql/schema/schema.sql @@ -212,7 +212,7 @@ CREATE TABLE `charaitemgearset` ( `CharacterId` int(20) NOT NULL, `storageId` int(10) NOT NULL, `type` int(5) DEFAULT '0', - `idx` int(5) NOT NULL, + `idx` int(5) DEFAULT '0', `container_0` int(20) DEFAULT '0', `container_1` int(20) DEFAULT '0', `container_2` int(20) DEFAULT '0', @@ -235,7 +235,7 @@ CREATE TABLE `charaiteminventory` ( `CharacterId` int(20) NOT NULL, `storageId` int(10) NOT NULL, `type` int(5) DEFAULT '0', - `idx` int(5) NOT NULL, + `idx` int(5) DEFAULT '0', `container_0` int(20) DEFAULT '0', `container_1` int(20) DEFAULT '0', `container_2` int(20) DEFAULT '0', From 86fb678b0c5f8abb11527d52e3558e37e5d9cfbc Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 7 Dec 2018 20:36:52 +1100 Subject: [PATCH 164/385] Fix issue where housing eobj wouldn't spawn on land build - #448 --- .../sapphire_zone/Manager/HousingMgr.cpp | 3 +-- .../sapphire_zone/Territory/HousingZone.cpp | 17 +++++++++++++++-- .../sapphire_zone/Territory/HousingZone.h | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.cpp b/src/servers/sapphire_zone/Manager/HousingMgr.cpp index 1f5f6bab..46d8c053 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Manager/HousingMgr.cpp @@ -356,8 +356,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl player.setLandFlags( LandFlagsSlot::Private, EstateBuilt, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); player.sendLandFlagsSlot( LandFlagsSlot::Private ); - auto eobj = hZone->registerEObj( "entrance", 2002737, 0, 4, pLand->getMapMarkerPosition(), 1.f, 0.f ); - eobj->setHousingLink( plotNum << 8 ); + hZone->registerHouseEntranceEObj( plotNum ); } void Sapphire::World::Manager::HousingMgr::requestEstateRename( Entity::Player& player, const Common::LandIdent ident ) diff --git a/src/servers/sapphire_zone/Territory/HousingZone.cpp b/src/servers/sapphire_zone/Territory/HousingZone.cpp index b5304093..5f47d22f 100644 --- a/src/servers/sapphire_zone/Territory/HousingZone.cpp +++ b/src/servers/sapphire_zone/Territory/HousingZone.cpp @@ -69,8 +69,7 @@ bool Sapphire::HousingZone::init() if( auto house = pLand->getHouse() ) { - auto eobj = registerEObj( "entrance", 2002737, 0, 4, pLand->getMapMarkerPosition(), 1.f, 0.f ); - eobj->setHousingLink( landId << 8 ); + registerHouseEntranceEObj( landId << 8 ); } } @@ -230,4 +229,18 @@ Sapphire::LandPtr Sapphire::HousingZone::getLand( uint8_t id ) return nullptr; return it->second; +} + +Sapphire::Entity::EventObjectPtr Sapphire::HousingZone::registerHouseEntranceEObj( uint8_t plotId ) +{ + auto land = getLand( plotId ); + assert( land ); + + auto eObj = Entity::make_EventObject( getNextEObjId(), 2002737, 0, 4, land->getMapMarkerPosition(), 0.f, "entrance" ); + eObj->setHousingLink( plotId << 8 ); + eObj->setScale( 1.f ); + + registerEObj( eObj ); + + return eObj; } \ No newline at end of file diff --git a/src/servers/sapphire_zone/Territory/HousingZone.h b/src/servers/sapphire_zone/Territory/HousingZone.h index 985bbbba..3868f31a 100644 --- a/src/servers/sapphire_zone/Territory/HousingZone.h +++ b/src/servers/sapphire_zone/Territory/HousingZone.h @@ -50,6 +50,8 @@ namespace Sapphire uint32_t getLandSetId() const; Sapphire::LandPtr getLand( uint8_t id ); + Entity::EventObjectPtr registerHouseEntranceEObj( uint8_t plotId ); + private: using LandPtrMap = std::unordered_map< uint8_t, Sapphire::LandPtr >; const uint32_t m_landSetMax = 18; From 3f372d3aa1880db41f65200d7781557ee93624a6 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 7 Dec 2018 23:34:45 +1100 Subject: [PATCH 165/385] LandIdent now uses signed ints, rename housing clienttriggers, fix formatting --- src/common/Common.h | 8 ++++---- src/common/Network/CommonActorControl.h | 4 ++-- src/servers/sapphire_zone/Inventory/ItemContainer.cpp | 2 +- .../Network/Handlers/ClientTriggerHandler.cpp | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index b4aa0760..14de2012 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -803,10 +803,10 @@ namespace Sapphire::Common struct LandIdent { - uint16_t landId; //00 - uint16_t wardNum; //02 - uint16_t territoryTypeId; //04 - uint16_t worldId; //06 + int16_t landId; //00 + int16_t wardNum; //02 + int16_t territoryTypeId; //04 + int16_t worldId; //06 }; struct LandFlagSet diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index f90c9a70..b5586709 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -311,13 +311,13 @@ enum ActorControlType : uint16_t RequestLandSignOwned = 0x452, RequestWardLandInfo = 0x453, RequestLandRelinquish = 0x454, - RequestExternalHousingInventory = 0x0458, + RequestHousingLandInventory = 0x0458, RequestEstateRename = 0x45A, RequestEstateEditGreeting = 0x45B, RequestEstateGreeting = 0x45C, // sends FFXIVIpcHousingEstateGreeting in return RequestEstateEditGuestAccessSettings = 0x45D, RequestEstateTagSettings = 0x45F, - RequestInternalHousingInventory = 0x0461, + RequestHousingEstateInventory = 0x0461, RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, UpdateEstateLightingLevel = 0x471, diff --git a/src/servers/sapphire_zone/Inventory/ItemContainer.cpp b/src/servers/sapphire_zone/Inventory/ItemContainer.cpp index e5ad2d1a..3328a4f9 100644 --- a/src/servers/sapphire_zone/Inventory/ItemContainer.cpp +++ b/src/servers/sapphire_zone/Inventory/ItemContainer.cpp @@ -12,7 +12,7 @@ extern Sapphire::Framework g_fw; Sapphire::ItemContainer::ItemContainer( uint16_t storageId, uint16_t maxSize, const std::string& tableName, - bool isMultiStorage, bool isPersistentStorage ) : + bool isMultiStorage, bool isPersistentStorage ) : m_id( storageId ), m_size( maxSize ), m_tableName( tableName ), diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index 13c3f640..fcc6eb00 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -421,7 +421,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX break; } - case ClientTriggerType::RequestExternalHousingInventory: + case ClientTriggerType::RequestHousingLandInventory: { if( param2 != 1 ) return; @@ -436,7 +436,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX break; } - case ClientTriggerType::RequestInternalHousingInventory: + case ClientTriggerType::RequestHousingEstateInventory: { // only sent if param1 is 1, because the client sends this with 0 when you open the ui for whatever reason if( param1 != 1 ) From 9e412306b6e6cc68cba7d44521d2c5f607bcb3a2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 7 Dec 2018 23:38:45 +1100 Subject: [PATCH 166/385] new and improved:tm: naming convention has been rejected --- src/common/Network/CommonActorControl.h | 4 ++-- .../sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index b5586709..1f55a52b 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -311,13 +311,13 @@ enum ActorControlType : uint16_t RequestLandSignOwned = 0x452, RequestWardLandInfo = 0x453, RequestLandRelinquish = 0x454, - RequestHousingLandInventory = 0x0458, + RequestLandInventory = 0x0458, RequestEstateRename = 0x45A, RequestEstateEditGreeting = 0x45B, RequestEstateGreeting = 0x45C, // sends FFXIVIpcHousingEstateGreeting in return RequestEstateEditGuestAccessSettings = 0x45D, RequestEstateTagSettings = 0x45F, - RequestHousingEstateInventory = 0x0461, + RequestEstateInventory = 0x0461, RequestHousingItemUI = 0x463, RequestSharedEstateSettings = 0x46F, UpdateEstateLightingLevel = 0x471, diff --git a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp index fcc6eb00..b2236677 100644 --- a/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/ClientTriggerHandler.cpp @@ -421,7 +421,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX break; } - case ClientTriggerType::RequestHousingLandInventory: + case ClientTriggerType::RequestLandInventory: { if( param2 != 1 ) return; @@ -436,7 +436,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( const Packets::FFX break; } - case ClientTriggerType::RequestHousingEstateInventory: + case ClientTriggerType::RequestEstateInventory: { // only sent if param1 is 1, because the client sends this with 0 when you open the ui for whatever reason if( param1 != 1 ) From de77e94e5632a9cbad27850fb239a80f8ef207e3 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 8 Dec 2018 01:11:46 +0100 Subject: [PATCH 167/385] More dbm... --- deps/mysqlConnector/Statement.cpp | 2 +- src/dbm/DbManager.cpp | 39 ++++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/deps/mysqlConnector/Statement.cpp b/deps/mysqlConnector/Statement.cpp index 543e5b1b..14d81020 100644 --- a/deps/mysqlConnector/Statement.cpp +++ b/deps/mysqlConnector/Statement.cpp @@ -60,7 +60,7 @@ std::shared_ptr< Mysql::ResultSet > Mysql::Statement::getResultSet() { if( errNo() != 0 ) throw std::runtime_error( "Error during getResultSet() : " + std::to_string( errNo() ) + ": " + - m_pConnection->getError() ); + m_pConnection->getError() ); return std::make_shared< ResultSet >( mysql_store_result( m_pConnection->getRawCon() ), shared_from_this() ); } diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index f1b264b1..42b20978 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -123,20 +123,41 @@ bool DbManager::modeInit() const std::string insertFile = "sql/schema/inserts.sql"; bool result = false; + bool dbCreated = false; if( selectSchema() ) { - // TODO: allow init if database is empty - // select count(*) - // from information_schema.tables - // where table_type = 'BASE TABLE' - // and table_schema = 'your_database_name_here' - m_lastError = "Database already existing, use mode first to remove it."; - return false; + std::string query = "SELECT COUNT(*) " + "FROM information_schema.tables " + "WHERE table_type = 'BASE TABLE' " + "AND table_schema = '" + m_database + "';"; + dbCreated = true; + try + { + auto stmt = m_pConnection->createStatement(); + auto resultSet = stmt->executeQuery( query ); + + if( !resultSet->next() ) + return false; + + auto count = resultSet->getUInt( 1 ); + if( count ) + { + m_lastError = "Database " + m_database + " still contains tables. it first!"; + return false; + } + + } + catch( std::runtime_error& e ) + { + m_lastError = e.what(); + return false; + } } - if( !execute( "CREATE DATABASE " + m_database ) ) - return false; + if( !dbCreated ) + if( !execute( "CREATE DATABASE " + m_database ) ) + return false; if( !selectSchema() ) { From b37262e3740ea60b362e42aa779041e0d8c71437 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 11 Dec 2018 00:04:29 +0100 Subject: [PATCH 168/385] dbm -> Initialize functional; Liquidate initial work done --- src/dbm/DbManager.cpp | 102 ++++++++++++++++++++++++++++++++++++++++-- src/dbm/DbManager.h | 2 + 2 files changed, 100 insertions(+), 4 deletions(-) diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index 42b20978..13f691fc 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -100,6 +100,7 @@ bool DbManager::performAction() result = modeInit(); break; case Mode::LIQUIDATE: + result = modeLiquidate(); break; case Mode::UPDATE: break; @@ -172,7 +173,7 @@ bool DbManager::modeInit() return false; } std::string content( ( std::istreambuf_iterator< char >( t ) ), - ( std::istreambuf_iterator< char >( ) ) ); + ( std::istreambuf_iterator< char >( ) ) ); std::string delimiter = ";"; size_t pos = 0; @@ -188,12 +189,105 @@ bool DbManager::modeInit() if( !execute( token ) ) return false; - content.erase(0, pos + delimiter.length()); + content.erase( 0, pos + delimiter.length() ); } - // we do not actually want this to stay atm... - if( !execute( "DROP DATABASE " + m_database ) ) + std::cout << "======================================================" << std::endl; + std::cout << "Inserting default values..." << std::endl; + + + std::ifstream t1( insertFile ); + if( !t1.is_open() ) + { + m_lastError = "File " + insertFile + " does not exist!"; return false; + } + std::string content1( ( std::istreambuf_iterator< char >( t1 ) ), + ( std::istreambuf_iterator< char >( ) ) ); + std::string delimiter1 = ";"; + + size_t pos_ = 0; + std::string token1; + while( ( pos_ = content1.find( delimiter1 ) ) != std::string::npos ) + { + token1 = content1.substr( 1, pos_ ); + size_t pos_1 = token1.find_first_not_of( "\r\n" ); + token1 = token1.substr( pos_1, token1.size() ); + size_t pos_2 = token1.find_first_of( "(" ); + std::cout << token1.substr( 0, pos_2 - 1 ) << std::endl; + + if( !execute( token1 ) ) + return false; + + content1.erase( 0, pos_ + delimiter1.length() ); + } return true; } + +bool promptForChar( const char* prompt, char& readch ) +{ + std::string tmp; + std::cout << prompt << std::endl; + if( std::getline( std::cin, tmp ) ) + { + if( tmp.length() == 1 ) + { + readch = tmp[ 0 ]; + } + else + { + readch = '\0'; + } + return true; + } + return false; +} + +bool DbManager::modeLiquidate() +{ + if( !selectSchema() ) + return false; + + char type = '\0'; + + while( promptForChar( "This action will drop all tables in the database. Are you sure? [y/n]", type ) ) + { + if( type == 'y' ) + break; + if( type == 'n' ) + return true; + } + + std::string query = "SELECT TABLE_NAME " + "FROM information_schema.tables " + "WHERE table_type = 'BASE TABLE' " + "AND table_schema = '" + m_database + "';"; + try + { + auto stmt = m_pConnection->createStatement(); + auto resultSet = stmt->executeQuery( query ); + + while( resultSet->next() ) + { + std::cout << resultSet->getString( 1 ) << "\n"; + } + return false; + + auto count = resultSet->getUInt( 1 ); + if( count ) + { + m_lastError = "Database " + m_database + " still contains tables. it first!"; + return false; + } + + } + catch( std::runtime_error& e ) + { + m_lastError = e.what(); + return false; + } + + + return false; +} diff --git a/src/dbm/DbManager.h b/src/dbm/DbManager.h index 1d9db329..bf302e06 100644 --- a/src/dbm/DbManager.h +++ b/src/dbm/DbManager.h @@ -35,6 +35,8 @@ class DbManager bool modeInit(); + bool modeLiquidate(); + virtual ~DbManager(); const std::string& getLastError(); From bfacc85e96e7bd5560e9d11305789e7a2c946370 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 11 Dec 2018 23:40:47 +0100 Subject: [PATCH 169/385] Replaced build flags with proper defines --- src/servers/sapphire_zone/Manager/HousingMgr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/servers/sapphire_zone/Manager/HousingMgr.cpp b/src/servers/sapphire_zone/Manager/HousingMgr.cpp index 46d8c053..0079f319 100644 --- a/src/servers/sapphire_zone/Manager/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Manager/HousingMgr.cpp @@ -13,6 +13,7 @@ #include "Actor/Player.h" #include "Actor/EventObject.h" +#include "Event/EventDefs.h" #include "TerritoryMgr.h" #include "Territory/Zone.h" @@ -350,8 +351,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl // start house built event // CmnDefHousingBuildHouse_00149 player.eventStart( player.getId(), 0x000B0095, Event::EventHandler::EventType::Housing, 1, 1 ); - // todo: wtf are these flags - player.playScene( 0x000B0095, 0, 4164955899, 0, 1, plotNum, nullptr ); + player.playScene( 0x000B0095, 0, SET_BASE | HIDE_HOTBAR , 0, 1, plotNum, nullptr ); player.setLandFlags( LandFlagsSlot::Private, EstateBuilt, pLand->getLandId(), pLand->getWardNum(), pLand->getTerritoryTypeId() ); player.sendLandFlagsSlot( LandFlagsSlot::Private ); From bd18cffdda99c05d29fbb769b3ac629a3c102002 Mon Sep 17 00:00:00 2001 From: Mordred <30826167+SapphireMordred@users.noreply.github.com> Date: Wed, 12 Dec 2018 08:02:58 +0100 Subject: [PATCH 170/385] Updated travis link in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0626bdf5..1d441c47 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

[![Discord Server](https://img.shields.io/badge/discord-Sapphire-7289DA.svg)](https://discord.gg/xxcdCER) -[![Linux Build Status](https://travis-ci.org/SapphireMordred/Sapphire.svg?branch=master)](https://travis-ci.org/SapphireMordred/Sapphire) +[![Linux Build Status](https://api.travis-ci.org/SapphireServer/Sapphire.svg?branch=master)](https://travis-ci.org/SapphireMordred/Sapphire) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/lil7lxa3ty165emm?svg=true)](https://ci.appveyor.com/project/SapphireMordred/Sapphire) From ca0db7c584e43171dbe1eaade26e192800314ac0 Mon Sep 17 00:00:00 2001 From: Adam <893184+NotAdam@users.noreply.github.com> Date: Wed, 12 Dec 2018 18:09:50 +1100 Subject: [PATCH 171/385] fix appveyor project id in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d441c47..138f7b8c 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Discord Server](https://img.shields.io/badge/discord-Sapphire-7289DA.svg)](https://discord.gg/xxcdCER) [![Linux Build Status](https://api.travis-ci.org/SapphireServer/Sapphire.svg?branch=master)](https://travis-ci.org/SapphireMordred/Sapphire) -[![Windows Build Status](https://ci.appveyor.com/api/projects/status/lil7lxa3ty165emm?svg=true)](https://ci.appveyor.com/project/SapphireMordred/Sapphire) +[![Windows Build Status](https://ci.appveyor.com/api/projects/status/ab52dmvq3ictvd39?svg=true)](https://ci.appveyor.com/project/SapphireMordred/Sapphire) Sapphire is a FINAL FANTASY XIV 4.0+ Server Emulator currently in development. From 2f03d9e656bf0c06ee765cfcc01008d66b8b93fc Mon Sep 17 00:00:00 2001 From: Adam <893184+NotAdam@users.noreply.github.com> Date: Wed, 12 Dec 2018 18:09:50 +1100 Subject: [PATCH 172/385] Revert "fix appveyor project id in readme" This reverts commit ca0db7c584e43171dbe1eaade26e192800314ac0. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 138f7b8c..1d441c47 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Discord Server](https://img.shields.io/badge/discord-Sapphire-7289DA.svg)](https://discord.gg/xxcdCER) [![Linux Build Status](https://api.travis-ci.org/SapphireServer/Sapphire.svg?branch=master)](https://travis-ci.org/SapphireMordred/Sapphire) -[![Windows Build Status](https://ci.appveyor.com/api/projects/status/ab52dmvq3ictvd39?svg=true)](https://ci.appveyor.com/project/SapphireMordred/Sapphire) +[![Windows Build Status](https://ci.appveyor.com/api/projects/status/lil7lxa3ty165emm?svg=true)](https://ci.appveyor.com/project/SapphireMordred/Sapphire) Sapphire is a FINAL FANTASY XIV 4.0+ Server Emulator currently in development. From 90831ea089b65b051c6af5ea130e196c088114cf Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 12 Dec 2018 12:07:26 +0100 Subject: [PATCH 173/385] Use sapphire_dbm to initialize the db --- .gitignore | 11 +- {sql => bin/sql}/schema/inserts.sql | 0 {sql => bin/sql}/schema/schema.sql | 14 +- sql/accounts.sql | 54 - sql/bnpctemplate.sql | 278 -- sql/characlass.sql | 30 - sql/charaglobalitem.sql | 77 - sql/charainfo.sql | 89 - sql/charainfoblacklist.sql | 53 - sql/charainfofriendlist.sql | 54 - sql/charainfolinkshell.sql | 53 - sql/charainfosearch.sql | 54 - sql/charaitemgearset.sql | 70 - sql/charaiteminventory.sql | 69 - sql/charaquestnew.sql | 20 - sql/charastatus.sql | 126 - sql/discoveryinfo.sql | 4647 --------------------------- sql/export.sh | 16 - sql/house.sql | 15 - sql/houseiteminventory.sql | 9 - sql/housepartsitem.sql | 9 - sql/housepartsstorage.sql | 18 - sql/import.bat | 48 - sql/import.sh | 29 - sql/infolinkshell.sql | 57 - sql/land.sql | 15 - sql/landset.sql | 68 - sql/uniqueiddata.sql | 505 --- sql/update.sql | 48 - sql/update_discovery.sql | 4422 ------------------------- sql/update_land.sql | 5 - sql/zonepositions.sql | 227 -- sql_import.sh | 15 +- src/dbm/DbManager.cpp | 42 +- src/dbm/DbManager.h | 8 + src/dbm/main.cpp | 30 +- 36 files changed, 69 insertions(+), 11216 deletions(-) rename {sql => bin/sql}/schema/inserts.sql (100%) rename {sql => bin/sql}/schema/schema.sql (98%) delete mode 100644 sql/accounts.sql delete mode 100644 sql/bnpctemplate.sql delete mode 100644 sql/characlass.sql delete mode 100644 sql/charaglobalitem.sql delete mode 100644 sql/charainfo.sql delete mode 100644 sql/charainfoblacklist.sql delete mode 100644 sql/charainfofriendlist.sql delete mode 100644 sql/charainfolinkshell.sql delete mode 100644 sql/charainfosearch.sql delete mode 100644 sql/charaitemgearset.sql delete mode 100644 sql/charaiteminventory.sql delete mode 100644 sql/charaquestnew.sql delete mode 100644 sql/charastatus.sql delete mode 100644 sql/discoveryinfo.sql delete mode 100644 sql/export.sh delete mode 100644 sql/house.sql delete mode 100644 sql/houseiteminventory.sql delete mode 100644 sql/housepartsitem.sql delete mode 100644 sql/housepartsstorage.sql delete mode 100644 sql/import.bat delete mode 100644 sql/import.sh delete mode 100644 sql/infolinkshell.sql delete mode 100644 sql/land.sql delete mode 100644 sql/landset.sql delete mode 100644 sql/uniqueiddata.sql delete mode 100644 sql/update.sql delete mode 100644 sql/update_discovery.sql delete mode 100644 sql/update_land.sql delete mode 100644 sql/zonepositions.sql diff --git a/.gitignore b/.gitignore index 329d0971..20f29d2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,12 @@ # Output Directory -[Bb]in/ +[Bb]in/*.exe +[Bb]in/*.pdb +[Bb]in/sapphire_api +[Bb]in/sapphire_zone +[Bb]in/sapphire_lobby +[Bb]in/sapphire_dbm + + # Script Directory # TODO: Sperate script directory from bin @@ -124,4 +131,4 @@ cotire/ # doxygen output folder doxygen/generated/ -doxygen/*.tmp \ No newline at end of file +doxygen/*.tmp diff --git a/sql/schema/inserts.sql b/bin/sql/schema/inserts.sql similarity index 100% rename from sql/schema/inserts.sql rename to bin/sql/schema/inserts.sql diff --git a/sql/schema/schema.sql b/bin/sql/schema/schema.sql similarity index 98% rename from sql/schema/schema.sql rename to bin/sql/schema/schema.sql index c9e1e547..b87b2a9b 100644 --- a/sql/schema/schema.sql +++ b/bin/sql/schema/schema.sql @@ -152,7 +152,7 @@ CREATE TABLE `charainfolinkshell` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `charainfosearch` ( - `CharacterId` int(20) DEFAULT NULL, + `CharacterId` int(20) NOT NULL, `SelectClassId` int(3) DEFAULT '0', `SelectRegion` int(3) DEFAULT '0', `SearchComment` binary(193) DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', @@ -293,7 +293,7 @@ CREATE TABLE `charaquest` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `charastatus` ( - `CharacterId` int(20) DEFAULT NULL, + `CharacterId` int(20) NOT NULL, `Recast_0` binary(24) DEFAULT NULL, `Recast_1` binary(24) DEFAULT NULL, `Recast_2` binary(24) DEFAULT NULL, @@ -412,7 +412,7 @@ CREATE TABLE `house` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `housepartsitem` ( - `HouseId` bigint(20) UNSIGNED DEFAULT NULL, + `HouseId` bigint(20) UNSIGNED NOT NULL, `itemId` bigint(20) UNSIGNED DEFAULT NULL, `CharacterId` bigint(20) UNSIGNED DEFAULT NULL, `UPDATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP, @@ -421,11 +421,11 @@ CREATE TABLE `housepartsitem` ( ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `housepartsstorage` ( - `LandSetId` bigint(20) UNSIGNED DEFAULT NULL, - `HouseId` bigint(20) UNSIGNED DEFAULT NULL, - `storageId` bigint(20) DEFAULT NULL, + `LandSetId` bigint(20) UNSIGNED NOT NULL, + `HouseId` bigint(20) UNSIGNED NOT NULL, + `storageId` bigint(20) NOT NULL, `type` int(11) DEFAULT NULL, - `index` int(11) DEFAULT NULL, + `index` int(11) NOT NULL, `container_0` bigint(20) UNSIGNED DEFAULT NULL, `container_1` bigint(20) UNSIGNED DEFAULT NULL, `container_2` bigint(20) UNSIGNED DEFAULT NULL, diff --git a/sql/accounts.sql b/sql/accounts.sql deleted file mode 100644 index 2e36b660..00000000 --- a/sql/accounts.sql +++ /dev/null @@ -1,54 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `dbaccounts` --- - -DROP TABLE IF EXISTS `accounts`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `accounts` ( - `account_id` int(11) NOT NULL DEFAULT '0', - `account_name` varchar(255) COLLATE latin1_general_ci NOT NULL, - `account_pass` varchar(255) COLLATE latin1_general_ci NOT NULL, - `account_created` int(11) NOT NULL DEFAULT '0', - `account_status` tinyint(4) NOT NULL DEFAULT '0', - PRIMARY KEY (`account_id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `dbaccounts` --- - -LOCK TABLES `accounts` WRITE; -/*!40000 ALTER TABLE `accounts` DISABLE KEYS */; -INSERT INTO `accounts` VALUES (1,'test','CY9rzUYh03PK3k6DJie09g==',0,2); -/*!40000 ALTER TABLE `accounts` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:06 diff --git a/sql/bnpctemplate.sql b/sql/bnpctemplate.sql deleted file mode 100644 index 5f12d395..00000000 --- a/sql/bnpctemplate.sql +++ /dev/null @@ -1,278 +0,0 @@ --- phpMyAdmin SQL Dump --- version 4.5.1 --- http://www.phpmyadmin.net --- --- Host: 127.0.0.1 --- Erstellungszeit: 13. Sep 2018 um 22:11 --- Server-Version: 10.1.19-MariaDB --- PHP-Version: 5.6.28 - -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -SET time_zone = "+00:00"; - --- --- Datenbank: `sapphire` --- - --- -------------------------------------------------------- - --- --- Tabellenstruktur für Tabelle `bnpctemplate` --- - -DROP TABLE IF EXISTS `bnpctemplate`; -CREATE TABLE `bnpctemplate` ( - `Id` int(11) NOT NULL, - `Name` varchar(32) NOT NULL, - `bNPCBaseId` int(10) DEFAULT NULL, - `bNPCNameId` int(10) NOT NULL, - `mainWeaponModel` bigint(20) DEFAULT NULL, - `secWeaponModel` bigint(20) DEFAULT NULL, - `aggressionMode` int(3) DEFAULT NULL, - `enemyType` int(3) DEFAULT NULL, - `pose` int(3) DEFAULT NULL, - `modelChara` int(5) DEFAULT NULL, - `displayFlags` int(10) DEFAULT NULL, - `Look` binary(26) DEFAULT NULL, - `Models` binary(40) DEFAULT NULL -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- --- Daten für Tabelle `bnpctemplate` --- - -INSERT INTO `bnpctemplate` (`Id`, `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES -(1, 'littleladybug_49', 49, 49, 0, 0, 1, 4, 4, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(2, 'beecloud_57', 57, 395, 0, 0, 1, 4, 4, 60, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(3, 'watersprite_59', 59, 56, 0, 0, 1, 4, 4, 385, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(4, 'tinymandragora_118', 118, 405, 0, 0, 1, 4, 4, 297, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(5, 'wildjackal_138', 138, 399, 0, 0, 2, 4, 4, 160, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(6, 'woundedaurochs_323', 323, 358, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(7, 'megalocrab_326', 326, 561, 0, 0, 1, 4, 4, 148, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(8, 'lostlamb_338', 338, 392, 0, 0, 1, 4, 4, 287, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(9, 'pukhatchling_341', 341, 401, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(10, 'bogy_342', 342, 404, 0, 0, 1, 4, 4, 264, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(11, 'wharfrat_347', 347, 417, 0, 0, 1, 4, 4, 24, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(12, 'groundedpirate_348', 348, 421, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(13, 'groundedraider_349', 349, 418, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(14, 'CaptainPetyrPigeontoe_350', 350, 419, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100014b010304016b3b2b000001023b83000200006400320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(15, 'pugil_383', 383, 640, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(16, 'wespe_385', 385, 641, 0, 0, 1, 4, 4, 359, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(17, 'goblingambler_769', 769, 3099, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(18, 'strikingdummy_901', 901, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(19, 'mosslessgoobbue_1447', 1447, 354, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(20, 'SkogsFru_3184', 3184, 2928, 0, 0, 1, 4, 0, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(21, 'galago_5', 5, 408, 0, 0, 1, 4, 4, 31, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(22, 'nestingbuzzard_12', 12, 299, 0, 0, 1, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(23, 'cavebat_38', 38, 364, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(24, 'windsprite_133', 133, 115, 0, 0, 1, 4, 4, 383, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(25, 'lightningsprite_135', 135, 117, 0, 0, 1, 4, 4, 384, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(26, 'Morabymole_205', 205, 409, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(27, 'firefly_306', 306, 129, 0, 0, 1, 4, 4, 78, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(28, 'rivertoad_313', 313, 349, 0, 0, 1, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(29, 'aurelia_324', 324, 563, 0, 0, 1, 4, 4, 279, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(30, 'wilddodo_339', 339, 393, 0, 0, 1, 4, 4, 173, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(31, 'packrat_351', 351, 1101, 0, 0, 2, 4, 4, 26, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(32, 'koboldpotman_751', 751, 378, 4297588937, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(33, 'kobolddustman_752', 752, 368, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(34, 'koboldsupplicant_754', 754, 372, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), -(35, 'Qiqirneggdigger_771', 771, 350, 0, 0, 2, 4, 4, 14, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(36, 'Cepheus_855', 855, 1058, 0, 0, 2, 4, 4, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(37, 'Barbastelle_3185', 3185, 2929, 0, 0, 1, 4, 0, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(38, 'grassraptor_2', 2, 411, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(39, 'gigantoad_26', 26, 26, 0, 0, 2, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(40, '2ndCohorthoplomachus_55', 55, 1821, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(41, '2ndCohortlaquearius_61', 61, 1822, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(42, '2ndCohorteques_62', 62, 1823, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(43, '2ndCohortsecutor_63', 63, 1824, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(44, '2ndCohortsignifer_64', 64, 1825, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(45, 'junglecoeurl_117', 117, 352, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(46, 'dungmidgeswarm_136', 136, 396, 0, 0, 1, 4, 4, 58, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(47, 'giantpelican_178', 178, 366, 0, 0, 2, 4, 4, 154, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(48, '2ndCohortvanguard_201', 201, 1826, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(49, 'Bloodshorebell_312', 312, 361, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(50, 'apkallu_314', 314, 341, 0, 0, 1, 4, 4, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(51, 'goobbue_320', 320, 353, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(52, 'mildewedgoobbue_321', 321, 355, 0, 0, 2, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(53, 'largebuffalo_322', 322, 1313, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(54, 'snipper_325', 325, 560, 0, 0, 2, 4, 4, 149, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(55, 'koboldpatrolman_328', 328, 379, 8592556233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(56, 'koboldpitman_329', 329, 369, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(57, 'koboldmissionary_331', 331, 373, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), -(58, 'corkbulb_384', 384, 684, 0, 0, 1, 4, 4, 358, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(59, 'colibri_386', 386, 639, 0, 0, 2, 4, 4, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(60, 'BloodyMary_3186', 3186, 2930, 0, 0, 1, 4, 0, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(61, 'arborbuzzard_12', 12, 13, 0, 0, 2, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(62, 'deadmansmoan_20', 20, 1854, 25772425417, 0, 2, 4, 4, 17, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(63, 'roseling_22', 22, 400, 0, 0, 1, 4, 4, 48, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(64, 'duskbat_38', 38, 363, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(65, 'plasmoid_46', 46, 46, 0, 0, 1, 4, 4, 80, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(66, 'axolotl_139', 139, 1831, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(67, 'Rothlytpelican_181', 181, 1181, 0, 0, 2, 4, 4, 157, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(68, 'sewermole_205', 205, 410, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(69, 'hedgemole_206', 206, 403, 0, 0, 1, 4, 4, 283, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(70, 'seawasp_312', 312, 360, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(71, 'fatdodo_340', 340, 394, 0, 0, 1, 4, 4, 174, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(72, 'pukhatchling_341', 341, 402, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(73, 'Rhotanobuccaneer_348', 348, 420, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(74, 'Rhotanobuccaneer_349', 349, 420, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(75, 'preyingmantis_396', 396, 1852, 0, 0, 2, 4, 4, 376, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(76, 'killermantis_397', 397, 644, 0, 0, 2, 4, 4, 374, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(77, 'lammergeyer_403', 403, 1853, 0, 0, 2, 4, 4, 41, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(78, 'shelfscaleSahagin_765', 765, 386, 4295688693, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(79, 'shelfclawSahagin_766', 766, 384, 0, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(80, 'Sapsashelfspine_767', 767, 1829, 4295688693, 4295426149, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000), -(81, 'shoaltoothSahagin_768', 768, 2526, 51539673889, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020002000000000000000000000000000000000000000000000000000000000000000000), -(82, 'goblinhunter_769', 769, 225, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(83, 'shelfscaleReaver_773', 773, 347, 17182949577, 12885033061, 2, 4, 4, 0, 0, 0x05000132090101011a0101000001000100000000003200321045, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000), -(84, 'shelfclawReaver_774', 774, 345, 21474967853, 21474967903, 2, 4, 4, 0, 0, 0x0500013209020901ab15040000010115830300020064004b1045, 0x1700660008000d000800480008003f00080064000000000000000000000000000000000000000000), -(85, 'shelfeyeReaver_776', 776, 559, 30064902745, 4295033530, 2, 4, 4, 0, 0, 0x0500013209010c01149203000001029202020202006400321445, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000), -(86, 'Sapsaelbst_2832', 2832, 2527, 0, 0, 2, 4, 4, 182, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(87, 'whelkballista_2835', 2835, 2530, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(88, 'freshwhelkballista_2836', 2836, 2531, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(89, 'reinforcedwhelkballista_2837', 2837, 2532, 0, 0, 2, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(90, 'DarkHelmet_3187', 3187, 2931, 0, 0, 1, 4, 0, 722, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(91, 'coeurlpup_28', 28, 28, 0, 0, 2, 4, 4, 69, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(92, 'bumblebeetle_36', 36, 296, 0, 0, 1, 4, 4, 56, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(93, 'salamander_139', 139, 391, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(94, 'forestyarzon_159', 159, 381, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(95, 'wildwolf_303', 303, 1180, 0, 0, 2, 4, 4, 159, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(96, 'koboldpickman_329', 329, 370, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(97, 'koboldsidesman_330', 330, 376, 4295033533, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000), -(98, 'MamoolJabreeder_343', 343, 414, 4295033033, 4295426149, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(99, 'MamoolJaexecutioner_344', 344, 413, 4295033233, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(100, 'MamoolJainfiltrator_345', 345, 416, 4295033333, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(101, 'MamoolJasophist_346', 346, 415, 51539673889, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000), -(102, 'stoneshell_382', 382, 638, 0, 0, 1, 4, 4, 355, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(103, 'mudpugil_383', 383, 642, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(104, 'uragnite_389', 389, 643, 0, 0, 1, 4, 4, 364, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(105, 'Myradrosh_3188', 3188, 2932, 0, 0, 1, 4, 0, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(106, '3rdCohorthoplomachus_55', 55, 53, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(107, '3rdCohortlaquearius_61', 61, 58, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(108, '3rdCohorteques_62', 62, 59, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(109, '3rdCohortsecutor_63', 63, 60, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(110, '3rdCohortsignifer_64', 64, 61, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(111, 'earthsprite_131', 131, 113, 0, 0, 1, 4, 4, 386, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(112, 'basilisk_173', 173, 304, 0, 0, 2, 4, 4, 135, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(113, 'ahriman_183', 183, 242, 0, 0, 2, 4, 4, 168, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(114, 'quartzdoblyn_188', 188, 275, 0, 0, 1, 4, 4, 177, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(115, 'magitekvanguard_200', 200, 269, 0, 0, 2, 4, 4, 213, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(116, 'grenade_327', 327, 270, 0, 0, 2, 4, 4, 101, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(117, 'FlameSergeantDalvag_3183', 3183, 2927, 0, 0, 1, 4, 0, 717, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000040001000000000000000000000000000000000000000000000000000000000000000000), -(118, 'antelopestag_4', 4, 4, 0, 0, 1, 4, 4, 62, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(119, 'ked_8', 8, 8, 0, 0, 2, 4, 4, 54, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(120, 'midlandcondor_13', 13, 566, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(121, 'wildhog_16', 16, 15, 0, 0, 2, 4, 4, 45, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(122, 'kedtrap_23', 23, 23, 0, 0, 2, 4, 4, 49, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(123, 'treant_24', 24, 24, 0, 0, 2, 4, 4, 104, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(124, 'adamantoise_34', 34, 34, 0, 0, 1, 4, 4, 94, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(125, 'hoverflyswarm_41', 41, 168, 0, 0, 1, 4, 4, 59, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(126, 'will-o-the-wisp_45', 45, 45, 0, 0, 1, 4, 4, 79, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(127, 'goblinthug_52', 52, 50, 8592556233, 0, 2, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(128, 'Coeurlclawpoacher_79', 79, 140, 38654902773, 0, 2, 4, 4, 0, 0, 0x0401013208030201150c05000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), -(129, 'Coeurlclawhunter_81', 81, 139, 17179935321, 4295033530, 2, 4, 4, 0, 0, 0x04010132080301014a0c1e000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), -(130, 'Redbellylookout_84', 84, 52, 21474902217, 8590393445, 2, 4, 4, 0, 0, 0x02000132040102013a8a06000000028a02000302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), -(131, 'Redbellylarcener_86', 86, 172, 12885033261, 12885033311, 2, 4, 4, 0, 0, 0x0200013204010701224e06000000024e01020302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), -(132, 'Redbellysharpeye_87', 87, 83, 8590131801, 4295033530, 2, 4, 4, 0, 0, 0x0200013204030401282605000000022685010102003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), -(133, 'lesserkalong_130', 130, 112, 0, 0, 1, 4, 4, 99, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(134, 'deepvoiddeathmouse_143', 143, 170, 0, 0, 1, 4, 4, 27, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(135, 'riveryarzon_159', 159, 226, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(136, 'bigmouthorobon_302', 302, 235, 0, 0, 1, 4, 4, 270, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(137, 'stroper_304', 304, 238, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(138, 'revenant_305', 305, 236, 0, 0, 2, 4, 4, 265, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(139, 'Coeurlclawcutter_311', 311, 169, 17182556361, 17180328037, 2, 4, 4, 0, 0, 0x040101320801060189241e000000032403040301003201320000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), -(140, 'nix_27', 27, 27, 0, 0, 2, 4, 4, 127, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(141, '5thCohorthoplomachus_55', 55, 1809, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(142, '5thCohortlaquearius_61', 61, 1810, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(143, '5thCohorteques_62', 62, 1811, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(144, '5thCohortsecutor_63', 63, 1812, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(145, '5thCohortsignifer_64', 64, 1813, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(146, 'mudpuppy_139', 139, 645, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(147, 'morbol_140', 140, 237, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(148, '5thCohortvanguard_201', 201, 1814, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(149, 'hippogryph_645', 645, 789, 0, 0, 2, 4, 4, 134, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(150, 'hapalit_647', 647, 793, 0, 0, 2, 4, 4, 188, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(151, 'gigasshramana_727', 727, 647, 4295040839, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), -(152, 'gigasbonze_728', 728, 646, 4295106370, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), -(153, 'gigassozu_729', 729, 648, 4295040844, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), -(154, 'lakecobra_777', 777, 1851, 0, 0, 2, 4, 4, 235, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(155, 'LeechKing_3191', 3191, 2935, 0, 0, 1, 4, 0, 600, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(156, 'blackbat_1037', 1037, 38, 0, 0, 3, 4, 2, 98, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(157, 'caveaurelia_1038', 1038, 1210, 0, 0, 3, 4, 2, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(158, 'foper_7439', 7439, 5674, 0, 0, 2, 4, 4, 1906, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(159, 'spinner_7442', 7442, 5677, 0, 0, 2, 4, 4, 1542, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(160, 'velociraptor_2', 2, 412, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(161, 'ringtail_6', 6, 407, 0, 0, 1, 4, 4, 32, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(162, 'highlandcondor_13', 13, 398, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(163, 'basaltgolem_30', 30, 365, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(164, 'pteroc_65', 65, 62, 0, 0, 1, 4, 4, 131, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(165, 'coeurl_117', 117, 106, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(166, 'syntheticdoblyn_189', 189, 1836, 0, 0, 2, 4, 4, 178, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(167, 'UGhamaroroundsman_755', 755, 1832, 17182490825, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(168, 'UGhamaroquarryman_756', 756, 1833, 8590000529, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(169, 'elitebedesman_757', 757, 2521, 30064837309, 0, 2, 8, 2, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000), -(170, 'koboldpriest_758', 758, 371, 30065755013, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), -(171, 'youngcoeurl_2269', 2269, 2192, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(172, 'bombincubator_2833', 2833, 2528, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(173, 'prototypebombincubator_2834', 2834, 2529, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(174, 'UGhamarogolem_2838', 2838, 2522, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(175, 'Vuokho_3189', 3189, 2933, 0, 0, 1, 4, 0, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(176, 'strikingdummy_8016', 8016, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(177, 'cocoon_6358', 6358, 6275, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(178, 'Shinryu_6531', 6531, 5640, 0, 0, 3, 4, 0, 1893, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(179, 'tail_6930', 6930, 5789, 0, 0, 3, 4, 0, 1926, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(180, 'cocoon_6931', 6931, 6275, 0, 0, 3, 4, 0, 2007, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(181, 'ginryu_6932', 6932, 6272, 0, 0, 3, 4, 0, 1891, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(182, '(仮)鎖_6933', 6933, 6279, 0, 0, 3, 4, 0, 2054, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(183, 'icicle_6934', 6934, 6278, 0, 0, 3, 4, 0, 764, 393224, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(184, 'eyeofthestorm_6935', 6935, 6277, 0, 0, 3, 4, 0, 1453, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(185, 'hakkinryu_7299', 7299, 6273, 0, 0, 3, 4, 0, 1985, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(186, 'massivecocoon_7302', 7302, 6276, 0, 0, 3, 4, 0, 2008, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(187, 'saitaisui_6358', 6358, 7206, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(188, 'Otengu_8662', 8662, 7200, 4295827266, 0, 3, 4, 0, 2187, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(189, 'tenguember_8663', 8663, 7201, 0, 0, 3, 4, 0, 2281, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(190, 'Daidarabotchi_8664', 8664, 7202, 0, 0, 3, 4, 0, 2217, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(191, 'QitianDasheng_8665', 8665, 7203, 0, 0, 3, 4, 0, 2211, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(192, 'shadowofthesage_8666', 8666, 7204, 0, 0, 3, 4, 0, 2211, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(193, 'saitaisui_8737', 8737, 7206, 4295302988, 0, 3, 4, 3, 2218, 8, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(194, 'geomantickiyofusa_8738', 8738, 7207, 4295434050, 0, 3, 4, 1, 1813, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(195, 'geomanticapa_8739', 8739, 7208, 0, 0, 3, 4, 3, 1867, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(196, 'torrent_8740', 8740, 7209, 0, 0, 3, 4, 3, 1202, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(197, 'geomanticdhara_8741', 8741, 7210, 0, 0, 3, 4, 3, 1819, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(198, 'geomanticanila_8742', 8742, 7211, 0, 0, 3, 4, 4, 1923, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(199, '_8743', 8743, 108, 0, 0, 1, 4, 0, 1453, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(200, 'riverunkiu_8744', 8744, 7212, 0, 0, 3, 4, 2, 1719, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(201, 'jinmenju_8745', 8745, 7213, 0, 0, 3, 4, 0, 1281, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(202, 'riverhikagiri_8746', 8746, 7214, 0, 0, 3, 4, 3, 572, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(203, 'riverray_8747', 8747, 7215, 0, 0, 3, 4, 0, 1346, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(204, 'riverscorpion_8748', 8748, 7216, 0, 0, 3, 4, 2, 1057, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(205, 'dragonhornbill_8749', 8749, 7217, 0, 0, 3, 4, 2, 1944, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(206, 'dragonbifang_8750', 8750, 7218, 0, 0, 3, 4, 2, 953, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(207, 'whitebaboon_8751', 8751, 7219, 0, 0, 3, 4, 2, 2270, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(208, 'dragonweasel_8752', 8752, 7220, 0, 0, 3, 4, 3, 1948, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(209, 'servantofthesage_8754', 8754, 7205, 0, 0, 3, 4, 0, 2270, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(210, 'saitaisui_8780', 8780, 7206, 4295302988, 0, 1, 4, 0, 2218, 12, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000); - --- --- Indizes der exportierten Tabellen --- - --- --- Indizes für die Tabelle `bnpctemplate` --- -ALTER TABLE `bnpctemplate` - ADD PRIMARY KEY (`Id`), - ADD UNIQUE KEY `bNPCBaseId_2` (`bNPCBaseId`,`bNPCNameId`), - ADD KEY `Name` (`Name`), - ADD KEY `bNPCBaseId` (`bNPCBaseId`), - ADD KEY `bNPCNameId` (`bNPCNameId`); - --- --- AUTO_INCREMENT für exportierte Tabellen --- - --- --- AUTO_INCREMENT für Tabelle `bnpctemplate` --- -ALTER TABLE `bnpctemplate` - MODIFY `Id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=211; \ No newline at end of file diff --git a/sql/characlass.sql b/sql/characlass.sql deleted file mode 100644 index 1dcbaad0..00000000 --- a/sql/characlass.sql +++ /dev/null @@ -1,30 +0,0 @@ --- -------------------------------------------------------- --- Host: 127.0.0.1 --- Server version: 10.1.24-MariaDB - mariadb.org binary distribution --- Server OS: Win32 --- HeidiSQL Version: 9.4.0.5125 --- -------------------------------------------------------- - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8 */; -/*!50503 SET NAMES utf8mb4 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; - --- Dumping structure for table sapphire.characlass -CREATE TABLE IF NOT EXISTS `characlass` ( - `CharacterId` int(20) NOT NULL DEFAULT '0', - `ClassIdx` int(3) DEFAULT '0', - `Exp` int(10) DEFAULT '0', - `Lvl` int(5) DEFAULT '0', - INDEX `CharacterId` (`CharacterId`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Dumping data for table sapphire.characlass: 0 rows -DELETE FROM `characlass`; -/*!40000 ALTER TABLE `characlass` DISABLE KEYS */; -/*!40000 ALTER TABLE `characlass` ENABLE KEYS */; - -/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; -/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/sql/charaglobalitem.sql b/sql/charaglobalitem.sql deleted file mode 100644 index 86025c3e..00000000 --- a/sql/charaglobalitem.sql +++ /dev/null @@ -1,77 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `charaglobalitem` --- - -DROP TABLE IF EXISTS `charaglobalitem`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `charaglobalitem` ( - `CharacterId` int(20) NOT NULL DEFAULT '0', - `itemId` int(20) NOT NULL DEFAULT '0', - `storageId` int(5) NOT NULL DEFAULT '0', - `containerIndex` int(5) NOT NULL DEFAULT '0', - `stack` int(10) DEFAULT '1', - `catalogId` int(10) DEFAULT '0', - `reservedFlag` int(10) DEFAULT '0', - `signatureId` int(20) DEFAULT '0', - `flags` int(3) DEFAULT '0', - `durability` int(5) DEFAULT '30000', - `refine` int(5) DEFAULT '0', - `materia_0` int(5) DEFAULT '0', - `materia_1` int(5) DEFAULT '0', - `materia_2` int(5) DEFAULT '0', - `materia_3` int(5) DEFAULT '0', - `materia_4` int(5) DEFAULT '0', - `stain` int(3) DEFAULT '0', - `pattern` int(10) DEFAULT '0', - `buffer_0` int(3) DEFAULT '0', - `buffer_1` int(3) DEFAULT '0', - `buffer_2` int(3) DEFAULT '0', - `buffer_3` int(3) DEFAULT '0', - `buffer_4` int(3) DEFAULT '0', - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`itemId`), - KEY `CharacterId` (`CharacterId`), - KEY `storageId` (`storageId`), - KEY `storageId_2` (`storageId`,`containerIndex`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `charaglobalitem` --- - -LOCK TABLES `charaglobalitem` WRITE; -/*!40000 ALTER TABLE `charaglobalitem` DISABLE KEYS */; -/*!40000 ALTER TABLE `charaglobalitem` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:12 diff --git a/sql/charainfo.sql b/sql/charainfo.sql deleted file mode 100644 index 4a03dd4a..00000000 --- a/sql/charainfo.sql +++ /dev/null @@ -1,89 +0,0 @@ --- -------------------------------------------------------- --- Host: 127.0.0.1 --- Server version: 10.1.24-MariaDB - mariadb.org binary distribution --- Server OS: Win32 --- HeidiSQL Version: 9.4.0.5125 --- -------------------------------------------------------- - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8 */; -/*!50503 SET NAMES utf8mb4 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; - -CREATE TABLE `charainfo` ( - `AccountId` int(11) NOT NULL, - `CharacterId` decimal(20,0) NOT NULL, - `ContentId` bigint(20) DEFAULT NULL, - `Name` varchar(32) CHARACTER SET latin1 COLLATE latin1_general_ci DEFAULT NULL, - `Hp` bigint(20) DEFAULT '200', - `Mp` bigint(20) DEFAULT '200', - `Tp` bigint(20) DEFAULT '0', - `Gp` bigint(20) DEFAULT '0', - `Mode` smallint(6) DEFAULT '0', - `Mount` smallint(6) DEFAULT '0', - `InvincibleGM` smallint(6) DEFAULT '0', - `Voice` smallint(6) DEFAULT '0', - `Customize` binary(26) DEFAULT NULL, - `ModelMainWeapon` decimal(20,0) DEFAULT '0', - `ModelSubWeapon` decimal(20,0) DEFAULT '0', - `ModelSystemWeapon` decimal(20,0) DEFAULT '0', - `ModelEquip` binary(40) DEFAULT NULL, - `EmoteModeType` smallint(6) DEFAULT '0', - `FirstLoginTime` decimal(20,0) DEFAULT '0', - `Language` bigint(20) DEFAULT '0', - `IsNewGame` smallint(6) DEFAULT '1', - `IsNewAdventurer` int(1) NOT NULL DEFAULT '1', - `TerritoryType` int(11) DEFAULT '0', - `TerritoryId` decimal(20,0) DEFAULT '0', - `PosX` float DEFAULT '0', - `PosY` float DEFAULT '0', - `PosZ` float DEFAULT '0', - `PosR` float DEFAULT '0', - `OTerritoryType` int(11) DEFAULT '0', - `OTerritoryId` decimal(20,0) DEFAULT '0', - `OPosX` float DEFAULT '0', - `OPosY` float DEFAULT '0', - `OPosZ` float DEFAULT '0', - `OPosR` float DEFAULT '0', - `GuardianDeity` int(3) DEFAULT '0', - `BirthDay` int(3) DEFAULT '0', - `BirthMonth` int(3) DEFAULT '0', - `Class` int(3) DEFAULT '0', - `Status` int(3) DEFAULT '0', - `TotalPlayTime` int(10) DEFAULT '0', - `FirstClass` int(3) DEFAULT '0', - `HomePoint` int(3) DEFAULT '0', - `FavoritePoint` binary(3) DEFAULT NULL, - `RestPoint` int(10) DEFAULT '0', - `StartTown` int(3) DEFAULT '0', - `ActiveTitle` int(5) DEFAULT '0', - `TitleList` binary(48) DEFAULT NULL, - `Achievement` binary(16) DEFAULT NULL, - `Aetheryte` binary(16) DEFAULT NULL, - `HowTo` binary(33) DEFAULT NULL, - `Minions` binary(33) DEFAULT NULL, - `Mounts` binary(13) DEFAULT NULL, - `EquippedMannequin` int(5) DEFAULT '0', - `ConfigFlags` smallint(5) NOT NULL DEFAULT '0', - `QuestCompleteFlags` binary(200) DEFAULT NULL, - `OpeningSequence` int(3) DEFAULT '0', - `QuestTracking` binary(10) DEFAULT NULL, - `GrandCompany` int(3) DEFAULT '0', - `GrandCompanyRank` binary(3) DEFAULT NULL, - `Discovery` blob, - `GMRank` int(3) DEFAULT '0', - `Unlocks` binary(64) DEFAULT NULL, - `CFPenaltyUntil` int(11) DEFAULT NULL, - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`CharacterId`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; - --- Dumping data for table sapphire.charainfo: 0 rows -DELETE FROM `charainfo`; -/*!40000 ALTER TABLE `charainfo` DISABLE KEYS */; -/*!40000 ALTER TABLE `charainfo` ENABLE KEYS */; - -/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; -/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/sql/charainfoblacklist.sql b/sql/charainfoblacklist.sql deleted file mode 100644 index 332c1851..00000000 --- a/sql/charainfoblacklist.sql +++ /dev/null @@ -1,53 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `charainfoblacklist` --- - -DROP TABLE IF EXISTS `charainfoblacklist`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `charainfoblacklist` ( - `CharacterId` int(20) NOT NULL, - `CharacterIdList` blob, - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`CharacterId`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `charainfoblacklist` --- - -LOCK TABLES `charainfoblacklist` WRITE; -/*!40000 ALTER TABLE `charainfoblacklist` DISABLE KEYS */; -/*!40000 ALTER TABLE `charainfoblacklist` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:08 diff --git a/sql/charainfofriendlist.sql b/sql/charainfofriendlist.sql deleted file mode 100644 index 04943f3d..00000000 --- a/sql/charainfofriendlist.sql +++ /dev/null @@ -1,54 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `charainfofriendlist` --- - -DROP TABLE IF EXISTS `charainfofriendlist`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `charainfofriendlist` ( - `CharacterId` int(20) NOT NULL, - `CharacterIdList` blob, - `InviteDataList` blob, - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`CharacterId`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `charainfofriendlist` --- - -LOCK TABLES `charainfofriendlist` WRITE; -/*!40000 ALTER TABLE `charainfofriendlist` DISABLE KEYS */; -/*!40000 ALTER TABLE `charainfofriendlist` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:09 diff --git a/sql/charainfolinkshell.sql b/sql/charainfolinkshell.sql deleted file mode 100644 index cb583e2c..00000000 --- a/sql/charainfolinkshell.sql +++ /dev/null @@ -1,53 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `charainfolinkshell` --- - -DROP TABLE IF EXISTS `charainfolinkshell`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `charainfolinkshell` ( - `CharacterId` int(20) NOT NULL, - `LinkshellIdList` binary(64) DEFAULT NULL, - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`CharacterId`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `charainfolinkshell` --- - -LOCK TABLES `charainfolinkshell` WRITE; -/*!40000 ALTER TABLE `charainfolinkshell` DISABLE KEYS */; -/*!40000 ALTER TABLE `charainfolinkshell` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:09 diff --git a/sql/charainfosearch.sql b/sql/charainfosearch.sql deleted file mode 100644 index 50651c4b..00000000 --- a/sql/charainfosearch.sql +++ /dev/null @@ -1,54 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `charainfosearch` --- - -DROP TABLE IF EXISTS `charainfosearch`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `charainfosearch` ( - `CharacterId` int(20) DEFAULT NULL, - `SelectClassId` int(3) DEFAULT '0', - `SelectRegion` int(3) DEFAULT '0', - `SearchComment` binary(193) DEFAULT "", - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `charainfosearch` --- - -LOCK TABLES `charainfosearch` WRITE; -/*!40000 ALTER TABLE `charainfosearch` DISABLE KEYS */; -/*!40000 ALTER TABLE `charainfosearch` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:09 diff --git a/sql/charaitemgearset.sql b/sql/charaitemgearset.sql deleted file mode 100644 index 8bd9e314..00000000 --- a/sql/charaitemgearset.sql +++ /dev/null @@ -1,70 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `charaitemgearset` --- - -DROP TABLE IF EXISTS `charaitemgearset`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `charaitemgearset` ( - `CharacterId` int(20) NOT NULL, - `storageId` int(10) NOT NULL, - `type` int(5) DEFAULT '0', - `idx` int(5) NOT NULL AUTO_INCREMENT, - `container_0` int(20) DEFAULT '0', - `container_1` int(20) DEFAULT '0', - `container_2` int(20) DEFAULT '0', - `container_3` int(20) DEFAULT '0', - `container_4` int(20) DEFAULT '0', - `container_5` int(20) DEFAULT '0', - `container_6` int(20) DEFAULT '0', - `container_7` int(20) DEFAULT '0', - `container_8` int(20) DEFAULT '0', - `container_9` int(20) DEFAULT '0', - `container_10` int(20) DEFAULT '0', - `container_11` int(20) DEFAULT '0', - `container_12` int(20) DEFAULT '0', - `container_13` int(20) DEFAULT '0', - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`CharacterId`,`storageId`), - UNIQUE KEY `idx` (`idx`) -) ENGINE=MyISAM AUTO_INCREMENT=11 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `charaitemgearset` --- - -LOCK TABLES `charaitemgearset` WRITE; -/*!40000 ALTER TABLE `charaitemgearset` DISABLE KEYS */; -/*!40000 ALTER TABLE `charaitemgearset` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:11 diff --git a/sql/charaiteminventory.sql b/sql/charaiteminventory.sql deleted file mode 100644 index 34a4d281..00000000 --- a/sql/charaiteminventory.sql +++ /dev/null @@ -1,69 +0,0 @@ --- -------------------------------------------------------- --- Host: 127.0.0.1 --- Server version: 10.1.24-MariaDB - mariadb.org binary distribution --- Server OS: Win32 --- HeidiSQL Version: 9.4.0.5125 --- -------------------------------------------------------- - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8 */; -/*!50503 SET NAMES utf8mb4 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; - --- Dumping structure for table sapphire.charaiteminventory -CREATE TABLE IF NOT EXISTS `charaiteminventory` ( - `CharacterId` int(20) NOT NULL, - `storageId` int(10) NOT NULL, - `type` int(5) DEFAULT '0', - `idx` int(5) NOT NULL AUTO_INCREMENT, - `container_0` int(20) DEFAULT '0', - `container_1` int(20) DEFAULT '0', - `container_2` int(20) DEFAULT '0', - `container_3` int(20) DEFAULT '0', - `container_4` int(20) DEFAULT '0', - `container_5` int(20) DEFAULT '0', - `container_6` int(20) DEFAULT '0', - `container_7` int(20) DEFAULT '0', - `container_8` int(20) DEFAULT '0', - `container_9` int(20) DEFAULT '0', - `container_10` int(20) DEFAULT '0', - `container_11` int(20) DEFAULT '0', - `container_12` int(20) DEFAULT '0', - `container_13` int(20) DEFAULT '0', - `container_14` int(20) DEFAULT '0', - `container_15` int(20) DEFAULT '0', - `container_16` int(20) DEFAULT '0', - `container_17` int(20) DEFAULT '0', - `container_18` int(20) DEFAULT '0', - `container_19` int(20) DEFAULT '0', - `container_20` int(20) DEFAULT '0', - `container_21` int(20) DEFAULT '0', - `container_22` int(20) DEFAULT '0', - `container_23` int(20) DEFAULT '0', - `container_24` int(20) DEFAULT '0', - `container_25` int(20) DEFAULT '0', - `container_26` int(20) DEFAULT '0', - `container_27` int(20) DEFAULT '0', - `container_28` int(20) DEFAULT '0', - `container_29` int(20) DEFAULT '0', - `container_30` int(20) DEFAULT '0', - `container_31` int(20) DEFAULT '0', - `container_32` int(20) DEFAULT '0', - `container_33` int(20) DEFAULT '0', - `container_34` int(20) DEFAULT '0', - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`CharacterId`,`storageId`), - UNIQUE KEY `idx` (`idx`) -) ENGINE=MyISAM AUTO_INCREMENT=161 DEFAULT CHARSET=utf8; - --- Dumping data for table sapphire.charaiteminventory: 0 rows -DELETE FROM `charaiteminventory`; -/*!40000 ALTER TABLE `charaiteminventory` DISABLE KEYS */; -/*!40000 ALTER TABLE `charaiteminventory` ENABLE KEYS */; - -/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; -/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/sql/charaquestnew.sql b/sql/charaquestnew.sql deleted file mode 100644 index 98279a0d..00000000 --- a/sql/charaquestnew.sql +++ /dev/null @@ -1,20 +0,0 @@ -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -SET time_zone = "+00:00"; -DROP TABLE IF EXISTS `charaquestnew`; -CREATE TABLE charaquestnew ( - `CharacterId` int(20) DEFAULT '0', - `slotId` int(20) DEFAULT '0', - `QuestId` int(5) DEFAULT '0', - `Sequence` int(3) DEFAULT '0', - `Flags` int(3) DEFAULT '0', - `Variables_0` int(3) DEFAULT '0', - `Variables_1` int(3) DEFAULT '0', - `Variables_2` int(3) DEFAULT '0', - `Variables_3` int(3) DEFAULT '0', - `Variables_4` int(3) DEFAULT '0', - `Variables_5` int(3) DEFAULT '0', - `Variables_6` int(3) DEFAULT '0', - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -) ENGINE=MyISAM DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/sql/charastatus.sql b/sql/charastatus.sql deleted file mode 100644 index a601aab5..00000000 --- a/sql/charastatus.sql +++ /dev/null @@ -1,126 +0,0 @@ - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - -DROP TABLE IF EXISTS `charastatus`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `charastatus` ( - `Recast_0` binary(24) DEFAULT NULL, - `Recast_1` binary(24) DEFAULT NULL, - `Recast_2` binary(24) DEFAULT NULL, - `Recast_3` binary(24) DEFAULT NULL, - `Recast_4` binary(24) DEFAULT NULL, - `Recast_5` binary(24) DEFAULT NULL, - `Recast_6` binary(24) DEFAULT NULL, - `Recast_7` binary(24) DEFAULT NULL, - `Recast_8` binary(24) DEFAULT NULL, - `Recast_9` binary(24) DEFAULT NULL, - `Recast_10` binary(24) DEFAULT NULL, - `Recast_11` binary(24) DEFAULT NULL, - `Recast_12` binary(24) DEFAULT NULL, - `Recast_13` binary(24) DEFAULT NULL, - `Recast_14` binary(24) DEFAULT NULL, - `Recast_15` binary(24) DEFAULT NULL, - `Recast_16` binary(24) DEFAULT NULL, - `Recast_17` binary(24) DEFAULT NULL, - `Recast_18` binary(24) DEFAULT NULL, - `Recast_19` binary(24) DEFAULT NULL, - `Recast_20` binary(24) DEFAULT NULL, - `Recast_21` binary(24) DEFAULT NULL, - `Recast_22` binary(24) DEFAULT NULL, - `Recast_23` binary(24) DEFAULT NULL, - `Recast_24` binary(24) DEFAULT NULL, - `Recast_25` binary(24) DEFAULT NULL, - `Recast_26` binary(24) DEFAULT NULL, - `Recast_27` binary(24) DEFAULT NULL, - `Recast_28` binary(24) DEFAULT NULL, - `Recast_29` binary(24) DEFAULT NULL, - `Recast_30` binary(24) DEFAULT NULL, - `Recast_31` binary(24) DEFAULT NULL, - `Recast_32` binary(24) DEFAULT NULL, - `Recast_33` binary(24) DEFAULT NULL, - `Recast_34` binary(24) DEFAULT NULL, - `Recast_35` binary(24) DEFAULT NULL, - `Recast_36` binary(24) DEFAULT NULL, - `Recast_37` binary(24) DEFAULT NULL, - `Recast_38` binary(24) DEFAULT NULL, - `Recast_39` binary(24) DEFAULT NULL, - `Recast_40` binary(24) DEFAULT NULL, - `Recast_41` binary(24) DEFAULT NULL, - `Recast_42` binary(24) DEFAULT NULL, - `Recast_43` binary(24) DEFAULT NULL, - `Recast_44` binary(24) DEFAULT NULL, - `Recast_45` binary(24) DEFAULT NULL, - `Recast_46` binary(24) DEFAULT NULL, - `Recast_47` binary(24) DEFAULT NULL, - `Recast_48` binary(24) DEFAULT NULL, - `Recast_49` binary(24) DEFAULT NULL, - `Recast_50` binary(24) DEFAULT NULL, - `Recast_51` binary(24) DEFAULT NULL, - `Recast_52` binary(24) DEFAULT NULL, - `Recast_53` binary(24) DEFAULT NULL, - `Status_0` binary(78) DEFAULT NULL, - `Status_1` binary(78) DEFAULT NULL, - `Status_2` binary(78) DEFAULT NULL, - `Status_3` binary(78) DEFAULT NULL, - `Status_4` binary(78) DEFAULT NULL, - `Status_5` binary(78) DEFAULT NULL, - `Status_6` binary(78) DEFAULT NULL, - `Status_7` binary(78) DEFAULT NULL, - `Status_8` binary(78) DEFAULT NULL, - `Status_9` binary(78) DEFAULT NULL, - `Status_10` binary(78) DEFAULT NULL, - `Status_11` binary(78) DEFAULT NULL, - `Status_12` binary(78) DEFAULT NULL, - `Status_13` binary(78) DEFAULT NULL, - `Status_14` binary(78) DEFAULT NULL, - `Status_15` binary(78) DEFAULT NULL, - `Status_16` binary(78) DEFAULT NULL, - `Status_17` binary(78) DEFAULT NULL, - `Status_18` binary(78) DEFAULT NULL, - `Status_19` binary(78) DEFAULT NULL, - `Status_20` binary(78) DEFAULT NULL, - `Status_21` binary(78) DEFAULT NULL, - `Status_22` binary(78) DEFAULT NULL, - `Status_23` binary(78) DEFAULT NULL, - `Status_24` binary(78) DEFAULT NULL, - `Status_25` binary(78) DEFAULT NULL, - `Status_26` binary(78) DEFAULT NULL, - `Status_27` binary(78) DEFAULT NULL, - `Status_28` binary(78) DEFAULT NULL, - `Status_29` binary(78) DEFAULT NULL, - `CharacterId` int(20) DEFAULT NULL, - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `_112_dbcharastatus` --- - -LOCK TABLES `charastatus` WRITE; -/*!40000 ALTER TABLE `charastatus` DISABLE KEYS */; -/*!40000 ALTER TABLE `charastatus` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:36:59 \ No newline at end of file diff --git a/sql/discoveryinfo.sql b/sql/discoveryinfo.sql deleted file mode 100644 index 92c5f174..00000000 --- a/sql/discoveryinfo.sql +++ /dev/null @@ -1,4647 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `discoveryinfo` --- - -DROP TABLE IF EXISTS `discoveryinfo`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `discoveryinfo` ( - `id` int(10) NOT NULL, - `map_id` int(3) NOT NULL, - `discover_id` int(3) NOT NULL, - PRIMARY KEY (`id`, `map_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `discoveryinfo` --- - -LOCK TABLES `discoveryinfo` WRITE; -/*!40000 ALTER TABLE `discoveryinfo` DISABLE KEYS */; -INSERT INTO `discoveryinfo` VALUES (-858993460,-858993460,-858993460); -INSERT INTO discoveryinfo VALUES (5864773, 231, 1); -INSERT INTO discoveryinfo VALUES (5864776, 231, 2); -INSERT INTO discoveryinfo VALUES (5864775, 231, 3); -INSERT INTO discoveryinfo VALUES (5864777, 231, 4); -INSERT INTO discoveryinfo VALUES (5864778, 231, 4); -INSERT INTO discoveryinfo VALUES (5864779, 231, 5); -INSERT INTO discoveryinfo VALUES (5864781, 231, 6); -INSERT INTO discoveryinfo VALUES (5864785, 231, 7); -INSERT INTO discoveryinfo VALUES (5864815, 232, 8); -INSERT INTO discoveryinfo VALUES (5864826, 232, 9); -INSERT INTO discoveryinfo VALUES (5864834, 232, 9); -INSERT INTO discoveryinfo VALUES (5864836, 232, 10); -INSERT INTO discoveryinfo VALUES (5864852, 232, 11); -INSERT INTO discoveryinfo VALUES (5864853, 232, 12); -INSERT INTO discoveryinfo VALUES (5864854, 232, 13); -INSERT INTO discoveryinfo VALUES (5864856, 232, 14); -INSERT INTO discoveryinfo VALUES (5864866, 233, 15); -INSERT INTO discoveryinfo VALUES (5864917, 234, 16); -INSERT INTO discoveryinfo VALUES (5864930, 234, 17); -INSERT INTO discoveryinfo VALUES (5864932, 234, 17); -INSERT INTO discoveryinfo VALUES (5864933, 234, 18); -INSERT INTO discoveryinfo VALUES (5864934, 234, 18); -INSERT INTO discoveryinfo VALUES (5864935, 234, 18); -INSERT INTO discoveryinfo VALUES (5864936, 234, 18); -INSERT INTO discoveryinfo VALUES (5864947, 234, 19); -INSERT INTO discoveryinfo VALUES (5864949, 234, 19); -INSERT INTO discoveryinfo VALUES (5864950, 234, 19); -INSERT INTO discoveryinfo VALUES (5864955, 234, 19); -INSERT INTO discoveryinfo VALUES (5864960, 234, 20); -INSERT INTO discoveryinfo VALUES (5864991, 234, 20); -INSERT INTO discoveryinfo VALUES (5864992, 234, 20); -INSERT INTO discoveryinfo VALUES (5865021, 234, 21); -INSERT INTO discoveryinfo VALUES (5865022, 234, 21); -INSERT INTO discoveryinfo VALUES (5865023, 234, 21); -INSERT INTO discoveryinfo VALUES (5865041, 234, 22); -INSERT INTO discoveryinfo VALUES (5865043, 234, 22); -INSERT INTO discoveryinfo VALUES (5865045, 234, 22); -INSERT INTO discoveryinfo VALUES (5865046, 234, 23); -INSERT INTO discoveryinfo VALUES (5865048, 234, 24); -INSERT INTO discoveryinfo VALUES (5907035, 234, 20); -INSERT INTO discoveryinfo VALUES (5864957, 230, 1); -INSERT INTO discoveryinfo VALUES (5865261, 230, 2); -INSERT INTO discoveryinfo VALUES (5865270, 230, 2); -INSERT INTO discoveryinfo VALUES (5865271, 230, 3); -INSERT INTO discoveryinfo VALUES (5865273, 230, 4); -INSERT INTO discoveryinfo VALUES (5865275, 230, 5); -INSERT INTO discoveryinfo VALUES (5865286, 230, 1); -INSERT INTO discoveryinfo VALUES (5910004, 230, 3); -INSERT INTO discoveryinfo VALUES (5910005, 230, 3); -INSERT INTO discoveryinfo VALUES (5868321, 244, 1); -INSERT INTO discoveryinfo VALUES (5868322, 245, 2); -INSERT INTO discoveryinfo VALUES (5868323, 245, 3); -INSERT INTO discoveryinfo VALUES (5868324, 245, 4); -INSERT INTO discoveryinfo VALUES (5868325, 245, 5); -INSERT INTO discoveryinfo VALUES (5868326, 245, 6); -INSERT INTO discoveryinfo VALUES (5868327, 246, 7); -INSERT INTO discoveryinfo VALUES (5868328, 246, 7); -INSERT INTO discoveryinfo VALUES (5868329, 246, 8); -INSERT INTO discoveryinfo VALUES (5868330, 246, 8); -INSERT INTO discoveryinfo VALUES (5868331, 246, 9); -INSERT INTO discoveryinfo VALUES (5868332, 246, 9); -INSERT INTO discoveryinfo VALUES (5868333, 246, 10); -INSERT INTO discoveryinfo VALUES (5868334, 246, 11); -INSERT INTO discoveryinfo VALUES (5868335, 247, 12); -INSERT INTO discoveryinfo VALUES (5868336, 247, 13); -INSERT INTO discoveryinfo VALUES (5868337, 247, 14); -INSERT INTO discoveryinfo VALUES (5868338, 247, 15); -INSERT INTO discoveryinfo VALUES (7180738, 441, 1); -INSERT INTO discoveryinfo VALUES (7180740, 441, 2); -INSERT INTO discoveryinfo VALUES (7180747, 441, 3); -INSERT INTO discoveryinfo VALUES (7180913, 442, 4); -INSERT INTO discoveryinfo VALUES (7180916, 442, 5); -INSERT INTO discoveryinfo VALUES (7180919, 442, 6); -INSERT INTO discoveryinfo VALUES (7180922, 442, 6); -INSERT INTO discoveryinfo VALUES (7180929, 442, 6); -INSERT INTO discoveryinfo VALUES (7180930, 442, 7); -INSERT INTO discoveryinfo VALUES (7180932, 442, 7); -INSERT INTO discoveryinfo VALUES (7180937, 442, 8); -INSERT INTO discoveryinfo VALUES (7180942, 442, 8); -INSERT INTO discoveryinfo VALUES (7180963, 443, 9); -INSERT INTO discoveryinfo VALUES (7180986, 443, 9); -INSERT INTO discoveryinfo VALUES (7181029, 443, 9); -INSERT INTO discoveryinfo VALUES (7181036, 443, 10); -INSERT INTO discoveryinfo VALUES (7181047, 443, 10); -INSERT INTO discoveryinfo VALUES (7181145, 443, 10); -INSERT INTO discoveryinfo VALUES (7181146, 443, 11); -INSERT INTO discoveryinfo VALUES (7181154, 443, 12); -INSERT INTO discoveryinfo VALUES (7181156, 443, 12); -INSERT INTO discoveryinfo VALUES (7181162, 443, 13); -INSERT INTO discoveryinfo VALUES (7181167, 443, 14); -INSERT INTO discoveryinfo VALUES (5931218, 215, 1); -INSERT INTO discoveryinfo VALUES (5931219, 215, 1); -INSERT INTO discoveryinfo VALUES (5931220, 215, 1); -INSERT INTO discoveryinfo VALUES (5931221, 215, 1); -INSERT INTO discoveryinfo VALUES (5931222, 215, 1); -INSERT INTO discoveryinfo VALUES (5931223, 215, 1); -INSERT INTO discoveryinfo VALUES (5931224, 215, 1); -INSERT INTO discoveryinfo VALUES (5931225, 215, 2); -INSERT INTO discoveryinfo VALUES (5931226, 215, 2); -INSERT INTO discoveryinfo VALUES (5931227, 215, 2); -INSERT INTO discoveryinfo VALUES (5931228, 215, 2); -INSERT INTO discoveryinfo VALUES (5931229, 215, 3); -INSERT INTO discoveryinfo VALUES (5931230, 215, 3); -INSERT INTO discoveryinfo VALUES (5931231, 215, 3); -INSERT INTO discoveryinfo VALUES (5931232, 215, 3); -INSERT INTO discoveryinfo VALUES (5931233, 215, 3); -INSERT INTO discoveryinfo VALUES (5931234, 215, 3); -INSERT INTO discoveryinfo VALUES (5931235, 215, 3); -INSERT INTO discoveryinfo VALUES (5931236, 215, 3); -INSERT INTO discoveryinfo VALUES (5931237, 215, 3); -INSERT INTO discoveryinfo VALUES (5931238, 215, 3); -INSERT INTO discoveryinfo VALUES (5931239, 215, 4); -INSERT INTO discoveryinfo VALUES (5931240, 215, 4); -INSERT INTO discoveryinfo VALUES (5931241, 215, 5); -INSERT INTO discoveryinfo VALUES (5931242, 215, 5); -INSERT INTO discoveryinfo VALUES (5931243, 215, 5); -INSERT INTO discoveryinfo VALUES (5931244, 215, 5); -INSERT INTO discoveryinfo VALUES (5931245, 215, 5); -INSERT INTO discoveryinfo VALUES (5931246, 215, 6); -INSERT INTO discoveryinfo VALUES (5931247, 215, 6); -INSERT INTO discoveryinfo VALUES (5931248, 215, 6); -INSERT INTO discoveryinfo VALUES (5931249, 215, 6); -INSERT INTO discoveryinfo VALUES (5931250, 215, 6); -INSERT INTO discoveryinfo VALUES (5931251, 215, 6); -INSERT INTO discoveryinfo VALUES (5931252, 215, 6); -INSERT INTO discoveryinfo VALUES (5931253, 215, 6); -INSERT INTO discoveryinfo VALUES (5931254, 215, 6); -INSERT INTO discoveryinfo VALUES (5931255, 215, 7); -INSERT INTO discoveryinfo VALUES (5931256, 215, 7); -INSERT INTO discoveryinfo VALUES (5931257, 215, 7); -INSERT INTO discoveryinfo VALUES (5931258, 215, 7); -INSERT INTO discoveryinfo VALUES (5931259, 215, 7); -INSERT INTO discoveryinfo VALUES (5931260, 215, 7); -INSERT INTO discoveryinfo VALUES (5931261, 215, 7); -INSERT INTO discoveryinfo VALUES (5931262, 215, 7); -INSERT INTO discoveryinfo VALUES (5931263, 215, 7); -INSERT INTO discoveryinfo VALUES (5931264, 215, 8); -INSERT INTO discoveryinfo VALUES (5931265, 215, 8); -INSERT INTO discoveryinfo VALUES (5931266, 215, 8); -INSERT INTO discoveryinfo VALUES (5931267, 215, 9); -INSERT INTO discoveryinfo VALUES (5931268, 215, 9); -INSERT INTO discoveryinfo VALUES (5931269, 215, 9); -INSERT INTO discoveryinfo VALUES (5931270, 215, 9); -INSERT INTO discoveryinfo VALUES (5931271, 215, 9); -INSERT INTO discoveryinfo VALUES (5931272, 215, 16); -INSERT INTO discoveryinfo VALUES (5931273, 215, 16); -INSERT INTO discoveryinfo VALUES (5931274, 215, 16); -INSERT INTO discoveryinfo VALUES (5931275, 215, 16); -INSERT INTO discoveryinfo VALUES (5931276, 215, 17); -INSERT INTO discoveryinfo VALUES (5931277, 215, 17); -INSERT INTO discoveryinfo VALUES (5931278, 215, 17); -INSERT INTO discoveryinfo VALUES (5931279, 215, 17); -INSERT INTO discoveryinfo VALUES (5931280, 215, 17); -INSERT INTO discoveryinfo VALUES (5931281, 215, 18); -INSERT INTO discoveryinfo VALUES (5931282, 215, 18); -INSERT INTO discoveryinfo VALUES (5931283, 215, 18); -INSERT INTO discoveryinfo VALUES (5931284, 215, 18); -INSERT INTO discoveryinfo VALUES (5931285, 215, 18); -INSERT INTO discoveryinfo VALUES (5931286, 215, 18); -INSERT INTO discoveryinfo VALUES (5931287, 215, 18); -INSERT INTO discoveryinfo VALUES (5931288, 215, 15); -INSERT INTO discoveryinfo VALUES (5931289, 215, 15); -INSERT INTO discoveryinfo VALUES (5931290, 215, 15); -INSERT INTO discoveryinfo VALUES (5931291, 215, 15); -INSERT INTO discoveryinfo VALUES (5931292, 215, 10); -INSERT INTO discoveryinfo VALUES (5931293, 215, 10); -INSERT INTO discoveryinfo VALUES (5931294, 215, 10); -INSERT INTO discoveryinfo VALUES (5931295, 215, 10); -INSERT INTO discoveryinfo VALUES (5931296, 215, 11); -INSERT INTO discoveryinfo VALUES (5931297, 215, 11); -INSERT INTO discoveryinfo VALUES (5931298, 215, 11); -INSERT INTO discoveryinfo VALUES (5931299, 215, 14); -INSERT INTO discoveryinfo VALUES (5931300, 215, 14); -INSERT INTO discoveryinfo VALUES (5931301, 215, 14); -INSERT INTO discoveryinfo VALUES (5931302, 215, 14); -INSERT INTO discoveryinfo VALUES (5931303, 215, 14); -INSERT INTO discoveryinfo VALUES (5931304, 215, 14); -INSERT INTO discoveryinfo VALUES (5931305, 215, 14); -INSERT INTO discoveryinfo VALUES (5931306, 215, 12); -INSERT INTO discoveryinfo VALUES (5931307, 215, 12); -INSERT INTO discoveryinfo VALUES (5931308, 215, 12); -INSERT INTO discoveryinfo VALUES (5931309, 215, 12); -INSERT INTO discoveryinfo VALUES (5931310, 215, 12); -INSERT INTO discoveryinfo VALUES (5931311, 215, 13); -INSERT INTO discoveryinfo VALUES (5931312, 215, 13); -INSERT INTO discoveryinfo VALUES (5931313, 215, 21); -INSERT INTO discoveryinfo VALUES (5931314, 215, 21); -INSERT INTO discoveryinfo VALUES (5931315, 215, 21); -INSERT INTO discoveryinfo VALUES (5931316, 215, 21); -INSERT INTO discoveryinfo VALUES (5931317, 215, 21); -INSERT INTO discoveryinfo VALUES (5931318, 215, 21); -INSERT INTO discoveryinfo VALUES (5931319, 215, 19); -INSERT INTO discoveryinfo VALUES (5931320, 215, 19); -INSERT INTO discoveryinfo VALUES (5931321, 215, 19); -INSERT INTO discoveryinfo VALUES (5931322, 215, 19); -INSERT INTO discoveryinfo VALUES (5931323, 215, 19); -INSERT INTO discoveryinfo VALUES (5931324, 215, 19); -INSERT INTO discoveryinfo VALUES (5931325, 215, 20); -INSERT INTO discoveryinfo VALUES (5931326, 215, 28); -INSERT INTO discoveryinfo VALUES (5931327, 215, 28); -INSERT INTO discoveryinfo VALUES (5931328, 215, 28); -INSERT INTO discoveryinfo VALUES (5931329, 215, 27); -INSERT INTO discoveryinfo VALUES (5931330, 215, 27); -INSERT INTO discoveryinfo VALUES (5931331, 215, 27); -INSERT INTO discoveryinfo VALUES (5931332, 215, 27); -INSERT INTO discoveryinfo VALUES (5931333, 215, 27); -INSERT INTO discoveryinfo VALUES (5931334, 215, 27); -INSERT INTO discoveryinfo VALUES (5931335, 215, 27); -INSERT INTO discoveryinfo VALUES (5931336, 215, 27); -INSERT INTO discoveryinfo VALUES (5931337, 215, 27); -INSERT INTO discoveryinfo VALUES (5931338, 215, 27); -INSERT INTO discoveryinfo VALUES (5931339, 215, 29); -INSERT INTO discoveryinfo VALUES (5931340, 215, 29); -INSERT INTO discoveryinfo VALUES (5931341, 215, 29); -INSERT INTO discoveryinfo VALUES (5931342, 215, 29); -INSERT INTO discoveryinfo VALUES (5931343, 215, 29); -INSERT INTO discoveryinfo VALUES (5931344, 215, 29); -INSERT INTO discoveryinfo VALUES (5931345, 215, 29); -INSERT INTO discoveryinfo VALUES (5931346, 215, 30); -INSERT INTO discoveryinfo VALUES (5931347, 215, 30); -INSERT INTO discoveryinfo VALUES (5931348, 215, 30); -INSERT INTO discoveryinfo VALUES (5931349, 215, 30); -INSERT INTO discoveryinfo VALUES (5931350, 215, 30); -INSERT INTO discoveryinfo VALUES (5931351, 215, 24); -INSERT INTO discoveryinfo VALUES (5931352, 215, 24); -INSERT INTO discoveryinfo VALUES (5931353, 215, 24); -INSERT INTO discoveryinfo VALUES (5931354, 215, 24); -INSERT INTO discoveryinfo VALUES (5931355, 215, 25); -INSERT INTO discoveryinfo VALUES (5931356, 215, 25); -INSERT INTO discoveryinfo VALUES (5931357, 215, 26); -INSERT INTO discoveryinfo VALUES (5931358, 215, 26); -INSERT INTO discoveryinfo VALUES (5931359, 215, 23); -INSERT INTO discoveryinfo VALUES (5931360, 215, 23); -INSERT INTO discoveryinfo VALUES (5931361, 215, 23); -INSERT INTO discoveryinfo VALUES (5931362, 215, 22); -INSERT INTO discoveryinfo VALUES (5933083, 216, 1); -INSERT INTO discoveryinfo VALUES (5933084, 216, 1); -INSERT INTO discoveryinfo VALUES (5933085, 216, 1); -INSERT INTO discoveryinfo VALUES (5933086, 216, 2); -INSERT INTO discoveryinfo VALUES (5933087, 216, 2); -INSERT INTO discoveryinfo VALUES (5933088, 216, 2); -INSERT INTO discoveryinfo VALUES (5933089, 216, 2); -INSERT INTO discoveryinfo VALUES (5933090, 216, 2); -INSERT INTO discoveryinfo VALUES (5933091, 216, 2); -INSERT INTO discoveryinfo VALUES (5933092, 216, 2); -INSERT INTO discoveryinfo VALUES (5933093, 216, 2); -INSERT INTO discoveryinfo VALUES (5933094, 216, 2); -INSERT INTO discoveryinfo VALUES (5933095, 216, 2); -INSERT INTO discoveryinfo VALUES (5933096, 216, 2); -INSERT INTO discoveryinfo VALUES (5933097, 216, 5); -INSERT INTO discoveryinfo VALUES (5933098, 216, 5); -INSERT INTO discoveryinfo VALUES (5933099, 216, 5); -INSERT INTO discoveryinfo VALUES (5933100, 216, 5); -INSERT INTO discoveryinfo VALUES (5933101, 216, 5); -INSERT INTO discoveryinfo VALUES (5933102, 216, 5); -INSERT INTO discoveryinfo VALUES (5933103, 216, 5); -INSERT INTO discoveryinfo VALUES (5933104, 216, 5); -INSERT INTO discoveryinfo VALUES (5933105, 216, 4); -INSERT INTO discoveryinfo VALUES (5933106, 216, 4); -INSERT INTO discoveryinfo VALUES (5933107, 216, 4); -INSERT INTO discoveryinfo VALUES (5933108, 216, 4); -INSERT INTO discoveryinfo VALUES (5933109, 216, 4); -INSERT INTO discoveryinfo VALUES (5933110, 216, 4); -INSERT INTO discoveryinfo VALUES (5933111, 216, 4); -INSERT INTO discoveryinfo VALUES (5933112, 216, 6); -INSERT INTO discoveryinfo VALUES (5933113, 216, 6); -INSERT INTO discoveryinfo VALUES (5933114, 216, 6); -INSERT INTO discoveryinfo VALUES (5933115, 216, 6); -INSERT INTO discoveryinfo VALUES (5933116, 216, 6); -INSERT INTO discoveryinfo VALUES (5933117, 216, 6); -INSERT INTO discoveryinfo VALUES (5933118, 216, 10); -INSERT INTO discoveryinfo VALUES (5933119, 216, 10); -INSERT INTO discoveryinfo VALUES (5933120, 216, 10); -INSERT INTO discoveryinfo VALUES (5933121, 216, 10); -INSERT INTO discoveryinfo VALUES (5933122, 216, 12); -INSERT INTO discoveryinfo VALUES (5933123, 216, 12); -INSERT INTO discoveryinfo VALUES (5933124, 216, 12); -INSERT INTO discoveryinfo VALUES (5933125, 216, 13); -INSERT INTO discoveryinfo VALUES (5933126, 216, 13); -INSERT INTO discoveryinfo VALUES (5933127, 216, 13); -INSERT INTO discoveryinfo VALUES (5933128, 216, 13); -INSERT INTO discoveryinfo VALUES (5933129, 216, 11); -INSERT INTO discoveryinfo VALUES (5933130, 216, 11); -INSERT INTO discoveryinfo VALUES (5933131, 216, 11); -INSERT INTO discoveryinfo VALUES (5933132, 216, 11); -INSERT INTO discoveryinfo VALUES (5933133, 216, 11); -INSERT INTO discoveryinfo VALUES (5933134, 216, 9); -INSERT INTO discoveryinfo VALUES (5933135, 216, 9); -INSERT INTO discoveryinfo VALUES (5933136, 216, 9); -INSERT INTO discoveryinfo VALUES (5933137, 216, 9); -INSERT INTO discoveryinfo VALUES (5933138, 216, 9); -INSERT INTO discoveryinfo VALUES (5933139, 216, 9); -INSERT INTO discoveryinfo VALUES (5933140, 216, 9); -INSERT INTO discoveryinfo VALUES (5933141, 216, 7); -INSERT INTO discoveryinfo VALUES (5933142, 216, 7); -INSERT INTO discoveryinfo VALUES (5933143, 216, 8); -INSERT INTO discoveryinfo VALUES (5933144, 216, 8); -INSERT INTO discoveryinfo VALUES (5933145, 216, 8); -INSERT INTO discoveryinfo VALUES (5933146, 216, 8); -INSERT INTO discoveryinfo VALUES (5933147, 216, 14); -INSERT INTO discoveryinfo VALUES (5933148, 216, 14); -INSERT INTO discoveryinfo VALUES (5933149, 216, 14); -INSERT INTO discoveryinfo VALUES (5933150, 216, 29); -INSERT INTO discoveryinfo VALUES (5933151, 216, 29); -INSERT INTO discoveryinfo VALUES (5933152, 216, 29); -INSERT INTO discoveryinfo VALUES (5933153, 216, 29); -INSERT INTO discoveryinfo VALUES (5933154, 216, 28); -INSERT INTO discoveryinfo VALUES (5933155, 216, 28); -INSERT INTO discoveryinfo VALUES (5933156, 216, 28); -INSERT INTO discoveryinfo VALUES (5933157, 216, 28); -INSERT INTO discoveryinfo VALUES (5933158, 216, 28); -INSERT INTO discoveryinfo VALUES (5933159, 216, 28); -INSERT INTO discoveryinfo VALUES (5933160, 216, 28); -INSERT INTO discoveryinfo VALUES (5933161, 216, 26); -INSERT INTO discoveryinfo VALUES (5933162, 216, 26); -INSERT INTO discoveryinfo VALUES (5933163, 216, 26); -INSERT INTO discoveryinfo VALUES (5933164, 216, 26); -INSERT INTO discoveryinfo VALUES (5933165, 216, 26); -INSERT INTO discoveryinfo VALUES (5933166, 216, 3); -INSERT INTO discoveryinfo VALUES (5933167, 216, 3); -INSERT INTO discoveryinfo VALUES (5933168, 216, 3); -INSERT INTO discoveryinfo VALUES (5933169, 216, 27); -INSERT INTO discoveryinfo VALUES (5933170, 216, 27); -INSERT INTO discoveryinfo VALUES (5933171, 216, 27); -INSERT INTO discoveryinfo VALUES (5933172, 216, 27); -INSERT INTO discoveryinfo VALUES (5933173, 216, 24); -INSERT INTO discoveryinfo VALUES (5933174, 216, 24); -INSERT INTO discoveryinfo VALUES (5933175, 216, 24); -INSERT INTO discoveryinfo VALUES (5933176, 216, 24); -INSERT INTO discoveryinfo VALUES (5933177, 216, 24); -INSERT INTO discoveryinfo VALUES (5933178, 216, 24); -INSERT INTO discoveryinfo VALUES (5933179, 216, 25); -INSERT INTO discoveryinfo VALUES (5933180, 216, 25); -INSERT INTO discoveryinfo VALUES (5933181, 216, 25); -INSERT INTO discoveryinfo VALUES (5933182, 216, 25); -INSERT INTO discoveryinfo VALUES (5933183, 216, 23); -INSERT INTO discoveryinfo VALUES (5933184, 216, 23); -INSERT INTO discoveryinfo VALUES (5933185, 216, 23); -INSERT INTO discoveryinfo VALUES (5933186, 216, 23); -INSERT INTO discoveryinfo VALUES (5933187, 216, 22); -INSERT INTO discoveryinfo VALUES (5933188, 216, 22); -INSERT INTO discoveryinfo VALUES (5933189, 216, 22); -INSERT INTO discoveryinfo VALUES (5933190, 216, 22); -INSERT INTO discoveryinfo VALUES (5933191, 216, 22); -INSERT INTO discoveryinfo VALUES (5933192, 216, 22); -INSERT INTO discoveryinfo VALUES (5933193, 216, 30); -INSERT INTO discoveryinfo VALUES (5933194, 216, 30); -INSERT INTO discoveryinfo VALUES (5933195, 216, 30); -INSERT INTO discoveryinfo VALUES (5933196, 216, 30); -INSERT INTO discoveryinfo VALUES (5933197, 216, 21); -INSERT INTO discoveryinfo VALUES (5933198, 216, 21); -INSERT INTO discoveryinfo VALUES (5933199, 216, 18); -INSERT INTO discoveryinfo VALUES (5933200, 216, 18); -INSERT INTO discoveryinfo VALUES (5933201, 216, 18); -INSERT INTO discoveryinfo VALUES (5933202, 216, 18); -INSERT INTO discoveryinfo VALUES (5933203, 216, 19); -INSERT INTO discoveryinfo VALUES (5933204, 216, 19); -INSERT INTO discoveryinfo VALUES (5933205, 216, 19); -INSERT INTO discoveryinfo VALUES (5933206, 216, 19); -INSERT INTO discoveryinfo VALUES (5933207, 216, 19); -INSERT INTO discoveryinfo VALUES (5933208, 216, 17); -INSERT INTO discoveryinfo VALUES (5933209, 216, 17); -INSERT INTO discoveryinfo VALUES (5933210, 216, 16); -INSERT INTO discoveryinfo VALUES (5933211, 216, 16); -INSERT INTO discoveryinfo VALUES (5933212, 216, 16); -INSERT INTO discoveryinfo VALUES (5933213, 216, 15); -INSERT INTO discoveryinfo VALUES (5933214, 216, 15); -INSERT INTO discoveryinfo VALUES (5933215, 216, 15); -INSERT INTO discoveryinfo VALUES (5933216, 216, 15); -INSERT INTO discoveryinfo VALUES (5933217, 216, 15); -INSERT INTO discoveryinfo VALUES (5933218, 216, 20); -INSERT INTO discoveryinfo VALUES (6170636, 276, 17); -INSERT INTO discoveryinfo VALUES (6170637, 276, 2); -INSERT INTO discoveryinfo VALUES (6170638, 276, 2); -INSERT INTO discoveryinfo VALUES (6170639, 276, 3); -INSERT INTO discoveryinfo VALUES (6170640, 276, 2); -INSERT INTO discoveryinfo VALUES (6170641, 276, 3); -INSERT INTO discoveryinfo VALUES (6170642, 276, 3); -INSERT INTO discoveryinfo VALUES (6170643, 276, 3); -INSERT INTO discoveryinfo VALUES (6170644, 276, 10); -INSERT INTO discoveryinfo VALUES (6170645, 276, 10); -INSERT INTO discoveryinfo VALUES (6170646, 276, 10); -INSERT INTO discoveryinfo VALUES (6170647, 276, 11); -INSERT INTO discoveryinfo VALUES (6170648, 276, 11); -INSERT INTO discoveryinfo VALUES (6170649, 276, 11); -INSERT INTO discoveryinfo VALUES (6170650, 276, 11); -INSERT INTO discoveryinfo VALUES (6170651, 276, 1); -INSERT INTO discoveryinfo VALUES (6170652, 276, 1); -INSERT INTO discoveryinfo VALUES (6170653, 276, 4); -INSERT INTO discoveryinfo VALUES (6170654, 276, 4); -INSERT INTO discoveryinfo VALUES (6170655, 276, 6); -INSERT INTO discoveryinfo VALUES (6170656, 276, 6); -INSERT INTO discoveryinfo VALUES (6170657, 276, 5); -INSERT INTO discoveryinfo VALUES (6170658, 276, 7); -INSERT INTO discoveryinfo VALUES (6170659, 276, 7); -INSERT INTO discoveryinfo VALUES (6170660, 276, 8); -INSERT INTO discoveryinfo VALUES (6170661, 276, 8); -INSERT INTO discoveryinfo VALUES (6170662, 276, 9); -INSERT INTO discoveryinfo VALUES (6170663, 276, 12); -INSERT INTO discoveryinfo VALUES (6170664, 276, 13); -INSERT INTO discoveryinfo VALUES (6170665, 276, 14); -INSERT INTO discoveryinfo VALUES (6170666, 276, 15); -INSERT INTO discoveryinfo VALUES (6170667, 276, 16); -INSERT INTO discoveryinfo VALUES (6170668, 276, 18); -INSERT INTO discoveryinfo VALUES (6170669, 276, 19); -INSERT INTO discoveryinfo VALUES (6170670, 276, 20); -INSERT INTO discoveryinfo VALUES (6170671, 276, 21); -INSERT INTO discoveryinfo VALUES (6170672, 276, 22); -INSERT INTO discoveryinfo VALUES (6170673, 276, 23); -INSERT INTO discoveryinfo VALUES (6170674, 276, 24); -INSERT INTO discoveryinfo VALUES (6170675, 276, 25); -INSERT INTO discoveryinfo VALUES (6170676, 276, 26); -INSERT INTO discoveryinfo VALUES (6170677, 276, 16); -INSERT INTO discoveryinfo VALUES (6170636, 275, 17); -INSERT INTO discoveryinfo VALUES (6170637, 275, 2); -INSERT INTO discoveryinfo VALUES (6170638, 275, 2); -INSERT INTO discoveryinfo VALUES (6170639, 275, 3); -INSERT INTO discoveryinfo VALUES (6170640, 275, 2); -INSERT INTO discoveryinfo VALUES (6170641, 275, 3); -INSERT INTO discoveryinfo VALUES (6170642, 275, 3); -INSERT INTO discoveryinfo VALUES (6170643, 275, 3); -INSERT INTO discoveryinfo VALUES (6170644, 275, 10); -INSERT INTO discoveryinfo VALUES (6170645, 275, 10); -INSERT INTO discoveryinfo VALUES (6170646, 275, 10); -INSERT INTO discoveryinfo VALUES (6170647, 275, 11); -INSERT INTO discoveryinfo VALUES (6170648, 275, 11); -INSERT INTO discoveryinfo VALUES (6170649, 275, 11); -INSERT INTO discoveryinfo VALUES (6170650, 275, 11); -INSERT INTO discoveryinfo VALUES (6170651, 275, 1); -INSERT INTO discoveryinfo VALUES (6170652, 275, 1); -INSERT INTO discoveryinfo VALUES (6170653, 275, 4); -INSERT INTO discoveryinfo VALUES (6170654, 275, 4); -INSERT INTO discoveryinfo VALUES (6170655, 275, 6); -INSERT INTO discoveryinfo VALUES (6170656, 275, 6); -INSERT INTO discoveryinfo VALUES (6170657, 275, 5); -INSERT INTO discoveryinfo VALUES (6170658, 275, 7); -INSERT INTO discoveryinfo VALUES (6170659, 275, 7); -INSERT INTO discoveryinfo VALUES (6170660, 275, 8); -INSERT INTO discoveryinfo VALUES (6170661, 275, 8); -INSERT INTO discoveryinfo VALUES (6170662, 275, 9); -INSERT INTO discoveryinfo VALUES (6170663, 275, 12); -INSERT INTO discoveryinfo VALUES (6170664, 275, 13); -INSERT INTO discoveryinfo VALUES (6170665, 275, 14); -INSERT INTO discoveryinfo VALUES (6170666, 275, 15); -INSERT INTO discoveryinfo VALUES (6170667, 275, 16); -INSERT INTO discoveryinfo VALUES (6170668, 275, 18); -INSERT INTO discoveryinfo VALUES (6170669, 275, 19); -INSERT INTO discoveryinfo VALUES (6170670, 275, 20); -INSERT INTO discoveryinfo VALUES (6170671, 275, 21); -INSERT INTO discoveryinfo VALUES (6170672, 275, 22); -INSERT INTO discoveryinfo VALUES (6170673, 275, 23); -INSERT INTO discoveryinfo VALUES (6170674, 275, 24); -INSERT INTO discoveryinfo VALUES (6170675, 275, 25); -INSERT INTO discoveryinfo VALUES (6170676, 275, 26); -INSERT INTO discoveryinfo VALUES (6170677, 275, 16); -INSERT INTO discoveryinfo VALUES (6170636, 274, 17); -INSERT INTO discoveryinfo VALUES (6170637, 274, 2); -INSERT INTO discoveryinfo VALUES (6170638, 274, 2); -INSERT INTO discoveryinfo VALUES (6170639, 274, 3); -INSERT INTO discoveryinfo VALUES (6170640, 274, 2); -INSERT INTO discoveryinfo VALUES (6170641, 274, 3); -INSERT INTO discoveryinfo VALUES (6170642, 274, 3); -INSERT INTO discoveryinfo VALUES (6170643, 274, 3); -INSERT INTO discoveryinfo VALUES (6170644, 274, 10); -INSERT INTO discoveryinfo VALUES (6170645, 274, 10); -INSERT INTO discoveryinfo VALUES (6170646, 274, 10); -INSERT INTO discoveryinfo VALUES (6170647, 274, 11); -INSERT INTO discoveryinfo VALUES (6170648, 274, 11); -INSERT INTO discoveryinfo VALUES (6170649, 274, 11); -INSERT INTO discoveryinfo VALUES (6170650, 274, 11); -INSERT INTO discoveryinfo VALUES (6170651, 274, 1); -INSERT INTO discoveryinfo VALUES (6170652, 274, 1); -INSERT INTO discoveryinfo VALUES (6170653, 274, 4); -INSERT INTO discoveryinfo VALUES (6170654, 274, 4); -INSERT INTO discoveryinfo VALUES (6170655, 274, 6); -INSERT INTO discoveryinfo VALUES (6170656, 274, 6); -INSERT INTO discoveryinfo VALUES (6170657, 274, 5); -INSERT INTO discoveryinfo VALUES (6170658, 274, 7); -INSERT INTO discoveryinfo VALUES (6170659, 274, 7); -INSERT INTO discoveryinfo VALUES (6170660, 274, 8); -INSERT INTO discoveryinfo VALUES (6170661, 274, 8); -INSERT INTO discoveryinfo VALUES (6170662, 274, 9); -INSERT INTO discoveryinfo VALUES (6170663, 274, 12); -INSERT INTO discoveryinfo VALUES (6170664, 274, 13); -INSERT INTO discoveryinfo VALUES (6170665, 274, 14); -INSERT INTO discoveryinfo VALUES (6170666, 274, 15); -INSERT INTO discoveryinfo VALUES (6170667, 274, 16); -INSERT INTO discoveryinfo VALUES (6170668, 274, 18); -INSERT INTO discoveryinfo VALUES (6170669, 274, 19); -INSERT INTO discoveryinfo VALUES (6170670, 274, 20); -INSERT INTO discoveryinfo VALUES (6170671, 274, 21); -INSERT INTO discoveryinfo VALUES (6170672, 274, 22); -INSERT INTO discoveryinfo VALUES (6170673, 274, 23); -INSERT INTO discoveryinfo VALUES (6170674, 274, 24); -INSERT INTO discoveryinfo VALUES (6170675, 274, 25); -INSERT INTO discoveryinfo VALUES (6170676, 274, 26); -INSERT INTO discoveryinfo VALUES (6170677, 274, 16); -INSERT INTO discoveryinfo VALUES (6599939, 356, 17); -INSERT INTO discoveryinfo VALUES (6599940, 356, 2); -INSERT INTO discoveryinfo VALUES (6599941, 356, 2); -INSERT INTO discoveryinfo VALUES (6599942, 356, 3); -INSERT INTO discoveryinfo VALUES (6599943, 356, 2); -INSERT INTO discoveryinfo VALUES (6599944, 356, 3); -INSERT INTO discoveryinfo VALUES (6599945, 356, 3); -INSERT INTO discoveryinfo VALUES (6599946, 356, 3); -INSERT INTO discoveryinfo VALUES (6599947, 356, 10); -INSERT INTO discoveryinfo VALUES (6599948, 356, 10); -INSERT INTO discoveryinfo VALUES (6599949, 356, 10); -INSERT INTO discoveryinfo VALUES (6599950, 356, 11); -INSERT INTO discoveryinfo VALUES (6599951, 356, 11); -INSERT INTO discoveryinfo VALUES (6599952, 356, 11); -INSERT INTO discoveryinfo VALUES (6599953, 356, 11); -INSERT INTO discoveryinfo VALUES (6599954, 356, 1); -INSERT INTO discoveryinfo VALUES (6599955, 356, 1); -INSERT INTO discoveryinfo VALUES (6599956, 356, 4); -INSERT INTO discoveryinfo VALUES (6599957, 356, 4); -INSERT INTO discoveryinfo VALUES (6599958, 356, 6); -INSERT INTO discoveryinfo VALUES (6599959, 356, 6); -INSERT INTO discoveryinfo VALUES (6599960, 356, 5); -INSERT INTO discoveryinfo VALUES (6599961, 356, 7); -INSERT INTO discoveryinfo VALUES (6599962, 356, 7); -INSERT INTO discoveryinfo VALUES (6599963, 356, 8); -INSERT INTO discoveryinfo VALUES (6599964, 356, 8); -INSERT INTO discoveryinfo VALUES (6599965, 356, 9); -INSERT INTO discoveryinfo VALUES (6599966, 356, 12); -INSERT INTO discoveryinfo VALUES (6599967, 356, 13); -INSERT INTO discoveryinfo VALUES (6599968, 356, 14); -INSERT INTO discoveryinfo VALUES (6599969, 356, 15); -INSERT INTO discoveryinfo VALUES (6599970, 356, 16); -INSERT INTO discoveryinfo VALUES (6599971, 356, 18); -INSERT INTO discoveryinfo VALUES (6599972, 356, 19); -INSERT INTO discoveryinfo VALUES (6599973, 356, 20); -INSERT INTO discoveryinfo VALUES (6599974, 356, 21); -INSERT INTO discoveryinfo VALUES (6599975, 356, 22); -INSERT INTO discoveryinfo VALUES (6599976, 356, 23); -INSERT INTO discoveryinfo VALUES (6599977, 356, 24); -INSERT INTO discoveryinfo VALUES (6599978, 356, 25); -INSERT INTO discoveryinfo VALUES (6599979, 356, 26); -INSERT INTO discoveryinfo VALUES (6599980, 356, 16); -INSERT INTO discoveryinfo VALUES (5874028, 237, 3); -INSERT INTO discoveryinfo VALUES (5874029, 237, 4); -INSERT INTO discoveryinfo VALUES (5874030, 237, 1); -INSERT INTO discoveryinfo VALUES (5874031, 237, 2); -INSERT INTO discoveryinfo VALUES (5874032, 237, 1); -INSERT INTO discoveryinfo VALUES (5874033, 237, 4); -INSERT INTO discoveryinfo VALUES (5910259, 238, 1); -INSERT INTO discoveryinfo VALUES (5910297, 238, 2); -INSERT INTO discoveryinfo VALUES (5910298, 255, 3); -INSERT INTO discoveryinfo VALUES (5910299, 255, 4); -INSERT INTO discoveryinfo VALUES (5858521, 239, 1); -INSERT INTO discoveryinfo VALUES (5858527, 239, 2); -INSERT INTO discoveryinfo VALUES (5858539, 239, 2); -INSERT INTO discoveryinfo VALUES (5858540, 239, 2); -INSERT INTO discoveryinfo VALUES (5858541, 239, 4); -INSERT INTO discoveryinfo VALUES (5858542, 239, 5); -INSERT INTO discoveryinfo VALUES (5910300, 239, 2); -INSERT INTO discoveryinfo VALUES (5910301, 239, 3); -INSERT INTO discoveryinfo VALUES (5910302, 239, 3); -INSERT INTO discoveryinfo VALUES (5910303, 239, 3); -INSERT INTO discoveryinfo VALUES (5910305, 239, 2); -INSERT INTO discoveryinfo VALUES (5910306, 239, 2); -INSERT INTO discoveryinfo VALUES (5910307, 239, 2); -INSERT INTO discoveryinfo VALUES (5910308, 239, 2); -INSERT INTO discoveryinfo VALUES (6236478, 286, 1); -INSERT INTO discoveryinfo VALUES (6236479, 286, 2); -INSERT INTO discoveryinfo VALUES (6236480, 286, 3); -INSERT INTO discoveryinfo VALUES (6236481, 286, 4); -INSERT INTO discoveryinfo VALUES (6236486, 286, 5); -INSERT INTO discoveryinfo VALUES (6236488, 287, 1); -INSERT INTO discoveryinfo VALUES (6236497, 288, 2); -INSERT INTO discoveryinfo VALUES (6236500, 288, 3); -INSERT INTO discoveryinfo VALUES (6236501, 288, 4); -INSERT INTO discoveryinfo VALUES (6236502, 288, 4); -INSERT INTO discoveryinfo VALUES (6236503, 288, 5); -INSERT INTO discoveryinfo VALUES (6236504, 288, 5); -INSERT INTO discoveryinfo VALUES (6236505, 288, 6); -INSERT INTO discoveryinfo VALUES (6236506, 288, 6); -INSERT INTO discoveryinfo VALUES (6236556, 289, 1); -INSERT INTO discoveryinfo VALUES (6236558, 289, 2); -INSERT INTO discoveryinfo VALUES (6236559, 289, 3); -INSERT INTO discoveryinfo VALUES (6236561, 289, 4); -INSERT INTO discoveryinfo VALUES (6236563, 289, 5); -INSERT INTO discoveryinfo VALUES (6516606, 326, 1); -INSERT INTO discoveryinfo VALUES (6516933, 326, 2); -INSERT INTO discoveryinfo VALUES (6516934, 327, 3); -INSERT INTO discoveryinfo VALUES (6516935, 327, 4); -INSERT INTO discoveryinfo VALUES (6516936, 328, 1); -INSERT INTO discoveryinfo VALUES (6516937, 328, 2); -INSERT INTO discoveryinfo VALUES (6516938, 328, 3); -INSERT INTO discoveryinfo VALUES (6516939, 329, 4); -INSERT INTO discoveryinfo VALUES (6516945, 330, 1); -INSERT INTO discoveryinfo VALUES (6516947, 330, 2); -INSERT INTO discoveryinfo VALUES (6516948, 331, 3); -INSERT INTO discoveryinfo VALUES (5862520, 227, 1); -INSERT INTO discoveryinfo VALUES (5862521, 227, 2); -INSERT INTO discoveryinfo VALUES (5862525, 227, 3); -INSERT INTO discoveryinfo VALUES (5862526, 227, 3); -INSERT INTO discoveryinfo VALUES (5862528, 227, 4); -INSERT INTO discoveryinfo VALUES (5862541, 228, 5); -INSERT INTO discoveryinfo VALUES (5862529, 228, 5); -INSERT INTO discoveryinfo VALUES (5862544, 228, 6); -INSERT INTO discoveryinfo VALUES (5862549, 228, 7); -INSERT INTO discoveryinfo VALUES (5862550, 228, 7); -INSERT INTO discoveryinfo VALUES (5862551, 228, 8); -INSERT INTO discoveryinfo VALUES (5862555, 228, 9); -INSERT INTO discoveryinfo VALUES (5862560, 228, 9); -INSERT INTO discoveryinfo VALUES (5862563, 229, 10); -INSERT INTO discoveryinfo VALUES (5862569, 229, 11); -INSERT INTO discoveryinfo VALUES (5862567, 229, 11); -INSERT INTO discoveryinfo VALUES (5862594, 229, 12); -INSERT INTO discoveryinfo VALUES (5862628, 229, 12); -INSERT INTO discoveryinfo VALUES (5862631, 229, 12); -INSERT INTO discoveryinfo VALUES (5862640, 229, 12); -INSERT INTO discoveryinfo VALUES (5862646, 229, 12); -INSERT INTO discoveryinfo VALUES (5862602, 229, 13); -INSERT INTO discoveryinfo VALUES (5862613, 229, 13); -INSERT INTO discoveryinfo VALUES (5862653, 229, 13); -INSERT INTO discoveryinfo VALUES (5795780, 252, 1); -INSERT INTO discoveryinfo VALUES (5795788, 252, 2); -INSERT INTO discoveryinfo VALUES (5795791, 252, 2); -INSERT INTO discoveryinfo VALUES (5795795, 252, 3); -INSERT INTO discoveryinfo VALUES (5795796, 252, 3); -INSERT INTO discoveryinfo VALUES (5795817, 252, 4); -INSERT INTO discoveryinfo VALUES (5840902, 252, 5); -INSERT INTO discoveryinfo VALUES (5840908, 252, 6); -INSERT INTO discoveryinfo VALUES (5840909, 252, 6); -INSERT INTO discoveryinfo VALUES (5840914, 252, 7); -INSERT INTO discoveryinfo VALUES (5840915, 252, 7); -INSERT INTO discoveryinfo VALUES (5840917, 252, 8); -INSERT INTO discoveryinfo VALUES (5840918, 252, 8); -INSERT INTO discoveryinfo VALUES (5840920, 252, 9); -INSERT INTO discoveryinfo VALUES (5840922, 252, 10); -INSERT INTO discoveryinfo VALUES (5840923, 252, 10); -INSERT INTO discoveryinfo VALUES (5840925, 252, 10); -INSERT INTO discoveryinfo VALUES (5840929, 252, 11); -INSERT INTO discoveryinfo VALUES (5840930, 252, 11); -INSERT INTO discoveryinfo VALUES (5840940, 252, 12); -INSERT INTO discoveryinfo VALUES (5840945, 252, 13); -INSERT INTO discoveryinfo VALUES (5908189, 252, 5); -INSERT INTO discoveryinfo VALUES (5908552, 252, 11); -INSERT INTO discoveryinfo VALUES (5908561, 252, 7); -INSERT INTO discoveryinfo VALUES (5908570, 252, 4); -INSERT INTO discoveryinfo VALUES (5879221, 241, 1); -INSERT INTO discoveryinfo VALUES (5911127, 241, 2); -INSERT INTO discoveryinfo VALUES (5911128, 241, 2); -INSERT INTO discoveryinfo VALUES (5911129, 241, 2); -INSERT INTO discoveryinfo VALUES (5911131, 241, 3); -INSERT INTO discoveryinfo VALUES (5911132, 241, 3); -INSERT INTO discoveryinfo VALUES (5911133, 241, 3); -INSERT INTO discoveryinfo VALUES (5911136, 241, 4); -INSERT INTO discoveryinfo VALUES (5911137, 241, 4); -INSERT INTO discoveryinfo VALUES (5911139, 241, 4); -INSERT INTO discoveryinfo VALUES (5911141, 241, 4); -INSERT INTO discoveryinfo VALUES (5911142, 241, 5); -INSERT INTO discoveryinfo VALUES (5911143, 241, 6); -INSERT INTO discoveryinfo VALUES (5911144, 241, 6); -INSERT INTO discoveryinfo VALUES (5911145, 241, 6); -INSERT INTO discoveryinfo VALUES (5911146, 241, 6); -INSERT INTO discoveryinfo VALUES (5911147, 241, 6); -INSERT INTO discoveryinfo VALUES (5911148, 241, 7); -INSERT INTO discoveryinfo VALUES (5911151, 241, 8); -INSERT INTO discoveryinfo VALUES (5911154, 241, 8); -INSERT INTO discoveryinfo VALUES (5911155, 241, 9); -INSERT INTO discoveryinfo VALUES (5911158, 241, 9); -INSERT INTO discoveryinfo VALUES (5911159, 241, 10); -INSERT INTO discoveryinfo VALUES (5911164, 241, 11); -INSERT INTO discoveryinfo VALUES (5911166, 241, 12); -INSERT INTO discoveryinfo VALUES (5911167, 241, 12); -INSERT INTO discoveryinfo VALUES (5911168, 241, 12); -INSERT INTO discoveryinfo VALUES (5911169, 241, 12); -INSERT INTO discoveryinfo VALUES (5911173, 241, 13); -INSERT INTO discoveryinfo VALUES (5911174, 241, 13); -INSERT INTO discoveryinfo VALUES (5911175, 241, 13); -INSERT INTO discoveryinfo VALUES (5911176, 241, 13); -INSERT INTO discoveryinfo VALUES (5911184, 241, 14); -INSERT INTO discoveryinfo VALUES (5911193, 241, 14); -INSERT INTO discoveryinfo VALUES (5911200, 241, 14); -INSERT INTO discoveryinfo VALUES (5911204, 241, 14); -INSERT INTO discoveryinfo VALUES (5911207, 241, 15); -INSERT INTO discoveryinfo VALUES (5911208, 241, 15); -INSERT INTO discoveryinfo VALUES (6070096, 268, 1); -INSERT INTO discoveryinfo VALUES (6070102, 268, 2); -INSERT INTO discoveryinfo VALUES (6070111, 268, 2); -INSERT INTO discoveryinfo VALUES (6070143, 268, 3); -INSERT INTO discoveryinfo VALUES (6070144, 268, 3); -INSERT INTO discoveryinfo VALUES (6070149, 268, 4); -INSERT INTO discoveryinfo VALUES (6070161, 268, 4); -INSERT INTO discoveryinfo VALUES (6070221, 268, 5); -INSERT INTO discoveryinfo VALUES (6070223, 268, 5); -INSERT INTO discoveryinfo VALUES (6070228, 268, 6); -INSERT INTO discoveryinfo VALUES (6070231, 268, 6); -INSERT INTO discoveryinfo VALUES (6070240, 268, 7); -INSERT INTO discoveryinfo VALUES (6070251, 268, 8); -INSERT INTO discoveryinfo VALUES (6070269, 268, 9); -INSERT INTO discoveryinfo VALUES (6070273, 273, 9); -INSERT INTO discoveryinfo VALUES (6070278, 273, 10); -INSERT INTO discoveryinfo VALUES (6070280, 268, 10); -INSERT INTO discoveryinfo VALUES (6070282, 268, 10); -INSERT INTO discoveryinfo VALUES (6070284, 268, 11); -INSERT INTO discoveryinfo VALUES (6164858, 273, 9); -INSERT INTO discoveryinfo VALUES (6161081, 277, 1); -INSERT INTO discoveryinfo VALUES (6161082, 278, 7); -INSERT INTO discoveryinfo VALUES (6161083, 279, 12); -INSERT INTO discoveryinfo VALUES (6234626, 277, 2); -INSERT INTO discoveryinfo VALUES (6234627, 277, 2); -INSERT INTO discoveryinfo VALUES (6234629, 277, 3); -INSERT INTO discoveryinfo VALUES (6234631, 277, 3); -INSERT INTO discoveryinfo VALUES (6234632, 277, 4); -INSERT INTO discoveryinfo VALUES (6234637, 277, 4); -INSERT INTO discoveryinfo VALUES (6234638, 277, 5); -INSERT INTO discoveryinfo VALUES (6234648, 277, 6); -INSERT INTO discoveryinfo VALUES (6236359, 278, 7); -INSERT INTO discoveryinfo VALUES (6236360, 278, 7); -INSERT INTO discoveryinfo VALUES (6236361, 278, 7); -INSERT INTO discoveryinfo VALUES (6236362, 278, 7); -INSERT INTO discoveryinfo VALUES (6236363, 278, 7); -INSERT INTO discoveryinfo VALUES (6236364, 278, 8); -INSERT INTO discoveryinfo VALUES (6236365, 278, 8); -INSERT INTO discoveryinfo VALUES (6236366, 278, 8); -INSERT INTO discoveryinfo VALUES (6236367, 278, 8); -INSERT INTO discoveryinfo VALUES (6236369, 278, 8); -INSERT INTO discoveryinfo VALUES (6236370, 278, 9); -INSERT INTO discoveryinfo VALUES (6236371, 278, 10); -INSERT INTO discoveryinfo VALUES (6236372, 278, 11); -INSERT INTO discoveryinfo VALUES (6236450, 279, 13); -INSERT INTO discoveryinfo VALUES (6236451, 279, 14); -INSERT INTO discoveryinfo VALUES (6236452, 279, 15); -INSERT INTO discoveryinfo VALUES (6235786, 292, 1); -INSERT INTO discoveryinfo VALUES (6235788, 293, 6); -INSERT INTO discoveryinfo VALUES (6235789, 294, 10); -INSERT INTO discoveryinfo VALUES (6387109, 292, 2); -INSERT INTO discoveryinfo VALUES (6387110, 292, 3); -INSERT INTO discoveryinfo VALUES (6387111, 292, 4); -INSERT INTO discoveryinfo VALUES (6387112, 292, 5); -INSERT INTO discoveryinfo VALUES (6387113, 293, 7); -INSERT INTO discoveryinfo VALUES (6387114, 293, 8); -INSERT INTO discoveryinfo VALUES (6387115, 293, 9); -INSERT INTO discoveryinfo VALUES (6387177, 294, 11); -INSERT INTO discoveryinfo VALUES (6387178, 294, 12); -INSERT INTO discoveryinfo VALUES (6387179, 294, 13); -INSERT INTO discoveryinfo VALUES (6387180, 294, 15); -INSERT INTO discoveryinfo VALUES (6387182, 294, 14); -INSERT INTO discoveryinfo VALUES (6331518, 311, 1); -INSERT INTO discoveryinfo VALUES (6331519, 311, 2); -INSERT INTO discoveryinfo VALUES (6331520, 311, 2); -INSERT INTO discoveryinfo VALUES (6331521, 311, 2); -INSERT INTO discoveryinfo VALUES (6331522, 311, 3); -INSERT INTO discoveryinfo VALUES (6331523, 311, 3); -INSERT INTO discoveryinfo VALUES (6331524, 311, 3); -INSERT INTO discoveryinfo VALUES (6331525, 311, 4); -INSERT INTO discoveryinfo VALUES (6331526, 311, 4); -INSERT INTO discoveryinfo VALUES (6331527, 311, 4); -INSERT INTO discoveryinfo VALUES (6331528, 311, 4); -INSERT INTO discoveryinfo VALUES (6331529, 311, 5); -INSERT INTO discoveryinfo VALUES (6331530, 311, 6); -INSERT INTO discoveryinfo VALUES (6331531, 311, 6); -INSERT INTO discoveryinfo VALUES (6331532, 311, 6); -INSERT INTO discoveryinfo VALUES (6331533, 311, 7); -INSERT INTO discoveryinfo VALUES (6331534, 311, 7); -INSERT INTO discoveryinfo VALUES (6331535, 311, 7); -INSERT INTO discoveryinfo VALUES (6331536, 311, 8); -INSERT INTO discoveryinfo VALUES (6515809, 311, 8); -INSERT INTO discoveryinfo VALUES (6515811, 311, 9); -INSERT INTO discoveryinfo VALUES (6515860, 311, 10); -INSERT INTO discoveryinfo VALUES (6515868, 311, 10); -INSERT INTO discoveryinfo VALUES (6516194, 312, 11); -INSERT INTO discoveryinfo VALUES (6516202, 312, 12); -INSERT INTO discoveryinfo VALUES (6516459, 312, 12); -INSERT INTO discoveryinfo VALUES (6516460, 312, 12); -INSERT INTO discoveryinfo VALUES (6516461, 312, 13); -INSERT INTO discoveryinfo VALUES (6516463, 312, 14); -INSERT INTO discoveryinfo VALUES (6516465, 312, 14); -INSERT INTO discoveryinfo VALUES (6516468, 312, 15); -INSERT INTO discoveryinfo VALUES (6516473, 311, 9); -INSERT INTO discoveryinfo VALUES (6516484, 312, 15); -INSERT INTO discoveryinfo VALUES (6629373, 350, 1); -INSERT INTO discoveryinfo VALUES (6629437, 350, 2); -INSERT INTO discoveryinfo VALUES (6629447, 351, 5); -INSERT INTO discoveryinfo VALUES (6629449, 351, 6); -INSERT INTO discoveryinfo VALUES (6629458, 351, 8); -INSERT INTO discoveryinfo VALUES (6629461, 351, 9); -INSERT INTO discoveryinfo VALUES (6629464, 352, 10); -INSERT INTO discoveryinfo VALUES (6629465, 352, 11); -INSERT INTO discoveryinfo VALUES (6629468, 352, 11); -INSERT INTO discoveryinfo VALUES (6629469, 352, 12); -INSERT INTO discoveryinfo VALUES (6629470, 352, 13); -INSERT INTO discoveryinfo VALUES (6629473, 351, 7); -INSERT INTO discoveryinfo VALUES (6629606, 352, 13); -INSERT INTO discoveryinfo VALUES (6629625, 351, 9); -INSERT INTO discoveryinfo VALUES (6779373, 351, 7); -INSERT INTO discoveryinfo VALUES (6779419, 350, 3); -INSERT INTO discoveryinfo VALUES (6779439, 351, 5); -INSERT INTO discoveryinfo VALUES (6779440, 351, 5); -INSERT INTO discoveryinfo VALUES (6779444, 351, 8); -INSERT INTO discoveryinfo VALUES (6779428, 350, 4); -INSERT INTO discoveryinfo VALUES (6781761, 350, 2); -INSERT INTO discoveryinfo VALUES (6781765, 350, 2); -INSERT INTO discoveryinfo VALUES (6781787, 351, 6); -INSERT INTO discoveryinfo VALUES (6781843, 351, 9); -INSERT INTO discoveryinfo VALUES (6781851, 352, 10); -INSERT INTO discoveryinfo VALUES (6781854, 352, 10); -INSERT INTO discoveryinfo VALUES (6781861, 352, 11); -INSERT INTO discoveryinfo VALUES (6781864, 352, 12); -INSERT INTO discoveryinfo VALUES (6781869, 352, 12); -INSERT INTO discoveryinfo VALUES (6782058, 350, 2); -INSERT INTO discoveryinfo VALUES (6782060, 350, 2); -INSERT INTO discoveryinfo VALUES (6629440, 350, 4); -INSERT INTO discoveryinfo VALUES (6779445, 351, 8); -INSERT INTO discoveryinfo VALUES (5923657, 212, 1); -INSERT INTO discoveryinfo VALUES (5923649, 212, 1); -INSERT INTO discoveryinfo VALUES (5923656, 212, 1); -INSERT INTO discoveryinfo VALUES (5923653, 212, 1); -INSERT INTO discoveryinfo VALUES (5923654, 212, 1); -INSERT INTO discoveryinfo VALUES (5923652, 212, 1); -INSERT INTO discoveryinfo VALUES (5924067, 212, 10); -INSERT INTO discoveryinfo VALUES (5924095, 212, 11); -INSERT INTO discoveryinfo VALUES (5924100, 212, 12); -INSERT INTO discoveryinfo VALUES (5924107, 212, 12); -INSERT INTO discoveryinfo VALUES (5924104, 212, 12); -INSERT INTO discoveryinfo VALUES (5924138, 212, 13); -INSERT INTO discoveryinfo VALUES (5924130, 212, 14); -INSERT INTO discoveryinfo VALUES (5924133, 212, 14); -INSERT INTO discoveryinfo VALUES (5924123, 212, 14); -INSERT INTO discoveryinfo VALUES (5923991, 212, 15); -INSERT INTO discoveryinfo VALUES (5925255, 212, 15); -INSERT INTO discoveryinfo VALUES (5923986, 212, 16); -INSERT INTO discoveryinfo VALUES (5923979, 212, 16); -INSERT INTO discoveryinfo VALUES (5923981, 212, 16); -INSERT INTO discoveryinfo VALUES (5923989, 212, 16); -INSERT INTO discoveryinfo VALUES (5923975, 212, 16); -INSERT INTO discoveryinfo VALUES (5923978, 212, 16); -INSERT INTO discoveryinfo VALUES (5923999, 212, 17); -INSERT INTO discoveryinfo VALUES (5924003, 212, 17); -INSERT INTO discoveryinfo VALUES (5923996, 212, 17); -INSERT INTO discoveryinfo VALUES (5923997, 212, 17); -INSERT INTO discoveryinfo VALUES (5923972, 212, 18); -INSERT INTO discoveryinfo VALUES (5923973, 212, 18); -INSERT INTO discoveryinfo VALUES (5923974, 212, 18); -INSERT INTO discoveryinfo VALUES (5923960, 212, 19); -INSERT INTO discoveryinfo VALUES (5923970, 212, 19); -INSERT INTO discoveryinfo VALUES (5923961, 212, 19); -INSERT INTO discoveryinfo VALUES (5923967, 212, 19); -INSERT INTO discoveryinfo VALUES (5923964, 212, 19); -INSERT INTO discoveryinfo VALUES (5923965, 212, 19); -INSERT INTO discoveryinfo VALUES (5923659, 212, 2); -INSERT INTO discoveryinfo VALUES (5923658, 212, 2); -INSERT INTO discoveryinfo VALUES (5923660, 212, 2); -INSERT INTO discoveryinfo VALUES (5923662, 212, 2); -INSERT INTO discoveryinfo VALUES (5923661, 212, 2); -INSERT INTO discoveryinfo VALUES (5923971, 212, 20); -INSERT INTO discoveryinfo VALUES (5924025, 212, 21); -INSERT INTO discoveryinfo VALUES (5924021, 212, 21); -INSERT INTO discoveryinfo VALUES (5924017, 212, 21); -INSERT INTO discoveryinfo VALUES (5924039, 212, 21); -INSERT INTO discoveryinfo VALUES (5924034, 212, 21); -INSERT INTO discoveryinfo VALUES (5924042, 212, 21); -INSERT INTO discoveryinfo VALUES (5924028, 212, 21); -INSERT INTO discoveryinfo VALUES (5924030, 212, 21); -INSERT INTO discoveryinfo VALUES (5924032, 212, 21); -INSERT INTO discoveryinfo VALUES (5923958, 212, 22); -INSERT INTO discoveryinfo VALUES (5923959, 212, 22); -INSERT INTO discoveryinfo VALUES (5923957, 212, 22); -INSERT INTO discoveryinfo VALUES (5923954, 212, 22); -INSERT INTO discoveryinfo VALUES (5924012, 212, 23); -INSERT INTO discoveryinfo VALUES (5924051, 212, 24); -INSERT INTO discoveryinfo VALUES (5924049, 212, 24); -INSERT INTO discoveryinfo VALUES (5924048, 212, 24); -INSERT INTO discoveryinfo VALUES (5924056, 212, 24); -INSERT INTO discoveryinfo VALUES (5924061, 212, 24); -INSERT INTO discoveryinfo VALUES (5924059, 212, 24); -INSERT INTO discoveryinfo VALUES (5924057, 212, 24); -INSERT INTO discoveryinfo VALUES (5923872, 212, 25); -INSERT INTO discoveryinfo VALUES (5923875, 212, 25); -INSERT INTO discoveryinfo VALUES (5923865, 212, 25); -INSERT INTO discoveryinfo VALUES (5923870, 212, 25); -INSERT INTO discoveryinfo VALUES (5923878, 212, 25); -INSERT INTO discoveryinfo VALUES (5923893, 212, 25); -INSERT INTO discoveryinfo VALUES (5923898, 212, 25); -INSERT INTO discoveryinfo VALUES (5923884, 212, 25); -INSERT INTO discoveryinfo VALUES (5923890, 212, 25); -INSERT INTO discoveryinfo VALUES (5923796, 212, 26); -INSERT INTO discoveryinfo VALUES (5923797, 212, 26); -INSERT INTO discoveryinfo VALUES (5923793, 212, 26); -INSERT INTO discoveryinfo VALUES (5923795, 212, 26); -INSERT INTO discoveryinfo VALUES (5923798, 212, 26); -INSERT INTO discoveryinfo VALUES (5923803, 212, 26); -INSERT INTO discoveryinfo VALUES (5923805, 212, 26); -INSERT INTO discoveryinfo VALUES (5923799, 212, 26); -INSERT INTO discoveryinfo VALUES (5923800, 212, 26); -INSERT INTO discoveryinfo VALUES (5923844, 212, 27); -INSERT INTO discoveryinfo VALUES (5923850, 212, 27); -INSERT INTO discoveryinfo VALUES (5923853, 212, 27); -INSERT INTO discoveryinfo VALUES (5923836, 212, 27); -INSERT INTO discoveryinfo VALUES (5923834, 212, 27); -INSERT INTO discoveryinfo VALUES (5923838, 212, 27); -INSERT INTO discoveryinfo VALUES (5923840, 212, 27); -INSERT INTO discoveryinfo VALUES (5923858, 212, 27); -INSERT INTO discoveryinfo VALUES (5923855, 212, 27); -INSERT INTO discoveryinfo VALUES (5923816, 212, 28); -INSERT INTO discoveryinfo VALUES (5923819, 212, 28); -INSERT INTO discoveryinfo VALUES (5923810, 212, 28); -INSERT INTO discoveryinfo VALUES (5923807, 212, 28); -INSERT INTO discoveryinfo VALUES (5923814, 212, 28); -INSERT INTO discoveryinfo VALUES (5923830, 212, 29); -INSERT INTO discoveryinfo VALUES (5923831, 212, 29); -INSERT INTO discoveryinfo VALUES (5923826, 212, 29); -INSERT INTO discoveryinfo VALUES (5923828, 212, 29); -INSERT INTO discoveryinfo VALUES (5923664, 212, 3); -INSERT INTO discoveryinfo VALUES (5923677, 212, 3); -INSERT INTO discoveryinfo VALUES (5923669, 212, 3); -INSERT INTO discoveryinfo VALUES (5923666, 212, 3); -INSERT INTO discoveryinfo VALUES (5923663, 212, 3); -INSERT INTO discoveryinfo VALUES (5923738, 212, 30); -INSERT INTO discoveryinfo VALUES (5923742, 212, 30); -INSERT INTO discoveryinfo VALUES (5923739, 212, 30); -INSERT INTO discoveryinfo VALUES (5923695, 212, 4); -INSERT INTO discoveryinfo VALUES (5923681, 212, 4); -INSERT INTO discoveryinfo VALUES (5923687, 212, 4); -INSERT INTO discoveryinfo VALUES (5923683, 212, 4); -INSERT INTO discoveryinfo VALUES (5924083, 212, 5); -INSERT INTO discoveryinfo VALUES (5924077, 212, 5); -INSERT INTO discoveryinfo VALUES (5924094, 212, 6); -INSERT INTO discoveryinfo VALUES (5924089, 212, 6); -INSERT INTO discoveryinfo VALUES (5923689, 212, 7); -INSERT INTO discoveryinfo VALUES (5923690, 212, 7); -INSERT INTO discoveryinfo VALUES (5923694, 212, 7); -INSERT INTO discoveryinfo VALUES (5923693, 212, 7); -INSERT INTO discoveryinfo VALUES (5923692, 212, 7); -INSERT INTO discoveryinfo VALUES (5923702, 212, 8); -INSERT INTO discoveryinfo VALUES (5923696, 212, 8); -INSERT INTO discoveryinfo VALUES (5923697, 212, 8); -INSERT INTO discoveryinfo VALUES (5923700, 212, 8); -INSERT INTO discoveryinfo VALUES (5923781, 212, 9); -INSERT INTO discoveryinfo VALUES (5923774, 212, 9); -INSERT INTO discoveryinfo VALUES (5923775, 212, 9); -INSERT INTO discoveryinfo VALUES (5923779, 212, 9); -INSERT INTO discoveryinfo VALUES (5923783, 212, 9); -INSERT INTO discoveryinfo VALUES (5923770, 212, 9); -INSERT INTO discoveryinfo VALUES (5930418, 213, 1); -INSERT INTO discoveryinfo VALUES (5930419, 213, 1); -INSERT INTO discoveryinfo VALUES (5930420, 213, 1); -INSERT INTO discoveryinfo VALUES (5930421, 213, 1); -INSERT INTO discoveryinfo VALUES (5930422, 213, 1); -INSERT INTO discoveryinfo VALUES (5930423, 213, 1); -INSERT INTO discoveryinfo VALUES (5930424, 213, 2); -INSERT INTO discoveryinfo VALUES (5930425, 213, 2); -INSERT INTO discoveryinfo VALUES (5930426, 213, 2); -INSERT INTO discoveryinfo VALUES (5930427, 213, 2); -INSERT INTO discoveryinfo VALUES (5930428, 213, 4); -INSERT INTO discoveryinfo VALUES (5930429, 213, 4); -INSERT INTO discoveryinfo VALUES (5930430, 213, 4); -INSERT INTO discoveryinfo VALUES (5930431, 213, 4); -INSERT INTO discoveryinfo VALUES (5930432, 213, 4); -INSERT INTO discoveryinfo VALUES (5930433, 213, 4); -INSERT INTO discoveryinfo VALUES (5930434, 213, 8); -INSERT INTO discoveryinfo VALUES (5930435, 213, 29); -INSERT INTO discoveryinfo VALUES (5930436, 213, 29); -INSERT INTO discoveryinfo VALUES (5930437, 213, 29); -INSERT INTO discoveryinfo VALUES (5930438, 213, 29); -INSERT INTO discoveryinfo VALUES (5930439, 213, 26); -INSERT INTO discoveryinfo VALUES (5930440, 213, 26); -INSERT INTO discoveryinfo VALUES (5930441, 213, 26); -INSERT INTO discoveryinfo VALUES (5930442, 213, 26); -INSERT INTO discoveryinfo VALUES (5930443, 213, 26); -INSERT INTO discoveryinfo VALUES (5930444, 213, 26); -INSERT INTO discoveryinfo VALUES (5930445, 213, 26); -INSERT INTO discoveryinfo VALUES (5930446, 213, 25); -INSERT INTO discoveryinfo VALUES (5930447, 213, 25); -INSERT INTO discoveryinfo VALUES (5930448, 213, 3); -INSERT INTO discoveryinfo VALUES (5930449, 213, 3); -INSERT INTO discoveryinfo VALUES (5930450, 213, 3); -INSERT INTO discoveryinfo VALUES (5930451, 213, 3); -INSERT INTO discoveryinfo VALUES (5930452, 213, 5); -INSERT INTO discoveryinfo VALUES (5930453, 213, 5); -INSERT INTO discoveryinfo VALUES (5930454, 213, 5); -INSERT INTO discoveryinfo VALUES (5930455, 213, 5); -INSERT INTO discoveryinfo VALUES (5930456, 213, 6); -INSERT INTO discoveryinfo VALUES (5930457, 213, 6); -INSERT INTO discoveryinfo VALUES (5930458, 213, 6); -INSERT INTO discoveryinfo VALUES (5930459, 213, 6); -INSERT INTO discoveryinfo VALUES (5930460, 213, 30); -INSERT INTO discoveryinfo VALUES (5930461, 213, 7); -INSERT INTO discoveryinfo VALUES (5930462, 213, 7); -INSERT INTO discoveryinfo VALUES (5930463, 213, 9); -INSERT INTO discoveryinfo VALUES (5930464, 213, 10); -INSERT INTO discoveryinfo VALUES (5930465, 213, 10); -INSERT INTO discoveryinfo VALUES (5930466, 213, 11); -INSERT INTO discoveryinfo VALUES (5930467, 213, 11); -INSERT INTO discoveryinfo VALUES (5930468, 213, 11); -INSERT INTO discoveryinfo VALUES (5930469, 213, 12); -INSERT INTO discoveryinfo VALUES (5930470, 213, 12); -INSERT INTO discoveryinfo VALUES (5930471, 213, 12); -INSERT INTO discoveryinfo VALUES (5930472, 213, 27); -INSERT INTO discoveryinfo VALUES (5930473, 213, 27); -INSERT INTO discoveryinfo VALUES (5930474, 213, 27); -INSERT INTO discoveryinfo VALUES (5930475, 213, 27); -INSERT INTO discoveryinfo VALUES (5930476, 213, 28); -INSERT INTO discoveryinfo VALUES (5930477, 213, 28); -INSERT INTO discoveryinfo VALUES (5930478, 213, 28); -INSERT INTO discoveryinfo VALUES (5930479, 213, 24); -INSERT INTO discoveryinfo VALUES (5930480, 213, 22); -INSERT INTO discoveryinfo VALUES (5930481, 213, 22); -INSERT INTO discoveryinfo VALUES (5930482, 213, 22); -INSERT INTO discoveryinfo VALUES (5930483, 213, 22); -INSERT INTO discoveryinfo VALUES (5930484, 213, 22); -INSERT INTO discoveryinfo VALUES (5930485, 213, 22); -INSERT INTO discoveryinfo VALUES (5930486, 213, 23); -INSERT INTO discoveryinfo VALUES (5930487, 213, 21); -INSERT INTO discoveryinfo VALUES (5930488, 213, 21); -INSERT INTO discoveryinfo VALUES (5930489, 213, 19); -INSERT INTO discoveryinfo VALUES (5930490, 213, 20); -INSERT INTO discoveryinfo VALUES (5930491, 213, 18); -INSERT INTO discoveryinfo VALUES (5930492, 213, 16); -INSERT INTO discoveryinfo VALUES (5930493, 213, 16); -INSERT INTO discoveryinfo VALUES (5930494, 213, 16); -INSERT INTO discoveryinfo VALUES (5930495, 213, 13); -INSERT INTO discoveryinfo VALUES (5930496, 213, 17); -INSERT INTO discoveryinfo VALUES (5930497, 213, 14); -INSERT INTO discoveryinfo VALUES (5930498, 213, 15); -INSERT INTO discoveryinfo VALUES (5930499, 213, 29); -INSERT INTO discoveryinfo VALUES (5930500, 213, 25); -INSERT INTO discoveryinfo VALUES (5933371, 214, 2); -INSERT INTO discoveryinfo VALUES (5933372, 214, 2); -INSERT INTO discoveryinfo VALUES (5933373, 214, 2); -INSERT INTO discoveryinfo VALUES (5933374, 214, 2); -INSERT INTO discoveryinfo VALUES (5933375, 214, 2); -INSERT INTO discoveryinfo VALUES (5933376, 214, 2); -INSERT INTO discoveryinfo VALUES (5933377, 214, 3); -INSERT INTO discoveryinfo VALUES (5933378, 214, 3); -INSERT INTO discoveryinfo VALUES (5933379, 214, 3); -INSERT INTO discoveryinfo VALUES (5933380, 214, 3); -INSERT INTO discoveryinfo VALUES (5933381, 214, 3); -INSERT INTO discoveryinfo VALUES (5933382, 214, 3); -INSERT INTO discoveryinfo VALUES (5933383, 214, 6); -INSERT INTO discoveryinfo VALUES (5933384, 214, 7); -INSERT INTO discoveryinfo VALUES (5933385, 214, 7); -INSERT INTO discoveryinfo VALUES (5933386, 214, 7); -INSERT INTO discoveryinfo VALUES (5933387, 214, 7); -INSERT INTO discoveryinfo VALUES (5933388, 214, 7); -INSERT INTO discoveryinfo VALUES (5933389, 214, 7); -INSERT INTO discoveryinfo VALUES (5933390, 214, 10); -INSERT INTO discoveryinfo VALUES (5933391, 214, 10); -INSERT INTO discoveryinfo VALUES (5933392, 214, 10); -INSERT INTO discoveryinfo VALUES (5933393, 214, 5); -INSERT INTO discoveryinfo VALUES (5933394, 214, 5); -INSERT INTO discoveryinfo VALUES (5933395, 214, 5); -INSERT INTO discoveryinfo VALUES (5933396, 214, 5); -INSERT INTO discoveryinfo VALUES (5933397, 214, 5); -INSERT INTO discoveryinfo VALUES (5933398, 214, 5); -INSERT INTO discoveryinfo VALUES (5933399, 214, 4); -INSERT INTO discoveryinfo VALUES (5933400, 214, 4); -INSERT INTO discoveryinfo VALUES (5933401, 214, 4); -INSERT INTO discoveryinfo VALUES (5933402, 214, 4); -INSERT INTO discoveryinfo VALUES (5933403, 214, 4); -INSERT INTO discoveryinfo VALUES (5933404, 214, 4); -INSERT INTO discoveryinfo VALUES (5933405, 214, 4); -INSERT INTO discoveryinfo VALUES (5933406, 214, 8); -INSERT INTO discoveryinfo VALUES (5933407, 214, 8); -INSERT INTO discoveryinfo VALUES (5933408, 214, 8); -INSERT INTO discoveryinfo VALUES (5933409, 214, 9); -INSERT INTO discoveryinfo VALUES (5933410, 214, 9); -INSERT INTO discoveryinfo VALUES (5933411, 214, 11); -INSERT INTO discoveryinfo VALUES (5933412, 214, 11); -INSERT INTO discoveryinfo VALUES (5933413, 214, 4); -INSERT INTO discoveryinfo VALUES (5933414, 214, 28); -INSERT INTO discoveryinfo VALUES (5933415, 214, 28); -INSERT INTO discoveryinfo VALUES (5933416, 214, 28); -INSERT INTO discoveryinfo VALUES (5933417, 214, 28); -INSERT INTO discoveryinfo VALUES (5933418, 214, 28); -INSERT INTO discoveryinfo VALUES (5933419, 214, 28); -INSERT INTO discoveryinfo VALUES (5933420, 214, 28); -INSERT INTO discoveryinfo VALUES (5933421, 214, 29); -INSERT INTO discoveryinfo VALUES (5933422, 214, 29); -INSERT INTO discoveryinfo VALUES (5933423, 214, 29); -INSERT INTO discoveryinfo VALUES (5933424, 214, 29); -INSERT INTO discoveryinfo VALUES (5933425, 214, 12); -INSERT INTO discoveryinfo VALUES (5933426, 214, 12); -INSERT INTO discoveryinfo VALUES (5933427, 214, 12); -INSERT INTO discoveryinfo VALUES (5933428, 214, 12); -INSERT INTO discoveryinfo VALUES (5933429, 214, 30); -INSERT INTO discoveryinfo VALUES (5933430, 214, 30); -INSERT INTO discoveryinfo VALUES (5933431, 214, 30); -INSERT INTO discoveryinfo VALUES (5933432, 214, 30); -INSERT INTO discoveryinfo VALUES (5933433, 214, 30); -INSERT INTO discoveryinfo VALUES (5933434, 214, 30); -INSERT INTO discoveryinfo VALUES (5933435, 214, 13); -INSERT INTO discoveryinfo VALUES (5933436, 214, 13); -INSERT INTO discoveryinfo VALUES (5933437, 214, 13); -INSERT INTO discoveryinfo VALUES (5933438, 214, 13); -INSERT INTO discoveryinfo VALUES (5933439, 214, 13); -INSERT INTO discoveryinfo VALUES (5933440, 214, 13); -INSERT INTO discoveryinfo VALUES (5933441, 214, 13); -INSERT INTO discoveryinfo VALUES (5933442, 214, 13); -INSERT INTO discoveryinfo VALUES (5933443, 214, 13); -INSERT INTO discoveryinfo VALUES (5933444, 214, 15); -INSERT INTO discoveryinfo VALUES (5933445, 214, 15); -INSERT INTO discoveryinfo VALUES (5933446, 214, 15); -INSERT INTO discoveryinfo VALUES (5933447, 214, 18); -INSERT INTO discoveryinfo VALUES (5933448, 214, 18); -INSERT INTO discoveryinfo VALUES (5933449, 214, 18); -INSERT INTO discoveryinfo VALUES (5933450, 214, 18); -INSERT INTO discoveryinfo VALUES (5933451, 214, 18); -INSERT INTO discoveryinfo VALUES (5933452, 214, 1); -INSERT INTO discoveryinfo VALUES (5933453, 214, 14); -INSERT INTO discoveryinfo VALUES (5933454, 214, 14); -INSERT INTO discoveryinfo VALUES (5933455, 214, 14); -INSERT INTO discoveryinfo VALUES (5933456, 214, 14); -INSERT INTO discoveryinfo VALUES (5933457, 214, 14); -INSERT INTO discoveryinfo VALUES (5933458, 214, 14); -INSERT INTO discoveryinfo VALUES (5933459, 214, 14); -INSERT INTO discoveryinfo VALUES (5933460, 214, 16); -INSERT INTO discoveryinfo VALUES (5933461, 214, 16); -INSERT INTO discoveryinfo VALUES (5933462, 214, 16); -INSERT INTO discoveryinfo VALUES (5933463, 214, 16); -INSERT INTO discoveryinfo VALUES (5933464, 214, 16); -INSERT INTO discoveryinfo VALUES (5933465, 214, 19); -INSERT INTO discoveryinfo VALUES (5933466, 214, 20); -INSERT INTO discoveryinfo VALUES (5933467, 214, 20); -INSERT INTO discoveryinfo VALUES (5933468, 214, 20); -INSERT INTO discoveryinfo VALUES (5933469, 214, 20); -INSERT INTO discoveryinfo VALUES (5933470, 214, 20); -INSERT INTO discoveryinfo VALUES (5933471, 214, 20); -INSERT INTO discoveryinfo VALUES (5933472, 214, 21); -INSERT INTO discoveryinfo VALUES (5933473, 214, 21); -INSERT INTO discoveryinfo VALUES (5933474, 214, 21); -INSERT INTO discoveryinfo VALUES (5933475, 214, 21); -INSERT INTO discoveryinfo VALUES (5933476, 214, 21); -INSERT INTO discoveryinfo VALUES (5933477, 214, 27); -INSERT INTO discoveryinfo VALUES (5933478, 214, 27); -INSERT INTO discoveryinfo VALUES (5933479, 214, 27); -INSERT INTO discoveryinfo VALUES (5933480, 214, 27); -INSERT INTO discoveryinfo VALUES (5933481, 214, 27); -INSERT INTO discoveryinfo VALUES (5933482, 214, 29); -INSERT INTO discoveryinfo VALUES (5933483, 214, 23); -INSERT INTO discoveryinfo VALUES (5933484, 214, 23); -INSERT INTO discoveryinfo VALUES (5933485, 214, 23); -INSERT INTO discoveryinfo VALUES (5933486, 214, 23); -INSERT INTO discoveryinfo VALUES (5933487, 214, 23); -INSERT INTO discoveryinfo VALUES (5933488, 214, 22); -INSERT INTO discoveryinfo VALUES (5933489, 214, 22); -INSERT INTO discoveryinfo VALUES (5933490, 214, 22); -INSERT INTO discoveryinfo VALUES (5933491, 214, 22); -INSERT INTO discoveryinfo VALUES (5933492, 214, 22); -INSERT INTO discoveryinfo VALUES (5933493, 214, 22); -INSERT INTO discoveryinfo VALUES (5933494, 214, 17); -INSERT INTO discoveryinfo VALUES (5933495, 214, 24); -INSERT INTO discoveryinfo VALUES (5933496, 214, 25); -INSERT INTO discoveryinfo VALUES (5933497, 214, 25); -INSERT INTO discoveryinfo VALUES (5933498, 214, 26); -INSERT INTO discoveryinfo VALUES (5933499, 214, 17); -INSERT INTO discoveryinfo VALUES (4102941, 23, 1); -INSERT INTO discoveryinfo VALUES (4102944, 23, 1); -INSERT INTO discoveryinfo VALUES (4102945, 23, 1); -INSERT INTO discoveryinfo VALUES (4102948, 23, 1); -INSERT INTO discoveryinfo VALUES (4102949, 23, 1); -INSERT INTO discoveryinfo VALUES (4102950, 23, 2); -INSERT INTO discoveryinfo VALUES (4102955, 23, 2); -INSERT INTO discoveryinfo VALUES (4102956, 23, 2); -INSERT INTO discoveryinfo VALUES (4102958, 23, 2); -INSERT INTO discoveryinfo VALUES (4102961, 23, 3); -INSERT INTO discoveryinfo VALUES (4102963, 23, 3); -INSERT INTO discoveryinfo VALUES (4102987, 23, 3); -INSERT INTO discoveryinfo VALUES (4102997, 23, 4); -INSERT INTO discoveryinfo VALUES (4103002, 23, 4); -INSERT INTO discoveryinfo VALUES (4103023, 23, 5); -INSERT INTO discoveryinfo VALUES (4103031, 23, 5); -INSERT INTO discoveryinfo VALUES (4103033, 23, 6); -INSERT INTO discoveryinfo VALUES (4103035, 23, 6); -INSERT INTO discoveryinfo VALUES (4103043, 23, 8); -INSERT INTO discoveryinfo VALUES (4103047, 23, 8); -INSERT INTO discoveryinfo VALUES (4103223, 23, 8); -INSERT INTO discoveryinfo VALUES (4103224, 23, 9); -INSERT INTO discoveryinfo VALUES (4103231, 23, 10); -INSERT INTO discoveryinfo VALUES (4103235, 23, 10); -INSERT INTO discoveryinfo VALUES (4103237, 23, 10); -INSERT INTO discoveryinfo VALUES (4103238, 23, 11); -INSERT INTO discoveryinfo VALUES (4103241, 23, 12); -INSERT INTO discoveryinfo VALUES (4103337, 23, 13); -INSERT INTO discoveryinfo VALUES (4103338, 23, 13); -INSERT INTO discoveryinfo VALUES (4103356, 23, 13); -INSERT INTO discoveryinfo VALUES (4103362, 23, 14); -INSERT INTO discoveryinfo VALUES (4103363, 23, 14); -INSERT INTO discoveryinfo VALUES (4103370, 23, 14); -INSERT INTO discoveryinfo VALUES (4103377, 23, 15); -INSERT INTO discoveryinfo VALUES (4103389, 23, 15); -INSERT INTO discoveryinfo VALUES (4103395, 23, 15); -INSERT INTO discoveryinfo VALUES (4103400, 23, 16); -INSERT INTO discoveryinfo VALUES (4103403, 23, 16); -INSERT INTO discoveryinfo VALUES (4103407, 23, 17); -INSERT INTO discoveryinfo VALUES (4103408, 23, 17); -INSERT INTO discoveryinfo VALUES (4103410, 23, 18); -INSERT INTO discoveryinfo VALUES (4103411, 23, 16); -INSERT INTO discoveryinfo VALUES (4103412, 23, 19); -INSERT INTO discoveryinfo VALUES (4103414, 23, 15); -INSERT INTO discoveryinfo VALUES (4103497, 23, 7); -INSERT INTO discoveryinfo VALUES (4103499, 23, 6); -INSERT INTO discoveryinfo VALUES (4373242, 23, 18); -INSERT INTO discoveryinfo VALUES (4373243, 23, 18); -INSERT INTO discoveryinfo VALUES (4515639, 23, 3); -INSERT INTO discoveryinfo VALUES (4253094, 25, 1); -INSERT INTO discoveryinfo VALUES (4253098, 25, 1); -INSERT INTO discoveryinfo VALUES (4253099, 25, 1); -INSERT INTO discoveryinfo VALUES (4252869, 25, 1); -INSERT INTO discoveryinfo VALUES (4253015, 25, 2); -INSERT INTO discoveryinfo VALUES (4253222, 25, 3); -INSERT INTO discoveryinfo VALUES (4253016, 25, 3); -INSERT INTO discoveryinfo VALUES (4253196, 25, 4); -INSERT INTO discoveryinfo VALUES (4253197, 25, 4); -INSERT INTO discoveryinfo VALUES (4253017, 25, 4); -INSERT INTO discoveryinfo VALUES (4253210, 25, 4); -INSERT INTO discoveryinfo VALUES (4253217, 25, 4); -INSERT INTO discoveryinfo VALUES (4253220, 25, 4); -INSERT INTO discoveryinfo VALUES (4253199, 25, 5); -INSERT INTO discoveryinfo VALUES (4253201, 25, 5); -INSERT INTO discoveryinfo VALUES (4253203, 25, 5); -INSERT INTO discoveryinfo VALUES (4253204, 25, 5); -INSERT INTO discoveryinfo VALUES (4253207, 25, 5); -INSERT INTO discoveryinfo VALUES (4253018, 25, 5); -INSERT INTO discoveryinfo VALUES (4253176, 25, 6); -INSERT INTO discoveryinfo VALUES (4253019, 25, 6); -INSERT INTO discoveryinfo VALUES (4253020, 25, 7); -INSERT INTO discoveryinfo VALUES (4253021, 25, 8); -INSERT INTO discoveryinfo VALUES (4253236, 25, 8); -INSERT INTO discoveryinfo VALUES (4253022, 25, 9); -INSERT INTO discoveryinfo VALUES (4253023, 25, 10); -INSERT INTO discoveryinfo VALUES (4253025, 25, 11); -INSERT INTO discoveryinfo VALUES (4253026, 25, 12); -INSERT INTO discoveryinfo VALUES (4253027, 25, 13); -INSERT INTO discoveryinfo VALUES (4253028, 25, 14); -INSERT INTO discoveryinfo VALUES (4253182, 25, 14); -INSERT INTO discoveryinfo VALUES (4253184, 25, 14); -INSERT INTO discoveryinfo VALUES (4253188, 25, 14); -INSERT INTO discoveryinfo VALUES (4253190, 25, 14); -INSERT INTO discoveryinfo VALUES (4253029, 25, 15); -INSERT INTO discoveryinfo VALUES (4253107, 25, 15); -INSERT INTO discoveryinfo VALUES (4253030, 25, 16); -INSERT INTO discoveryinfo VALUES (4253115, 25, 16); -INSERT INTO discoveryinfo VALUES (4253145, 25, 16); -INSERT INTO discoveryinfo VALUES (4534386, 25, 13); -INSERT INTO discoveryinfo VALUES (4985265, 25, 1); -INSERT INTO discoveryinfo VALUES (4972550, 168, 1); -INSERT INTO discoveryinfo VALUES (4972551, 168, 2); -INSERT INTO discoveryinfo VALUES (4757553, 168, 3); -INSERT INTO discoveryinfo VALUES (4757557, 168, 4); -INSERT INTO discoveryinfo VALUES (4757558, 168, 5); -INSERT INTO discoveryinfo VALUES (4757560, 168, 5); -INSERT INTO discoveryinfo VALUES (4757561, 168, 6); -INSERT INTO discoveryinfo VALUES (4757562, 168, 7); -INSERT INTO discoveryinfo VALUES (4757563, 168, 8); -INSERT INTO discoveryinfo VALUES (4757565, 168, 9); -INSERT INTO discoveryinfo VALUES (4757566, 168, 10); -INSERT INTO discoveryinfo VALUES (4757569, 168, 11); -INSERT INTO discoveryinfo VALUES (4757570, 168, 12); -INSERT INTO discoveryinfo VALUES (5878769, 248, 1); -INSERT INTO discoveryinfo VALUES (5878874, 249, 7); -INSERT INTO discoveryinfo VALUES (5878877, 250, 9); -INSERT INTO discoveryinfo VALUES (5878882, 251, 12); -INSERT INTO discoveryinfo VALUES (5908839, 248, 1); -INSERT INTO discoveryinfo VALUES (5908841, 248, 2); -INSERT INTO discoveryinfo VALUES (5908844, 248, 3); -INSERT INTO discoveryinfo VALUES (5908846, 248, 3); -INSERT INTO discoveryinfo VALUES (5908848, 248, 3); -INSERT INTO discoveryinfo VALUES (5908850, 248, 4); -INSERT INTO discoveryinfo VALUES (5908851, 248, 5); -INSERT INTO discoveryinfo VALUES (5908859, 248, 6); -INSERT INTO discoveryinfo VALUES (5908863, 248, 6); -INSERT INTO discoveryinfo VALUES (5908868, 248, 6); -INSERT INTO discoveryinfo VALUES (5908869, 248, 6); -INSERT INTO discoveryinfo VALUES (5909117, 249, 7); -INSERT INTO discoveryinfo VALUES (5909118, 249, 7); -INSERT INTO discoveryinfo VALUES (5909119, 249, 8); -INSERT INTO discoveryinfo VALUES (5909356, 248, 3); -INSERT INTO discoveryinfo VALUES (5909364, 250, 10); -INSERT INTO discoveryinfo VALUES (5909368, 250, 11); -INSERT INTO discoveryinfo VALUES (5909385, 251, 13); -INSERT INTO discoveryinfo VALUES (5909387, 251, 14); -INSERT INTO discoveryinfo VALUES (4635476, 148, 1); -INSERT INTO discoveryinfo VALUES (4635477, 148, 2); -INSERT INTO discoveryinfo VALUES (4635478, 148, 3); -INSERT INTO discoveryinfo VALUES (4635479, 148, 4); -INSERT INTO discoveryinfo VALUES (4635480, 148, 6); -INSERT INTO discoveryinfo VALUES (4695119, 148, 5); -INSERT INTO discoveryinfo VALUES (6922034, 375, 1); -INSERT INTO discoveryinfo VALUES (6957295, 375, 1); -INSERT INTO discoveryinfo VALUES (6957309, 375, 2); -INSERT INTO discoveryinfo VALUES (6957314, 375, 2); -INSERT INTO discoveryinfo VALUES (6957316, 375, 3); -INSERT INTO discoveryinfo VALUES (6957345, 375, 4); -INSERT INTO discoveryinfo VALUES (6957347, 375, 5); -INSERT INTO discoveryinfo VALUES (6957348, 375, 5); -INSERT INTO discoveryinfo VALUES (6957349, 375, 6); -INSERT INTO discoveryinfo VALUES (6957357, 375, 6); -INSERT INTO discoveryinfo VALUES (6957359, 375, 7); -INSERT INTO discoveryinfo VALUES (6957361, 375, 8); -INSERT INTO discoveryinfo VALUES (6957363, 375, 9); -INSERT INTO discoveryinfo VALUES (6957364, 375, 10); -INSERT INTO discoveryinfo VALUES (6957365, 375, 10); -INSERT INTO discoveryinfo VALUES (6957366, 375, 11); -INSERT INTO discoveryinfo VALUES (6957367, 375, 11); -INSERT INTO discoveryinfo VALUES (6957368, 375, 12); -INSERT INTO discoveryinfo VALUES (6957369, 375, 13); -INSERT INTO discoveryinfo VALUES (6957370, 375, 14); -INSERT INTO discoveryinfo VALUES (4902553, 189, 1); -INSERT INTO discoveryinfo VALUES (4902554, 189, 2); -INSERT INTO discoveryinfo VALUES (4902555, 189, 2); -INSERT INTO discoveryinfo VALUES (4902556, 189, 2); -INSERT INTO discoveryinfo VALUES (4902557, 189, 2); -INSERT INTO discoveryinfo VALUES (4902558, 189, 3); -INSERT INTO discoveryinfo VALUES (4902559, 189, 3); -INSERT INTO discoveryinfo VALUES (4902560, 189, 3); -INSERT INTO discoveryinfo VALUES (4902561, 189, 4); -INSERT INTO discoveryinfo VALUES (4902562, 189, 5); -INSERT INTO discoveryinfo VALUES (4902563, 189, 5); -INSERT INTO discoveryinfo VALUES (4902564, 190, 6); -INSERT INTO discoveryinfo VALUES (4902565, 190, 6); -INSERT INTO discoveryinfo VALUES (4902566, 190, 7); -INSERT INTO discoveryinfo VALUES (4902567, 190, 8); -INSERT INTO discoveryinfo VALUES (4902568, 190, 8); -INSERT INTO discoveryinfo VALUES (4902569, 190, 8); -INSERT INTO discoveryinfo VALUES (4902570, 190, 9); -INSERT INTO discoveryinfo VALUES (4902571, 190, 10); -INSERT INTO discoveryinfo VALUES (4902572, 190, 11); -INSERT INTO discoveryinfo VALUES (4902573, 191, 13); -INSERT INTO discoveryinfo VALUES (4902578, 191, 14); -INSERT INTO discoveryinfo VALUES (4902579, 191, 15); -INSERT INTO discoveryinfo VALUES (5321536, 189, 1); -INSERT INTO discoveryinfo VALUES (5321547, 190, 12); -INSERT INTO discoveryinfo VALUES (5321639, 190, 7); -INSERT INTO discoveryinfo VALUES (6268730, 298, 1); -INSERT INTO discoveryinfo VALUES (6268731, 298, 2); -INSERT INTO discoveryinfo VALUES (6268733, 298, 2); -INSERT INTO discoveryinfo VALUES (6268734, 298, 3); -INSERT INTO discoveryinfo VALUES (6268735, 298, 3); -INSERT INTO discoveryinfo VALUES (6268736, 298, 3); -INSERT INTO discoveryinfo VALUES (6268739, 299, 4); -INSERT INTO discoveryinfo VALUES (6268740, 299, 5); -INSERT INTO discoveryinfo VALUES (6268741, 299, 5); -INSERT INTO discoveryinfo VALUES (6268742, 299, 6); -INSERT INTO discoveryinfo VALUES (6268750, 299, 7); -INSERT INTO discoveryinfo VALUES (6268751, 299, 8); -INSERT INTO discoveryinfo VALUES (6268753, 300, 9); -INSERT INTO discoveryinfo VALUES (6268754, 300, 10); -INSERT INTO discoveryinfo VALUES (6268756, 300, 11); -INSERT INTO discoveryinfo VALUES (6268758, 301, 12); -INSERT INTO discoveryinfo VALUES (6268759, 301, 13); -INSERT INTO discoveryinfo VALUES (6268770, 302, 14); -INSERT INTO discoveryinfo VALUES (6268771, 303, 15); -INSERT INTO discoveryinfo VALUES (7247189, 445, 1); -INSERT INTO discoveryinfo VALUES (7247201, 445, 2); -INSERT INTO discoveryinfo VALUES (7247210, 445, 3); -INSERT INTO discoveryinfo VALUES (7247214, 445, 3); -INSERT INTO discoveryinfo VALUES (7247215, 445, 4); -INSERT INTO discoveryinfo VALUES (7329689, 445, 4); -INSERT INTO discoveryinfo VALUES (7329690, 445, 3); -INSERT INTO discoveryinfo VALUES (7329691, 445, 3); -INSERT INTO discoveryinfo VALUES (7329692, 445, 4); -INSERT INTO discoveryinfo VALUES (7329693, 445, 4); -INSERT INTO discoveryinfo VALUES (6891617, 336, 1); -INSERT INTO discoveryinfo VALUES (6891627, 336, 1); -INSERT INTO discoveryinfo VALUES (6891637, 336, 2); -INSERT INTO discoveryinfo VALUES (6891692, 336, 3); -INSERT INTO discoveryinfo VALUES (6891694, 336, 4); -INSERT INTO discoveryinfo VALUES (6893032, 336, 5); -INSERT INTO discoveryinfo VALUES (6893044, 336, 6); -INSERT INTO discoveryinfo VALUES (6893241, 336, 7); -INSERT INTO discoveryinfo VALUES (6893757, 336, 8); -INSERT INTO discoveryinfo VALUES (6893758, 336, 9); -INSERT INTO discoveryinfo VALUES (6893759, 336, 9); -INSERT INTO discoveryinfo VALUES (6893760, 336, 10); -INSERT INTO discoveryinfo VALUES (6893761, 336, 10); -INSERT INTO discoveryinfo VALUES (6893762, 336, 11); -INSERT INTO discoveryinfo VALUES (6969455, 396, 1); -INSERT INTO discoveryinfo VALUES (6969457, 396, 2); -INSERT INTO discoveryinfo VALUES (6969461, 396, 2); -INSERT INTO discoveryinfo VALUES (6969463, 396, 3); -INSERT INTO discoveryinfo VALUES (6969464, 396, 3); -INSERT INTO discoveryinfo VALUES (6969467, 396, 3); -INSERT INTO discoveryinfo VALUES (6969468, 396, 4); -INSERT INTO discoveryinfo VALUES (6969470, 396, 5); -INSERT INTO discoveryinfo VALUES (6969475, 396, 6); -INSERT INTO discoveryinfo VALUES (6969478, 396, 6); -INSERT INTO discoveryinfo VALUES (6969486, 396, 7); -INSERT INTO discoveryinfo VALUES (6969492, 396, 7); -INSERT INTO discoveryinfo VALUES (6969496, 396, 7); -INSERT INTO discoveryinfo VALUES (6969507, 396, 7); -INSERT INTO discoveryinfo VALUES (6969509, 396, 8); -INSERT INTO discoveryinfo VALUES (6969513, 396, 8); -INSERT INTO discoveryinfo VALUES (6969517, 396, 9); -INSERT INTO discoveryinfo VALUES (6969520, 396, 10); -INSERT INTO discoveryinfo VALUES (6969521, 396, 10); -INSERT INTO discoveryinfo VALUES (6969607, 396, 11); -INSERT INTO discoveryinfo VALUES (6969611, 396, 12); -INSERT INTO discoveryinfo VALUES (6969612, 396, 13); -INSERT INTO discoveryinfo VALUES (6951046, 360, 1); -INSERT INTO discoveryinfo VALUES (6951063, 360, 2); -INSERT INTO discoveryinfo VALUES (6951064, 360, 3); -INSERT INTO discoveryinfo VALUES (6951068, 360, 4); -INSERT INTO discoveryinfo VALUES (6951070, 360, 4); -INSERT INTO discoveryinfo VALUES (6951071, 360, 5); -INSERT INTO discoveryinfo VALUES (6951072, 361, 6); -INSERT INTO discoveryinfo VALUES (6951075, 361, 7); -INSERT INTO discoveryinfo VALUES (6951082, 361, 8); -INSERT INTO discoveryinfo VALUES (6951084, 361, 9); -INSERT INTO discoveryinfo VALUES (6951090, 361, 9); -INSERT INTO discoveryinfo VALUES (6951096, 361, 10); -INSERT INTO discoveryinfo VALUES (6951098, 361, 10); -INSERT INTO discoveryinfo VALUES (6951101, 361, 11); -INSERT INTO discoveryinfo VALUES (6951105, 361, 12); -INSERT INTO discoveryinfo VALUES (6951110, 361, 13); -INSERT INTO discoveryinfo VALUES (6951118, 361, 14); -INSERT INTO discoveryinfo VALUES (6951123, 361, 15); -INSERT INTO discoveryinfo VALUES (6951124, 361, 15); -INSERT INTO discoveryinfo VALUES (6951131, 360, 4); -INSERT INTO discoveryinfo VALUES (6951139, 361, 10); -INSERT INTO discoveryinfo VALUES (6951145, 361, 15); -INSERT INTO discoveryinfo VALUES (6951142, 361, 12); -INSERT INTO discoveryinfo VALUES (7011526, 361, 12); -INSERT INTO discoveryinfo VALUES (7171970, 439, 1); -INSERT INTO discoveryinfo VALUES (7171972, 439, 2); -INSERT INTO discoveryinfo VALUES (7171973, 439, 3); -INSERT INTO discoveryinfo VALUES (7171974, 439, 4); -INSERT INTO discoveryinfo VALUES (7171975, 439, 6); -INSERT INTO discoveryinfo VALUES (7171977, 439, 7); -INSERT INTO discoveryinfo VALUES (7171978, 439, 8); -INSERT INTO discoveryinfo VALUES (7171980, 439, 10); -INSERT INTO discoveryinfo VALUES (7171981, 439, 11); -INSERT INTO discoveryinfo VALUES (7171982, 439, 12); -INSERT INTO discoveryinfo VALUES (7171983, 439, 6); -INSERT INTO discoveryinfo VALUES (7171987, 439, 7); -INSERT INTO discoveryinfo VALUES (7171988, 439, 7); -INSERT INTO discoveryinfo VALUES (7171997, 439, 5); -INSERT INTO discoveryinfo VALUES (7171998, 439, 9); -INSERT INTO discoveryinfo VALUES (7171999, 439, 13); -INSERT INTO discoveryinfo VALUES (7297512, 464, 2); -INSERT INTO discoveryinfo VALUES (7297510, 464, 1); -INSERT INTO discoveryinfo VALUES (7297515, 464, 3); -INSERT INTO discoveryinfo VALUES (7298491, 464, 4); -INSERT INTO discoveryinfo VALUES (7297516, 464, 3); -INSERT INTO discoveryinfo VALUES (7296101, 464, 1); -INSERT INTO discoveryinfo VALUES (7297508, 464, 5); -INSERT INTO discoveryinfo VALUES (7297509, 464, 2); -INSERT INTO discoveryinfo VALUES (7297532, 465, 6); -INSERT INTO discoveryinfo VALUES (7298492, 465, 7); -INSERT INTO discoveryinfo VALUES (7298493, 465, 8); -INSERT INTO discoveryinfo VALUES (7296102, 465, 9); -INSERT INTO discoveryinfo VALUES (7297522, 466, 11); -INSERT INTO discoveryinfo VALUES (7296103, 466, 10); -INSERT INTO discoveryinfo VALUES (7297524, 466, 12); -INSERT INTO discoveryinfo VALUES (7297525, 466, 13); -INSERT INTO discoveryinfo VALUES (7297520, 466, 10); -INSERT INTO discoveryinfo VALUES (6999476, 371, 1); -INSERT INTO discoveryinfo VALUES (6999477, 371, 1); -INSERT INTO discoveryinfo VALUES (6999478, 371, 1); -INSERT INTO discoveryinfo VALUES (6999479, 371, 1); -INSERT INTO discoveryinfo VALUES (6999480, 371, 2); -INSERT INTO discoveryinfo VALUES (6999481, 371, 2); -INSERT INTO discoveryinfo VALUES (6999482, 371, 2); -INSERT INTO discoveryinfo VALUES (6999483, 371, 2); -INSERT INTO discoveryinfo VALUES (6999484, 371, 3); -INSERT INTO discoveryinfo VALUES (6999485, 371, 3); -INSERT INTO discoveryinfo VALUES (6999486, 371, 3); -INSERT INTO discoveryinfo VALUES (6999487, 371, 3); -INSERT INTO discoveryinfo VALUES (6999488, 371, 3); -INSERT INTO discoveryinfo VALUES (6999489, 371, 4); -INSERT INTO discoveryinfo VALUES (6999490, 371, 4); -INSERT INTO discoveryinfo VALUES (6999491, 371, 4); -INSERT INTO discoveryinfo VALUES (6999492, 371, 4); -INSERT INTO discoveryinfo VALUES (6999493, 371, 4); -INSERT INTO discoveryinfo VALUES (6999494, 371, 6); -INSERT INTO discoveryinfo VALUES (6999495, 371, 6); -INSERT INTO discoveryinfo VALUES (6999496, 371, 6); -INSERT INTO discoveryinfo VALUES (6999497, 371, 6); -INSERT INTO discoveryinfo VALUES (6999498, 371, 15); -INSERT INTO discoveryinfo VALUES (6999499, 371, 15); -INSERT INTO discoveryinfo VALUES (6999500, 371, 15); -INSERT INTO discoveryinfo VALUES (6999501, 371, 5); -INSERT INTO discoveryinfo VALUES (6999502, 371, 16); -INSERT INTO discoveryinfo VALUES (6999503, 371, 16); -INSERT INTO discoveryinfo VALUES (6999504, 371, 16); -INSERT INTO discoveryinfo VALUES (6999505, 371, 17); -INSERT INTO discoveryinfo VALUES (6999506, 371, 17); -INSERT INTO discoveryinfo VALUES (6999507, 371, 17); -INSERT INTO discoveryinfo VALUES (6999508, 371, 17); -INSERT INTO discoveryinfo VALUES (6999509, 371, 17); -INSERT INTO discoveryinfo VALUES (6999510, 371, 17); -INSERT INTO discoveryinfo VALUES (6999511, 371, 29); -INSERT INTO discoveryinfo VALUES (6999512, 371, 29); -INSERT INTO discoveryinfo VALUES (6999513, 371, 30); -INSERT INTO discoveryinfo VALUES (6999514, 371, 27); -INSERT INTO discoveryinfo VALUES (6999515, 371, 27); -INSERT INTO discoveryinfo VALUES (6999516, 371, 27); -INSERT INTO discoveryinfo VALUES (6999517, 371, 28); -INSERT INTO discoveryinfo VALUES (6999518, 371, 23); -INSERT INTO discoveryinfo VALUES (6999519, 371, 23); -INSERT INTO discoveryinfo VALUES (6999520, 371, 23); -INSERT INTO discoveryinfo VALUES (6999521, 371, 23); -INSERT INTO discoveryinfo VALUES (6999522, 371, 23); -INSERT INTO discoveryinfo VALUES (6999523, 371, 23); -INSERT INTO discoveryinfo VALUES (6999524, 371, 23); -INSERT INTO discoveryinfo VALUES (6999525, 371, 23); -INSERT INTO discoveryinfo VALUES (6999526, 371, 23); -INSERT INTO discoveryinfo VALUES (6999527, 371, 23); -INSERT INTO discoveryinfo VALUES (6999528, 371, 23); -INSERT INTO discoveryinfo VALUES (6999529, 371, 24); -INSERT INTO discoveryinfo VALUES (6999530, 371, 24); -INSERT INTO discoveryinfo VALUES (6999531, 371, 24); -INSERT INTO discoveryinfo VALUES (6999532, 371, 24); -INSERT INTO discoveryinfo VALUES (6999533, 371, 26); -INSERT INTO discoveryinfo VALUES (6999534, 371, 26); -INSERT INTO discoveryinfo VALUES (6999535, 371, 25); -INSERT INTO discoveryinfo VALUES (6999536, 371, 25); -INSERT INTO discoveryinfo VALUES (6999537, 371, 21); -INSERT INTO discoveryinfo VALUES (6999538, 371, 21); -INSERT INTO discoveryinfo VALUES (6999539, 371, 21); -INSERT INTO discoveryinfo VALUES (6999540, 371, 21); -INSERT INTO discoveryinfo VALUES (6999541, 371, 21); -INSERT INTO discoveryinfo VALUES (6999542, 371, 21); -INSERT INTO discoveryinfo VALUES (6999543, 371, 22); -INSERT INTO discoveryinfo VALUES (6999544, 371, 12); -INSERT INTO discoveryinfo VALUES (6999545, 371, 12); -INSERT INTO discoveryinfo VALUES (6999546, 371, 12); -INSERT INTO discoveryinfo VALUES (6999547, 371, 12); -INSERT INTO discoveryinfo VALUES (6999548, 371, 12); -INSERT INTO discoveryinfo VALUES (6999549, 371, 12); -INSERT INTO discoveryinfo VALUES (6999550, 371, 11); -INSERT INTO discoveryinfo VALUES (6999551, 371, 11); -INSERT INTO discoveryinfo VALUES (6999552, 371, 11); -INSERT INTO discoveryinfo VALUES (6999553, 371, 10); -INSERT INTO discoveryinfo VALUES (6999554, 371, 10); -INSERT INTO discoveryinfo VALUES (6999555, 371, 10); -INSERT INTO discoveryinfo VALUES (6999556, 371, 10); -INSERT INTO discoveryinfo VALUES (6999557, 371, 10); -INSERT INTO discoveryinfo VALUES (6999558, 371, 9); -INSERT INTO discoveryinfo VALUES (6999559, 371, 9); -INSERT INTO discoveryinfo VALUES (6999560, 371, 9); -INSERT INTO discoveryinfo VALUES (6999561, 371, 8); -INSERT INTO discoveryinfo VALUES (6999562, 371, 8); -INSERT INTO discoveryinfo VALUES (6999563, 371, 8); -INSERT INTO discoveryinfo VALUES (6999564, 371, 7); -INSERT INTO discoveryinfo VALUES (6999565, 371, 7); -INSERT INTO discoveryinfo VALUES (6999566, 371, 7); -INSERT INTO discoveryinfo VALUES (6999567, 371, 14); -INSERT INTO discoveryinfo VALUES (6999568, 371, 19); -INSERT INTO discoveryinfo VALUES (6999569, 371, 19); -INSERT INTO discoveryinfo VALUES (6999570, 371, 19); -INSERT INTO discoveryinfo VALUES (6999571, 371, 19); -INSERT INTO discoveryinfo VALUES (6999572, 371, 18); -INSERT INTO discoveryinfo VALUES (6999573, 371, 20); -INSERT INTO discoveryinfo VALUES (6999574, 371, 20); -INSERT INTO discoveryinfo VALUES (6999575, 371, 13); -INSERT INTO discoveryinfo VALUES (6998818, 371, 1); -INSERT INTO discoveryinfo VALUES (6998896, 371, 1); -INSERT INTO discoveryinfo VALUES (6998897, 371, 1); -INSERT INTO discoveryinfo VALUES (6998898, 371, 1); -INSERT INTO discoveryinfo VALUES (6998899, 371, 2); -INSERT INTO discoveryinfo VALUES (6998900, 371, 2); -INSERT INTO discoveryinfo VALUES (6998901, 371, 2); -INSERT INTO discoveryinfo VALUES (6998902, 371, 2); -INSERT INTO discoveryinfo VALUES (6998946, 371, 3); -INSERT INTO discoveryinfo VALUES (6998947, 371, 3); -INSERT INTO discoveryinfo VALUES (6998982, 371, 3); -INSERT INTO discoveryinfo VALUES (6998983, 371, 3); -INSERT INTO discoveryinfo VALUES (6998984, 371, 3); -INSERT INTO discoveryinfo VALUES (6998986, 371, 4); -INSERT INTO discoveryinfo VALUES (6998987, 371, 4); -INSERT INTO discoveryinfo VALUES (6998988, 371, 4); -INSERT INTO discoveryinfo VALUES (6998990, 371, 4); -INSERT INTO discoveryinfo VALUES (6998991, 371, 4); -INSERT INTO discoveryinfo VALUES (6999007, 371, 6); -INSERT INTO discoveryinfo VALUES (6999008, 371, 6); -INSERT INTO discoveryinfo VALUES (6999009, 371, 6); -INSERT INTO discoveryinfo VALUES (6999010, 371, 6); -INSERT INTO discoveryinfo VALUES (6999011, 371, 15); -INSERT INTO discoveryinfo VALUES (6999012, 371, 15); -INSERT INTO discoveryinfo VALUES (6999013, 371, 15); -INSERT INTO discoveryinfo VALUES (6999014, 371, 5); -INSERT INTO discoveryinfo VALUES (6999015, 371, 16); -INSERT INTO discoveryinfo VALUES (6999016, 371, 16); -INSERT INTO discoveryinfo VALUES (6999017, 371, 16); -INSERT INTO discoveryinfo VALUES (6999020, 371, 17); -INSERT INTO discoveryinfo VALUES (6999021, 371, 17); -INSERT INTO discoveryinfo VALUES (6999022, 371, 17); -INSERT INTO discoveryinfo VALUES (6999023, 371, 17); -INSERT INTO discoveryinfo VALUES (6999024, 371, 17); -INSERT INTO discoveryinfo VALUES (6999025, 371, 17); -INSERT INTO discoveryinfo VALUES (6999026, 371, 29); -INSERT INTO discoveryinfo VALUES (6999028, 371, 29); -INSERT INTO discoveryinfo VALUES (6999029, 371, 30); -INSERT INTO discoveryinfo VALUES (6999030, 371, 27); -INSERT INTO discoveryinfo VALUES (6999032, 371, 27); -INSERT INTO discoveryinfo VALUES (6999034, 371, 27); -INSERT INTO discoveryinfo VALUES (6999147, 371, 28); -INSERT INTO discoveryinfo VALUES (6999150, 371, 23); -INSERT INTO discoveryinfo VALUES (6999152, 371, 23); -INSERT INTO discoveryinfo VALUES (6999153, 371, 23); -INSERT INTO discoveryinfo VALUES (6999154, 371, 23); -INSERT INTO discoveryinfo VALUES (6999156, 371, 23); -INSERT INTO discoveryinfo VALUES (6999157, 371, 23); -INSERT INTO discoveryinfo VALUES (6999158, 371, 23); -INSERT INTO discoveryinfo VALUES (6999159, 371, 23); -INSERT INTO discoveryinfo VALUES (6999160, 371, 23); -INSERT INTO discoveryinfo VALUES (6999163, 371, 23); -INSERT INTO discoveryinfo VALUES (6999166, 371, 23); -INSERT INTO discoveryinfo VALUES (6999169, 371, 24); -INSERT INTO discoveryinfo VALUES (6999170, 371, 24); -INSERT INTO discoveryinfo VALUES (6999171, 371, 24); -INSERT INTO discoveryinfo VALUES (6999172, 371, 24); -INSERT INTO discoveryinfo VALUES (6999173, 371, 26); -INSERT INTO discoveryinfo VALUES (6999174, 371, 26); -INSERT INTO discoveryinfo VALUES (6999175, 371, 25); -INSERT INTO discoveryinfo VALUES (6999176, 371, 25); -INSERT INTO discoveryinfo VALUES (6999177, 371, 21); -INSERT INTO discoveryinfo VALUES (6999179, 371, 21); -INSERT INTO discoveryinfo VALUES (6999180, 371, 21); -INSERT INTO discoveryinfo VALUES (6999181, 371, 21); -INSERT INTO discoveryinfo VALUES (6999182, 371, 21); -INSERT INTO discoveryinfo VALUES (6999183, 371, 21); -INSERT INTO discoveryinfo VALUES (6999184, 371, 22); -INSERT INTO discoveryinfo VALUES (6999185, 371, 12); -INSERT INTO discoveryinfo VALUES (6999186, 371, 12); -INSERT INTO discoveryinfo VALUES (6999188, 371, 12); -INSERT INTO discoveryinfo VALUES (6999189, 371, 12); -INSERT INTO discoveryinfo VALUES (6999190, 371, 12); -INSERT INTO discoveryinfo VALUES (6999191, 371, 12); -INSERT INTO discoveryinfo VALUES (6999192, 371, 11); -INSERT INTO discoveryinfo VALUES (6999193, 371, 11); -INSERT INTO discoveryinfo VALUES (6999194, 371, 11); -INSERT INTO discoveryinfo VALUES (6999195, 371, 10); -INSERT INTO discoveryinfo VALUES (6999196, 371, 10); -INSERT INTO discoveryinfo VALUES (6999197, 371, 10); -INSERT INTO discoveryinfo VALUES (6999200, 371, 10); -INSERT INTO discoveryinfo VALUES (6999201, 371, 10); -INSERT INTO discoveryinfo VALUES (6999202, 371, 9); -INSERT INTO discoveryinfo VALUES (6999203, 371, 9); -INSERT INTO discoveryinfo VALUES (6999204, 371, 9); -INSERT INTO discoveryinfo VALUES (6999206, 371, 8); -INSERT INTO discoveryinfo VALUES (6999207, 371, 8); -INSERT INTO discoveryinfo VALUES (6999209, 371, 8); -INSERT INTO discoveryinfo VALUES (6999212, 371, 7); -INSERT INTO discoveryinfo VALUES (6999213, 371, 7); -INSERT INTO discoveryinfo VALUES (6999214, 371, 7); -INSERT INTO discoveryinfo VALUES (6999216, 371, 14); -INSERT INTO discoveryinfo VALUES (6999217, 371, 19); -INSERT INTO discoveryinfo VALUES (6999218, 371, 19); -INSERT INTO discoveryinfo VALUES (6999219, 371, 19); -INSERT INTO discoveryinfo VALUES (6999220, 371, 19); -INSERT INTO discoveryinfo VALUES (6999221, 371, 18); -INSERT INTO discoveryinfo VALUES (6999222, 371, 20); -INSERT INTO discoveryinfo VALUES (6999223, 371, 20); -INSERT INTO discoveryinfo VALUES (6999224, 371, 13); -INSERT INTO discoveryinfo VALUES (7002715, 354, 1); -INSERT INTO discoveryinfo VALUES (7002716, 354, 1); -INSERT INTO discoveryinfo VALUES (7002717, 354, 1); -INSERT INTO discoveryinfo VALUES (7002718, 354, 3); -INSERT INTO discoveryinfo VALUES (7002719, 354, 3); -INSERT INTO discoveryinfo VALUES (7002720, 354, 3); -INSERT INTO discoveryinfo VALUES (7002721, 354, 3); -INSERT INTO discoveryinfo VALUES (7002722, 354, 3); -INSERT INTO discoveryinfo VALUES (7002723, 354, 3); -INSERT INTO discoveryinfo VALUES (7002724, 354, 3); -INSERT INTO discoveryinfo VALUES (7002725, 354, 3); -INSERT INTO discoveryinfo VALUES (7002726, 354, 4); -INSERT INTO discoveryinfo VALUES (7002727, 354, 4); -INSERT INTO discoveryinfo VALUES (7002728, 354, 4); -INSERT INTO discoveryinfo VALUES (7002729, 354, 5); -INSERT INTO discoveryinfo VALUES (7002730, 354, 6); -INSERT INTO discoveryinfo VALUES (7002731, 354, 6); -INSERT INTO discoveryinfo VALUES (7002732, 354, 2); -INSERT INTO discoveryinfo VALUES (7002733, 354, 2); -INSERT INTO discoveryinfo VALUES (7002734, 354, 2); -INSERT INTO discoveryinfo VALUES (7002735, 354, 8); -INSERT INTO discoveryinfo VALUES (7002736, 354, 8); -INSERT INTO discoveryinfo VALUES (7002737, 354, 8); -INSERT INTO discoveryinfo VALUES (7002738, 354, 7); -INSERT INTO discoveryinfo VALUES (7002739, 354, 30); -INSERT INTO discoveryinfo VALUES (7002740, 354, 30); -INSERT INTO discoveryinfo VALUES (7002741, 354, 30); -INSERT INTO discoveryinfo VALUES (7002742, 354, 30); -INSERT INTO discoveryinfo VALUES (7002743, 354, 29); -INSERT INTO discoveryinfo VALUES (7002744, 354, 9); -INSERT INTO discoveryinfo VALUES (7002745, 354, 9); -INSERT INTO discoveryinfo VALUES (7002746, 354, 10); -INSERT INTO discoveryinfo VALUES (7002747, 354, 10); -INSERT INTO discoveryinfo VALUES (7002748, 354, 10); -INSERT INTO discoveryinfo VALUES (7002749, 354, 10); -INSERT INTO discoveryinfo VALUES (7002750, 354, 10); -INSERT INTO discoveryinfo VALUES (7002751, 354, 10); -INSERT INTO discoveryinfo VALUES (7002752, 354, 10); -INSERT INTO discoveryinfo VALUES (7002753, 354, 28); -INSERT INTO discoveryinfo VALUES (7002754, 354, 28); -INSERT INTO discoveryinfo VALUES (7002755, 354, 28); -INSERT INTO discoveryinfo VALUES (7002756, 354, 28); -INSERT INTO discoveryinfo VALUES (7002757, 354, 27); -INSERT INTO discoveryinfo VALUES (7002758, 354, 27); -INSERT INTO discoveryinfo VALUES (7002759, 354, 26); -INSERT INTO discoveryinfo VALUES (7002760, 354, 26); -INSERT INTO discoveryinfo VALUES (7002761, 354, 26); -INSERT INTO discoveryinfo VALUES (7002762, 354, 26); -INSERT INTO discoveryinfo VALUES (7002763, 354, 25); -INSERT INTO discoveryinfo VALUES (7002764, 354, 25); -INSERT INTO discoveryinfo VALUES (7002765, 354, 25); -INSERT INTO discoveryinfo VALUES (7002766, 354, 25); -INSERT INTO discoveryinfo VALUES (7002767, 354, 24); -INSERT INTO discoveryinfo VALUES (7002768, 354, 24); -INSERT INTO discoveryinfo VALUES (7002769, 354, 24); -INSERT INTO discoveryinfo VALUES (7002770, 354, 24); -INSERT INTO discoveryinfo VALUES (7002771, 354, 23); -INSERT INTO discoveryinfo VALUES (7002772, 354, 23); -INSERT INTO discoveryinfo VALUES (7002773, 354, 23); -INSERT INTO discoveryinfo VALUES (7002774, 354, 23); -INSERT INTO discoveryinfo VALUES (7002775, 354, 23); -INSERT INTO discoveryinfo VALUES (7002776, 354, 23); -INSERT INTO discoveryinfo VALUES (7002777, 354, 23); -INSERT INTO discoveryinfo VALUES (7002778, 354, 22); -INSERT INTO discoveryinfo VALUES (7002779, 354, 22); -INSERT INTO discoveryinfo VALUES (7002780, 354, 22); -INSERT INTO discoveryinfo VALUES (7002781, 354, 21); -INSERT INTO discoveryinfo VALUES (7002782, 354, 17); -INSERT INTO discoveryinfo VALUES (7002783, 354, 17); -INSERT INTO discoveryinfo VALUES (7002784, 354, 17); -INSERT INTO discoveryinfo VALUES (7002785, 354, 17); -INSERT INTO discoveryinfo VALUES (7002786, 354, 17); -INSERT INTO discoveryinfo VALUES (7002787, 354, 17); -INSERT INTO discoveryinfo VALUES (7002788, 354, 17); -INSERT INTO discoveryinfo VALUES (7002789, 354, 16); -INSERT INTO discoveryinfo VALUES (7002790, 354, 16); -INSERT INTO discoveryinfo VALUES (7002791, 354, 16); -INSERT INTO discoveryinfo VALUES (7002792, 354, 16); -INSERT INTO discoveryinfo VALUES (7002793, 354, 15); -INSERT INTO discoveryinfo VALUES (7002794, 354, 15); -INSERT INTO discoveryinfo VALUES (7002795, 354, 15); -INSERT INTO discoveryinfo VALUES (7002796, 354, 19); -INSERT INTO discoveryinfo VALUES (7002797, 354, 19); -INSERT INTO discoveryinfo VALUES (7002798, 354, 19); -INSERT INTO discoveryinfo VALUES (7002799, 354, 19); -INSERT INTO discoveryinfo VALUES (7002800, 354, 19); -INSERT INTO discoveryinfo VALUES (7002801, 354, 18); -INSERT INTO discoveryinfo VALUES (7002802, 354, 20); -INSERT INTO discoveryinfo VALUES (7002803, 354, 20); -INSERT INTO discoveryinfo VALUES (7002804, 354, 20); -INSERT INTO discoveryinfo VALUES (7002805, 354, 11); -INSERT INTO discoveryinfo VALUES (7002806, 354, 11); -INSERT INTO discoveryinfo VALUES (7002807, 354, 14); -INSERT INTO discoveryinfo VALUES (7002808, 354, 14); -INSERT INTO discoveryinfo VALUES (7002809, 354, 14); -INSERT INTO discoveryinfo VALUES (7002810, 354, 13); -INSERT INTO discoveryinfo VALUES (7002811, 354, 12); -INSERT INTO discoveryinfo VALUES (7001712, 354, 1); -INSERT INTO discoveryinfo VALUES (7002280, 354, 1); -INSERT INTO discoveryinfo VALUES (7002282, 354, 1); -INSERT INTO discoveryinfo VALUES (7002283, 354, 3); -INSERT INTO discoveryinfo VALUES (7002284, 354, 3); -INSERT INTO discoveryinfo VALUES (7002286, 354, 3); -INSERT INTO discoveryinfo VALUES (7002287, 354, 3); -INSERT INTO discoveryinfo VALUES (7002289, 354, 3); -INSERT INTO discoveryinfo VALUES (7002290, 354, 3); -INSERT INTO discoveryinfo VALUES (7002291, 354, 3); -INSERT INTO discoveryinfo VALUES (7002292, 354, 3); -INSERT INTO discoveryinfo VALUES (7002297, 354, 4); -INSERT INTO discoveryinfo VALUES (7002298, 354, 4); -INSERT INTO discoveryinfo VALUES (7002301, 354, 4); -INSERT INTO discoveryinfo VALUES (7002303, 354, 5); -INSERT INTO discoveryinfo VALUES (7002324, 354, 6); -INSERT INTO discoveryinfo VALUES (7002325, 354, 6); -INSERT INTO discoveryinfo VALUES (7002327, 354, 2); -INSERT INTO discoveryinfo VALUES (7002328, 354, 2); -INSERT INTO discoveryinfo VALUES (7002329, 354, 2); -INSERT INTO discoveryinfo VALUES (7002333, 354, 8); -INSERT INTO discoveryinfo VALUES (7002334, 354, 8); -INSERT INTO discoveryinfo VALUES (7002335, 354, 8); -INSERT INTO discoveryinfo VALUES (7002336, 354, 7); -INSERT INTO discoveryinfo VALUES (7002337, 354, 30); -INSERT INTO discoveryinfo VALUES (7002338, 354, 30); -INSERT INTO discoveryinfo VALUES (7002339, 354, 30); -INSERT INTO discoveryinfo VALUES (7002360, 354, 30); -INSERT INTO discoveryinfo VALUES (7002361, 354, 29); -INSERT INTO discoveryinfo VALUES (7002363, 354, 9); -INSERT INTO discoveryinfo VALUES (7002364, 354, 9); -INSERT INTO discoveryinfo VALUES (7002365, 354, 10); -INSERT INTO discoveryinfo VALUES (7002366, 354, 10); -INSERT INTO discoveryinfo VALUES (7002370, 354, 10); -INSERT INTO discoveryinfo VALUES (7002371, 354, 10); -INSERT INTO discoveryinfo VALUES (7002372, 354, 10); -INSERT INTO discoveryinfo VALUES (7002373, 354, 10); -INSERT INTO discoveryinfo VALUES (7002374, 354, 10); -INSERT INTO discoveryinfo VALUES (7002376, 354, 28); -INSERT INTO discoveryinfo VALUES (7002378, 354, 28); -INSERT INTO discoveryinfo VALUES (7002382, 354, 28); -INSERT INTO discoveryinfo VALUES (7002385, 354, 28); -INSERT INTO discoveryinfo VALUES (7002387, 354, 27); -INSERT INTO discoveryinfo VALUES (7002388, 354, 27); -INSERT INTO discoveryinfo VALUES (7002390, 354, 26); -INSERT INTO discoveryinfo VALUES (7002391, 354, 26); -INSERT INTO discoveryinfo VALUES (7002392, 354, 26); -INSERT INTO discoveryinfo VALUES (7002393, 354, 26); -INSERT INTO discoveryinfo VALUES (7002394, 354, 25); -INSERT INTO discoveryinfo VALUES (7002395, 354, 25); -INSERT INTO discoveryinfo VALUES (7002396, 354, 25); -INSERT INTO discoveryinfo VALUES (7002397, 354, 25); -INSERT INTO discoveryinfo VALUES (7002398, 354, 24); -INSERT INTO discoveryinfo VALUES (7002399, 354, 24); -INSERT INTO discoveryinfo VALUES (7002401, 354, 24); -INSERT INTO discoveryinfo VALUES (7002404, 354, 24); -INSERT INTO discoveryinfo VALUES (7002410, 354, 23); -INSERT INTO discoveryinfo VALUES (7002412, 354, 23); -INSERT INTO discoveryinfo VALUES (7002413, 354, 23); -INSERT INTO discoveryinfo VALUES (7002414, 354, 23); -INSERT INTO discoveryinfo VALUES (7002415, 354, 23); -INSERT INTO discoveryinfo VALUES (7002416, 354, 23); -INSERT INTO discoveryinfo VALUES (7002417, 354, 23); -INSERT INTO discoveryinfo VALUES (7002418, 354, 22); -INSERT INTO discoveryinfo VALUES (7002419, 354, 22); -INSERT INTO discoveryinfo VALUES (7002420, 354, 22); -INSERT INTO discoveryinfo VALUES (7002422, 354, 21); -INSERT INTO discoveryinfo VALUES (7002423, 354, 17); -INSERT INTO discoveryinfo VALUES (7002424, 354, 17); -INSERT INTO discoveryinfo VALUES (7002425, 354, 17); -INSERT INTO discoveryinfo VALUES (7002426, 354, 17); -INSERT INTO discoveryinfo VALUES (7002427, 354, 17); -INSERT INTO discoveryinfo VALUES (7002428, 354, 17); -INSERT INTO discoveryinfo VALUES (7002429, 354, 17); -INSERT INTO discoveryinfo VALUES (7002430, 354, 16); -INSERT INTO discoveryinfo VALUES (7002431, 354, 16); -INSERT INTO discoveryinfo VALUES (7002432, 354, 16); -INSERT INTO discoveryinfo VALUES (7002433, 354, 16); -INSERT INTO discoveryinfo VALUES (7002434, 354, 15); -INSERT INTO discoveryinfo VALUES (7002436, 354, 15); -INSERT INTO discoveryinfo VALUES (7002437, 354, 15); -INSERT INTO discoveryinfo VALUES (7002439, 354, 19); -INSERT INTO discoveryinfo VALUES (7002694, 354, 19); -INSERT INTO discoveryinfo VALUES (7002695, 354, 19); -INSERT INTO discoveryinfo VALUES (7002696, 354, 19); -INSERT INTO discoveryinfo VALUES (7002697, 354, 19); -INSERT INTO discoveryinfo VALUES (7002698, 354, 18); -INSERT INTO discoveryinfo VALUES (7002700, 354, 20); -INSERT INTO discoveryinfo VALUES (7002701, 354, 20); -INSERT INTO discoveryinfo VALUES (7002703, 354, 20); -INSERT INTO discoveryinfo VALUES (7002705, 354, 11); -INSERT INTO discoveryinfo VALUES (7002708, 354, 11); -INSERT INTO discoveryinfo VALUES (7002710, 354, 14); -INSERT INTO discoveryinfo VALUES (7002711, 354, 14); -INSERT INTO discoveryinfo VALUES (7002712, 354, 14); -INSERT INTO discoveryinfo VALUES (7002713, 354, 13); -INSERT INTO discoveryinfo VALUES (7002714, 354, 12); -INSERT INTO discoveryinfo VALUES (7007424, 372, 1); -INSERT INTO discoveryinfo VALUES (7007425, 372, 1); -INSERT INTO discoveryinfo VALUES (7007426, 372, 1); -INSERT INTO discoveryinfo VALUES (7007427, 372, 1); -INSERT INTO discoveryinfo VALUES (7007428, 372, 1); -INSERT INTO discoveryinfo VALUES (7007429, 372, 5); -INSERT INTO discoveryinfo VALUES (7007430, 372, 5); -INSERT INTO discoveryinfo VALUES (7007431, 372, 5); -INSERT INTO discoveryinfo VALUES (7007432, 372, 5); -INSERT INTO discoveryinfo VALUES (7007433, 372, 5); -INSERT INTO discoveryinfo VALUES (7007434, 372, 8); -INSERT INTO discoveryinfo VALUES (7007435, 372, 8); -INSERT INTO discoveryinfo VALUES (7007436, 372, 8); -INSERT INTO discoveryinfo VALUES (7007437, 372, 8); -INSERT INTO discoveryinfo VALUES (7007438, 372, 3); -INSERT INTO discoveryinfo VALUES (7007439, 372, 3); -INSERT INTO discoveryinfo VALUES (7007440, 372, 3); -INSERT INTO discoveryinfo VALUES (7007441, 372, 3); -INSERT INTO discoveryinfo VALUES (7007442, 372, 9); -INSERT INTO discoveryinfo VALUES (7007443, 372, 9); -INSERT INTO discoveryinfo VALUES (7007444, 372, 9); -INSERT INTO discoveryinfo VALUES (7007445, 372, 9); -INSERT INTO discoveryinfo VALUES (7007446, 372, 10); -INSERT INTO discoveryinfo VALUES (7007447, 372, 10); -INSERT INTO discoveryinfo VALUES (7007448, 372, 14); -INSERT INTO discoveryinfo VALUES (7007449, 372, 14); -INSERT INTO discoveryinfo VALUES (7007450, 372, 14); -INSERT INTO discoveryinfo VALUES (7007451, 372, 14); -INSERT INTO discoveryinfo VALUES (7007452, 372, 14); -INSERT INTO discoveryinfo VALUES (7007453, 372, 14); -INSERT INTO discoveryinfo VALUES (7007454, 372, 14); -INSERT INTO discoveryinfo VALUES (7007455, 372, 11); -INSERT INTO discoveryinfo VALUES (7007456, 372, 11); -INSERT INTO discoveryinfo VALUES (7007457, 372, 7); -INSERT INTO discoveryinfo VALUES (7007458, 372, 7); -INSERT INTO discoveryinfo VALUES (7007459, 372, 7); -INSERT INTO discoveryinfo VALUES (7007460, 372, 6); -INSERT INTO discoveryinfo VALUES (7007461, 372, 12); -INSERT INTO discoveryinfo VALUES (7007462, 372, 12); -INSERT INTO discoveryinfo VALUES (7007463, 372, 12); -INSERT INTO discoveryinfo VALUES (7007464, 372, 12); -INSERT INTO discoveryinfo VALUES (7007465, 372, 13); -INSERT INTO discoveryinfo VALUES (7007466, 372, 13); -INSERT INTO discoveryinfo VALUES (7007467, 372, 13); -INSERT INTO discoveryinfo VALUES (7007468, 372, 13); -INSERT INTO discoveryinfo VALUES (7007469, 372, 15); -INSERT INTO discoveryinfo VALUES (7007470, 372, 15); -INSERT INTO discoveryinfo VALUES (7007471, 372, 15); -INSERT INTO discoveryinfo VALUES (7007472, 372, 15); -INSERT INTO discoveryinfo VALUES (7007473, 372, 18); -INSERT INTO discoveryinfo VALUES (7007474, 372, 18); -INSERT INTO discoveryinfo VALUES (7007475, 372, 18); -INSERT INTO discoveryinfo VALUES (7007476, 372, 18); -INSERT INTO discoveryinfo VALUES (7007477, 372, 16); -INSERT INTO discoveryinfo VALUES (7007478, 372, 19); -INSERT INTO discoveryinfo VALUES (7007479, 372, 19); -INSERT INTO discoveryinfo VALUES (7007480, 372, 19); -INSERT INTO discoveryinfo VALUES (7007481, 372, 19); -INSERT INTO discoveryinfo VALUES (7007482, 372, 19); -INSERT INTO discoveryinfo VALUES (7007483, 372, 19); -INSERT INTO discoveryinfo VALUES (7007484, 372, 19); -INSERT INTO discoveryinfo VALUES (7007485, 372, 19); -INSERT INTO discoveryinfo VALUES (7007486, 372, 19); -INSERT INTO discoveryinfo VALUES (7007487, 372, 17); -INSERT INTO discoveryinfo VALUES (7007488, 372, 17); -INSERT INTO discoveryinfo VALUES (7007489, 372, 17); -INSERT INTO discoveryinfo VALUES (7007490, 372, 17); -INSERT INTO discoveryinfo VALUES (7007491, 372, 20); -INSERT INTO discoveryinfo VALUES (7007492, 372, 20); -INSERT INTO discoveryinfo VALUES (7007493, 372, 20); -INSERT INTO discoveryinfo VALUES (7007494, 372, 21); -INSERT INTO discoveryinfo VALUES (7007495, 372, 21); -INSERT INTO discoveryinfo VALUES (7007496, 372, 21); -INSERT INTO discoveryinfo VALUES (7007497, 372, 23); -INSERT INTO discoveryinfo VALUES (7007498, 372, 23); -INSERT INTO discoveryinfo VALUES (7007499, 372, 23); -INSERT INTO discoveryinfo VALUES (7007500, 372, 23); -INSERT INTO discoveryinfo VALUES (7007501, 372, 23); -INSERT INTO discoveryinfo VALUES (7007502, 372, 23); -INSERT INTO discoveryinfo VALUES (7007503, 372, 23); -INSERT INTO discoveryinfo VALUES (7007504, 372, 22); -INSERT INTO discoveryinfo VALUES (7007505, 372, 22); -INSERT INTO discoveryinfo VALUES (7007506, 372, 22); -INSERT INTO discoveryinfo VALUES (7007507, 372, 22); -INSERT INTO discoveryinfo VALUES (7007508, 372, 22); -INSERT INTO discoveryinfo VALUES (7007509, 372, 22); -INSERT INTO discoveryinfo VALUES (7007510, 372, 22); -INSERT INTO discoveryinfo VALUES (7007511, 372, 22); -INSERT INTO discoveryinfo VALUES (7007512, 372, 22); -INSERT INTO discoveryinfo VALUES (7007513, 372, 24); -INSERT INTO discoveryinfo VALUES (7007514, 372, 24); -INSERT INTO discoveryinfo VALUES (7007515, 372, 24); -INSERT INTO discoveryinfo VALUES (7007516, 372, 25); -INSERT INTO discoveryinfo VALUES (7007517, 372, 25); -INSERT INTO discoveryinfo VALUES (7007518, 372, 30); -INSERT INTO discoveryinfo VALUES (7007519, 372, 30); -INSERT INTO discoveryinfo VALUES (7007520, 372, 30); -INSERT INTO discoveryinfo VALUES (7007521, 372, 4); -INSERT INTO discoveryinfo VALUES (7007522, 372, 4); -INSERT INTO discoveryinfo VALUES (7007523, 372, 4); -INSERT INTO discoveryinfo VALUES (7007524, 372, 4); -INSERT INTO discoveryinfo VALUES (7007525, 372, 2); -INSERT INTO discoveryinfo VALUES (7007526, 372, 2); -INSERT INTO discoveryinfo VALUES (7007527, 372, 2); -INSERT INTO discoveryinfo VALUES (7007528, 372, 29); -INSERT INTO discoveryinfo VALUES (7007529, 372, 29); -INSERT INTO discoveryinfo VALUES (7007530, 372, 27); -INSERT INTO discoveryinfo VALUES (7007531, 372, 27); -INSERT INTO discoveryinfo VALUES (7007532, 372, 27); -INSERT INTO discoveryinfo VALUES (7007533, 372, 28); -INSERT INTO discoveryinfo VALUES (7007534, 372, 28); -INSERT INTO discoveryinfo VALUES (7007535, 372, 26); -INSERT INTO discoveryinfo VALUES (7007536, 372, 9); -INSERT INTO discoveryinfo VALUES (7007537, 372, 14); -INSERT INTO discoveryinfo VALUES (7005090, 372, 1); -INSERT INTO discoveryinfo VALUES (7005094, 372, 1); -INSERT INTO discoveryinfo VALUES (7005096, 372, 1); -INSERT INTO discoveryinfo VALUES (7005098, 372, 1); -INSERT INTO discoveryinfo VALUES (7005107, 372, 1); -INSERT INTO discoveryinfo VALUES (7005115, 372, 5); -INSERT INTO discoveryinfo VALUES (7005118, 372, 5); -INSERT INTO discoveryinfo VALUES (7005165, 372, 5); -INSERT INTO discoveryinfo VALUES (7005166, 372, 5); -INSERT INTO discoveryinfo VALUES (7005167, 372, 5); -INSERT INTO discoveryinfo VALUES (7005168, 372, 8); -INSERT INTO discoveryinfo VALUES (7005169, 372, 8); -INSERT INTO discoveryinfo VALUES (7005170, 372, 8); -INSERT INTO discoveryinfo VALUES (7005171, 372, 8); -INSERT INTO discoveryinfo VALUES (7005172, 372, 3); -INSERT INTO discoveryinfo VALUES (7005173, 372, 3); -INSERT INTO discoveryinfo VALUES (7005174, 372, 3); -INSERT INTO discoveryinfo VALUES (7005175, 372, 3); -INSERT INTO discoveryinfo VALUES (7005176, 372, 9); -INSERT INTO discoveryinfo VALUES (7005177, 372, 9); -INSERT INTO discoveryinfo VALUES (7005179, 372, 9); -INSERT INTO discoveryinfo VALUES (7005180, 372, 9); -INSERT INTO discoveryinfo VALUES (7005181, 372, 10); -INSERT INTO discoveryinfo VALUES (7005183, 372, 10); -INSERT INTO discoveryinfo VALUES (7005184, 372, 14); -INSERT INTO discoveryinfo VALUES (7005186, 372, 14); -INSERT INTO discoveryinfo VALUES (7005210, 372, 14); -INSERT INTO discoveryinfo VALUES (7005211, 372, 14); -INSERT INTO discoveryinfo VALUES (7005212, 372, 14); -INSERT INTO discoveryinfo VALUES (7005213, 372, 14); -INSERT INTO discoveryinfo VALUES (7005214, 372, 14); -INSERT INTO discoveryinfo VALUES (7005215, 372, 11); -INSERT INTO discoveryinfo VALUES (7005217, 372, 11); -INSERT INTO discoveryinfo VALUES (7005240, 372, 7); -INSERT INTO discoveryinfo VALUES (7005401, 372, 7); -INSERT INTO discoveryinfo VALUES (7005404, 372, 7); -INSERT INTO discoveryinfo VALUES (7005406, 372, 6); -INSERT INTO discoveryinfo VALUES (7005408, 372, 12); -INSERT INTO discoveryinfo VALUES (7005409, 372, 12); -INSERT INTO discoveryinfo VALUES (7005410, 372, 12); -INSERT INTO discoveryinfo VALUES (7005411, 372, 12); -INSERT INTO discoveryinfo VALUES (7005412, 372, 13); -INSERT INTO discoveryinfo VALUES (7005413, 372, 13); -INSERT INTO discoveryinfo VALUES (7005414, 372, 13); -INSERT INTO discoveryinfo VALUES (7005415, 372, 13); -INSERT INTO discoveryinfo VALUES (7005417, 372, 15); -INSERT INTO discoveryinfo VALUES (7005418, 372, 15); -INSERT INTO discoveryinfo VALUES (7005419, 372, 15); -INSERT INTO discoveryinfo VALUES (7005420, 372, 15); -INSERT INTO discoveryinfo VALUES (7005422, 372, 18); -INSERT INTO discoveryinfo VALUES (7005423, 372, 18); -INSERT INTO discoveryinfo VALUES (7005424, 372, 18); -INSERT INTO discoveryinfo VALUES (7005425, 372, 18); -INSERT INTO discoveryinfo VALUES (7005426, 372, 16); -INSERT INTO discoveryinfo VALUES (7005427, 372, 19); -INSERT INTO discoveryinfo VALUES (7005429, 372, 19); -INSERT INTO discoveryinfo VALUES (7005431, 372, 19); -INSERT INTO discoveryinfo VALUES (7005432, 372, 19); -INSERT INTO discoveryinfo VALUES (7005433, 372, 19); -INSERT INTO discoveryinfo VALUES (7005434, 372, 19); -INSERT INTO discoveryinfo VALUES (7005435, 372, 19); -INSERT INTO discoveryinfo VALUES (7005436, 372, 19); -INSERT INTO discoveryinfo VALUES (7005437, 372, 19); -INSERT INTO discoveryinfo VALUES (7005438, 372, 17); -INSERT INTO discoveryinfo VALUES (7005441, 372, 17); -INSERT INTO discoveryinfo VALUES (7005442, 372, 17); -INSERT INTO discoveryinfo VALUES (7005444, 372, 17); -INSERT INTO discoveryinfo VALUES (7005445, 372, 20); -INSERT INTO discoveryinfo VALUES (7005446, 372, 20); -INSERT INTO discoveryinfo VALUES (7005447, 372, 20); -INSERT INTO discoveryinfo VALUES (7005451, 372, 21); -INSERT INTO discoveryinfo VALUES (7005452, 372, 21); -INSERT INTO discoveryinfo VALUES (7005453, 372, 21); -INSERT INTO discoveryinfo VALUES (7005454, 372, 23); -INSERT INTO discoveryinfo VALUES (7005455, 372, 23); -INSERT INTO discoveryinfo VALUES (7005456, 372, 23); -INSERT INTO discoveryinfo VALUES (7005457, 372, 23); -INSERT INTO discoveryinfo VALUES (7005458, 372, 23); -INSERT INTO discoveryinfo VALUES (7005459, 372, 23); -INSERT INTO discoveryinfo VALUES (7005460, 372, 23); -INSERT INTO discoveryinfo VALUES (7005465, 372, 22); -INSERT INTO discoveryinfo VALUES (7005468, 372, 22); -INSERT INTO discoveryinfo VALUES (7005469, 372, 22); -INSERT INTO discoveryinfo VALUES (7005470, 372, 22); -INSERT INTO discoveryinfo VALUES (7005471, 372, 22); -INSERT INTO discoveryinfo VALUES (7005472, 372, 22); -INSERT INTO discoveryinfo VALUES (7005473, 372, 22); -INSERT INTO discoveryinfo VALUES (7005474, 372, 22); -INSERT INTO discoveryinfo VALUES (7005475, 372, 22); -INSERT INTO discoveryinfo VALUES (7005477, 372, 24); -INSERT INTO discoveryinfo VALUES (7005481, 372, 24); -INSERT INTO discoveryinfo VALUES (7005482, 372, 24); -INSERT INTO discoveryinfo VALUES (7005584, 372, 25); -INSERT INTO discoveryinfo VALUES (7005585, 372, 25); -INSERT INTO discoveryinfo VALUES (7005586, 372, 30); -INSERT INTO discoveryinfo VALUES (7005587, 372, 30); -INSERT INTO discoveryinfo VALUES (7005588, 372, 30); -INSERT INTO discoveryinfo VALUES (7005589, 372, 4); -INSERT INTO discoveryinfo VALUES (7005590, 372, 4); -INSERT INTO discoveryinfo VALUES (7005591, 372, 4); -INSERT INTO discoveryinfo VALUES (7005592, 372, 4); -INSERT INTO discoveryinfo VALUES (7005593, 372, 2); -INSERT INTO discoveryinfo VALUES (7005594, 372, 2); -INSERT INTO discoveryinfo VALUES (7005595, 372, 2); -INSERT INTO discoveryinfo VALUES (7005596, 372, 29); -INSERT INTO discoveryinfo VALUES (7005598, 372, 29); -INSERT INTO discoveryinfo VALUES (7005600, 372, 27); -INSERT INTO discoveryinfo VALUES (7005601, 372, 27); -INSERT INTO discoveryinfo VALUES (7005602, 372, 27); -INSERT INTO discoveryinfo VALUES (7005606, 372, 28); -INSERT INTO discoveryinfo VALUES (7005607, 372, 28); -INSERT INTO discoveryinfo VALUES (7005608, 372, 26); -INSERT INTO discoveryinfo VALUES (7005609, 372, 9); -INSERT INTO discoveryinfo VALUES (7005610, 372, 14); -INSERT INTO discoveryinfo VALUES (6885326, 373, 1); -INSERT INTO discoveryinfo VALUES (6954353, 373, 2); -INSERT INTO discoveryinfo VALUES (6954355, 373, 3); -INSERT INTO discoveryinfo VALUES (6954357, 373, 4); -INSERT INTO discoveryinfo VALUES (6954366, 373, 5); -INSERT INTO discoveryinfo VALUES (6885542, 374, 6); -INSERT INTO discoveryinfo VALUES (6954382, 374, 6); -INSERT INTO discoveryinfo VALUES (6954383, 374, 7); -INSERT INTO discoveryinfo VALUES (6954385, 374, 8); -INSERT INTO discoveryinfo VALUES (6954388, 374, 8); -INSERT INTO discoveryinfo VALUES (6954396, 374, 9); -INSERT INTO discoveryinfo VALUES (6954404, 374, 10); -INSERT INTO discoveryinfo VALUES (6954407, 374, 11); -INSERT INTO discoveryinfo VALUES (6954410, 374, 12); -INSERT INTO discoveryinfo VALUES (6954412, 374, 13); -INSERT INTO discoveryinfo VALUES (4647229, 149, 1); -INSERT INTO discoveryinfo VALUES (4647230, 149, 2); -INSERT INTO discoveryinfo VALUES (4647231, 156, 3); -INSERT INTO discoveryinfo VALUES (4647232, 156, 4); -INSERT INTO discoveryinfo VALUES (4649563, 65, 1); -INSERT INTO discoveryinfo VALUES (4649564, 65, 1); -INSERT INTO discoveryinfo VALUES (4649565, 66, 2); -INSERT INTO discoveryinfo VALUES (4649566, 67, 3); -INSERT INTO discoveryinfo VALUES (4649567, 66, 4); -INSERT INTO discoveryinfo VALUES (4651266, 66, 5); -INSERT INTO discoveryinfo VALUES (4667373, 66, 2); -INSERT INTO discoveryinfo VALUES (4667375, 66, 2); -INSERT INTO discoveryinfo VALUES (4667425, 67, 3); -INSERT INTO discoveryinfo VALUES (4667426, 67, 3); -INSERT INTO discoveryinfo VALUES (4709854, 66, 5); -INSERT INTO discoveryinfo VALUES (4170242, 8, 1); -INSERT INTO discoveryinfo VALUES (4170252, 8, 2); -INSERT INTO discoveryinfo VALUES (4170268, 8, 2); -INSERT INTO discoveryinfo VALUES (4170279, 8, 3); -INSERT INTO discoveryinfo VALUES (4170285, 8, 4); -INSERT INTO discoveryinfo VALUES (4170288, 8, 5); -INSERT INTO discoveryinfo VALUES (4170294, 8, 6); -INSERT INTO discoveryinfo VALUES (4170296, 8, 7); -INSERT INTO discoveryinfo VALUES (4170300, 8, 7); -INSERT INTO discoveryinfo VALUES (4170349, 8, 8); -INSERT INTO discoveryinfo VALUES (4170358, 8, 9); -INSERT INTO discoveryinfo VALUES (4170364, 8, 10); -INSERT INTO discoveryinfo VALUES (4170368, 8, 11); -INSERT INTO discoveryinfo VALUES (4170389, 8, 11); -INSERT INTO discoveryinfo VALUES (4148871, 48, 3); -INSERT INTO discoveryinfo VALUES (4148872, 48, 3); -INSERT INTO discoveryinfo VALUES (3683248, 48, 4); -INSERT INTO discoveryinfo VALUES (3683292, 48, 3); -INSERT INTO discoveryinfo VALUES (4148873, 48, 3); -INSERT INTO discoveryinfo VALUES (4148874, 48, 2); -INSERT INTO discoveryinfo VALUES (4148875, 48, 2); -INSERT INTO discoveryinfo VALUES (4148876, 48, 2); -INSERT INTO discoveryinfo VALUES (4148878, 48, 2); -INSERT INTO discoveryinfo VALUES (3683299, 48, 1); -INSERT INTO discoveryinfo VALUES (4148911, 48, 1); -INSERT INTO discoveryinfo VALUES (4148914, 48, 1); -INSERT INTO discoveryinfo VALUES (4148920, 48, 1); -INSERT INTO discoveryinfo VALUES (3683294, 48, 6); -INSERT INTO discoveryinfo VALUES (4148932, 48, 5); -INSERT INTO discoveryinfo VALUES (4148966, 48, 5); -INSERT INTO discoveryinfo VALUES (4148971, 48, 7); -INSERT INTO discoveryinfo VALUES (4148972, 48, 8); -INSERT INTO discoveryinfo VALUES (3683307, 54, 20); -INSERT INTO discoveryinfo VALUES (3683246, 55, 16); -INSERT INTO discoveryinfo VALUES (3683247, 55, 15); -INSERT INTO discoveryinfo VALUES (4148979, 55, 14); -INSERT INTO discoveryinfo VALUES (4148982, 55, 11); -INSERT INTO discoveryinfo VALUES (4148985, 55, 10); -INSERT INTO discoveryinfo VALUES (4148987, 55, 13); -INSERT INTO discoveryinfo VALUES (4148988, 55, 9); -INSERT INTO discoveryinfo VALUES (4148990, 55, 9); -INSERT INTO discoveryinfo VALUES (4148996, 55, 9); -INSERT INTO discoveryinfo VALUES (4148997, 55, 9); -INSERT INTO discoveryinfo VALUES (4149000, 55, 10); -INSERT INTO discoveryinfo VALUES (4149001, 55, 10); -INSERT INTO discoveryinfo VALUES (4149002, 55, 11); -INSERT INTO discoveryinfo VALUES (4149003, 55, 11); -INSERT INTO discoveryinfo VALUES (4149004, 55, 12); -INSERT INTO discoveryinfo VALUES (4149007, 55, 12); -INSERT INTO discoveryinfo VALUES (4149010, 55, 9); -INSERT INTO discoveryinfo VALUES (4149020, 54, 17); -INSERT INTO discoveryinfo VALUES (4149022, 54, 18); -INSERT INTO discoveryinfo VALUES (4149023, 54, 18); -INSERT INTO discoveryinfo VALUES (4149026, 54, 19); -INSERT INTO discoveryinfo VALUES (4149045, 54, 17); -INSERT INTO discoveryinfo VALUES (4323345, 49, 1); -INSERT INTO discoveryinfo VALUES (4323347, 49, 1); -INSERT INTO discoveryinfo VALUES (4323348, 49, 1); -INSERT INTO discoveryinfo VALUES (4323349, 49, 1); -INSERT INTO discoveryinfo VALUES (4323350, 49, 1); -INSERT INTO discoveryinfo VALUES (4323351, 49, 2); -INSERT INTO discoveryinfo VALUES (4323352, 49, 2); -INSERT INTO discoveryinfo VALUES (4323354, 49, 3); -INSERT INTO discoveryinfo VALUES (4323355, 49, 2); -INSERT INTO discoveryinfo VALUES (4323358, 49, 2); -INSERT INTO discoveryinfo VALUES (4323359, 49, 2); -INSERT INTO discoveryinfo VALUES (4323360, 84, 4); -INSERT INTO discoveryinfo VALUES (4323369, 84, 4); -INSERT INTO discoveryinfo VALUES (4323370, 84, 4); -INSERT INTO discoveryinfo VALUES (4323372, 84, 5); -INSERT INTO discoveryinfo VALUES (4323374, 84, 5); -INSERT INTO discoveryinfo VALUES (4323375, 84, 5); -INSERT INTO discoveryinfo VALUES (4323376, 84, 5); -INSERT INTO discoveryinfo VALUES (4323377, 84, 6); -INSERT INTO discoveryinfo VALUES (4323378, 84, 6); -INSERT INTO discoveryinfo VALUES (4323379, 84, 6); -INSERT INTO discoveryinfo VALUES (4323382, 84, 6); -INSERT INTO discoveryinfo VALUES (4323383, 84, 7); -INSERT INTO discoveryinfo VALUES (4323387, 85, 8); -INSERT INTO discoveryinfo VALUES (4323412, 85, 8); -INSERT INTO discoveryinfo VALUES (4323414, 85, 8); -INSERT INTO discoveryinfo VALUES (4323417, 85, 9); -INSERT INTO discoveryinfo VALUES (4323419, 85, 9); -INSERT INTO discoveryinfo VALUES (4323420, 85, 9); -INSERT INTO discoveryinfo VALUES (4323423, 85, 10); -INSERT INTO discoveryinfo VALUES (4323425, 85, 10); -INSERT INTO discoveryinfo VALUES (4323427, 85, 10); -INSERT INTO discoveryinfo VALUES (4323428, 85, 10); -INSERT INTO discoveryinfo VALUES (4323429, 85, 10); -INSERT INTO discoveryinfo VALUES (4323431, 85, 11); -INSERT INTO discoveryinfo VALUES (4323432, 85, 8); -INSERT INTO discoveryinfo VALUES (4335119, 49, 2); -INSERT INTO discoveryinfo VALUES (4515611, 137, 1); -INSERT INTO discoveryinfo VALUES (4515612, 138, 2); -INSERT INTO discoveryinfo VALUES (4515614, 138, 2); -INSERT INTO discoveryinfo VALUES (4515615, 138, 2); -INSERT INTO discoveryinfo VALUES (4515616, 138, 2); -INSERT INTO discoveryinfo VALUES (4515618, 138, 3); -INSERT INTO discoveryinfo VALUES (4515621, 138, 3); -INSERT INTO discoveryinfo VALUES (4515623, 138, 4); -INSERT INTO discoveryinfo VALUES (4515624, 138, 4); -INSERT INTO discoveryinfo VALUES (4515625, 138, 5); -INSERT INTO discoveryinfo VALUES (4515645, 138, 6); -INSERT INTO discoveryinfo VALUES (4515646, 137, 7); -INSERT INTO discoveryinfo VALUES (4515651, 137, 7); -INSERT INTO discoveryinfo VALUES (4515680, 137, 7); -INSERT INTO discoveryinfo VALUES (4515681, 137, 8); -INSERT INTO discoveryinfo VALUES (4515687, 137, 8); -INSERT INTO discoveryinfo VALUES (4515694, 137, 8); -INSERT INTO discoveryinfo VALUES (4515697, 137, 9); -INSERT INTO discoveryinfo VALUES (4515699, 137, 10); -INSERT INTO discoveryinfo VALUES (4515701, 139, 14); -INSERT INTO discoveryinfo VALUES (4515702, 139, 14); -INSERT INTO discoveryinfo VALUES (4515703, 139, 13); -INSERT INTO discoveryinfo VALUES (4515704, 139, 13); -INSERT INTO discoveryinfo VALUES (4515705, 139, 13); -INSERT INTO discoveryinfo VALUES (4515706, 139, 12); -INSERT INTO discoveryinfo VALUES (4515707, 139, 12); -INSERT INTO discoveryinfo VALUES (4515708, 139, 12); -INSERT INTO discoveryinfo VALUES (4515709, 139, 12); -INSERT INTO discoveryinfo VALUES (4515711, 139, 14); -INSERT INTO discoveryinfo VALUES (4515713, 139, 11); -INSERT INTO discoveryinfo VALUES (4516011, 139, 15); -INSERT INTO discoveryinfo VALUES (4517194, 137, 1); -INSERT INTO discoveryinfo VALUES (4517198, 138, 2); -INSERT INTO discoveryinfo VALUES (4488398, 48, 3); -INSERT INTO discoveryinfo VALUES (4488399, 48, 3); -INSERT INTO discoveryinfo VALUES (4488400, 48, 4); -INSERT INTO discoveryinfo VALUES (4488401, 48, 3); -INSERT INTO discoveryinfo VALUES (4488402, 48, 3); -INSERT INTO discoveryinfo VALUES (4488403, 48, 2); -INSERT INTO discoveryinfo VALUES (4488404, 48, 2); -INSERT INTO discoveryinfo VALUES (4488405, 48, 2); -INSERT INTO discoveryinfo VALUES (4488406, 48, 2); -INSERT INTO discoveryinfo VALUES (4488407, 48, 1); -INSERT INTO discoveryinfo VALUES (4488408, 48, 1); -INSERT INTO discoveryinfo VALUES (4488409, 48, 1); -INSERT INTO discoveryinfo VALUES (4488410, 48, 1); -INSERT INTO discoveryinfo VALUES (4488411, 48, 6); -INSERT INTO discoveryinfo VALUES (4488412, 48, 5); -INSERT INTO discoveryinfo VALUES (4488413, 48, 5); -INSERT INTO discoveryinfo VALUES (4488414, 48, 7); -INSERT INTO discoveryinfo VALUES (4488415, 48, 8); -INSERT INTO discoveryinfo VALUES (4488416, 54, 20); -INSERT INTO discoveryinfo VALUES (4488417, 55, 16); -INSERT INTO discoveryinfo VALUES (4488418, 55, 15); -INSERT INTO discoveryinfo VALUES (4488419, 55, 14); -INSERT INTO discoveryinfo VALUES (4488420, 55, 11); -INSERT INTO discoveryinfo VALUES (4488421, 55, 10); -INSERT INTO discoveryinfo VALUES (4488422, 55, 13); -INSERT INTO discoveryinfo VALUES (4488423, 55, 9); -INSERT INTO discoveryinfo VALUES (4488424, 55, 9); -INSERT INTO discoveryinfo VALUES (4488425, 55, 9); -INSERT INTO discoveryinfo VALUES (4488426, 55, 9); -INSERT INTO discoveryinfo VALUES (4488427, 55, 10); -INSERT INTO discoveryinfo VALUES (4488428, 55, 10); -INSERT INTO discoveryinfo VALUES (4488429, 55, 11); -INSERT INTO discoveryinfo VALUES (4488430, 55, 11); -INSERT INTO discoveryinfo VALUES (4488431, 55, 12); -INSERT INTO discoveryinfo VALUES (4488432, 55, 12); -INSERT INTO discoveryinfo VALUES (4488433, 55, 9); -INSERT INTO discoveryinfo VALUES (4488434, 54, 17); -INSERT INTO discoveryinfo VALUES (4488435, 54, 18); -INSERT INTO discoveryinfo VALUES (4488436, 54, 18); -INSERT INTO discoveryinfo VALUES (4488437, 54, 19); -INSERT INTO discoveryinfo VALUES (4488438, 54, 17); -INSERT INTO discoveryinfo VALUES (4515620, 138, 3); -INSERT INTO discoveryinfo VALUES (4634059, 152, 1); -INSERT INTO discoveryinfo VALUES (4634062, 151, 1); -INSERT INTO discoveryinfo VALUES (4634065, 151, 2); -INSERT INTO discoveryinfo VALUES (4634075, 151, 3); -INSERT INTO discoveryinfo VALUES (4634082, 151, 3); -INSERT INTO discoveryinfo VALUES (4634083, 151, 4); -INSERT INTO discoveryinfo VALUES (4634092, 151, 5); -INSERT INTO discoveryinfo VALUES (4634094, 151, 5); -INSERT INTO discoveryinfo VALUES (4634095, 151, 6); -INSERT INTO discoveryinfo VALUES (4634104, 151, 7); -INSERT INTO discoveryinfo VALUES (4634106, 151, 7); -INSERT INTO discoveryinfo VALUES (4634113, 151, 8); -INSERT INTO discoveryinfo VALUES (4634702, 151, 9); -INSERT INTO discoveryinfo VALUES (4634705, 151, 9); -INSERT INTO discoveryinfo VALUES (4634706, 151, 10); -INSERT INTO discoveryinfo VALUES (4634707, 151, 11); -INSERT INTO discoveryinfo VALUES (4634710, 151, 11); -INSERT INTO discoveryinfo VALUES (4634711, 151, 11); -INSERT INTO discoveryinfo VALUES (4634712, 151, 12); -INSERT INTO discoveryinfo VALUES (4634715, 151, 12); -INSERT INTO discoveryinfo VALUES (4660176, 165, 1); -INSERT INTO discoveryinfo VALUES (4660177, 165, 1); -INSERT INTO discoveryinfo VALUES (4660178, 165, 2); -INSERT INTO discoveryinfo VALUES (4660179, 165, 2); -INSERT INTO discoveryinfo VALUES (4660180, 165, 3); -INSERT INTO discoveryinfo VALUES (4660181, 165, 3); -INSERT INTO discoveryinfo VALUES (4660182, 165, 4); -INSERT INTO discoveryinfo VALUES (4660183, 165, 5); -INSERT INTO discoveryinfo VALUES (4660184, 165, 6); -INSERT INTO discoveryinfo VALUES (4660185, 165, 7); -INSERT INTO discoveryinfo VALUES (4660186, 165, 8); -INSERT INTO discoveryinfo VALUES (4660187, 165, 9); -INSERT INTO discoveryinfo VALUES (4660188, 165, 10); -INSERT INTO discoveryinfo VALUES (4660189, 165, 11); -INSERT INTO discoveryinfo VALUES (4755385, 165, 11); -INSERT INTO discoveryinfo VALUES (4755389, 165, 12); -INSERT INTO discoveryinfo VALUES (4755390, 165, 13); -INSERT INTO discoveryinfo VALUES (6159020, 282, 1); -INSERT INTO discoveryinfo VALUES (6159021, 282, 1); -INSERT INTO discoveryinfo VALUES (6159023, 282, 2); -INSERT INTO discoveryinfo VALUES (6177931, 282, 3); -INSERT INTO discoveryinfo VALUES (6159029, 282, 4); -INSERT INTO discoveryinfo VALUES (6159030, 282, 4); -INSERT INTO discoveryinfo VALUES (6159031, 282, 5); -INSERT INTO discoveryinfo VALUES (6159032, 282, 6); -INSERT INTO discoveryinfo VALUES (6159033, 282, 6); -INSERT INTO discoveryinfo VALUES (6159034, 282, 7); -INSERT INTO discoveryinfo VALUES (6159035, 282, 8); -INSERT INTO discoveryinfo VALUES (6159037, 282, 8); -INSERT INTO discoveryinfo VALUES (6159036, 282, 8); -INSERT INTO discoveryinfo VALUES (6159038, 282, 9); -INSERT INTO discoveryinfo VALUES (6159039, 282, 10); -INSERT INTO discoveryinfo VALUES (6177935, 282, 11); -INSERT INTO discoveryinfo VALUES (6177936, 282, 12); -INSERT INTO discoveryinfo VALUES (6177937, 282, 12); -INSERT INTO discoveryinfo VALUES (6177938, 282, 12); -INSERT INTO discoveryinfo VALUES (6177939, 282, 13); -INSERT INTO discoveryinfo VALUES (6177940, 282, 13); -INSERT INTO discoveryinfo VALUES (6177941, 282, 13); -INSERT INTO discoveryinfo VALUES (6177942, 282, 14); -INSERT INTO discoveryinfo VALUES (6177943, 282, 15); -INSERT INTO discoveryinfo VALUES (6177944, 282, 15); -INSERT INTO discoveryinfo VALUES (6564485, 337, 1); -INSERT INTO discoveryinfo VALUES (6606854, 337, 2); -INSERT INTO discoveryinfo VALUES (6606857, 337, 2); -INSERT INTO discoveryinfo VALUES (6606861, 337, 3); -INSERT INTO discoveryinfo VALUES (6606862, 337, 4); -INSERT INTO discoveryinfo VALUES (6606863, 337, 4); -INSERT INTO discoveryinfo VALUES (6606864, 337, 5); -INSERT INTO discoveryinfo VALUES (6564487, 338, 6); -INSERT INTO discoveryinfo VALUES (6564488, 339, 7); -INSERT INTO discoveryinfo VALUES (6606867, 339, 7); -INSERT INTO discoveryinfo VALUES (6606868, 339, 8); -INSERT INTO discoveryinfo VALUES (6564489, 340, 9); -INSERT INTO discoveryinfo VALUES (6606870, 340, 10); -INSERT INTO discoveryinfo VALUES (6606873, 340, 11); -INSERT INTO discoveryinfo VALUES (6606874, 340, 12); -INSERT INTO discoveryinfo VALUES (6606875, 340, 12); -INSERT INTO discoveryinfo VALUES (6606876, 340, 13); -INSERT INTO discoveryinfo VALUES (1367775, 4, 2); -INSERT INTO discoveryinfo VALUES (1367776, 4, 2); -INSERT INTO discoveryinfo VALUES (1367777, 4, 2); -INSERT INTO discoveryinfo VALUES (1367778, 4, 1); -INSERT INTO discoveryinfo VALUES (1367779, 4, 2); -INSERT INTO discoveryinfo VALUES (1367780, 4, 3); -INSERT INTO discoveryinfo VALUES (1367785, 4, 3); -INSERT INTO discoveryinfo VALUES (1367793, 4, 3); -INSERT INTO discoveryinfo VALUES (1367795, 4, 4); -INSERT INTO discoveryinfo VALUES (1367798, 4, 1); -INSERT INTO discoveryinfo VALUES (1367800, 4, 2); -INSERT INTO discoveryinfo VALUES (1367801, 4, 2); -INSERT INTO discoveryinfo VALUES (2052662, 4, 7); -INSERT INTO discoveryinfo VALUES (2052665, 4, 7); -INSERT INTO discoveryinfo VALUES (2052668, 4, 8); -INSERT INTO discoveryinfo VALUES (2052672, 4, 13); -INSERT INTO discoveryinfo VALUES (2052682, 4, 9); -INSERT INTO discoveryinfo VALUES (2052686, 4, 9); -INSERT INTO discoveryinfo VALUES (2052693, 4, 12); -INSERT INTO discoveryinfo VALUES (2052695, 4, 12); -INSERT INTO discoveryinfo VALUES (2052698, 4, 12); -INSERT INTO discoveryinfo VALUES (2052699, 4, 10); -INSERT INTO discoveryinfo VALUES (2052703, 4, 11); -INSERT INTO discoveryinfo VALUES (2052706, 4, 11); -INSERT INTO discoveryinfo VALUES (2052708, 4, 10); -INSERT INTO discoveryinfo VALUES (2052710, 4, 6); -INSERT INTO discoveryinfo VALUES (2052711, 4, 6); -INSERT INTO discoveryinfo VALUES (2052712, 4, 6); -INSERT INTO discoveryinfo VALUES (2052714, 4, 5); -INSERT INTO discoveryinfo VALUES (2052715, 4, 5); -INSERT INTO discoveryinfo VALUES (2052716, 4, 5); -INSERT INTO discoveryinfo VALUES (2052721, 4, 5); -INSERT INTO discoveryinfo VALUES (2052722, 4, 5); -INSERT INTO discoveryinfo VALUES (2052724, 4, 5); -INSERT INTO discoveryinfo VALUES (2465005, 4, 4); -INSERT INTO discoveryinfo VALUES (2465008, 4, 6); -INSERT INTO discoveryinfo VALUES (2465009, 4, 6); -INSERT INTO discoveryinfo VALUES (2465010, 4, 2); -INSERT INTO discoveryinfo VALUES (2465013, 4, 2); -INSERT INTO discoveryinfo VALUES (2465017, 4, 10); -INSERT INTO discoveryinfo VALUES (2465018, 4, 13); -INSERT INTO discoveryinfo VALUES (2465019, 4, 12); -INSERT INTO discoveryinfo VALUES (2465020, 4, 12); -INSERT INTO discoveryinfo VALUES (2465025, 4, 9); -INSERT INTO discoveryinfo VALUES (2465028, 4, 9); -INSERT INTO discoveryinfo VALUES (2465029, 4, 9); -INSERT INTO discoveryinfo VALUES (2496289, 4, 5); -INSERT INTO discoveryinfo VALUES (2496437, 4, 5); -INSERT INTO discoveryinfo VALUES (2564171, 4, 5); -INSERT INTO discoveryinfo VALUES (2652480, 4, 1); -INSERT INTO discoveryinfo VALUES (2652487, 4, 1); -INSERT INTO discoveryinfo VALUES (2652490, 4, 1); -INSERT INTO discoveryinfo VALUES (3907879, 4, 1); -INSERT INTO discoveryinfo VALUES (3907888, 4, 1); -INSERT INTO discoveryinfo VALUES (3907897, 4, 2); -INSERT INTO discoveryinfo VALUES (3907899, 4, 2); -INSERT INTO discoveryinfo VALUES (3907901, 4, 2); -INSERT INTO discoveryinfo VALUES (3907902, 4, 2); -INSERT INTO discoveryinfo VALUES (3907903, 4, 2); -INSERT INTO discoveryinfo VALUES (3907908, 4, 2); -INSERT INTO discoveryinfo VALUES (3907909, 4, 2); -INSERT INTO discoveryinfo VALUES (3908308, 4, 9); -INSERT INTO discoveryinfo VALUES (3908312, 4, 9); -INSERT INTO discoveryinfo VALUES (3908313, 4, 9); -INSERT INTO discoveryinfo VALUES (2052705, 4, 11); -INSERT INTO discoveryinfo VALUES (2065961, 5, 1); -INSERT INTO discoveryinfo VALUES (2065962, 5, 1); -INSERT INTO discoveryinfo VALUES (2065963, 5, 1); -INSERT INTO discoveryinfo VALUES (2065970, 5, 2); -INSERT INTO discoveryinfo VALUES (2065973, 5, 8); -INSERT INTO discoveryinfo VALUES (2065974, 5, 17); -INSERT INTO discoveryinfo VALUES (2065975, 5, 13); -INSERT INTO discoveryinfo VALUES (2065981, 5, 16); -INSERT INTO discoveryinfo VALUES (2065985, 5, 14); -INSERT INTO discoveryinfo VALUES (2065986, 5, 4); -INSERT INTO discoveryinfo VALUES (2065987, 5, 5); -INSERT INTO discoveryinfo VALUES (2065988, 5, 5); -INSERT INTO discoveryinfo VALUES (2065991, 5, 4); -INSERT INTO discoveryinfo VALUES (2065992, 5, 4); -INSERT INTO discoveryinfo VALUES (2065994, 5, 4); -INSERT INTO discoveryinfo VALUES (2065995, 5, 5); -INSERT INTO discoveryinfo VALUES (2065996, 5, 4); -INSERT INTO discoveryinfo VALUES (2065997, 5, 3); -INSERT INTO discoveryinfo VALUES (2065998, 5, 3); -INSERT INTO discoveryinfo VALUES (2065999, 5, 3); -INSERT INTO discoveryinfo VALUES (2066000, 5, 3); -INSERT INTO discoveryinfo VALUES (2066001, 5, 3); -INSERT INTO discoveryinfo VALUES (2066002, 5, 6); -INSERT INTO discoveryinfo VALUES (2066003, 5, 6); -INSERT INTO discoveryinfo VALUES (2066004, 5, 7); -INSERT INTO discoveryinfo VALUES (2066005, 5, 7); -INSERT INTO discoveryinfo VALUES (2066007, 5, 7); -INSERT INTO discoveryinfo VALUES (2066011, 5, 7); -INSERT INTO discoveryinfo VALUES (2066013, 5, 9); -INSERT INTO discoveryinfo VALUES (2066014, 5, 9); -INSERT INTO discoveryinfo VALUES (2066016, 5, 9); -INSERT INTO discoveryinfo VALUES (2066018, 5, 10); -INSERT INTO discoveryinfo VALUES (2066019, 5, 10); -INSERT INTO discoveryinfo VALUES (2066021, 5, 10); -INSERT INTO discoveryinfo VALUES (2066022, 5, 12); -INSERT INTO discoveryinfo VALUES (2066023, 5, 12); -INSERT INTO discoveryinfo VALUES (2066024, 5, 15); -INSERT INTO discoveryinfo VALUES (2066027, 5, 11); -INSERT INTO discoveryinfo VALUES (2066029, 5, 19); -INSERT INTO discoveryinfo VALUES (2066030, 5, 18); -INSERT INTO discoveryinfo VALUES (2465059, 5, 3); -INSERT INTO discoveryinfo VALUES (2465060, 5, 19); -INSERT INTO discoveryinfo VALUES (2465061, 5, 19); -INSERT INTO discoveryinfo VALUES (2465064, 5, 12); -INSERT INTO discoveryinfo VALUES (2465069, 5, 15); -INSERT INTO discoveryinfo VALUES (2465072, 5, 17); -INSERT INTO discoveryinfo VALUES (2927639, 5, 6); -INSERT INTO discoveryinfo VALUES (4335536, 5, 2); -INSERT INTO discoveryinfo VALUES (2280307, 6, 1); -INSERT INTO discoveryinfo VALUES (2280313, 6, 2); -INSERT INTO discoveryinfo VALUES (2280316, 6, 3); -INSERT INTO discoveryinfo VALUES (2280318, 6, 3); -INSERT INTO discoveryinfo VALUES (2280320, 6, 4); -INSERT INTO discoveryinfo VALUES (2280327, 6, 4); -INSERT INTO discoveryinfo VALUES (2280330, 6, 4); -INSERT INTO discoveryinfo VALUES (2280333, 6, 5); -INSERT INTO discoveryinfo VALUES (2280347, 6, 5); -INSERT INTO discoveryinfo VALUES (2280351, 6, 5); -INSERT INTO discoveryinfo VALUES (2280358, 6, 5); -INSERT INTO discoveryinfo VALUES (2280362, 6, 6); -INSERT INTO discoveryinfo VALUES (2280365, 6, 7); -INSERT INTO discoveryinfo VALUES (2280369, 6, 8); -INSERT INTO discoveryinfo VALUES (2280371, 6, 8); -INSERT INTO discoveryinfo VALUES (2280375, 6, 15); -INSERT INTO discoveryinfo VALUES (2280380, 6, 16); -INSERT INTO discoveryinfo VALUES (2280383, 6, 13); -INSERT INTO discoveryinfo VALUES (2280388, 6, 13); -INSERT INTO discoveryinfo VALUES (2280391, 6, 14); -INSERT INTO discoveryinfo VALUES (2280395, 6, 14); -INSERT INTO discoveryinfo VALUES (2280399, 6, 14); -INSERT INTO discoveryinfo VALUES (2280400, 6, 9); -INSERT INTO discoveryinfo VALUES (2280402, 6, 10); -INSERT INTO discoveryinfo VALUES (2280403, 6, 10); -INSERT INTO discoveryinfo VALUES (2280404, 6, 12); -INSERT INTO discoveryinfo VALUES (2280406, 6, 11); -INSERT INTO discoveryinfo VALUES (2299601, 6, 6); -INSERT INTO discoveryinfo VALUES (2351856, 6, 4); -INSERT INTO discoveryinfo VALUES (2351858, 6, 4); -INSERT INTO discoveryinfo VALUES (2351870, 6, 4); -INSERT INTO discoveryinfo VALUES (2381026, 6, 4); -INSERT INTO discoveryinfo VALUES (2381027, 6, 4); -INSERT INTO discoveryinfo VALUES (2381028, 6, 4); -INSERT INTO discoveryinfo VALUES (2381029, 6, 10); -INSERT INTO discoveryinfo VALUES (2381030, 6, 8); -INSERT INTO discoveryinfo VALUES (2381031, 6, 6); -INSERT INTO discoveryinfo VALUES (2381032, 6, 7); -INSERT INTO discoveryinfo VALUES (2381033, 6, 7); -INSERT INTO discoveryinfo VALUES (2381034, 6, 7); -INSERT INTO discoveryinfo VALUES (2381035, 6, 7); -INSERT INTO discoveryinfo VALUES (2381036, 6, 7); -INSERT INTO discoveryinfo VALUES (2381037, 6, 7); -INSERT INTO discoveryinfo VALUES (2381038, 6, 7); -INSERT INTO discoveryinfo VALUES (2381039, 6, 13); -INSERT INTO discoveryinfo VALUES (2381040, 6, 13); -INSERT INTO discoveryinfo VALUES (2381041, 6, 7); -INSERT INTO discoveryinfo VALUES (2381044, 6, 4); -INSERT INTO discoveryinfo VALUES (2402056, 6, 4); -INSERT INTO discoveryinfo VALUES (2402057, 6, 1); -INSERT INTO discoveryinfo VALUES (2402270, 6, 4); -INSERT INTO discoveryinfo VALUES (2422825, 6, 4); -INSERT INTO discoveryinfo VALUES (2453661, 6, 4); -INSERT INTO discoveryinfo VALUES (2563798, 6, 4); -INSERT INTO discoveryinfo VALUES (2280451, 6, 12); -INSERT INTO discoveryinfo VALUES (2280456, 6, 5); -INSERT INTO discoveryinfo VALUES (2280458, 6, 8); -INSERT INTO discoveryinfo VALUES (2280461, 6, 8); -INSERT INTO discoveryinfo VALUES (2280464, 6, 8); -INSERT INTO discoveryinfo VALUES (2280467, 6, 8); -INSERT INTO discoveryinfo VALUES (2563790, 6, 5); -INSERT INTO discoveryinfo VALUES (2563804, 6, 12); -INSERT INTO discoveryinfo VALUES (2264614, 7, 1); -INSERT INTO discoveryinfo VALUES (2264620, 7, 1); -INSERT INTO discoveryinfo VALUES (2264625, 7, 1); -INSERT INTO discoveryinfo VALUES (2264626, 7, 2); -INSERT INTO discoveryinfo VALUES (2264633, 7, 3); -INSERT INTO discoveryinfo VALUES (2264634, 7, 3); -INSERT INTO discoveryinfo VALUES (2264636, 7, 3); -INSERT INTO discoveryinfo VALUES (2264637, 7, 3); -INSERT INTO discoveryinfo VALUES (2264640, 7, 10); -INSERT INTO discoveryinfo VALUES (2264642, 7, 10); -INSERT INTO discoveryinfo VALUES (2264643, 7, 10); -INSERT INTO discoveryinfo VALUES (2264645, 7, 10); -INSERT INTO discoveryinfo VALUES (2264649, 7, 11); -INSERT INTO discoveryinfo VALUES (2264653, 7, 12); -INSERT INTO discoveryinfo VALUES (2264660, 7, 12); -INSERT INTO discoveryinfo VALUES (2264662, 7, 13); -INSERT INTO discoveryinfo VALUES (2264669, 7, 2); -INSERT INTO discoveryinfo VALUES (2264671, 7, 14); -INSERT INTO discoveryinfo VALUES (2264672, 7, 15); -INSERT INTO discoveryinfo VALUES (2264673, 7, 16); -INSERT INTO discoveryinfo VALUES (2264674, 7, 4); -INSERT INTO discoveryinfo VALUES (2264675, 7, 5); -INSERT INTO discoveryinfo VALUES (2264676, 7, 6); -INSERT INTO discoveryinfo VALUES (2264680, 7, 7); -INSERT INTO discoveryinfo VALUES (2264682, 7, 8); -INSERT INTO discoveryinfo VALUES (2264685, 7, 9); -INSERT INTO discoveryinfo VALUES (2453677, 7, 1); -INSERT INTO discoveryinfo VALUES (2453678, 7, 13); -INSERT INTO discoveryinfo VALUES (2453679, 7, 15); -INSERT INTO discoveryinfo VALUES (2453680, 7, 15); -INSERT INTO discoveryinfo VALUES (2453681, 7, 13); -INSERT INTO discoveryinfo VALUES (2453682, 7, 13); -INSERT INTO discoveryinfo VALUES (2453684, 7, 9); -INSERT INTO discoveryinfo VALUES (2453685, 7, 5); -INSERT INTO discoveryinfo VALUES (2453686, 7, 8); -INSERT INTO discoveryinfo VALUES (2453687, 7, 8); -INSERT INTO discoveryinfo VALUES (2453688, 7, 8); -INSERT INTO discoveryinfo VALUES (2453689, 7, 8); -INSERT INTO discoveryinfo VALUES (2453690, 7, 8); -INSERT INTO discoveryinfo VALUES (4334885, 7, 7); -INSERT INTO discoveryinfo VALUES (4334886, 7, 16); -INSERT INTO discoveryinfo VALUES (4889986, 7, 10); -INSERT INTO discoveryinfo VALUES (4889987, 7, 3); -INSERT INTO discoveryinfo VALUES (4889991, 7, 3); -INSERT INTO discoveryinfo VALUES (4889995, 7, 3); -INSERT INTO discoveryinfo VALUES (2264705, 7, 1); -INSERT INTO discoveryinfo VALUES (2264721, 7, 1); -INSERT INTO discoveryinfo VALUES (2264728, 7, 1); -INSERT INTO discoveryinfo VALUES (2264731, 7, 3); -INSERT INTO discoveryinfo VALUES (2264736, 7, 8); -INSERT INTO discoveryinfo VALUES (2264772, 7, 16); -INSERT INTO discoveryinfo VALUES (2264773, 7, 7); -INSERT INTO discoveryinfo VALUES (2264774, 7, 11); -INSERT INTO discoveryinfo VALUES (2264775, 7, 11); -INSERT INTO discoveryinfo VALUES (2264791, 7, 15); -INSERT INTO discoveryinfo VALUES (2264796, 7, 3); -INSERT INTO discoveryinfo VALUES (2264798, 7, 16); -INSERT INTO discoveryinfo VALUES (2264807, 7, 16); -INSERT INTO discoveryinfo VALUES (2341847, 7, 16); -INSERT INTO discoveryinfo VALUES (2341851, 7, 15); -INSERT INTO discoveryinfo VALUES (2341870, 7, 16); -INSERT INTO discoveryinfo VALUES (2341892, 7, 16); -INSERT INTO discoveryinfo VALUES (2499345, 7, 1); -INSERT INTO discoveryinfo VALUES (2563882, 7, 1); -INSERT INTO discoveryinfo VALUES (3899968, 7, 15); -INSERT INTO discoveryinfo VALUES (2065858, 9, 1); -INSERT INTO discoveryinfo VALUES (2065859, 9, 6); -INSERT INTO discoveryinfo VALUES (2065860, 9, 6); -INSERT INTO discoveryinfo VALUES (2065861, 9, 3); -INSERT INTO discoveryinfo VALUES (2065862, 9, 4); -INSERT INTO discoveryinfo VALUES (2065864, 9, 3); -INSERT INTO discoveryinfo VALUES (2065865, 9, 3); -INSERT INTO discoveryinfo VALUES (2065866, 9, 4); -INSERT INTO discoveryinfo VALUES (2065867, 9, 4); -INSERT INTO discoveryinfo VALUES (2065868, 9, 4); -INSERT INTO discoveryinfo VALUES (2065869, 9, 4); -INSERT INTO discoveryinfo VALUES (2065871, 9, 2); -INSERT INTO discoveryinfo VALUES (2065872, 9, 7); -INSERT INTO discoveryinfo VALUES (2065873, 9, 9); -INSERT INTO discoveryinfo VALUES (2065875, 9, 9); -INSERT INTO discoveryinfo VALUES (2065877, 9, 5); -INSERT INTO discoveryinfo VALUES (2065879, 9, 5); -INSERT INTO discoveryinfo VALUES (2065880, 9, 5); -INSERT INTO discoveryinfo VALUES (2065881, 9, 8); -INSERT INTO discoveryinfo VALUES (2065882, 9, 8); -INSERT INTO discoveryinfo VALUES (2065883, 9, 8); -INSERT INTO discoveryinfo VALUES (2112183, 9, 6); -INSERT INTO discoveryinfo VALUES (2112184, 9, 6); -INSERT INTO discoveryinfo VALUES (2112185, 9, 5); -INSERT INTO discoveryinfo VALUES (2112186, 9, 7); -INSERT INTO discoveryinfo VALUES (3746497, 9, 1); -INSERT INTO discoveryinfo VALUES (3746504, 9, 10); -INSERT INTO discoveryinfo VALUES (3746513, 9, 1); -INSERT INTO discoveryinfo VALUES (3746515, 9, 11); -INSERT INTO discoveryinfo VALUES (3746546, 9, 7); -INSERT INTO discoveryinfo VALUES (3746643, 9, 8); -INSERT INTO discoveryinfo VALUES (3746648, 9, 12); -INSERT INTO discoveryinfo VALUES (3746649, 9, 13); -INSERT INTO discoveryinfo VALUES (3746650, 9, 13); -INSERT INTO discoveryinfo VALUES (3762948, 9, 7); -INSERT INTO discoveryinfo VALUES (3762950, 9, 2); -INSERT INTO discoveryinfo VALUES (3784410, 9, 1); -INSERT INTO discoveryinfo VALUES (2065870, 9, 4); -INSERT INTO discoveryinfo VALUES (3784455, 9, 11); -INSERT INTO discoveryinfo VALUES (3784508, 9, 2); -INSERT INTO discoveryinfo VALUES (3784514, 9, 2); -INSERT INTO discoveryinfo VALUES (3784517, 9, 2); -INSERT INTO discoveryinfo VALUES (3784520, 9, 2); -INSERT INTO discoveryinfo VALUES (3784522, 9, 2); -INSERT INTO discoveryinfo VALUES (3784537, 9, 8); -INSERT INTO discoveryinfo VALUES (3784563, 9, 7); -INSERT INTO discoveryinfo VALUES (3784565, 9, 7); -INSERT INTO discoveryinfo VALUES (6894233, 397, 1); -INSERT INTO discoveryinfo VALUES (6894239, 397, 2); -INSERT INTO discoveryinfo VALUES (6894242, 397, 3); -INSERT INTO discoveryinfo VALUES (6894246, 397, 3); -INSERT INTO discoveryinfo VALUES (6894288, 397, 4); -INSERT INTO discoveryinfo VALUES (6894292, 397, 5); -INSERT INTO discoveryinfo VALUES (6894295, 397, 5); -INSERT INTO discoveryinfo VALUES (6894320, 397, 6); -INSERT INTO discoveryinfo VALUES (6894335, 397, 6); -INSERT INTO discoveryinfo VALUES (6894338, 397, 7); -INSERT INTO discoveryinfo VALUES (6894340, 397, 7); -INSERT INTO discoveryinfo VALUES (6894342, 397, 7); -INSERT INTO discoveryinfo VALUES (6894344, 397, 7); -INSERT INTO discoveryinfo VALUES (6894347, 397, 8); -INSERT INTO discoveryinfo VALUES (6894348, 397, 8); -INSERT INTO discoveryinfo VALUES (6894365, 397, 9); -INSERT INTO discoveryinfo VALUES (6894377, 397, 9); -INSERT INTO discoveryinfo VALUES (6894416, 397, 10); -INSERT INTO discoveryinfo VALUES (6894417, 397, 11); -INSERT INTO discoveryinfo VALUES (6894419, 397, 11); -INSERT INTO discoveryinfo VALUES (6894420, 397, 12); -INSERT INTO discoveryinfo VALUES (6798894, 362, 1); -INSERT INTO discoveryinfo VALUES (6798907, 362, 2); -INSERT INTO discoveryinfo VALUES (6798908, 362, 3); -INSERT INTO discoveryinfo VALUES (6798909, 362, 4); -INSERT INTO discoveryinfo VALUES (6798910, 362, 5); -INSERT INTO discoveryinfo VALUES (6798912, 362, 5); -INSERT INTO discoveryinfo VALUES (6798913, 363, 6); -INSERT INTO discoveryinfo VALUES (6798914, 363, 6); -INSERT INTO discoveryinfo VALUES (6798915, 363, 7); -INSERT INTO discoveryinfo VALUES (6798916, 363, 7); -INSERT INTO discoveryinfo VALUES (6798948, 363, 8); -INSERT INTO discoveryinfo VALUES (6798950, 363, 8); -INSERT INTO discoveryinfo VALUES (6798952, 363, 9); -INSERT INTO discoveryinfo VALUES (6798953, 363, 9); -INSERT INTO discoveryinfo VALUES (6798954, 363, 10); -INSERT INTO discoveryinfo VALUES (6798955, 363, 10); -INSERT INTO discoveryinfo VALUES (6798961, 363, 11); -INSERT INTO discoveryinfo VALUES (6798962, 363, 11); -INSERT INTO discoveryinfo VALUES (6798963, 363, 12); -INSERT INTO discoveryinfo VALUES (6798964, 363, 13); -INSERT INTO discoveryinfo VALUES (7080823, 413, 1); -INSERT INTO discoveryinfo VALUES (7081090, 413, 2); -INSERT INTO discoveryinfo VALUES (7081091, 413, 3); -INSERT INTO discoveryinfo VALUES (7081093, 413, 4); -INSERT INTO discoveryinfo VALUES (7081094, 413, 4); -INSERT INTO discoveryinfo VALUES (7081096, 413, 5); -INSERT INTO discoveryinfo VALUES (7081097, 413, 5); -INSERT INTO discoveryinfo VALUES (7082809, 413, 6); -INSERT INTO discoveryinfo VALUES (7082911, 413, 6); -INSERT INTO discoveryinfo VALUES (7082913, 413, 7); -INSERT INTO discoveryinfo VALUES (7082919, 413, 8); -INSERT INTO discoveryinfo VALUES (7082925, 413, 9); -INSERT INTO discoveryinfo VALUES (7082926, 413, 9); -INSERT INTO discoveryinfo VALUES (7082940, 415, 10); -INSERT INTO discoveryinfo VALUES (7082944, 415, 10); -INSERT INTO discoveryinfo VALUES (7082945, 415, 12); -INSERT INTO discoveryinfo VALUES (7082948, 415, 13); -INSERT INTO discoveryinfo VALUES (7082952, 415, 14); -INSERT INTO discoveryinfo VALUES (7082957, 415, 15); -INSERT INTO discoveryinfo VALUES (7082960, 415, 15); -INSERT INTO discoveryinfo VALUES (7171388, 413, 11); -INSERT INTO discoveryinfo VALUES (6987034, 367, 1); -INSERT INTO discoveryinfo VALUES (6987035, 367, 1); -INSERT INTO discoveryinfo VALUES (6987036, 367, 1); -INSERT INTO discoveryinfo VALUES (6987037, 367, 2); -INSERT INTO discoveryinfo VALUES (6987038, 367, 2); -INSERT INTO discoveryinfo VALUES (6987039, 367, 2); -INSERT INTO discoveryinfo VALUES (6987040, 367, 2); -INSERT INTO discoveryinfo VALUES (6987041, 367, 3); -INSERT INTO discoveryinfo VALUES (6987042, 367, 3); -INSERT INTO discoveryinfo VALUES (6987043, 367, 3); -INSERT INTO discoveryinfo VALUES (6987044, 367, 4); -INSERT INTO discoveryinfo VALUES (6987045, 367, 4); -INSERT INTO discoveryinfo VALUES (6987046, 367, 4); -INSERT INTO discoveryinfo VALUES (6987047, 367, 5); -INSERT INTO discoveryinfo VALUES (6987048, 367, 5); -INSERT INTO discoveryinfo VALUES (6987049, 367, 5); -INSERT INTO discoveryinfo VALUES (6987050, 367, 6); -INSERT INTO discoveryinfo VALUES (6987051, 367, 6); -INSERT INTO discoveryinfo VALUES (6987052, 367, 6); -INSERT INTO discoveryinfo VALUES (6987053, 367, 7); -INSERT INTO discoveryinfo VALUES (6987054, 367, 7); -INSERT INTO discoveryinfo VALUES (6987055, 367, 7); -INSERT INTO discoveryinfo VALUES (6987056, 367, 8); -INSERT INTO discoveryinfo VALUES (6987057, 367, 8); -INSERT INTO discoveryinfo VALUES (6987058, 367, 8); -INSERT INTO discoveryinfo VALUES (6987059, 367, 9); -INSERT INTO discoveryinfo VALUES (6987060, 367, 10); -INSERT INTO discoveryinfo VALUES (6987061, 367, 11); -INSERT INTO discoveryinfo VALUES (6987062, 367, 11); -INSERT INTO discoveryinfo VALUES (6987063, 367, 11); -INSERT INTO discoveryinfo VALUES (6987064, 367, 11); -INSERT INTO discoveryinfo VALUES (6987065, 367, 11); -INSERT INTO discoveryinfo VALUES (6987066, 367, 11); -INSERT INTO discoveryinfo VALUES (6987067, 367, 25); -INSERT INTO discoveryinfo VALUES (6987068, 367, 25); -INSERT INTO discoveryinfo VALUES (6987069, 367, 25); -INSERT INTO discoveryinfo VALUES (6987070, 367, 13); -INSERT INTO discoveryinfo VALUES (6987071, 367, 13); -INSERT INTO discoveryinfo VALUES (6987072, 367, 13); -INSERT INTO discoveryinfo VALUES (6987073, 367, 12); -INSERT INTO discoveryinfo VALUES (6987074, 367, 14); -INSERT INTO discoveryinfo VALUES (6987075, 367, 14); -INSERT INTO discoveryinfo VALUES (6987076, 367, 15); -INSERT INTO discoveryinfo VALUES (6987077, 367, 15); -INSERT INTO discoveryinfo VALUES (6987078, 367, 15); -INSERT INTO discoveryinfo VALUES (6987079, 367, 24); -INSERT INTO discoveryinfo VALUES (6987080, 367, 24); -INSERT INTO discoveryinfo VALUES (6987081, 367, 25); -INSERT INTO discoveryinfo VALUES (6987082, 367, 26); -INSERT INTO discoveryinfo VALUES (6987083, 367, 27); -INSERT INTO discoveryinfo VALUES (6987084, 367, 27); -INSERT INTO discoveryinfo VALUES (6987085, 367, 27); -INSERT INTO discoveryinfo VALUES (6987086, 367, 27); -INSERT INTO discoveryinfo VALUES (6987087, 367, 28); -INSERT INTO discoveryinfo VALUES (6987088, 367, 28); -INSERT INTO discoveryinfo VALUES (6987089, 367, 28); -INSERT INTO discoveryinfo VALUES (6987090, 367, 28); -INSERT INTO discoveryinfo VALUES (6987091, 367, 28); -INSERT INTO discoveryinfo VALUES (6987092, 367, 30); -INSERT INTO discoveryinfo VALUES (6987093, 367, 30); -INSERT INTO discoveryinfo VALUES (6987094, 367, 30); -INSERT INTO discoveryinfo VALUES (6987095, 367, 29); -INSERT INTO discoveryinfo VALUES (6987096, 367, 23); -INSERT INTO discoveryinfo VALUES (6987097, 367, 23); -INSERT INTO discoveryinfo VALUES (6987098, 367, 16); -INSERT INTO discoveryinfo VALUES (6987099, 367, 16); -INSERT INTO discoveryinfo VALUES (6987100, 367, 16); -INSERT INTO discoveryinfo VALUES (6987101, 367, 17); -INSERT INTO discoveryinfo VALUES (6987102, 367, 17); -INSERT INTO discoveryinfo VALUES (6987103, 367, 22); -INSERT INTO discoveryinfo VALUES (6987104, 367, 22); -INSERT INTO discoveryinfo VALUES (6987105, 367, 22); -INSERT INTO discoveryinfo VALUES (6987106, 367, 21); -INSERT INTO discoveryinfo VALUES (6987107, 367, 21); -INSERT INTO discoveryinfo VALUES (6987108, 367, 18); -INSERT INTO discoveryinfo VALUES (6987109, 367, 18); -INSERT INTO discoveryinfo VALUES (6987110, 367, 19); -INSERT INTO discoveryinfo VALUES (6987111, 367, 20); -INSERT INTO discoveryinfo VALUES (6987112, 367, 10); -INSERT INTO discoveryinfo VALUES (6987113, 367, 10); -INSERT INTO discoveryinfo VALUES (6989593, 368, 1); -INSERT INTO discoveryinfo VALUES (6989594, 368, 1); -INSERT INTO discoveryinfo VALUES (6989595, 368, 1); -INSERT INTO discoveryinfo VALUES (6989596, 368, 1); -INSERT INTO discoveryinfo VALUES (6989597, 368, 3); -INSERT INTO discoveryinfo VALUES (6989598, 368, 3); -INSERT INTO discoveryinfo VALUES (6989599, 368, 2); -INSERT INTO discoveryinfo VALUES (6989600, 368, 2); -INSERT INTO discoveryinfo VALUES (6989601, 368, 2); -INSERT INTO discoveryinfo VALUES (6989602, 368, 2); -INSERT INTO discoveryinfo VALUES (6989603, 368, 14); -INSERT INTO discoveryinfo VALUES (6989604, 368, 14); -INSERT INTO discoveryinfo VALUES (6989605, 368, 14); -INSERT INTO discoveryinfo VALUES (6989606, 368, 15); -INSERT INTO discoveryinfo VALUES (6989607, 368, 15); -INSERT INTO discoveryinfo VALUES (6989608, 368, 15); -INSERT INTO discoveryinfo VALUES (6989609, 368, 17); -INSERT INTO discoveryinfo VALUES (6989610, 368, 17); -INSERT INTO discoveryinfo VALUES (6989611, 368, 17); -INSERT INTO discoveryinfo VALUES (6989612, 368, 16); -INSERT INTO discoveryinfo VALUES (6989613, 368, 16); -INSERT INTO discoveryinfo VALUES (6989614, 368, 16); -INSERT INTO discoveryinfo VALUES (6989615, 368, 16); -INSERT INTO discoveryinfo VALUES (6989616, 368, 16); -INSERT INTO discoveryinfo VALUES (6989617, 368, 18); -INSERT INTO discoveryinfo VALUES (6989618, 368, 18); -INSERT INTO discoveryinfo VALUES (6989619, 368, 18); -INSERT INTO discoveryinfo VALUES (6989620, 368, 18); -INSERT INTO discoveryinfo VALUES (6989621, 368, 18); -INSERT INTO discoveryinfo VALUES (6989622, 368, 30); -INSERT INTO discoveryinfo VALUES (6989623, 368, 30); -INSERT INTO discoveryinfo VALUES (6989624, 368, 30); -INSERT INTO discoveryinfo VALUES (6989625, 368, 30); -INSERT INTO discoveryinfo VALUES (6989626, 368, 29); -INSERT INTO discoveryinfo VALUES (6989627, 368, 29); -INSERT INTO discoveryinfo VALUES (6989628, 368, 29); -INSERT INTO discoveryinfo VALUES (6989629, 368, 31); -INSERT INTO discoveryinfo VALUES (6989630, 368, 28); -INSERT INTO discoveryinfo VALUES (6989631, 368, 28); -INSERT INTO discoveryinfo VALUES (6989632, 368, 19); -INSERT INTO discoveryinfo VALUES (6989633, 368, 19); -INSERT INTO discoveryinfo VALUES (6989634, 368, 20); -INSERT INTO discoveryinfo VALUES (6989635, 368, 20); -INSERT INTO discoveryinfo VALUES (6989636, 368, 20); -INSERT INTO discoveryinfo VALUES (6989637, 368, 20); -INSERT INTO discoveryinfo VALUES (6989638, 368, 27); -INSERT INTO discoveryinfo VALUES (6989639, 368, 27); -INSERT INTO discoveryinfo VALUES (6989640, 368, 27); -INSERT INTO discoveryinfo VALUES (6989641, 368, 26); -INSERT INTO discoveryinfo VALUES (6989642, 368, 26); -INSERT INTO discoveryinfo VALUES (6989643, 368, 24); -INSERT INTO discoveryinfo VALUES (6989644, 368, 24); -INSERT INTO discoveryinfo VALUES (6989645, 368, 24); -INSERT INTO discoveryinfo VALUES (6989646, 368, 25); -INSERT INTO discoveryinfo VALUES (6989647, 368, 25); -INSERT INTO discoveryinfo VALUES (6989648, 368, 25); -INSERT INTO discoveryinfo VALUES (6989649, 368, 25); -INSERT INTO discoveryinfo VALUES (6989650, 368, 25); -INSERT INTO discoveryinfo VALUES (6989651, 368, 23); -INSERT INTO discoveryinfo VALUES (6989652, 368, 21); -INSERT INTO discoveryinfo VALUES (6989653, 368, 21); -INSERT INTO discoveryinfo VALUES (6989654, 368, 21); -INSERT INTO discoveryinfo VALUES (6989655, 368, 21); -INSERT INTO discoveryinfo VALUES (6989656, 368, 11); -INSERT INTO discoveryinfo VALUES (6989657, 368, 11); -INSERT INTO discoveryinfo VALUES (6989658, 368, 11); -INSERT INTO discoveryinfo VALUES (6989659, 368, 11); -INSERT INTO discoveryinfo VALUES (6989660, 368, 11); -INSERT INTO discoveryinfo VALUES (6989661, 368, 11); -INSERT INTO discoveryinfo VALUES (6989662, 368, 11); -INSERT INTO discoveryinfo VALUES (6989663, 368, 13); -INSERT INTO discoveryinfo VALUES (6989664, 368, 13); -INSERT INTO discoveryinfo VALUES (6989665, 368, 12); -INSERT INTO discoveryinfo VALUES (6989666, 368, 4); -INSERT INTO discoveryinfo VALUES (6989667, 368, 4); -INSERT INTO discoveryinfo VALUES (6989668, 368, 4); -INSERT INTO discoveryinfo VALUES (6989669, 368, 5); -INSERT INTO discoveryinfo VALUES (6989670, 368, 5); -INSERT INTO discoveryinfo VALUES (6989671, 368, 5); -INSERT INTO discoveryinfo VALUES (6989672, 368, 10); -INSERT INTO discoveryinfo VALUES (6989673, 368, 10); -INSERT INTO discoveryinfo VALUES (6989674, 368, 10); -INSERT INTO discoveryinfo VALUES (6989675, 368, 22); -INSERT INTO discoveryinfo VALUES (6989676, 368, 22); -INSERT INTO discoveryinfo VALUES (6989677, 368, 22); -INSERT INTO discoveryinfo VALUES (6989678, 368, 9); -INSERT INTO discoveryinfo VALUES (6989679, 368, 9); -INSERT INTO discoveryinfo VALUES (6989680, 368, 9); -INSERT INTO discoveryinfo VALUES (6989681, 368, 9); -INSERT INTO discoveryinfo VALUES (6989682, 368, 8); -INSERT INTO discoveryinfo VALUES (6989683, 368, 7); -INSERT INTO discoveryinfo VALUES (6989684, 368, 7); -INSERT INTO discoveryinfo VALUES (6989685, 368, 6); -INSERT INTO discoveryinfo VALUES (6998684, 369, 1); -INSERT INTO discoveryinfo VALUES (6998685, 369, 1); -INSERT INTO discoveryinfo VALUES (6998686, 369, 1); -INSERT INTO discoveryinfo VALUES (6998687, 369, 1); -INSERT INTO discoveryinfo VALUES (6998688, 369, 1); -INSERT INTO discoveryinfo VALUES (6998689, 369, 2); -INSERT INTO discoveryinfo VALUES (6998690, 369, 2); -INSERT INTO discoveryinfo VALUES (6998691, 369, 2); -INSERT INTO discoveryinfo VALUES (6998692, 369, 2); -INSERT INTO discoveryinfo VALUES (6998693, 369, 2); -INSERT INTO discoveryinfo VALUES (6998694, 369, 2); -INSERT INTO discoveryinfo VALUES (6998695, 369, 3); -INSERT INTO discoveryinfo VALUES (6998696, 369, 3); -INSERT INTO discoveryinfo VALUES (6998697, 369, 3); -INSERT INTO discoveryinfo VALUES (6998698, 369, 3); -INSERT INTO discoveryinfo VALUES (6998699, 369, 3); -INSERT INTO discoveryinfo VALUES (6998700, 369, 4); -INSERT INTO discoveryinfo VALUES (6998701, 369, 4); -INSERT INTO discoveryinfo VALUES (6998702, 369, 4); -INSERT INTO discoveryinfo VALUES (6998703, 369, 4); -INSERT INTO discoveryinfo VALUES (6998704, 369, 5); -INSERT INTO discoveryinfo VALUES (6998705, 369, 5); -INSERT INTO discoveryinfo VALUES (6998706, 369, 5); -INSERT INTO discoveryinfo VALUES (6998707, 369, 5); -INSERT INTO discoveryinfo VALUES (6998708, 369, 6); -INSERT INTO discoveryinfo VALUES (6998709, 369, 6); -INSERT INTO discoveryinfo VALUES (6998710, 369, 6); -INSERT INTO discoveryinfo VALUES (6998711, 369, 6); -INSERT INTO discoveryinfo VALUES (6998712, 369, 6); -INSERT INTO discoveryinfo VALUES (6998713, 369, 7); -INSERT INTO discoveryinfo VALUES (6998714, 369, 7); -INSERT INTO discoveryinfo VALUES (6998715, 369, 7); -INSERT INTO discoveryinfo VALUES (6998716, 369, 7); -INSERT INTO discoveryinfo VALUES (6998717, 369, 20); -INSERT INTO discoveryinfo VALUES (6998718, 369, 20); -INSERT INTO discoveryinfo VALUES (6998719, 369, 20); -INSERT INTO discoveryinfo VALUES (6998720, 369, 20); -INSERT INTO discoveryinfo VALUES (6998721, 369, 20); -INSERT INTO discoveryinfo VALUES (6998722, 369, 19); -INSERT INTO discoveryinfo VALUES (6998723, 369, 19); -INSERT INTO discoveryinfo VALUES (6998724, 369, 19); -INSERT INTO discoveryinfo VALUES (6998725, 369, 19); -INSERT INTO discoveryinfo VALUES (6998726, 369, 19); -INSERT INTO discoveryinfo VALUES (6998727, 369, 19); -INSERT INTO discoveryinfo VALUES (6998728, 369, 21); -INSERT INTO discoveryinfo VALUES (6998729, 369, 21); -INSERT INTO discoveryinfo VALUES (6998730, 369, 21); -INSERT INTO discoveryinfo VALUES (6998731, 369, 21); -INSERT INTO discoveryinfo VALUES (6998732, 369, 21); -INSERT INTO discoveryinfo VALUES (6998733, 369, 21); -INSERT INTO discoveryinfo VALUES (6998734, 369, 21); -INSERT INTO discoveryinfo VALUES (6998735, 369, 31); -INSERT INTO discoveryinfo VALUES (6998736, 369, 31); -INSERT INTO discoveryinfo VALUES (6998737, 369, 30); -INSERT INTO discoveryinfo VALUES (6998738, 369, 30); -INSERT INTO discoveryinfo VALUES (6998739, 369, 30); -INSERT INTO discoveryinfo VALUES (6998740, 369, 29); -INSERT INTO discoveryinfo VALUES (6998741, 369, 28); -INSERT INTO discoveryinfo VALUES (6998742, 369, 28); -INSERT INTO discoveryinfo VALUES (6998743, 369, 28); -INSERT INTO discoveryinfo VALUES (6998744, 369, 28); -INSERT INTO discoveryinfo VALUES (6998745, 369, 28); -INSERT INTO discoveryinfo VALUES (6998746, 369, 28); -INSERT INTO discoveryinfo VALUES (6998747, 369, 28); -INSERT INTO discoveryinfo VALUES (6998748, 369, 28); -INSERT INTO discoveryinfo VALUES (6998749, 369, 28); -INSERT INTO discoveryinfo VALUES (6998750, 369, 28); -INSERT INTO discoveryinfo VALUES (6998751, 369, 27); -INSERT INTO discoveryinfo VALUES (6998752, 369, 27); -INSERT INTO discoveryinfo VALUES (6998753, 369, 27); -INSERT INTO discoveryinfo VALUES (6998754, 369, 26); -INSERT INTO discoveryinfo VALUES (6998755, 369, 26); -INSERT INTO discoveryinfo VALUES (6998756, 369, 26); -INSERT INTO discoveryinfo VALUES (6998757, 369, 25); -INSERT INTO discoveryinfo VALUES (6998758, 369, 25); -INSERT INTO discoveryinfo VALUES (6998759, 369, 25); -INSERT INTO discoveryinfo VALUES (6998760, 369, 14); -INSERT INTO discoveryinfo VALUES (6998761, 369, 14); -INSERT INTO discoveryinfo VALUES (6998762, 369, 14); -INSERT INTO discoveryinfo VALUES (6998763, 369, 14); -INSERT INTO discoveryinfo VALUES (6998764, 369, 14); -INSERT INTO discoveryinfo VALUES (6998765, 369, 15); -INSERT INTO discoveryinfo VALUES (6998766, 369, 15); -INSERT INTO discoveryinfo VALUES (6998767, 369, 15); -INSERT INTO discoveryinfo VALUES (6998768, 369, 15); -INSERT INTO discoveryinfo VALUES (6998769, 369, 13); -INSERT INTO discoveryinfo VALUES (6998770, 369, 13); -INSERT INTO discoveryinfo VALUES (6998771, 369, 13); -INSERT INTO discoveryinfo VALUES (6998772, 369, 12); -INSERT INTO discoveryinfo VALUES (6998773, 369, 12); -INSERT INTO discoveryinfo VALUES (6998774, 369, 12); -INSERT INTO discoveryinfo VALUES (6998775, 369, 12); -INSERT INTO discoveryinfo VALUES (6998776, 369, 12); -INSERT INTO discoveryinfo VALUES (6998777, 369, 11); -INSERT INTO discoveryinfo VALUES (6998778, 369, 11); -INSERT INTO discoveryinfo VALUES (6998779, 369, 10); -INSERT INTO discoveryinfo VALUES (6998780, 369, 10); -INSERT INTO discoveryinfo VALUES (6998781, 369, 10); -INSERT INTO discoveryinfo VALUES (6998782, 369, 10); -INSERT INTO discoveryinfo VALUES (6998783, 369, 9); -INSERT INTO discoveryinfo VALUES (6998784, 369, 9); -INSERT INTO discoveryinfo VALUES (6998785, 369, 9); -INSERT INTO discoveryinfo VALUES (6998786, 369, 8); -INSERT INTO discoveryinfo VALUES (6998787, 369, 8); -INSERT INTO discoveryinfo VALUES (6998788, 369, 8); -INSERT INTO discoveryinfo VALUES (6998789, 369, 8); -INSERT INTO discoveryinfo VALUES (6998790, 369, 22); -INSERT INTO discoveryinfo VALUES (6998791, 369, 22); -INSERT INTO discoveryinfo VALUES (6998792, 369, 22); -INSERT INTO discoveryinfo VALUES (6998793, 369, 18); -INSERT INTO discoveryinfo VALUES (6998794, 369, 17); -INSERT INTO discoveryinfo VALUES (6998795, 369, 17); -INSERT INTO discoveryinfo VALUES (6998796, 369, 17); -INSERT INTO discoveryinfo VALUES (6998797, 369, 23); -INSERT INTO discoveryinfo VALUES (6998798, 369, 24); -INSERT INTO discoveryinfo VALUES (6998799, 369, 24); -INSERT INTO discoveryinfo VALUES (6998800, 369, 16); -INSERT INTO discoveryinfo VALUES (6998470, 369, 1); -INSERT INTO discoveryinfo VALUES (6998471, 369, 1); -INSERT INTO discoveryinfo VALUES (6998472, 369, 1); -INSERT INTO discoveryinfo VALUES (6998474, 369, 1); -INSERT INTO discoveryinfo VALUES (6998479, 369, 1); -INSERT INTO discoveryinfo VALUES (6998483, 369, 2); -INSERT INTO discoveryinfo VALUES (6998486, 369, 2); -INSERT INTO discoveryinfo VALUES (6998487, 369, 2); -INSERT INTO discoveryinfo VALUES (6998488, 369, 2); -INSERT INTO discoveryinfo VALUES (6998490, 369, 2); -INSERT INTO discoveryinfo VALUES (6998491, 369, 2); -INSERT INTO discoveryinfo VALUES (6998492, 369, 3); -INSERT INTO discoveryinfo VALUES (6998493, 369, 3); -INSERT INTO discoveryinfo VALUES (6998494, 369, 3); -INSERT INTO discoveryinfo VALUES (6998495, 369, 3); -INSERT INTO discoveryinfo VALUES (6998496, 369, 3); -INSERT INTO discoveryinfo VALUES (6998499, 369, 4); -INSERT INTO discoveryinfo VALUES (6998502, 369, 4); -INSERT INTO discoveryinfo VALUES (6998503, 369, 4); -INSERT INTO discoveryinfo VALUES (6998504, 369, 4); -INSERT INTO discoveryinfo VALUES (6998506, 369, 5); -INSERT INTO discoveryinfo VALUES (6998507, 369, 5); -INSERT INTO discoveryinfo VALUES (6998508, 369, 5); -INSERT INTO discoveryinfo VALUES (6998509, 369, 5); -INSERT INTO discoveryinfo VALUES (6998510, 369, 6); -INSERT INTO discoveryinfo VALUES (6998512, 369, 6); -INSERT INTO discoveryinfo VALUES (6998513, 369, 6); -INSERT INTO discoveryinfo VALUES (6998514, 369, 6); -INSERT INTO discoveryinfo VALUES (6998515, 369, 6); -INSERT INTO discoveryinfo VALUES (6998523, 369, 7); -INSERT INTO discoveryinfo VALUES (6998529, 369, 7); -INSERT INTO discoveryinfo VALUES (6998530, 369, 7); -INSERT INTO discoveryinfo VALUES (6998533, 369, 7); -INSERT INTO discoveryinfo VALUES (6998535, 369, 20); -INSERT INTO discoveryinfo VALUES (6998536, 369, 20); -INSERT INTO discoveryinfo VALUES (6998537, 369, 20); -INSERT INTO discoveryinfo VALUES (6998538, 369, 20); -INSERT INTO discoveryinfo VALUES (6998539, 369, 20); -INSERT INTO discoveryinfo VALUES (6998541, 369, 19); -INSERT INTO discoveryinfo VALUES (6998543, 369, 19); -INSERT INTO discoveryinfo VALUES (6998545, 369, 19); -INSERT INTO discoveryinfo VALUES (6998546, 369, 19); -INSERT INTO discoveryinfo VALUES (6998547, 369, 19); -INSERT INTO discoveryinfo VALUES (6998548, 369, 19); -INSERT INTO discoveryinfo VALUES (6998551, 369, 21); -INSERT INTO discoveryinfo VALUES (6998552, 369, 21); -INSERT INTO discoveryinfo VALUES (6998553, 369, 21); -INSERT INTO discoveryinfo VALUES (6998555, 369, 21); -INSERT INTO discoveryinfo VALUES (6998556, 369, 21); -INSERT INTO discoveryinfo VALUES (6998557, 369, 21); -INSERT INTO discoveryinfo VALUES (6998558, 369, 21); -INSERT INTO discoveryinfo VALUES (6998559, 369, 31); -INSERT INTO discoveryinfo VALUES (6998561, 369, 31); -INSERT INTO discoveryinfo VALUES (6998565, 369, 30); -INSERT INTO discoveryinfo VALUES (6998569, 369, 30); -INSERT INTO discoveryinfo VALUES (6998571, 369, 30); -INSERT INTO discoveryinfo VALUES (6998573, 369, 29); -INSERT INTO discoveryinfo VALUES (6998575, 369, 28); -INSERT INTO discoveryinfo VALUES (6998576, 369, 28); -INSERT INTO discoveryinfo VALUES (6998577, 369, 28); -INSERT INTO discoveryinfo VALUES (6998579, 369, 28); -INSERT INTO discoveryinfo VALUES (6998580, 369, 28); -INSERT INTO discoveryinfo VALUES (6998581, 369, 28); -INSERT INTO discoveryinfo VALUES (6998582, 369, 28); -INSERT INTO discoveryinfo VALUES (6998583, 369, 28); -INSERT INTO discoveryinfo VALUES (6998592, 369, 28); -INSERT INTO discoveryinfo VALUES (6998593, 369, 28); -INSERT INTO discoveryinfo VALUES (6998594, 369, 27); -INSERT INTO discoveryinfo VALUES (6998595, 369, 27); -INSERT INTO discoveryinfo VALUES (6998596, 369, 27); -INSERT INTO discoveryinfo VALUES (6998598, 369, 26); -INSERT INTO discoveryinfo VALUES (6998599, 369, 26); -INSERT INTO discoveryinfo VALUES (6998600, 369, 26); -INSERT INTO discoveryinfo VALUES (6998601, 369, 25); -INSERT INTO discoveryinfo VALUES (6998603, 369, 25); -INSERT INTO discoveryinfo VALUES (6998605, 369, 25); -INSERT INTO discoveryinfo VALUES (6998607, 369, 14); -INSERT INTO discoveryinfo VALUES (6998608, 369, 14); -INSERT INTO discoveryinfo VALUES (6998609, 369, 14); -INSERT INTO discoveryinfo VALUES (6998610, 369, 14); -INSERT INTO discoveryinfo VALUES (6998611, 369, 14); -INSERT INTO discoveryinfo VALUES (6998612, 369, 15); -INSERT INTO discoveryinfo VALUES (6998613, 369, 15); -INSERT INTO discoveryinfo VALUES (6998618, 369, 15); -INSERT INTO discoveryinfo VALUES (6998620, 369, 15); -INSERT INTO discoveryinfo VALUES (6998622, 369, 13); -INSERT INTO discoveryinfo VALUES (6998623, 369, 13); -INSERT INTO discoveryinfo VALUES (6998625, 369, 13); -INSERT INTO discoveryinfo VALUES (6998627, 369, 12); -INSERT INTO discoveryinfo VALUES (6998628, 369, 12); -INSERT INTO discoveryinfo VALUES (6998637, 369, 12); -INSERT INTO discoveryinfo VALUES (6998638, 369, 12); -INSERT INTO discoveryinfo VALUES (6998639, 369, 12); -INSERT INTO discoveryinfo VALUES (6998640, 369, 11); -INSERT INTO discoveryinfo VALUES (6998641, 369, 11); -INSERT INTO discoveryinfo VALUES (6998642, 369, 10); -INSERT INTO discoveryinfo VALUES (6998643, 369, 10); -INSERT INTO discoveryinfo VALUES (6998644, 369, 10); -INSERT INTO discoveryinfo VALUES (6998646, 369, 10); -INSERT INTO discoveryinfo VALUES (6998647, 369, 9); -INSERT INTO discoveryinfo VALUES (6998648, 369, 9); -INSERT INTO discoveryinfo VALUES (6998649, 369, 9); -INSERT INTO discoveryinfo VALUES (6998653, 369, 8); -INSERT INTO discoveryinfo VALUES (6998654, 369, 8); -INSERT INTO discoveryinfo VALUES (6998655, 369, 8); -INSERT INTO discoveryinfo VALUES (6998656, 369, 8); -INSERT INTO discoveryinfo VALUES (6998657, 369, 22); -INSERT INTO discoveryinfo VALUES (6998658, 369, 22); -INSERT INTO discoveryinfo VALUES (6998659, 369, 22); -INSERT INTO discoveryinfo VALUES (6998661, 369, 18); -INSERT INTO discoveryinfo VALUES (6998666, 369, 17); -INSERT INTO discoveryinfo VALUES (6998667, 369, 17); -INSERT INTO discoveryinfo VALUES (6998668, 369, 17); -INSERT INTO discoveryinfo VALUES (6998669, 369, 23); -INSERT INTO discoveryinfo VALUES (6998670, 369, 24); -INSERT INTO discoveryinfo VALUES (6998676, 369, 24); -INSERT INTO discoveryinfo VALUES (6998682, 369, 16); -INSERT INTO discoveryinfo VALUES (5680640, 201, 1); -INSERT INTO discoveryinfo VALUES (5680641, 201, 2); -INSERT INTO discoveryinfo VALUES (5680642, 201, 3); -INSERT INTO discoveryinfo VALUES (5680661, 201, 4); -INSERT INTO discoveryinfo VALUES (5680673, 202, 5); -INSERT INTO discoveryinfo VALUES (5680678, 202, 6); -INSERT INTO discoveryinfo VALUES (5680689, 202, 7); -INSERT INTO discoveryinfo VALUES (5680697, 201, 8); -INSERT INTO discoveryinfo VALUES (5681112, 201, 9); -INSERT INTO discoveryinfo VALUES (5681114, 201, 10); -INSERT INTO discoveryinfo VALUES (5681115, 201, 11); -INSERT INTO discoveryinfo VALUES (4303238, 71, 2); -INSERT INTO discoveryinfo VALUES (4284655, 71, 1); -INSERT INTO discoveryinfo VALUES (4317176, 71, 3); -INSERT INTO discoveryinfo VALUES (4284679, 71, 3); -INSERT INTO discoveryinfo VALUES (4317154, 71, 4); -INSERT INTO discoveryinfo VALUES (4317155, 71, 5); -INSERT INTO discoveryinfo VALUES (4287430, 71, 6); -INSERT INTO discoveryinfo VALUES (4284668, 71, 7); -INSERT INTO discoveryinfo VALUES (4317193, 71, 8); -INSERT INTO discoveryinfo VALUES (4284672, 71, 10); -INSERT INTO discoveryinfo VALUES (4317200, 71, 11); -INSERT INTO discoveryinfo VALUES (4287440, 71, 12); -INSERT INTO discoveryinfo VALUES (4303212, 71, 13); -INSERT INTO discoveryinfo VALUES (4489186, 71, 3); -INSERT INTO discoveryinfo VALUES (4489187, 71, 3); -INSERT INTO discoveryinfo VALUES (4489188, 71, 3); -INSERT INTO discoveryinfo VALUES (4489189, 71, 3); -INSERT INTO discoveryinfo VALUES (4489190, 71, 3); -INSERT INTO discoveryinfo VALUES (4489192, 71, 3); -INSERT INTO discoveryinfo VALUES (4489193, 71, 3); -INSERT INTO discoveryinfo VALUES (4489194, 71, 3); -INSERT INTO discoveryinfo VALUES (4489195, 71, 3); -INSERT INTO discoveryinfo VALUES (4489236, 135, 14); -INSERT INTO discoveryinfo VALUES (4489237, 135, 15); -INSERT INTO discoveryinfo VALUES (4287437, 71, 9); -INSERT INTO discoveryinfo VALUES (4759598, 158, 1); -INSERT INTO discoveryinfo VALUES (4759601, 159, 2); -INSERT INTO discoveryinfo VALUES (4760537, 159, 3); -INSERT INTO discoveryinfo VALUES (4759602, 160, 4); -INSERT INTO discoveryinfo VALUES (4760539, 160, 5); -INSERT INTO discoveryinfo VALUES (4759603, 161, 6); -INSERT INTO discoveryinfo VALUES (4759625, 161, 7); -INSERT INTO discoveryinfo VALUES (4759604, 162, 8); -INSERT INTO discoveryinfo VALUES (4759637, 162, 8); -INSERT INTO discoveryinfo VALUES (4759638, 162, 8); -INSERT INTO discoveryinfo VALUES (4759639, 162, 9); -INSERT INTO discoveryinfo VALUES (4759640, 162, 9); -INSERT INTO discoveryinfo VALUES (4759642, 162, 9); -INSERT INTO discoveryinfo VALUES (4759658, 163, 10); -INSERT INTO discoveryinfo VALUES (4759645, 163, 11); -INSERT INTO discoveryinfo VALUES (4759606, 164, 12); -INSERT INTO discoveryinfo VALUES (4759652, 164, 13); -INSERT INTO discoveryinfo VALUES (4759654, 164, 14); -INSERT INTO discoveryinfo VALUES (5063263, 184, 1); -INSERT INTO discoveryinfo VALUES (5068251, 184, 2); -INSERT INTO discoveryinfo VALUES (5068254, 184, 2); -INSERT INTO discoveryinfo VALUES (5068256, 184, 3); -INSERT INTO discoveryinfo VALUES (5068257, 184, 4); -INSERT INTO discoveryinfo VALUES (5068258, 184, 4); -INSERT INTO discoveryinfo VALUES (5068260, 184, 5); -INSERT INTO discoveryinfo VALUES (5068267, 184, 5); -INSERT INTO discoveryinfo VALUES (5070852, 184, 6); -INSERT INTO discoveryinfo VALUES (5070868, 184, 7); -INSERT INTO discoveryinfo VALUES (5070872, 184, 7); -INSERT INTO discoveryinfo VALUES (5070873, 184, 8); -INSERT INTO discoveryinfo VALUES (5070874, 184, 9); -INSERT INTO discoveryinfo VALUES (5070875, 184, 10); -INSERT INTO discoveryinfo VALUES (6950667, 359, 1); -INSERT INTO discoveryinfo VALUES (6950676, 359, 2); -INSERT INTO discoveryinfo VALUES (6950680, 359, 3); -INSERT INTO discoveryinfo VALUES (6950685, 359, 4); -INSERT INTO discoveryinfo VALUES (6950720, 359, 4); -INSERT INTO discoveryinfo VALUES (6950723, 359, 5); -INSERT INTO discoveryinfo VALUES (6950726, 359, 6); -INSERT INTO discoveryinfo VALUES (6950727, 359, 7); -INSERT INTO discoveryinfo VALUES (6950728, 359, 8); -INSERT INTO discoveryinfo VALUES (6950731, 359, 8); -INSERT INTO discoveryinfo VALUES (6950777, 359, 9); -INSERT INTO discoveryinfo VALUES (6950784, 359, 9); -INSERT INTO discoveryinfo VALUES (6950788, 359, 10); -INSERT INTO discoveryinfo VALUES (6950798, 359, 11); -INSERT INTO discoveryinfo VALUES (6950799, 359, 12); -INSERT INTO discoveryinfo VALUES (6950808, 359, 13); -INSERT INTO discoveryinfo VALUES (6950811, 359, 14); -INSERT INTO discoveryinfo VALUES (6950815, 359, 15); -INSERT INTO discoveryinfo VALUES (6950824, 359, 15); -INSERT INTO discoveryinfo VALUES (6950847, 359, 8); -INSERT INTO discoveryinfo VALUES (6950853, 359, 8); -INSERT INTO discoveryinfo VALUES (4322860, 37, 1); -INSERT INTO discoveryinfo VALUES (4322861, 37, 1); -INSERT INTO discoveryinfo VALUES (4322862, 37, 1); -INSERT INTO discoveryinfo VALUES (4322863, 37, 1); -INSERT INTO discoveryinfo VALUES (4322864, 37, 2); -INSERT INTO discoveryinfo VALUES (4322866, 37, 2); -INSERT INTO discoveryinfo VALUES (4322867, 37, 3); -INSERT INTO discoveryinfo VALUES (4322868, 37, 3); -INSERT INTO discoveryinfo VALUES (4322869, 37, 3); -INSERT INTO discoveryinfo VALUES (4322870, 37, 3); -INSERT INTO discoveryinfo VALUES (4322871, 37, 4); -INSERT INTO discoveryinfo VALUES (4322872, 37, 5); -INSERT INTO discoveryinfo VALUES (4322968, 37, 5); -INSERT INTO discoveryinfo VALUES (4322969, 37, 5); -INSERT INTO discoveryinfo VALUES (4322970, 37, 5); -INSERT INTO discoveryinfo VALUES (4322971, 37, 6); -INSERT INTO discoveryinfo VALUES (4322972, 37, 6); -INSERT INTO discoveryinfo VALUES (4322973, 37, 6); -INSERT INTO discoveryinfo VALUES (4322974, 37, 7); -INSERT INTO discoveryinfo VALUES (4322975, 37, 8); -INSERT INTO discoveryinfo VALUES (4322976, 37, 8); -INSERT INTO discoveryinfo VALUES (4322977, 37, 8); -INSERT INTO discoveryinfo VALUES (4322978, 37, 8); -INSERT INTO discoveryinfo VALUES (4322979, 37, 9); -INSERT INTO discoveryinfo VALUES (4559071, 157, 1); -INSERT INTO discoveryinfo VALUES (4559073, 157, 2); -INSERT INTO discoveryinfo VALUES (4559075, 157, 3); -INSERT INTO discoveryinfo VALUES (4559076, 157, 4); -INSERT INTO discoveryinfo VALUES (4559077, 157, 4); -INSERT INTO discoveryinfo VALUES (4559078, 157, 5); -INSERT INTO discoveryinfo VALUES (4559085, 157, 6); -INSERT INTO discoveryinfo VALUES (4559086, 157, 6); -INSERT INTO discoveryinfo VALUES (4559087, 157, 7); -INSERT INTO discoveryinfo VALUES (4559088, 157, 7); -INSERT INTO discoveryinfo VALUES (4559091, 157, 8); -INSERT INTO discoveryinfo VALUES (4559092, 157, 8); -INSERT INTO discoveryinfo VALUES (4559094, 157, 9); -INSERT INTO discoveryinfo VALUES (4721268, 157, 10); -INSERT INTO discoveryinfo VALUES (4559093, 157, 10); -INSERT INTO discoveryinfo VALUES (4721270, 157, 11); -INSERT INTO discoveryinfo VALUES (4721271, 157, 11); -INSERT INTO discoveryinfo VALUES (4721272, 157, 12); -INSERT INTO discoveryinfo VALUES (4721273, 157, 13); -INSERT INTO discoveryinfo VALUES (4980982, 174, 1); -INSERT INTO discoveryinfo VALUES (4980983, 174, 1); -INSERT INTO discoveryinfo VALUES (4980985, 174, 2); -INSERT INTO discoveryinfo VALUES (4980986, 174, 2); -INSERT INTO discoveryinfo VALUES (4980990, 174, 2); -INSERT INTO discoveryinfo VALUES (4980993, 174, 3); -INSERT INTO discoveryinfo VALUES (4980994, 174, 4); -INSERT INTO discoveryinfo VALUES (4980995, 174, 4); -INSERT INTO discoveryinfo VALUES (4980996, 174, 4); -INSERT INTO discoveryinfo VALUES (4980997, 174, 5); -INSERT INTO discoveryinfo VALUES (4980998, 174, 5); -INSERT INTO discoveryinfo VALUES (4980999, 174, 5); -INSERT INTO discoveryinfo VALUES (4981002, 174, 6); -INSERT INTO discoveryinfo VALUES (4981003, 174, 6); -INSERT INTO discoveryinfo VALUES (4981004, 174, 7); -INSERT INTO discoveryinfo VALUES (4981005, 174, 7); -INSERT INTO discoveryinfo VALUES (4981006, 174, 7); -INSERT INTO discoveryinfo VALUES (4981007, 174, 8); -INSERT INTO discoveryinfo VALUES (4981008, 174, 9); -INSERT INTO discoveryinfo VALUES (4981009, 174, 9); -INSERT INTO discoveryinfo VALUES (4981010, 174, 10); -INSERT INTO discoveryinfo VALUES (4247747, 53, 1); -INSERT INTO discoveryinfo VALUES (4247847, 53, 1); -INSERT INTO discoveryinfo VALUES (4247850, 53, 1); -INSERT INTO discoveryinfo VALUES (4247852, 53, 1); -INSERT INTO discoveryinfo VALUES (4247856, 53, 1); -INSERT INTO discoveryinfo VALUES (4247877, 53, 2); -INSERT INTO discoveryinfo VALUES (4247879, 53, 2); -INSERT INTO discoveryinfo VALUES (4247884, 53, 3); -INSERT INTO discoveryinfo VALUES (4247885, 53, 3); -INSERT INTO discoveryinfo VALUES (4247888, 53, 3); -INSERT INTO discoveryinfo VALUES (4247906, 53, 4); -INSERT INTO discoveryinfo VALUES (4247927, 53, 4); -INSERT INTO discoveryinfo VALUES (4247941, 53, 4); -INSERT INTO discoveryinfo VALUES (4248224, 53, 5); -INSERT INTO discoveryinfo VALUES (4248230, 53, 5); -INSERT INTO discoveryinfo VALUES (4248232, 53, 5); -INSERT INTO discoveryinfo VALUES (4248236, 53, 5); -INSERT INTO discoveryinfo VALUES (4248241, 53, 5); -INSERT INTO discoveryinfo VALUES (4248262, 53, 6); -INSERT INTO discoveryinfo VALUES (4248265, 53, 6); -INSERT INTO discoveryinfo VALUES (4248272, 53, 7); -INSERT INTO discoveryinfo VALUES (4248277, 53, 7); -INSERT INTO discoveryinfo VALUES (4248285, 53, 8); -INSERT INTO discoveryinfo VALUES (4248290, 53, 8); -INSERT INTO discoveryinfo VALUES (4248291, 53, 8); -INSERT INTO discoveryinfo VALUES (4248293, 53, 9); -INSERT INTO discoveryinfo VALUES (4248303, 53, 9); -INSERT INTO discoveryinfo VALUES (4248308, 53, 9); -INSERT INTO discoveryinfo VALUES (4248340, 53, 10); -INSERT INTO discoveryinfo VALUES (4248346, 53, 10); -INSERT INTO discoveryinfo VALUES (4248351, 53, 10); -INSERT INTO discoveryinfo VALUES (4248359, 53, 11); -INSERT INTO discoveryinfo VALUES (4248390, 53, 12); -INSERT INTO discoveryinfo VALUES (4248398, 53, 12); -INSERT INTO discoveryinfo VALUES (4248402, 53, 12); -INSERT INTO discoveryinfo VALUES (4248430, 53, 12); -INSERT INTO discoveryinfo VALUES (4248444, 53, 13); -INSERT INTO discoveryinfo VALUES (4248486, 53, 13); -INSERT INTO discoveryinfo VALUES (4248487, 53, 13); -INSERT INTO discoveryinfo VALUES (4248488, 53, 13); -INSERT INTO discoveryinfo VALUES (4248489, 53, 14); -INSERT INTO discoveryinfo VALUES (4248490, 53, 14); -INSERT INTO discoveryinfo VALUES (4248491, 53, 15); -INSERT INTO discoveryinfo VALUES (4248517, 53, 16); -INSERT INTO discoveryinfo VALUES (4248520, 53, 16); -INSERT INTO discoveryinfo VALUES (4248523, 53, 16); -INSERT INTO discoveryinfo VALUES (4248529, 53, 16); -INSERT INTO discoveryinfo VALUES (4248537, 53, 17); -INSERT INTO discoveryinfo VALUES (4248539, 53, 17); -INSERT INTO discoveryinfo VALUES (4248613, 53, 16); -INSERT INTO discoveryinfo VALUES (4248638, 53, 16); -INSERT INTO discoveryinfo VALUES (4248684, 53, 16); -INSERT INTO discoveryinfo VALUES (4248689, 53, 18); -INSERT INTO discoveryinfo VALUES (4248796, 53, 19); -INSERT INTO discoveryinfo VALUES (4248833, 53, 19); -INSERT INTO discoveryinfo VALUES (4248837, 53, 19); -INSERT INTO discoveryinfo VALUES (4248842, 53, 20); -INSERT INTO discoveryinfo VALUES (4248844, 53, 20); -INSERT INTO discoveryinfo VALUES (4248886, 53, 21); -INSERT INTO discoveryinfo VALUES (4248888, 53, 21); -INSERT INTO discoveryinfo VALUES (4248889, 53, 21); -INSERT INTO discoveryinfo VALUES (4248890, 53, 21); -INSERT INTO discoveryinfo VALUES (4248892, 53, 22); -INSERT INTO discoveryinfo VALUES (4249639, 53, 1); -INSERT INTO discoveryinfo VALUES (4249643, 53, 1); -INSERT INTO discoveryinfo VALUES (4238979, 50, 1); -INSERT INTO discoveryinfo VALUES (4238984, 50, 1); -INSERT INTO discoveryinfo VALUES (4238985, 50, 2); -INSERT INTO discoveryinfo VALUES (4238987, 50, 3); -INSERT INTO discoveryinfo VALUES (4238989, 50, 4); -INSERT INTO discoveryinfo VALUES (4238990, 50, 4); -INSERT INTO discoveryinfo VALUES (4238991, 50, 5); -INSERT INTO discoveryinfo VALUES (4238993, 86, 6); -INSERT INTO discoveryinfo VALUES (4238994, 86, 7); -INSERT INTO discoveryinfo VALUES (4238996, 86, 7); -INSERT INTO discoveryinfo VALUES (4238999, 86, 8); -INSERT INTO discoveryinfo VALUES (4239000, 86, 7); -INSERT INTO discoveryinfo VALUES (4239001, 86, 7); -INSERT INTO discoveryinfo VALUES (4239002, 86, 8); -INSERT INTO discoveryinfo VALUES (4239003, 86, 9); -INSERT INTO discoveryinfo VALUES (4239004, 86, 10); -INSERT INTO discoveryinfo VALUES (4239005, 86, 10); -INSERT INTO discoveryinfo VALUES (4239006, 86, 11); -INSERT INTO discoveryinfo VALUES (4239009, 86, 12); -INSERT INTO discoveryinfo VALUES (4287170, 86, 8); -INSERT INTO discoveryinfo VALUES (4287171, 86, 8); -INSERT INTO discoveryinfo VALUES (4235274, 38, 1); -INSERT INTO discoveryinfo VALUES (4235276, 38, 2); -INSERT INTO discoveryinfo VALUES (4313956, 38, 3); -INSERT INTO discoveryinfo VALUES (4235277, 38, 4); -INSERT INTO discoveryinfo VALUES (4313961, 38, 5); -INSERT INTO discoveryinfo VALUES (4235282, 38, 6); -INSERT INTO discoveryinfo VALUES (4235309, 38, 7); -INSERT INTO discoveryinfo VALUES (4313968, 38, 7); -INSERT INTO discoveryinfo VALUES (4313971, 38, 8); -INSERT INTO discoveryinfo VALUES (4313970, 38, 9); -INSERT INTO discoveryinfo VALUES (4235312, 38, 10); -INSERT INTO discoveryinfo VALUES (5759673, 243, 1); -INSERT INTO discoveryinfo VALUES (5868146, 243, 2); -INSERT INTO discoveryinfo VALUES (5910387, 243, 2); -INSERT INTO discoveryinfo VALUES (5868148, 243, 3); -INSERT INTO discoveryinfo VALUES (5868150, 243, 4); -INSERT INTO discoveryinfo VALUES (5759683, 243, 5); -INSERT INTO discoveryinfo VALUES (5759685, 243, 5); -INSERT INTO discoveryinfo VALUES (5759692, 243, 6); -INSERT INTO discoveryinfo VALUES (5759696, 243, 7); -INSERT INTO discoveryinfo VALUES (5868156, 243, 8); -INSERT INTO discoveryinfo VALUES (5868159, 243, 9); -INSERT INTO discoveryinfo VALUES (5759698, 243, 10); -INSERT INTO discoveryinfo VALUES (5759701, 243, 11); -INSERT INTO discoveryinfo VALUES (5759702, 243, 12); -INSERT INTO discoveryinfo VALUES (5759705, 243, 12); -INSERT INTO discoveryinfo VALUES (5868162, 243, 13); -INSERT INTO discoveryinfo VALUES (5759706, 243, 14); -INSERT INTO discoveryinfo VALUES (5759708, 243, 14); -INSERT INTO discoveryinfo VALUES (5868163, 243, 15); -INSERT INTO discoveryinfo VALUES (6402350, 313, 1); -INSERT INTO discoveryinfo VALUES (6402351, 313, 1); -INSERT INTO discoveryinfo VALUES (6402352, 313, 2); -INSERT INTO discoveryinfo VALUES (6402354, 313, 2); -INSERT INTO discoveryinfo VALUES (6402353, 313, 3); -INSERT INTO discoveryinfo VALUES (6402355, 313, 4); -INSERT INTO discoveryinfo VALUES (6402356, 313, 4); -INSERT INTO discoveryinfo VALUES (6402690, 313, 5); -INSERT INTO discoveryinfo VALUES (6402693, 313, 6); -INSERT INTO discoveryinfo VALUES (6402695, 313, 6); -INSERT INTO discoveryinfo VALUES (6402696, 313, 6); -INSERT INTO discoveryinfo VALUES (6402697, 313, 6); -INSERT INTO discoveryinfo VALUES (6402700, 313, 6); -INSERT INTO discoveryinfo VALUES (6402701, 313, 7); -INSERT INTO discoveryinfo VALUES (6402703, 313, 7); -INSERT INTO discoveryinfo VALUES (6402704, 313, 8); -INSERT INTO discoveryinfo VALUES (6402705, 313, 8); -INSERT INTO discoveryinfo VALUES (6402771, 313, 8); -INSERT INTO discoveryinfo VALUES (6402751, 313, 9); -INSERT INTO discoveryinfo VALUES (6402773, 313, 9); -INSERT INTO discoveryinfo VALUES (6402774, 313, 9); -INSERT INTO discoveryinfo VALUES (6515981, 313, 9); -INSERT INTO discoveryinfo VALUES (6515982, 313, 9); -INSERT INTO discoveryinfo VALUES (6402775, 313, 10); -INSERT INTO discoveryinfo VALUES (6402776, 313, 11); -INSERT INTO discoveryinfo VALUES (6402777, 313, 11); -INSERT INTO discoveryinfo VALUES (6402779, 313, 11); -INSERT INTO discoveryinfo VALUES (6403197, 313, 11); -INSERT INTO discoveryinfo VALUES (6402783, 313, 12); -INSERT INTO discoveryinfo VALUES (6402785, 313, 12); -INSERT INTO discoveryinfo VALUES (6402786, 313, 12); -INSERT INTO discoveryinfo VALUES (6403205, 313, 12); -INSERT INTO discoveryinfo VALUES (6402788, 313, 13); -INSERT INTO discoveryinfo VALUES (6534361, 313, 13); -INSERT INTO discoveryinfo VALUES (6402789, 313, 14); -INSERT INTO discoveryinfo VALUES (5925606, 211, 1); -INSERT INTO discoveryinfo VALUES (5925609, 211, 1); -INSERT INTO discoveryinfo VALUES (5925610, 211, 1); -INSERT INTO discoveryinfo VALUES (5925611, 211, 1); -INSERT INTO discoveryinfo VALUES (5925612, 211, 1); -INSERT INTO discoveryinfo VALUES (5925613, 211, 1); -INSERT INTO discoveryinfo VALUES (5925616, 211, 2); -INSERT INTO discoveryinfo VALUES (5925618, 211, 2); -INSERT INTO discoveryinfo VALUES (5925619, 211, 2); -INSERT INTO discoveryinfo VALUES (5925620, 211, 2); -INSERT INTO discoveryinfo VALUES (5925622, 211, 2); -INSERT INTO discoveryinfo VALUES (5925623, 211, 2); -INSERT INTO discoveryinfo VALUES (5925808, 211, 3); -INSERT INTO discoveryinfo VALUES (5925812, 211, 3); -INSERT INTO discoveryinfo VALUES (5925813, 211, 3); -INSERT INTO discoveryinfo VALUES (5925814, 211, 3); -INSERT INTO discoveryinfo VALUES (5925815, 211, 3); -INSERT INTO discoveryinfo VALUES (5925817, 211, 3); -INSERT INTO discoveryinfo VALUES (5925819, 211, 3); -INSERT INTO discoveryinfo VALUES (5925820, 211, 3); -INSERT INTO discoveryinfo VALUES (5925821, 211, 3); -INSERT INTO discoveryinfo VALUES (5925823, 211, 3); -INSERT INTO discoveryinfo VALUES (5925825, 211, 3); -INSERT INTO discoveryinfo VALUES (5925827, 211, 3); -INSERT INTO discoveryinfo VALUES (5925830, 211, 3); -INSERT INTO discoveryinfo VALUES (5925835, 211, 4); -INSERT INTO discoveryinfo VALUES (5925836, 211, 4); -INSERT INTO discoveryinfo VALUES (5925837, 211, 4); -INSERT INTO discoveryinfo VALUES (5925838, 211, 4); -INSERT INTO discoveryinfo VALUES (5925840, 211, 4); -INSERT INTO discoveryinfo VALUES (5925841, 211, 4); -INSERT INTO discoveryinfo VALUES (5925842, 211, 5); -INSERT INTO discoveryinfo VALUES (5925844, 211, 5); -INSERT INTO discoveryinfo VALUES (5925845, 211, 5); -INSERT INTO discoveryinfo VALUES (5925848, 211, 5); -INSERT INTO discoveryinfo VALUES (5925849, 211, 5); -INSERT INTO discoveryinfo VALUES (5925850, 211, 5); -INSERT INTO discoveryinfo VALUES (5925852, 211, 30); -INSERT INTO discoveryinfo VALUES (5925854, 211, 30); -INSERT INTO discoveryinfo VALUES (5925858, 211, 30); -INSERT INTO discoveryinfo VALUES (5925860, 211, 30); -INSERT INTO discoveryinfo VALUES (5926068, 211, 6); -INSERT INTO discoveryinfo VALUES (5926069, 211, 6); -INSERT INTO discoveryinfo VALUES (5926070, 211, 6); -INSERT INTO discoveryinfo VALUES (5926071, 211, 6); -INSERT INTO discoveryinfo VALUES (5926072, 211, 6); -INSERT INTO discoveryinfo VALUES (5926073, 211, 6); -INSERT INTO discoveryinfo VALUES (5926074, 211, 6); -INSERT INTO discoveryinfo VALUES (5926075, 211, 6); -INSERT INTO discoveryinfo VALUES (5926076, 211, 6); -INSERT INTO discoveryinfo VALUES (5926078, 211, 6); -INSERT INTO discoveryinfo VALUES (5926079, 211, 8); -INSERT INTO discoveryinfo VALUES (5926080, 211, 8); -INSERT INTO discoveryinfo VALUES (5926081, 211, 8); -INSERT INTO discoveryinfo VALUES (5926082, 211, 8); -INSERT INTO discoveryinfo VALUES (5926083, 211, 8); -INSERT INTO discoveryinfo VALUES (5926085, 211, 7); -INSERT INTO discoveryinfo VALUES (5926086, 211, 7); -INSERT INTO discoveryinfo VALUES (5926088, 211, 7); -INSERT INTO discoveryinfo VALUES (5926090, 211, 10); -INSERT INTO discoveryinfo VALUES (5926091, 211, 10); -INSERT INTO discoveryinfo VALUES (5926092, 211, 10); -INSERT INTO discoveryinfo VALUES (5926093, 211, 10); -INSERT INTO discoveryinfo VALUES (5926094, 211, 10); -INSERT INTO discoveryinfo VALUES (5926095, 211, 10); -INSERT INTO discoveryinfo VALUES (5926096, 211, 10); -INSERT INTO discoveryinfo VALUES (5926097, 211, 10); -INSERT INTO discoveryinfo VALUES (5926099, 211, 13); -INSERT INTO discoveryinfo VALUES (5926100, 211, 11); -INSERT INTO discoveryinfo VALUES (5926103, 211, 11); -INSERT INTO discoveryinfo VALUES (5926104, 211, 11); -INSERT INTO discoveryinfo VALUES (5926105, 211, 11); -INSERT INTO discoveryinfo VALUES (5926106, 211, 11); -INSERT INTO discoveryinfo VALUES (5926107, 211, 11); -INSERT INTO discoveryinfo VALUES (5926109, 211, 11); -INSERT INTO discoveryinfo VALUES (5926110, 211, 11); -INSERT INTO discoveryinfo VALUES (5926111, 211, 11); -INSERT INTO discoveryinfo VALUES (5926112, 211, 14); -INSERT INTO discoveryinfo VALUES (5926113, 211, 14); -INSERT INTO discoveryinfo VALUES (5926114, 211, 14); -INSERT INTO discoveryinfo VALUES (5926115, 211, 9); -INSERT INTO discoveryinfo VALUES (5926117, 211, 9); -INSERT INTO discoveryinfo VALUES (5926118, 211, 9); -INSERT INTO discoveryinfo VALUES (5926119, 211, 9); -INSERT INTO discoveryinfo VALUES (5926128, 211, 12); -INSERT INTO discoveryinfo VALUES (5926129, 211, 12); -INSERT INTO discoveryinfo VALUES (5926130, 211, 12); -INSERT INTO discoveryinfo VALUES (5926131, 211, 12); -INSERT INTO discoveryinfo VALUES (5926132, 211, 12); -INSERT INTO discoveryinfo VALUES (5926133, 211, 12); -INSERT INTO discoveryinfo VALUES (5926134, 211, 12); -INSERT INTO discoveryinfo VALUES (5926135, 211, 12); -INSERT INTO discoveryinfo VALUES (5926136, 211, 12); -INSERT INTO discoveryinfo VALUES (5926138, 211, 16); -INSERT INTO discoveryinfo VALUES (5926139, 211, 16); -INSERT INTO discoveryinfo VALUES (5926141, 211, 16); -INSERT INTO discoveryinfo VALUES (5926142, 211, 16); -INSERT INTO discoveryinfo VALUES (5926143, 211, 16); -INSERT INTO discoveryinfo VALUES (5926144, 211, 16); -INSERT INTO discoveryinfo VALUES (5926146, 211, 16); -INSERT INTO discoveryinfo VALUES (5926157, 211, 15); -INSERT INTO discoveryinfo VALUES (5926158, 211, 15); -INSERT INTO discoveryinfo VALUES (5926160, 211, 15); -INSERT INTO discoveryinfo VALUES (5926161, 211, 15); -INSERT INTO discoveryinfo VALUES (5926162, 211, 15); -INSERT INTO discoveryinfo VALUES (5926163, 211, 15); -INSERT INTO discoveryinfo VALUES (5926164, 211, 15); -INSERT INTO discoveryinfo VALUES (5926563, 211, 22); -INSERT INTO discoveryinfo VALUES (5926566, 211, 22); -INSERT INTO discoveryinfo VALUES (5926610, 211, 22); -INSERT INTO discoveryinfo VALUES (5926611, 211, 22); -INSERT INTO discoveryinfo VALUES (5926614, 211, 22); -INSERT INTO discoveryinfo VALUES (5926615, 211, 22); -INSERT INTO discoveryinfo VALUES (5926616, 211, 22); -INSERT INTO discoveryinfo VALUES (5926619, 211, 18); -INSERT INTO discoveryinfo VALUES (5926622, 211, 18); -INSERT INTO discoveryinfo VALUES (5926623, 211, 18); -INSERT INTO discoveryinfo VALUES (5926627, 211, 18); -INSERT INTO discoveryinfo VALUES (5926630, 211, 18); -INSERT INTO discoveryinfo VALUES (5926637, 211, 18); -INSERT INTO discoveryinfo VALUES (5926639, 211, 19); -INSERT INTO discoveryinfo VALUES (5926644, 211, 17); -INSERT INTO discoveryinfo VALUES (5926651, 211, 17); -INSERT INTO discoveryinfo VALUES (5926653, 211, 17); -INSERT INTO discoveryinfo VALUES (5926654, 211, 17); -INSERT INTO discoveryinfo VALUES (5926663, 211, 21); -INSERT INTO discoveryinfo VALUES (5926665, 211, 21); -INSERT INTO discoveryinfo VALUES (5926666, 211, 21); -INSERT INTO discoveryinfo VALUES (5926667, 211, 21); -INSERT INTO discoveryinfo VALUES (5926668, 211, 21); -INSERT INTO discoveryinfo VALUES (5926670, 211, 21); -INSERT INTO discoveryinfo VALUES (5926671, 211, 20); -INSERT INTO discoveryinfo VALUES (5926672, 211, 23); -INSERT INTO discoveryinfo VALUES (5926674, 211, 23); -INSERT INTO discoveryinfo VALUES (5926676, 211, 23); -INSERT INTO discoveryinfo VALUES (5926680, 211, 23); -INSERT INTO discoveryinfo VALUES (5926681, 211, 24); -INSERT INTO discoveryinfo VALUES (5926683, 211, 24); -INSERT INTO discoveryinfo VALUES (5926685, 211, 24); -INSERT INTO discoveryinfo VALUES (5926686, 211, 24); -INSERT INTO discoveryinfo VALUES (5926687, 211, 24); -INSERT INTO discoveryinfo VALUES (5926696, 211, 26); -INSERT INTO discoveryinfo VALUES (5926702, 211, 26); -INSERT INTO discoveryinfo VALUES (5926709, 211, 26); -INSERT INTO discoveryinfo VALUES (5926710, 211, 26); -INSERT INTO discoveryinfo VALUES (5926711, 211, 28); -INSERT INTO discoveryinfo VALUES (5926713, 211, 27); -INSERT INTO discoveryinfo VALUES (5926717, 211, 27); -INSERT INTO discoveryinfo VALUES (5926718, 211, 27); -INSERT INTO discoveryinfo VALUES (5926720, 211, 27); -INSERT INTO discoveryinfo VALUES (5926723, 211, 27); -INSERT INTO discoveryinfo VALUES (5926724, 211, 27); -INSERT INTO discoveryinfo VALUES (5926727, 211, 27); -INSERT INTO discoveryinfo VALUES (5926729, 211, 27); -INSERT INTO discoveryinfo VALUES (5926734, 211, 27); -INSERT INTO discoveryinfo VALUES (5926736, 211, 27); -INSERT INTO discoveryinfo VALUES (5926737, 211, 27); -INSERT INTO discoveryinfo VALUES (5926739, 211, 27); -INSERT INTO discoveryinfo VALUES (5926740, 211, 27); -INSERT INTO discoveryinfo VALUES (5926742, 211, 27); -INSERT INTO discoveryinfo VALUES (5926744, 211, 27); -INSERT INTO discoveryinfo VALUES (5926745, 211, 27); -INSERT INTO discoveryinfo VALUES (5926753, 211, 27); -INSERT INTO discoveryinfo VALUES (5926757, 211, 25); -INSERT INTO discoveryinfo VALUES (5926758, 211, 25); -INSERT INTO discoveryinfo VALUES (5926759, 211, 29); -INSERT INTO discoveryinfo VALUES (5926760, 211, 29); -INSERT INTO discoveryinfo VALUES (4294198, 57, 2); -INSERT INTO discoveryinfo VALUES (4294203, 57, 1); -INSERT INTO discoveryinfo VALUES (4294216, 57, 3); -INSERT INTO discoveryinfo VALUES (4294219, 57, 4); -INSERT INTO discoveryinfo VALUES (4294220, 57, 6); -INSERT INTO discoveryinfo VALUES (4294221, 57, 7); -INSERT INTO discoveryinfo VALUES (4294222, 57, 7); -INSERT INTO discoveryinfo VALUES (4294225, 57, 3); -INSERT INTO discoveryinfo VALUES (4325261, 57, 7); -INSERT INTO discoveryinfo VALUES (4325262, 57, 7); -INSERT INTO discoveryinfo VALUES (4325263, 57, 7); -INSERT INTO discoveryinfo VALUES (4325264, 57, 4); -INSERT INTO discoveryinfo VALUES (4325265, 57, 4); -INSERT INTO discoveryinfo VALUES (4325266, 57, 5); -INSERT INTO discoveryinfo VALUES (4325267, 57, 5); -INSERT INTO discoveryinfo VALUES (4325268, 57, 5); -INSERT INTO discoveryinfo VALUES (4325269, 57, 5); -INSERT INTO discoveryinfo VALUES (4325270, 57, 7); -INSERT INTO discoveryinfo VALUES (4325271, 57, 5); -INSERT INTO discoveryinfo VALUES (4325273, 57, 5); -INSERT INTO discoveryinfo VALUES (4325274, 57, 5); -INSERT INTO discoveryinfo VALUES (4325275, 57, 5); -INSERT INTO discoveryinfo VALUES (4325278, 57, 6); -INSERT INTO discoveryinfo VALUES (4334980, 57, 2); -INSERT INTO discoveryinfo VALUES (4374752, 57, 7); -INSERT INTO discoveryinfo VALUES (4294227, 58, 1); -INSERT INTO discoveryinfo VALUES (4294229, 58, 1); -INSERT INTO discoveryinfo VALUES (4294230, 58, 2); -INSERT INTO discoveryinfo VALUES (4294232, 58, 1); -INSERT INTO discoveryinfo VALUES (4294236, 58, 1); -INSERT INTO discoveryinfo VALUES (4294773, 58, 1); -INSERT INTO discoveryinfo VALUES (4294776, 58, 1); -INSERT INTO discoveryinfo VALUES (4294778, 58, 1); -INSERT INTO discoveryinfo VALUES (4294779, 58, 1); -INSERT INTO discoveryinfo VALUES (4294781, 58, 1); -INSERT INTO discoveryinfo VALUES (4294784, 58, 1); -INSERT INTO discoveryinfo VALUES (4294785, 58, 1); -INSERT INTO discoveryinfo VALUES (4335450, 58, 1); -INSERT INTO discoveryinfo VALUES (3796099, 62, 1); -INSERT INTO discoveryinfo VALUES (3796125, 63, 2); -INSERT INTO discoveryinfo VALUES (3796126, 64, 3); -INSERT INTO discoveryinfo VALUES (4321786, 62, 1); -INSERT INTO discoveryinfo VALUES (4321788, 62, 1); -INSERT INTO discoveryinfo VALUES (4321790, 62, 1); -INSERT INTO discoveryinfo VALUES (4321791, 62, 1); -INSERT INTO discoveryinfo VALUES (4321794, 63, 2); -INSERT INTO discoveryinfo VALUES (4321796, 63, 2); -INSERT INTO discoveryinfo VALUES (4321797, 63, 2); -INSERT INTO discoveryinfo VALUES (4321798, 63, 2); -INSERT INTO discoveryinfo VALUES (4321799, 63, 2); -INSERT INTO discoveryinfo VALUES (4321800, 64, 3); -INSERT INTO discoveryinfo VALUES (4321801, 64, 3); -INSERT INTO discoveryinfo VALUES (4321802, 64, 3); -INSERT INTO discoveryinfo VALUES (4295033, 60, 1); -INSERT INTO discoveryinfo VALUES (4295034, 60, 1); -INSERT INTO discoveryinfo VALUES (4295037, 60, 1); -INSERT INTO discoveryinfo VALUES (4295038, 60, 2); -INSERT INTO discoveryinfo VALUES (4295039, 60, 2); -INSERT INTO discoveryinfo VALUES (4295040, 60, 2); -INSERT INTO discoveryinfo VALUES (4295041, 60, 2); -INSERT INTO discoveryinfo VALUES (4325280, 60, 3); -INSERT INTO discoveryinfo VALUES (4329907, 1, 1); -INSERT INTO discoveryinfo VALUES (4091012, 31, 1); -INSERT INTO discoveryinfo VALUES (4091008, 31, 1); -INSERT INTO discoveryinfo VALUES (4092388, 31, 1); -INSERT INTO discoveryinfo VALUES (4091018, 31, 2); -INSERT INTO discoveryinfo VALUES (4091019, 31, 2); -INSERT INTO discoveryinfo VALUES (4092471, 31, 3); -INSERT INTO discoveryinfo VALUES (4092472, 31, 3); -INSERT INTO discoveryinfo VALUES (4092418, 31, 3); -INSERT INTO discoveryinfo VALUES (4092436, 31, 4); -INSERT INTO discoveryinfo VALUES (4092437, 31, 4); -INSERT INTO discoveryinfo VALUES (4092425, 31, 5); -INSERT INTO discoveryinfo VALUES (4092429, 31, 6); -INSERT INTO discoveryinfo VALUES (4092430, 31, 7); -INSERT INTO discoveryinfo VALUES (4092435, 31, 7); -INSERT INTO discoveryinfo VALUES (4092432, 31, 8); -INSERT INTO discoveryinfo VALUES (4092433, 31, 8); -INSERT INTO discoveryinfo VALUES (4092431, 31, 9); -INSERT INTO discoveryinfo VALUES (4092438, 31, 10); -INSERT INTO discoveryinfo VALUES (4092439, 31, 10); -INSERT INTO discoveryinfo VALUES (4092440, 31, 10); -INSERT INTO discoveryinfo VALUES (4092444, 31, 11); -INSERT INTO discoveryinfo VALUES (4092449, 31, 11); -INSERT INTO discoveryinfo VALUES (4092536, 31, 1); -INSERT INTO discoveryinfo VALUES (4092537, 31, 1); -INSERT INTO discoveryinfo VALUES (4092538, 31, 3); -INSERT INTO discoveryinfo VALUES (4092539, 31, 3); -INSERT INTO discoveryinfo VALUES (4092540, 31, 5); -INSERT INTO discoveryinfo VALUES (4092541, 31, 6); -INSERT INTO discoveryinfo VALUES (4092542, 31, 7); -INSERT INTO discoveryinfo VALUES (4092543, 31, 7); -INSERT INTO discoveryinfo VALUES (4092544, 31, 8); -INSERT INTO discoveryinfo VALUES (4092545, 31, 8); -INSERT INTO discoveryinfo VALUES (4092546, 31, 9); -INSERT INTO discoveryinfo VALUES (4092547, 31, 11); -INSERT INTO discoveryinfo VALUES (4092551, 31, 11); -INSERT INTO discoveryinfo VALUES (4092548, 31, 13); -INSERT INTO discoveryinfo VALUES (4121883, 45, 1); -INSERT INTO discoveryinfo VALUES (4121897, 45, 2); -INSERT INTO discoveryinfo VALUES (4121909, 45, 3); -INSERT INTO discoveryinfo VALUES (4121915, 45, 3); -INSERT INTO discoveryinfo VALUES (4121922, 45, 4); -INSERT INTO discoveryinfo VALUES (4123952, 45, 4); -INSERT INTO discoveryinfo VALUES (4123953, 45, 5); -INSERT INTO discoveryinfo VALUES (4125929, 45, 6); -INSERT INTO discoveryinfo VALUES (4125941, 45, 7); -INSERT INTO discoveryinfo VALUES (4125947, 45, 8); -INSERT INTO discoveryinfo VALUES (4125950, 45, 8); -INSERT INTO discoveryinfo VALUES (4125987, 45, 9); -INSERT INTO discoveryinfo VALUES (4125993, 45, 10); -INSERT INTO discoveryinfo VALUES (4126016, 45, 11); -INSERT INTO discoveryinfo VALUES (4126017, 45, 11); -INSERT INTO discoveryinfo VALUES (4126028, 45, 11); -INSERT INTO discoveryinfo VALUES (4126039, 45, 12); -INSERT INTO discoveryinfo VALUES (4126040, 45, 13); -INSERT INTO discoveryinfo VALUES (4126043, 45, 13); -INSERT INTO discoveryinfo VALUES (4126044, 45, 13); -INSERT INTO discoveryinfo VALUES (4126049, 45, 14); -INSERT INTO discoveryinfo VALUES (4126052, 45, 15); -INSERT INTO discoveryinfo VALUES (4127125, 45, 8); -INSERT INTO discoveryinfo VALUES (4127126, 45, 8); -INSERT INTO discoveryinfo VALUES (4127132, 45, 9); -INSERT INTO discoveryinfo VALUES (4127137, 45, 12); -INSERT INTO discoveryinfo VALUES (4127141, 45, 12); -INSERT INTO discoveryinfo VALUES (4230667, 32, 1); -INSERT INTO discoveryinfo VALUES (4230669, 32, 2); -INSERT INTO discoveryinfo VALUES (4230670, 32, 3); -INSERT INTO discoveryinfo VALUES (4313896, 32, 4); -INSERT INTO discoveryinfo VALUES (4230671, 32, 5); -INSERT INTO discoveryinfo VALUES (4230672, 32, 5); -INSERT INTO discoveryinfo VALUES (4230673, 32, 6); -INSERT INTO discoveryinfo VALUES (4230674, 32, 6); -INSERT INTO discoveryinfo VALUES (4230675, 32, 6); -INSERT INTO discoveryinfo VALUES (4230676, 32, 7); -INSERT INTO discoveryinfo VALUES (4313898, 32, 8); -INSERT INTO discoveryinfo VALUES (4230677, 32, 9); -INSERT INTO discoveryinfo VALUES (4395355, 108, 1); -INSERT INTO discoveryinfo VALUES (4395358, 108, 1); -INSERT INTO discoveryinfo VALUES (4395362, 108, 2); -INSERT INTO discoveryinfo VALUES (4395364, 108, 2); -INSERT INTO discoveryinfo VALUES (4395366, 108, 2); -INSERT INTO discoveryinfo VALUES (4395368, 130, 3); -INSERT INTO discoveryinfo VALUES (4395369, 130, 3); -INSERT INTO discoveryinfo VALUES (4404413, 130, 3); -INSERT INTO discoveryinfo VALUES (4404417, 130, 3); -INSERT INTO discoveryinfo VALUES (4404418, 130, 4); -INSERT INTO discoveryinfo VALUES (4404421, 130, 5); -INSERT INTO discoveryinfo VALUES (4404422, 130, 5); -INSERT INTO discoveryinfo VALUES (4404423, 130, 5); -INSERT INTO discoveryinfo VALUES (4404424, 130, 6); -INSERT INTO discoveryinfo VALUES (4404425, 130, 5); -INSERT INTO discoveryinfo VALUES (4404426, 130, 7); -INSERT INTO discoveryinfo VALUES (4404427, 130, 7); -INSERT INTO discoveryinfo VALUES (4404431, 131, 8); -INSERT INTO discoveryinfo VALUES (4404432, 131, 8); -INSERT INTO discoveryinfo VALUES (4404433, 131, 9); -INSERT INTO discoveryinfo VALUES (4404434, 131, 9); -INSERT INTO discoveryinfo VALUES (4404435, 131, 9); -INSERT INTO discoveryinfo VALUES (4404436, 132, 10); -INSERT INTO discoveryinfo VALUES (4404437, 131, 9); -INSERT INTO discoveryinfo VALUES (4404438, 132, 10); -INSERT INTO discoveryinfo VALUES (4404439, 132, 10); -INSERT INTO discoveryinfo VALUES (4404440, 132, 10); -INSERT INTO discoveryinfo VALUES (4404441, 132, 10); -INSERT INTO discoveryinfo VALUES (4404442, 132, 10); -INSERT INTO discoveryinfo VALUES (4404445, 133, 11); -INSERT INTO discoveryinfo VALUES (4404446, 133, 11); -INSERT INTO discoveryinfo VALUES (4404447, 133, 11); -INSERT INTO discoveryinfo VALUES (4404448, 133, 11); -INSERT INTO discoveryinfo VALUES (4404449, 133, 11); -INSERT INTO discoveryinfo VALUES (4404450, 134, 12); -INSERT INTO discoveryinfo VALUES (4404451, 134, 12); -INSERT INTO discoveryinfo VALUES (4404452, 134, 12); -INSERT INTO discoveryinfo VALUES (4404458, 131, 9); -INSERT INTO discoveryinfo VALUES (4404987, 130, 7); -INSERT INTO discoveryinfo VALUES (4543794, 146, 3); -INSERT INTO discoveryinfo VALUES (4543795, 146, 3); -INSERT INTO discoveryinfo VALUES (4543796, 146, 4); -INSERT INTO discoveryinfo VALUES (4543797, 146, 4); -INSERT INTO discoveryinfo VALUES (4543798, 146, 5); -INSERT INTO discoveryinfo VALUES (4543799, 146, 5); -INSERT INTO discoveryinfo VALUES (4543800, 146, 5); -INSERT INTO discoveryinfo VALUES (4543803, 146, 2); -INSERT INTO discoveryinfo VALUES (4543804, 146, 2); -INSERT INTO discoveryinfo VALUES (4543805, 146, 2); -INSERT INTO discoveryinfo VALUES (4543810, 146, 7); -INSERT INTO discoveryinfo VALUES (4543811, 146, 7); -INSERT INTO discoveryinfo VALUES (4543812, 146, 7); -INSERT INTO discoveryinfo VALUES (4543813, 146, 8); -INSERT INTO discoveryinfo VALUES (4543814, 146, 8); -INSERT INTO discoveryinfo VALUES (4543815, 146, 10); -INSERT INTO discoveryinfo VALUES (4543818, 146, 1); -INSERT INTO discoveryinfo VALUES (4543820, 146, 7); -INSERT INTO discoveryinfo VALUES (4621662, 146, 9); -INSERT INTO discoveryinfo VALUES (4621663, 146, 7); -INSERT INTO discoveryinfo VALUES (4621664, 146, 8); -INSERT INTO discoveryinfo VALUES (4621665, 146, 8); -INSERT INTO discoveryinfo VALUES (4621666, 146, 6); -INSERT INTO discoveryinfo VALUES (4621667, 146, 8); -INSERT INTO discoveryinfo VALUES (4621668, 146, 8); -INSERT INTO discoveryinfo VALUES (4621669, 146, 3); -INSERT INTO discoveryinfo VALUES (4621670, 146, 9); -INSERT INTO discoveryinfo VALUES (4621660, 146, 1); -INSERT INTO discoveryinfo VALUES (4681139, 146, 1); -INSERT INTO discoveryinfo VALUES (4681141, 146, 1); -INSERT INTO discoveryinfo VALUES (4681142, 146, 1); -INSERT INTO discoveryinfo VALUES (4681184, 146, 7); -INSERT INTO discoveryinfo VALUES (4768065, 169, 1); -INSERT INTO discoveryinfo VALUES (4768067, 169, 1); -INSERT INTO discoveryinfo VALUES (4982003, 169, 2); -INSERT INTO discoveryinfo VALUES (4768068, 169, 2); -INSERT INTO discoveryinfo VALUES (4982004, 169, 2); -INSERT INTO discoveryinfo VALUES (4982007, 169, 3); -INSERT INTO discoveryinfo VALUES (4982005, 169, 3); -INSERT INTO discoveryinfo VALUES (4982009, 169, 3); -INSERT INTO discoveryinfo VALUES (4982038, 169, 4); -INSERT INTO discoveryinfo VALUES (4982039, 169, 4); -INSERT INTO discoveryinfo VALUES (4982041, 169, 5); -INSERT INTO discoveryinfo VALUES (4982050, 169, 5); -INSERT INTO discoveryinfo VALUES (4982051, 169, 6); -INSERT INTO discoveryinfo VALUES (4768073, 169, 7); -INSERT INTO discoveryinfo VALUES (4768082, 169, 8); -INSERT INTO discoveryinfo VALUES (4768083, 169, 8); -INSERT INTO discoveryinfo VALUES (4768084, 169, 8); -INSERT INTO discoveryinfo VALUES (4768085, 169, 9); -INSERT INTO discoveryinfo VALUES (4768086, 169, 9); -INSERT INTO discoveryinfo VALUES (4768094, 169, 6); -INSERT INTO discoveryinfo VALUES (4768099, 169, 9); -INSERT INTO discoveryinfo VALUES (4768100, 169, 11); -INSERT INTO discoveryinfo VALUES (4768101, 169, 11); -INSERT INTO discoveryinfo VALUES (4768102, 169, 13); -INSERT INTO discoveryinfo VALUES (5018506, 169, 1); -INSERT INTO discoveryinfo VALUES (5018517, 169, 1); -INSERT INTO discoveryinfo VALUES (5018518, 169, 1); -INSERT INTO discoveryinfo VALUES (5018519, 169, 1); -INSERT INTO discoveryinfo VALUES (5018520, 169, 1); -INSERT INTO discoveryinfo VALUES (5018524, 169, 6); -INSERT INTO discoveryinfo VALUES (5018525, 169, 6); -INSERT INTO discoveryinfo VALUES (5018526, 169, 13); -INSERT INTO discoveryinfo VALUES (5018528, 169, 13); -INSERT INTO discoveryinfo VALUES (5119555, 169, 1); -INSERT INTO discoveryinfo VALUES (5119559, 169, 1); -INSERT INTO discoveryinfo VALUES (5119560, 169, 1); -INSERT INTO discoveryinfo VALUES (4898128, 188, 1); -INSERT INTO discoveryinfo VALUES (4898129, 188, 2); -INSERT INTO discoveryinfo VALUES (4898130, 188, 3); -INSERT INTO discoveryinfo VALUES (4898131, 188, 4); -INSERT INTO discoveryinfo VALUES (4898132, 188, 5); -INSERT INTO discoveryinfo VALUES (4898133, 188, 5); -INSERT INTO discoveryinfo VALUES (4898135, 188, 6); -INSERT INTO discoveryinfo VALUES (4898136, 188, 6); -INSERT INTO discoveryinfo VALUES (5037564, 188, 6); -INSERT INTO discoveryinfo VALUES (4898137, 188, 7); -INSERT INTO discoveryinfo VALUES (5037550, 188, 7); -INSERT INTO discoveryinfo VALUES (5120376, 188, 7); -INSERT INTO discoveryinfo VALUES (4898138, 188, 8); -INSERT INTO discoveryinfo VALUES (4898139, 188, 9); -INSERT INTO discoveryinfo VALUES (5035251, 188, 10); -INSERT INTO discoveryinfo VALUES (5035254, 188, 10); -INSERT INTO discoveryinfo VALUES (5035252, 188, 10); -INSERT INTO discoveryinfo VALUES (5035263, 188, 11); -INSERT INTO discoveryinfo VALUES (5964418, 262, 1); -INSERT INTO discoveryinfo VALUES (5964443, 262, 1); -INSERT INTO discoveryinfo VALUES (5964442, 262, 1); -INSERT INTO discoveryinfo VALUES (5964441, 262, 1); -INSERT INTO discoveryinfo VALUES (5964440, 262, 2); -INSERT INTO discoveryinfo VALUES (5964439, 262, 2); -INSERT INTO discoveryinfo VALUES (6032372, 262, 2); -INSERT INTO discoveryinfo VALUES (5964438, 262, 3); -INSERT INTO discoveryinfo VALUES (5964413, 262, 3); -INSERT INTO discoveryinfo VALUES (5964412, 263, 4); -INSERT INTO discoveryinfo VALUES (5964410, 263, 5); -INSERT INTO discoveryinfo VALUES (5964409, 263, 5); -INSERT INTO discoveryinfo VALUES (5964445, 263, 5); -INSERT INTO discoveryinfo VALUES (5964447, 263, 5); -INSERT INTO discoveryinfo VALUES (5964448, 264, 6); -INSERT INTO discoveryinfo VALUES (5964449, 264, 6); -INSERT INTO discoveryinfo VALUES (5964405, 264, 6); -INSERT INTO discoveryinfo VALUES (5964404, 264, 7); -INSERT INTO discoveryinfo VALUES (5964403, 264, 7); -INSERT INTO discoveryinfo VALUES (5964402, 264, 7); -INSERT INTO discoveryinfo VALUES (5964401, 264, 8); -INSERT INTO discoveryinfo VALUES (6030880, 265, 9); -INSERT INTO discoveryinfo VALUES (5964394, 265, 9); -INSERT INTO discoveryinfo VALUES (5964393, 265, 10); -INSERT INTO discoveryinfo VALUES (5964450, 266, 11); -INSERT INTO discoveryinfo VALUES (5964451, 266, 11); -INSERT INTO discoveryinfo VALUES (5964452, 266, 12); -INSERT INTO discoveryinfo VALUES (5964453, 266, 13); -INSERT INTO discoveryinfo VALUES (5964454, 266, 14); -INSERT INTO discoveryinfo VALUES (5964455, 266, 15); -INSERT INTO discoveryinfo VALUES (5964457, 266, 11); -INSERT INTO discoveryinfo VALUES (6050833, 266, 12); -INSERT INTO discoveryinfo VALUES (5964417, 263, 4); -INSERT INTO discoveryinfo VALUES (6234179, 297, 1); -INSERT INTO discoveryinfo VALUES (6234180, 297, 2); -INSERT INTO discoveryinfo VALUES (6234181, 297, 3); -INSERT INTO discoveryinfo VALUES (6234182, 297, 4); -INSERT INTO discoveryinfo VALUES (6234183, 297, 5); -INSERT INTO discoveryinfo VALUES (6234184, 297, 5); -INSERT INTO discoveryinfo VALUES (6234185, 297, 6); -INSERT INTO discoveryinfo VALUES (6234186, 297, 7); -INSERT INTO discoveryinfo VALUES (6234187, 297, 8); -INSERT INTO discoveryinfo VALUES (6234188, 297, 8); -INSERT INTO discoveryinfo VALUES (6234189, 297, 9); -INSERT INTO discoveryinfo VALUES (6234190, 297, 10); -INSERT INTO discoveryinfo VALUES (6234191, 297, 11); -INSERT INTO discoveryinfo VALUES (6280057, 297, 2); -INSERT INTO discoveryinfo VALUES (6280060, 297, 3); -INSERT INTO discoveryinfo VALUES (6280251, 297, 12); -INSERT INTO discoveryinfo VALUES (3975004, 15, 1); -INSERT INTO discoveryinfo VALUES (4161435, 15, 1); -INSERT INTO discoveryinfo VALUES (4242604, 15, 1); -INSERT INTO discoveryinfo VALUES (4242609, 15, 1); -INSERT INTO discoveryinfo VALUES (4242610, 15, 1); -INSERT INTO discoveryinfo VALUES (3975007, 15, 2); -INSERT INTO discoveryinfo VALUES (4161439, 15, 3); -INSERT INTO discoveryinfo VALUES (4161440, 15, 3); -INSERT INTO discoveryinfo VALUES (4161442, 15, 3); -INSERT INTO discoveryinfo VALUES (3975010, 15, 3); -INSERT INTO discoveryinfo VALUES (3975011, 15, 4); -INSERT INTO discoveryinfo VALUES (4161449, 15, 4); -INSERT INTO discoveryinfo VALUES (4161453, 15, 4); -INSERT INTO discoveryinfo VALUES (3975013, 15, 5); -INSERT INTO discoveryinfo VALUES (4161454, 15, 6); -INSERT INTO discoveryinfo VALUES (4161456, 15, 6); -INSERT INTO discoveryinfo VALUES (4161457, 15, 6); -INSERT INTO discoveryinfo VALUES (4161459, 15, 6); -INSERT INTO discoveryinfo VALUES (4161462, 15, 6); -INSERT INTO discoveryinfo VALUES (3975015, 15, 6); -INSERT INTO discoveryinfo VALUES (3975016, 15, 7); -INSERT INTO discoveryinfo VALUES (4242605, 15, 1); -INSERT INTO discoveryinfo VALUES (3643234, 16, 1); -INSERT INTO discoveryinfo VALUES (3643236, 16, 1); -INSERT INTO discoveryinfo VALUES (3643414, 16, 2); -INSERT INTO discoveryinfo VALUES (3643415, 16, 2); -INSERT INTO discoveryinfo VALUES (3643483, 16, 2); -INSERT INTO discoveryinfo VALUES (3643457, 16, 3); -INSERT INTO discoveryinfo VALUES (4334728, 16, 3); -INSERT INTO discoveryinfo VALUES (3643485, 16, 3); -INSERT INTO discoveryinfo VALUES (3643486, 16, 3); -INSERT INTO discoveryinfo VALUES (3643487, 16, 3); -INSERT INTO discoveryinfo VALUES (3643488, 16, 3); -INSERT INTO discoveryinfo VALUES (3643489, 16, 4); -INSERT INTO discoveryinfo VALUES (3643490, 16, 5); -INSERT INTO discoveryinfo VALUES (3643491, 16, 6); -INSERT INTO discoveryinfo VALUES (3643702, 16, 6); -INSERT INTO discoveryinfo VALUES (3643495, 16, 7); -INSERT INTO discoveryinfo VALUES (3643496, 16, 7); -INSERT INTO discoveryinfo VALUES (3643497, 16, 7); -INSERT INTO discoveryinfo VALUES (3643498, 16, 7); -INSERT INTO discoveryinfo VALUES (3643499, 16, 7); -INSERT INTO discoveryinfo VALUES (3643501, 16, 7); -INSERT INTO discoveryinfo VALUES (3643509, 16, 8); -INSERT INTO discoveryinfo VALUES (3643506, 16, 9); -INSERT INTO discoveryinfo VALUES (3643507, 16, 9); -INSERT INTO discoveryinfo VALUES (3643500, 16, 10); -INSERT INTO discoveryinfo VALUES (3643502, 16, 10); -INSERT INTO discoveryinfo VALUES (3643503, 16, 10); -INSERT INTO discoveryinfo VALUES (3643504, 16, 10); -INSERT INTO discoveryinfo VALUES (3643505, 16, 10); -INSERT INTO discoveryinfo VALUES (4334730, 16, 7); -INSERT INTO discoveryinfo VALUES (4162133, 17, 1); -INSERT INTO discoveryinfo VALUES (4164735, 17, 1); -INSERT INTO discoveryinfo VALUES (4164742, 17, 1); -INSERT INTO discoveryinfo VALUES (4162141, 17, 2); -INSERT INTO discoveryinfo VALUES (4162142, 17, 3); -INSERT INTO discoveryinfo VALUES (4164739, 17, 3); -INSERT INTO discoveryinfo VALUES (4164740, 17, 3); -INSERT INTO discoveryinfo VALUES (4164741, 17, 3); -INSERT INTO discoveryinfo VALUES (4162143, 17, 4); -INSERT INTO discoveryinfo VALUES (4164731, 17, 4); -INSERT INTO discoveryinfo VALUES (4164732, 17, 4); -INSERT INTO discoveryinfo VALUES (4164733, 17, 4); -INSERT INTO discoveryinfo VALUES (4162144, 17, 5); -INSERT INTO discoveryinfo VALUES (4162145, 17, 6); -INSERT INTO discoveryinfo VALUES (4164620, 17, 6); -INSERT INTO discoveryinfo VALUES (4162146, 17, 7); -INSERT INTO discoveryinfo VALUES (4162147, 17, 8); -INSERT INTO discoveryinfo VALUES (4164648, 17, 8); -INSERT INTO discoveryinfo VALUES (4164654, 17, 8); -INSERT INTO discoveryinfo VALUES (4164656, 17, 8); -INSERT INTO discoveryinfo VALUES (4162148, 17, 9); -INSERT INTO discoveryinfo VALUES (4162149, 17, 10); -INSERT INTO discoveryinfo VALUES (4164663, 17, 10); -INSERT INTO discoveryinfo VALUES (4162150, 17, 11); -INSERT INTO discoveryinfo VALUES (4162153, 17, 12); -INSERT INTO discoveryinfo VALUES (4164611, 17, 12); -INSERT INTO discoveryinfo VALUES (4162155, 17, 13); -INSERT INTO discoveryinfo VALUES (4162154, 17, 14); -INSERT INTO discoveryinfo VALUES (4164843, 18, 1); -INSERT INTO discoveryinfo VALUES (4164858, 18, 1); -INSERT INTO discoveryinfo VALUES (4164859, 18, 1); -INSERT INTO discoveryinfo VALUES (4164861, 18, 1); -INSERT INTO discoveryinfo VALUES (4164862, 18, 1); -INSERT INTO discoveryinfo VALUES (4164846, 18, 2); -INSERT INTO discoveryinfo VALUES (4164900, 18, 3); -INSERT INTO discoveryinfo VALUES (4164905, 18, 3); -INSERT INTO discoveryinfo VALUES (4164911, 18, 4); -INSERT INTO discoveryinfo VALUES (4164912, 18, 4); -INSERT INTO discoveryinfo VALUES (4164914, 18, 4); -INSERT INTO discoveryinfo VALUES (4164917, 18, 5); -INSERT INTO discoveryinfo VALUES (4164921, 18, 5); -INSERT INTO discoveryinfo VALUES (4164923, 18, 6); -INSERT INTO discoveryinfo VALUES (4164924, 18, 7); -INSERT INTO discoveryinfo VALUES (4164926, 18, 7); -INSERT INTO discoveryinfo VALUES (4164929, 18, 7); -INSERT INTO discoveryinfo VALUES (4164931, 18, 8); -INSERT INTO discoveryinfo VALUES (4164934, 18, 8); -INSERT INTO discoveryinfo VALUES (4164937, 18, 9); -INSERT INTO discoveryinfo VALUES (4164938, 18, 9); -INSERT INTO discoveryinfo VALUES (4164940, 18, 10); -INSERT INTO discoveryinfo VALUES (4164942, 18, 11); -INSERT INTO discoveryinfo VALUES (4164944, 18, 11); -INSERT INTO discoveryinfo VALUES (4164945, 18, 12); -INSERT INTO discoveryinfo VALUES (4164947, 18, 13); -INSERT INTO discoveryinfo VALUES (4164948, 18, 14); -INSERT INTO discoveryinfo VALUES (4164950, 18, 15); -INSERT INTO discoveryinfo VALUES (4164952, 18, 16); -INSERT INTO discoveryinfo VALUES (4164953, 18, 17); -INSERT INTO discoveryinfo VALUES (4164955, 18, 18); -INSERT INTO discoveryinfo VALUES (4164956, 18, 18); -INSERT INTO discoveryinfo VALUES (4164957, 18, 18); -INSERT INTO discoveryinfo VALUES (4164958, 18, 19); -INSERT INTO discoveryinfo VALUES (4665752, 18, 11); -INSERT INTO discoveryinfo VALUES (4665756, 18, 11); -INSERT INTO discoveryinfo VALUES (4165760, 19, 1); -INSERT INTO discoveryinfo VALUES (4165774, 19, 1); -INSERT INTO discoveryinfo VALUES (4165761, 19, 2); -INSERT INTO discoveryinfo VALUES (4165767, 19, 2); -INSERT INTO discoveryinfo VALUES (4165768, 19, 2); -INSERT INTO discoveryinfo VALUES (4165762, 19, 3); -INSERT INTO discoveryinfo VALUES (4165770, 19, 3); -INSERT INTO discoveryinfo VALUES (4165763, 19, 4); -INSERT INTO discoveryinfo VALUES (4310836, 19, 4); -INSERT INTO discoveryinfo VALUES (4311173, 19, 4); -INSERT INTO discoveryinfo VALUES (4311182, 19, 4); -INSERT INTO discoveryinfo VALUES (4165781, 19, 5); -INSERT INTO discoveryinfo VALUES (4165782, 19, 6); -INSERT INTO discoveryinfo VALUES (4165784, 19, 7); -INSERT INTO discoveryinfo VALUES (4165785, 19, 8); -INSERT INTO discoveryinfo VALUES (4165830, 30, 1); -INSERT INTO discoveryinfo VALUES (4334750, 30, 1); -INSERT INTO discoveryinfo VALUES (4165833, 30, 2); -INSERT INTO discoveryinfo VALUES (4165834, 30, 3); -INSERT INTO discoveryinfo VALUES (4165835, 30, 3); -INSERT INTO discoveryinfo VALUES (4165836, 30, 4); -INSERT INTO discoveryinfo VALUES (4334751, 30, 5); -INSERT INTO discoveryinfo VALUES (4165838, 30, 6); -INSERT INTO discoveryinfo VALUES (4165839, 30, 7); -INSERT INTO discoveryinfo VALUES (4165840, 30, 8); -INSERT INTO discoveryinfo VALUES (4165841, 30, 8); -INSERT INTO discoveryinfo VALUES (6212566, 285, 32); -INSERT INTO discoveryinfo VALUES (4999689, 175, 1); -INSERT INTO discoveryinfo VALUES (4999690, 175, 2); -INSERT INTO discoveryinfo VALUES (4999716, 175, 3); -INSERT INTO discoveryinfo VALUES (4999718, 175, 5); -INSERT INTO discoveryinfo VALUES (4999719, 175, 6); -INSERT INTO discoveryinfo VALUES (5000372, 175, 1); -INSERT INTO discoveryinfo VALUES (5000828, 175, 4); -INSERT INTO discoveryinfo VALUES (5000330, 176, 1); -INSERT INTO discoveryinfo VALUES (5000336, 176, 1); -INSERT INTO discoveryinfo VALUES (5000350, 176, 2); -INSERT INTO discoveryinfo VALUES (5000351, 176, 3); -INSERT INTO discoveryinfo VALUES (5000352, 176, 3); -INSERT INTO discoveryinfo VALUES (5000354, 176, 4); -INSERT INTO discoveryinfo VALUES (5000355, 176, 4); -INSERT INTO discoveryinfo VALUES (5000356, 176, 4); -INSERT INTO discoveryinfo VALUES (5000357, 176, 4); -INSERT INTO discoveryinfo VALUES (5000358, 176, 4); -INSERT INTO discoveryinfo VALUES (5000359, 176, 4); -INSERT INTO discoveryinfo VALUES (5000360, 176, 4); -INSERT INTO discoveryinfo VALUES (5000361, 176, 4); -INSERT INTO discoveryinfo VALUES (5000362, 176, 4); -INSERT INTO discoveryinfo VALUES (5000363, 176, 5); -INSERT INTO discoveryinfo VALUES (5000364, 176, 6); -INSERT INTO discoveryinfo VALUES (5000369, 176, 2); -INSERT INTO discoveryinfo VALUES (5342993, 176, 6); -INSERT INTO discoveryinfo VALUES (5342994, 176, 6); -INSERT INTO discoveryinfo VALUES (5343008, 176, 1); -INSERT INTO discoveryinfo VALUES (5343013, 176, 1); -INSERT INTO discoveryinfo VALUES (5485243, 176, 5); -INSERT INTO discoveryinfo VALUES (2789689, 40, 3); -INSERT INTO discoveryinfo VALUES (2789690, 40, 7); -INSERT INTO discoveryinfo VALUES (2789812, 41, 8); -INSERT INTO discoveryinfo VALUES (4142940, 40, 5); -INSERT INTO discoveryinfo VALUES (4142945, 40, 14); -INSERT INTO discoveryinfo VALUES (4142953, 41, 10); -INSERT INTO discoveryinfo VALUES (4142959, 41, 13); -INSERT INTO discoveryinfo VALUES (4142960, 41, 9); -INSERT INTO discoveryinfo VALUES (4142961, 40, 6); -INSERT INTO discoveryinfo VALUES (4142964, 40, 3); -INSERT INTO discoveryinfo VALUES (4142968, 40, 4); -INSERT INTO discoveryinfo VALUES (4142972, 40, 4); -INSERT INTO discoveryinfo VALUES (4142973, 40, 4); -INSERT INTO discoveryinfo VALUES (4142974, 40, 4); -INSERT INTO discoveryinfo VALUES (4142975, 40, 4); -INSERT INTO discoveryinfo VALUES (4142979, 40, 5); -INSERT INTO discoveryinfo VALUES (4143006, 41, 8); -INSERT INTO discoveryinfo VALUES (4143007, 41, 8); -INSERT INTO discoveryinfo VALUES (4143009, 41, 9); -INSERT INTO discoveryinfo VALUES (4143010, 41, 9); -INSERT INTO discoveryinfo VALUES (4143011, 41, 8); -INSERT INTO discoveryinfo VALUES (4143012, 41, 11); -INSERT INTO discoveryinfo VALUES (4143013, 41, 11); -INSERT INTO discoveryinfo VALUES (4143014, 41, 10); -INSERT INTO discoveryinfo VALUES (4143124, 41, 12); -INSERT INTO discoveryinfo VALUES (4143134, 41, 12); -INSERT INTO discoveryinfo VALUES (4143143, 41, 13); -INSERT INTO discoveryinfo VALUES (4143144, 41, 13); -INSERT INTO discoveryinfo VALUES (4143146, 41, 13); -INSERT INTO discoveryinfo VALUES (4143147, 41, 13); -INSERT INTO discoveryinfo VALUES (4143154, 41, 13); -INSERT INTO discoveryinfo VALUES (4143156, 41, 13); -INSERT INTO discoveryinfo VALUES (4143159, 41, 13); -INSERT INTO discoveryinfo VALUES (4148991, 34, 2); -INSERT INTO discoveryinfo VALUES (4148994, 34, 1); -INSERT INTO discoveryinfo VALUES (4149067, 40, 6); -INSERT INTO discoveryinfo VALUES (4190667, 40, 3); -INSERT INTO discoveryinfo VALUES (4154591, 46, 1); -INSERT INTO discoveryinfo VALUES (4154843, 46, 2); -INSERT INTO discoveryinfo VALUES (4154846, 46, 2); -INSERT INTO discoveryinfo VALUES (4154856, 46, 2); -INSERT INTO discoveryinfo VALUES (4154862, 46, 2); -INSERT INTO discoveryinfo VALUES (4154871, 46, 2); -INSERT INTO discoveryinfo VALUES (4154874, 46, 2); -INSERT INTO discoveryinfo VALUES (4154878, 46, 2); -INSERT INTO discoveryinfo VALUES (4154881, 46, 2); -INSERT INTO discoveryinfo VALUES (4154896, 46, 4); -INSERT INTO discoveryinfo VALUES (4154906, 46, 4); -INSERT INTO discoveryinfo VALUES (4154913, 46, 5); -INSERT INTO discoveryinfo VALUES (4154920, 46, 5); -INSERT INTO discoveryinfo VALUES (4154925, 46, 5); -INSERT INTO discoveryinfo VALUES (4154929, 46, 5); -INSERT INTO discoveryinfo VALUES (4154945, 46, 6); -INSERT INTO discoveryinfo VALUES (4154947, 46, 6); -INSERT INTO discoveryinfo VALUES (4154950, 46, 6); -INSERT INTO discoveryinfo VALUES (4154951, 46, 6); -INSERT INTO discoveryinfo VALUES (4154954, 46, 7); -INSERT INTO discoveryinfo VALUES (4154955, 46, 8); -INSERT INTO discoveryinfo VALUES (4154957, 46, 8); -INSERT INTO discoveryinfo VALUES (4154958, 46, 9); -INSERT INTO discoveryinfo VALUES (4154981, 46, 3); -INSERT INTO discoveryinfo VALUES (4154982, 46, 3); -INSERT INTO discoveryinfo VALUES (4154983, 46, 3); -INSERT INTO discoveryinfo VALUES (4154984, 46, 3); -INSERT INTO discoveryinfo VALUES (4154987, 46, 3); -INSERT INTO discoveryinfo VALUES (4154990, 46, 3); -INSERT INTO discoveryinfo VALUES (4155022, 46, 3); -INSERT INTO discoveryinfo VALUES (4155023, 46, 3); -INSERT INTO discoveryinfo VALUES (4155024, 46, 3); -INSERT INTO discoveryinfo VALUES (4278339, 42, 1); -INSERT INTO discoveryinfo VALUES (4278406, 43, 2); -INSERT INTO discoveryinfo VALUES (4278410, 43, 3); -INSERT INTO discoveryinfo VALUES (4278415, 43, 4); -INSERT INTO discoveryinfo VALUES (4278417, 43, 5); -INSERT INTO discoveryinfo VALUES (4278419, 43, 5); -INSERT INTO discoveryinfo VALUES (4278420, 43, 5); -INSERT INTO discoveryinfo VALUES (4278432, 43, 5); -INSERT INTO discoveryinfo VALUES (4278438, 43, 6); -INSERT INTO discoveryinfo VALUES (4278461, 43, 7); -INSERT INTO discoveryinfo VALUES (4278472, 43, 8); -INSERT INTO discoveryinfo VALUES (4278474, 43, 8); -INSERT INTO discoveryinfo VALUES (4278494, 43, 8); -INSERT INTO discoveryinfo VALUES (4279992, 43, 9); -INSERT INTO discoveryinfo VALUES (4280840, 43, 10); -INSERT INTO discoveryinfo VALUES (4282568, 43, 11); -INSERT INTO discoveryinfo VALUES (4282573, 43, 12); -INSERT INTO discoveryinfo VALUES (4282574, 43, 13); -INSERT INTO discoveryinfo VALUES (4282585, 43, 14); -INSERT INTO discoveryinfo VALUES (4282592, 43, 14); -INSERT INTO discoveryinfo VALUES (4282594, 43, 15); -INSERT INTO discoveryinfo VALUES (4282598, 43, 16); -INSERT INTO discoveryinfo VALUES (4282605, 44, 17); -INSERT INTO discoveryinfo VALUES (4282613, 44, 17); -INSERT INTO discoveryinfo VALUES (4283510, 44, 18); -INSERT INTO discoveryinfo VALUES (4283574, 44, 19); -INSERT INTO discoveryinfo VALUES (4283661, 44, 19); -INSERT INTO discoveryinfo VALUES (4296825, 42, 1); -INSERT INTO discoveryinfo VALUES (4335666, 42, 1); -INSERT INTO discoveryinfo VALUES (4335670, 43, 8); -INSERT INTO discoveryinfo VALUES (4322392, 47, 1); -INSERT INTO discoveryinfo VALUES (4322393, 47, 2); -INSERT INTO discoveryinfo VALUES (4322394, 47, 2); -INSERT INTO discoveryinfo VALUES (4322395, 47, 2); -INSERT INTO discoveryinfo VALUES (4322396, 47, 3); -INSERT INTO discoveryinfo VALUES (4322398, 47, 3); -INSERT INTO discoveryinfo VALUES (4322399, 47, 3); -INSERT INTO discoveryinfo VALUES (4322400, 47, 3); -INSERT INTO discoveryinfo VALUES (4322402, 47, 3); -INSERT INTO discoveryinfo VALUES (4322404, 47, 4); -INSERT INTO discoveryinfo VALUES (4322408, 47, 4); -INSERT INTO discoveryinfo VALUES (4322411, 47, 6); -INSERT INTO discoveryinfo VALUES (4322413, 47, 6); -INSERT INTO discoveryinfo VALUES (4322417, 47, 6); -INSERT INTO discoveryinfo VALUES (4322427, 47, 7); -INSERT INTO discoveryinfo VALUES (4322428, 47, 7); -INSERT INTO discoveryinfo VALUES (4322429, 47, 7); -INSERT INTO discoveryinfo VALUES (4322431, 47, 8); -INSERT INTO discoveryinfo VALUES (4322434, 47, 9); -INSERT INTO discoveryinfo VALUES (4322439, 47, 5); -INSERT INTO discoveryinfo VALUES (4322441, 47, 15); -INSERT INTO discoveryinfo VALUES (4322442, 47, 15); -INSERT INTO discoveryinfo VALUES (4322444, 47, 10); -INSERT INTO discoveryinfo VALUES (4322445, 47, 10); -INSERT INTO discoveryinfo VALUES (4322448, 47, 11); -INSERT INTO discoveryinfo VALUES (4322449, 47, 11); -INSERT INTO discoveryinfo VALUES (4322452, 47, 11); -INSERT INTO discoveryinfo VALUES (4322453, 47, 11); -INSERT INTO discoveryinfo VALUES (4322454, 47, 13); -INSERT INTO discoveryinfo VALUES (4322455, 47, 13); -INSERT INTO discoveryinfo VALUES (4322456, 47, 13); -INSERT INTO discoveryinfo VALUES (4322457, 47, 14); -INSERT INTO discoveryinfo VALUES (4322458, 47, 12); -INSERT INTO discoveryinfo VALUES (4322459, 47, 12); -INSERT INTO discoveryinfo VALUES (4313955, 56, 1); -INSERT INTO discoveryinfo VALUES (4313958, 99, 2); -INSERT INTO discoveryinfo VALUES (4313962, 100, 4); -INSERT INTO discoveryinfo VALUES (4313969, 101, 9); -INSERT INTO discoveryinfo VALUES (4313972, 102, 10); -INSERT INTO discoveryinfo VALUES (4313973, 103, 12); -INSERT INTO discoveryinfo VALUES (4313975, 103, 15); -INSERT INTO discoveryinfo VALUES (4322840, 56, 1); -INSERT INTO discoveryinfo VALUES (4322841, 99, 2); -INSERT INTO discoveryinfo VALUES (4322843, 100, 4); -INSERT INTO discoveryinfo VALUES (4322846, 101, 9); -INSERT INTO discoveryinfo VALUES (4328685, 99, 3); -INSERT INTO discoveryinfo VALUES (4328688, 99, 3); -INSERT INTO discoveryinfo VALUES (4328689, 99, 3); -INSERT INTO discoveryinfo VALUES (4328690, 99, 5); -INSERT INTO discoveryinfo VALUES (4328691, 56, 8); -INSERT INTO discoveryinfo VALUES (4328692, 99, 7); -INSERT INTO discoveryinfo VALUES (4328695, 99, 7); -INSERT INTO discoveryinfo VALUES (4328696, 100, 6); -INSERT INTO discoveryinfo VALUES (4328697, 99, 6); -INSERT INTO discoveryinfo VALUES (4328698, 100, 6); -INSERT INTO discoveryinfo VALUES (4328699, 99, 6); -INSERT INTO discoveryinfo VALUES (4328700, 99, 6); -INSERT INTO discoveryinfo VALUES (4328701, 99, 6); -INSERT INTO discoveryinfo VALUES (4328702, 99, 6); -INSERT INTO discoveryinfo VALUES (4328703, 99, 11); -INSERT INTO discoveryinfo VALUES (4328704, 99, 11); -INSERT INTO discoveryinfo VALUES (4328705, 99, 11); -INSERT INTO discoveryinfo VALUES (4328706, 103, 13); -INSERT INTO discoveryinfo VALUES (4328707, 103, 14); -INSERT INTO discoveryinfo VALUES (4515176, 140, 1); -INSERT INTO discoveryinfo VALUES (4515178, 141, 2); -INSERT INTO discoveryinfo VALUES (4515179, 141, 3); -INSERT INTO discoveryinfo VALUES (4515180, 141, 3); -INSERT INTO discoveryinfo VALUES (4515182, 141, 4); -INSERT INTO discoveryinfo VALUES (4515184, 141, 5); -INSERT INTO discoveryinfo VALUES (4515186, 141, 5); -INSERT INTO discoveryinfo VALUES (4515189, 141, 6); -INSERT INTO discoveryinfo VALUES (4515190, 141, 6); -INSERT INTO discoveryinfo VALUES (4515193, 141, 7); -INSERT INTO discoveryinfo VALUES (4515196, 141, 7); -INSERT INTO discoveryinfo VALUES (4515201, 141, 8); -INSERT INTO discoveryinfo VALUES (4515204, 141, 9); -INSERT INTO discoveryinfo VALUES (4515205, 141, 10); -INSERT INTO discoveryinfo VALUES (4515208, 141, 10); -INSERT INTO discoveryinfo VALUES (4515267, 142, 11); -INSERT INTO discoveryinfo VALUES (4515268, 142, 11); -INSERT INTO discoveryinfo VALUES (4515306, 142, 12); -INSERT INTO discoveryinfo VALUES (4515308, 142, 12); -INSERT INTO discoveryinfo VALUES (4515342, 142, 13); -INSERT INTO discoveryinfo VALUES (4515382, 142, 13); -INSERT INTO discoveryinfo VALUES (4515383, 142, 13); -INSERT INTO discoveryinfo VALUES (4515385, 142, 14); -INSERT INTO discoveryinfo VALUES (4515386, 142, 15); -INSERT INTO discoveryinfo VALUES (4481386, 40, 3); -INSERT INTO discoveryinfo VALUES (4481387, 40, 7); -INSERT INTO discoveryinfo VALUES (4481388, 41, 8); -INSERT INTO discoveryinfo VALUES (4481389, 40, 5); -INSERT INTO discoveryinfo VALUES (4481390, 40, 14); -INSERT INTO discoveryinfo VALUES (4481391, 41, 10); -INSERT INTO discoveryinfo VALUES (4481392, 41, 13); -INSERT INTO discoveryinfo VALUES (4481393, 41, 9); -INSERT INTO discoveryinfo VALUES (4481394, 40, 6); -INSERT INTO discoveryinfo VALUES (4481395, 40, 3); -INSERT INTO discoveryinfo VALUES (4481396, 40, 4); -INSERT INTO discoveryinfo VALUES (4481397, 40, 4); -INSERT INTO discoveryinfo VALUES (4481398, 40, 4); -INSERT INTO discoveryinfo VALUES (4481399, 40, 4); -INSERT INTO discoveryinfo VALUES (4481400, 40, 4); -INSERT INTO discoveryinfo VALUES (4481401, 40, 5); -INSERT INTO discoveryinfo VALUES (4481402, 41, 8); -INSERT INTO discoveryinfo VALUES (4481403, 41, 8); -INSERT INTO discoveryinfo VALUES (4481404, 41, 9); -INSERT INTO discoveryinfo VALUES (4481405, 41, 9); -INSERT INTO discoveryinfo VALUES (4481406, 41, 8); -INSERT INTO discoveryinfo VALUES (4481407, 41, 11); -INSERT INTO discoveryinfo VALUES (4481408, 41, 11); -INSERT INTO discoveryinfo VALUES (4481409, 41, 10); -INSERT INTO discoveryinfo VALUES (4481410, 41, 12); -INSERT INTO discoveryinfo VALUES (4481411, 41, 12); -INSERT INTO discoveryinfo VALUES (4481412, 41, 13); -INSERT INTO discoveryinfo VALUES (4481413, 41, 13); -INSERT INTO discoveryinfo VALUES (4481414, 41, 13); -INSERT INTO discoveryinfo VALUES (4481415, 41, 13); -INSERT INTO discoveryinfo VALUES (4481416, 41, 13); -INSERT INTO discoveryinfo VALUES (4481417, 41, 13); -INSERT INTO discoveryinfo VALUES (4481418, 41, 13); -INSERT INTO discoveryinfo VALUES (4481419, 34, 2); -INSERT INTO discoveryinfo VALUES (4481420, 34, 1); -INSERT INTO discoveryinfo VALUES (4481421, 40, 6); -INSERT INTO discoveryinfo VALUES (4481422, 40, 3); -INSERT INTO discoveryinfo VALUES (4569450, 145, 1); -INSERT INTO discoveryinfo VALUES (4569451, 145, 5); -INSERT INTO discoveryinfo VALUES (4569459, 145, 2); -INSERT INTO discoveryinfo VALUES (4569460, 145, 3); -INSERT INTO discoveryinfo VALUES (4569461, 145, 3); -INSERT INTO discoveryinfo VALUES (4569464, 145, 3); -INSERT INTO discoveryinfo VALUES (4569465, 145, 4); -INSERT INTO discoveryinfo VALUES (4569471, 145, 10); -INSERT INTO discoveryinfo VALUES (4569472, 145, 11); -INSERT INTO discoveryinfo VALUES (4569479, 145, 6); -INSERT INTO discoveryinfo VALUES (4627320, 145, 6); -INSERT INTO discoveryinfo VALUES (4627322, 145, 7); -INSERT INTO discoveryinfo VALUES (4627324, 145, 7); -INSERT INTO discoveryinfo VALUES (4627332, 145, 9); -INSERT INTO discoveryinfo VALUES (4627336, 145, 8); -INSERT INTO discoveryinfo VALUES (4890336, 182, 1); -INSERT INTO discoveryinfo VALUES (4890497, 182, 2); -INSERT INTO discoveryinfo VALUES (4890506, 182, 3); -INSERT INTO discoveryinfo VALUES (4890535, 182, 3); -INSERT INTO discoveryinfo VALUES (4890651, 183, 4); -INSERT INTO discoveryinfo VALUES (4890661, 183, 5); -INSERT INTO discoveryinfo VALUES (4890664, 183, 6); -INSERT INTO discoveryinfo VALUES (4890669, 183, 7); -INSERT INTO discoveryinfo VALUES (4890674, 183, 7); -INSERT INTO discoveryinfo VALUES (4890679, 183, 8); -INSERT INTO discoveryinfo VALUES (4890766, 182, 9); -INSERT INTO discoveryinfo VALUES (4890770, 182, 10); -INSERT INTO discoveryinfo VALUES (4890776, 182, 10); -INSERT INTO discoveryinfo VALUES (4890780, 182, 11); -INSERT INTO discoveryinfo VALUES (4890784, 182, 12); -INSERT INTO discoveryinfo VALUES (4890786, 182, 13); -INSERT INTO discoveryinfo VALUES (4890788, 182, 14); -INSERT INTO discoveryinfo VALUES (4890791, 182, 15); -INSERT INTO discoveryinfo VALUES (5032226, 182, 3); -INSERT INTO discoveryinfo VALUES (5032227, 182, 12); -INSERT INTO discoveryinfo VALUES (5033231, 182, 12); -INSERT INTO discoveryinfo VALUES (5033232, 182, 12); -INSERT INTO discoveryinfo VALUES (5033927, 183, 5); -INSERT INTO discoveryinfo VALUES (5034828, 182, 15); -INSERT INTO discoveryinfo VALUES (5034833, 182, 15); -INSERT INTO discoveryinfo VALUES (5034834, 182, 15); -INSERT INTO discoveryinfo VALUES (5348496, 182, 10); -INSERT INTO discoveryinfo VALUES (4098244, 20, 1); -INSERT INTO discoveryinfo VALUES (4098246, 20, 2); -INSERT INTO discoveryinfo VALUES (4098252, 20, 2); -INSERT INTO discoveryinfo VALUES (4098653, 20, 2); -INSERT INTO discoveryinfo VALUES (4098655, 20, 3); -INSERT INTO discoveryinfo VALUES (4098657, 20, 4); -INSERT INTO discoveryinfo VALUES (4098662, 20, 5); -INSERT INTO discoveryinfo VALUES (4098665, 20, 6); -INSERT INTO discoveryinfo VALUES (4098675, 20, 6); -INSERT INTO discoveryinfo VALUES (4098680, 20, 7); -INSERT INTO discoveryinfo VALUES (4098686, 20, 8); -INSERT INTO discoveryinfo VALUES (4098698, 20, 9); -INSERT INTO discoveryinfo VALUES (4098719, 20, 10); -INSERT INTO discoveryinfo VALUES (4098723, 20, 11); -INSERT INTO discoveryinfo VALUES (4098733, 20, 12); -INSERT INTO discoveryinfo VALUES (4203976, 20, 5); -INSERT INTO discoveryinfo VALUES (4203984, 20, 5); -INSERT INTO discoveryinfo VALUES (4218112, 20, 2); -INSERT INTO discoveryinfo VALUES (4218256, 20, 6); -INSERT INTO discoveryinfo VALUES (4218258, 20, 6); -INSERT INTO discoveryinfo VALUES (4203968, 20, 5); -INSERT INTO discoveryinfo VALUES (3643649, 21, 1); -INSERT INTO discoveryinfo VALUES (3643706, 21, 1); -INSERT INTO discoveryinfo VALUES (3643707, 21, 3); -INSERT INTO discoveryinfo VALUES (3643708, 21, 1); -INSERT INTO discoveryinfo VALUES (3643709, 21, 2); -INSERT INTO discoveryinfo VALUES (3643710, 21, 3); -INSERT INTO discoveryinfo VALUES (3643715, 21, 4); -INSERT INTO discoveryinfo VALUES (3643728, 21, 4); -INSERT INTO discoveryinfo VALUES (3643815, 21, 5); -INSERT INTO discoveryinfo VALUES (3643825, 21, 5); -INSERT INTO discoveryinfo VALUES (3643831, 21, 5); -INSERT INTO discoveryinfo VALUES (3643841, 21, 6); -INSERT INTO discoveryinfo VALUES (3643859, 21, 7); -INSERT INTO discoveryinfo VALUES (3643862, 21, 5); -INSERT INTO discoveryinfo VALUES (3643864, 21, 8); -INSERT INTO discoveryinfo VALUES (3643865, 21, 8); -INSERT INTO discoveryinfo VALUES (3643871, 21, 8); -INSERT INTO discoveryinfo VALUES (3643879, 21, 6); -INSERT INTO discoveryinfo VALUES (3645046, 21, 10); -INSERT INTO discoveryinfo VALUES (3645058, 21, 10); -INSERT INTO discoveryinfo VALUES (3645548, 21, 9); -INSERT INTO discoveryinfo VALUES (3645576, 21, 9); -INSERT INTO discoveryinfo VALUES (3645586, 21, 9); -INSERT INTO discoveryinfo VALUES (3645590, 21, 11); -INSERT INTO discoveryinfo VALUES (3645591, 21, 9); -INSERT INTO discoveryinfo VALUES (3645607, 21, 9); -INSERT INTO discoveryinfo VALUES (3645675, 21, 11); -INSERT INTO discoveryinfo VALUES (3645684, 21, 11); -INSERT INTO discoveryinfo VALUES (3645738, 21, 12); -INSERT INTO discoveryinfo VALUES (3645746, 21, 12); -INSERT INTO discoveryinfo VALUES (3645751, 21, 13); -INSERT INTO discoveryinfo VALUES (3645793, 21, 12); -INSERT INTO discoveryinfo VALUES (3645800, 21, 12); -INSERT INTO discoveryinfo VALUES (4204051, 21, 11); -INSERT INTO discoveryinfo VALUES (4204061, 21, 3); -INSERT INTO discoveryinfo VALUES (4204069, 21, 6); -INSERT INTO discoveryinfo VALUES (4204078, 21, 12); -INSERT INTO discoveryinfo VALUES (4204084, 21, 12); -INSERT INTO discoveryinfo VALUES (4204092, 21, 9); -INSERT INTO discoveryinfo VALUES (4218268, 21, 6); -INSERT INTO discoveryinfo VALUES (4334881, 21, 7); -INSERT INTO discoveryinfo VALUES (4334882, 21, 13); -INSERT INTO discoveryinfo VALUES (4101189, 22, 1); -INSERT INTO discoveryinfo VALUES (4101195, 22, 1); -INSERT INTO discoveryinfo VALUES (4101196, 22, 2); -INSERT INTO discoveryinfo VALUES (4101197, 22, 2); -INSERT INTO discoveryinfo VALUES (4101214, 22, 2); -INSERT INTO discoveryinfo VALUES (4101218, 22, 2); -INSERT INTO discoveryinfo VALUES (4101224, 22, 3); -INSERT INTO discoveryinfo VALUES (4101234, 22, 3); -INSERT INTO discoveryinfo VALUES (4101240, 22, 4); -INSERT INTO discoveryinfo VALUES (4101246, 22, 5); -INSERT INTO discoveryinfo VALUES (4101248, 22, 5); -INSERT INTO discoveryinfo VALUES (4101253, 22, 6); -INSERT INTO discoveryinfo VALUES (4101259, 22, 6); -INSERT INTO discoveryinfo VALUES (4101270, 22, 7); -INSERT INTO discoveryinfo VALUES (4101275, 22, 8); -INSERT INTO discoveryinfo VALUES (4101283, 22, 9); -INSERT INTO discoveryinfo VALUES (4101288, 22, 10); -INSERT INTO discoveryinfo VALUES (4101292, 22, 10); -INSERT INTO discoveryinfo VALUES (4101295, 22, 11); -INSERT INTO discoveryinfo VALUES (4101297, 22, 11); -INSERT INTO discoveryinfo VALUES (4101301, 22, 12); -INSERT INTO discoveryinfo VALUES (4101323, 22, 13); -INSERT INTO discoveryinfo VALUES (4101328, 22, 13); -INSERT INTO discoveryinfo VALUES (4101331, 22, 14); -INSERT INTO discoveryinfo VALUES (4101337, 22, 14); -INSERT INTO discoveryinfo VALUES (4101345, 22, 14); -INSERT INTO discoveryinfo VALUES (4101376, 22, 15); -INSERT INTO discoveryinfo VALUES (4101379, 22, 16); -INSERT INTO discoveryinfo VALUES (4101381, 22, 16); -INSERT INTO discoveryinfo VALUES (4101391, 22, 16); -INSERT INTO discoveryinfo VALUES (4101407, 22, 17); -INSERT INTO discoveryinfo VALUES (4101410, 22, 17); -INSERT INTO discoveryinfo VALUES (4101421, 22, 17); -INSERT INTO discoveryinfo VALUES (4204135, 22, 15); -INSERT INTO discoveryinfo VALUES (4101783, 24, 1); -INSERT INTO discoveryinfo VALUES (4101846, 24, 2); -INSERT INTO discoveryinfo VALUES (4101870, 24, 3); -INSERT INTO discoveryinfo VALUES (4101889, 24, 4); -INSERT INTO discoveryinfo VALUES (4101896, 24, 4); -INSERT INTO discoveryinfo VALUES (4101900, 24, 5); -INSERT INTO discoveryinfo VALUES (4101904, 24, 5); -INSERT INTO discoveryinfo VALUES (4101907, 24, 6); -INSERT INTO discoveryinfo VALUES (4101909, 24, 7); -INSERT INTO discoveryinfo VALUES (4101914, 24, 8); -INSERT INTO discoveryinfo VALUES (4285195, 52, 1); -INSERT INTO discoveryinfo VALUES (4285230, 52, 2); -INSERT INTO discoveryinfo VALUES (4285234, 52, 3); -INSERT INTO discoveryinfo VALUES (4285247, 52, 4); -INSERT INTO discoveryinfo VALUES (4285263, 96, 5); -INSERT INTO discoveryinfo VALUES (4285269, 96, 6); -INSERT INTO discoveryinfo VALUES (4285277, 52, 7); -INSERT INTO discoveryinfo VALUES (4285311, 97, 8); -INSERT INTO discoveryinfo VALUES (4285319, 97, 9); -INSERT INTO discoveryinfo VALUES (4285322, 97, 9); -INSERT INTO discoveryinfo VALUES (4286244, 97, 10); -INSERT INTO discoveryinfo VALUES (4286246, 97, 10); -INSERT INTO discoveryinfo VALUES (4286247, 52, 7); -INSERT INTO discoveryinfo VALUES (4286248, 52, 4); -INSERT INTO discoveryinfo VALUES (6094200, 269, 1); -INSERT INTO discoveryinfo VALUES (6070593, 269, 1); -INSERT INTO discoveryinfo VALUES (6070926, 269, 1); -INSERT INTO discoveryinfo VALUES (6070927, 269, 2); -INSERT INTO discoveryinfo VALUES (6070928, 269, 2); -INSERT INTO discoveryinfo VALUES (6070932, 270, 3); -INSERT INTO discoveryinfo VALUES (6070933, 270, 3); -INSERT INTO discoveryinfo VALUES (6070934, 270, 3); -INSERT INTO discoveryinfo VALUES (6094204, 270, 3); -INSERT INTO discoveryinfo VALUES (6094208, 270, 3); -INSERT INTO discoveryinfo VALUES (6094211, 270, 3); -INSERT INTO discoveryinfo VALUES (6098662, 269, 4); -INSERT INTO discoveryinfo VALUES (6094209, 269, 4); -INSERT INTO discoveryinfo VALUES (6094210, 269, 4); -INSERT INTO discoveryinfo VALUES (6070594, 269, 5); -INSERT INTO discoveryinfo VALUES (6070595, 269, 5); -INSERT INTO discoveryinfo VALUES (6070596, 269, 5); -INSERT INTO discoveryinfo VALUES (6095200, 269, 5); -INSERT INTO discoveryinfo VALUES (6095389, 269, 5); -INSERT INTO discoveryinfo VALUES (6095201, 269, 6); -INSERT INTO discoveryinfo VALUES (6095390, 269, 7); -INSERT INTO discoveryinfo VALUES (6095391, 269, 8); -INSERT INTO discoveryinfo VALUES (6095393, 271, 9); -INSERT INTO discoveryinfo VALUES (6095410, 271, 10); -INSERT INTO discoveryinfo VALUES (6095412, 271, 11); -INSERT INTO discoveryinfo VALUES (6095415, 272, 12); -INSERT INTO discoveryinfo VALUES (6095416, 272, 13); -INSERT INTO discoveryinfo VALUES (6095418, 272, 14); -INSERT INTO discoveryinfo VALUES (6095420, 272, 15); -INSERT INTO discoveryinfo VALUES (6099593, 270, 3); -INSERT INTO discoveryinfo VALUES (6627208, 343, 2); -INSERT INTO discoveryinfo VALUES (6627209, 343, 1); -INSERT INTO discoveryinfo VALUES (6627226, 343, 3); -INSERT INTO discoveryinfo VALUES (6627227, 343, 3); -INSERT INTO discoveryinfo VALUES (6627233, 344, 4); -INSERT INTO discoveryinfo VALUES (6627236, 344, 4); -INSERT INTO discoveryinfo VALUES (6627239, 344, 4); -INSERT INTO discoveryinfo VALUES (6627240, 344, 5); -INSERT INTO discoveryinfo VALUES (6627242, 344, 5); -INSERT INTO discoveryinfo VALUES (6627244, 344, 6); -INSERT INTO discoveryinfo VALUES (6627245, 344, 7); -INSERT INTO discoveryinfo VALUES (6627246, 344, 8); -INSERT INTO discoveryinfo VALUES (6627247, 344, 9); -INSERT INTO discoveryinfo VALUES (6627248, 344, 11); -INSERT INTO discoveryinfo VALUES (6627249, 344, 10); -INSERT INTO discoveryinfo VALUES (6627251, 346, 14); -INSERT INTO discoveryinfo VALUES (6627252, 345, 13); -INSERT INTO discoveryinfo VALUES (6627255, 344, 12); -INSERT INTO discoveryinfo VALUES (6627266, 345, 13); -INSERT INTO discoveryinfo VALUES (6954070, 389, 2); -INSERT INTO discoveryinfo VALUES (6954246, 389, 3); -INSERT INTO discoveryinfo VALUES (6954248, 389, 4); -INSERT INTO discoveryinfo VALUES (6997567, 389, 1); -INSERT INTO discoveryinfo VALUES (6997569, 389, 1); -INSERT INTO discoveryinfo VALUES (6999039, 398, 3); -INSERT INTO discoveryinfo VALUES (6999040, 395, 3); -INSERT INTO discoveryinfo VALUES (7329608, 414, 1); -INSERT INTO discoveryinfo VALUES (7329609, 414, 1); -INSERT INTO discoveryinfo VALUES (7329610, 414, 10); -INSERT INTO discoveryinfo VALUES (7329611, 414, 11); -INSERT INTO discoveryinfo VALUES (7329612, 414, 11); -INSERT INTO discoveryinfo VALUES (7329613, 414, 12); -INSERT INTO discoveryinfo VALUES (7329614, 414, 12); -INSERT INTO discoveryinfo VALUES (7329615, 414, 12); -INSERT INTO discoveryinfo VALUES (7329616, 414, 12); -INSERT INTO discoveryinfo VALUES (7329617, 414, 13); -INSERT INTO discoveryinfo VALUES (7329618, 414, 13); -INSERT INTO discoveryinfo VALUES (7329619, 414, 13); -INSERT INTO discoveryinfo VALUES (7329620, 414, 13); -INSERT INTO discoveryinfo VALUES (7329621, 414, 13); -INSERT INTO discoveryinfo VALUES (7329622, 414, 14); -INSERT INTO discoveryinfo VALUES (7329623, 414, 2); -INSERT INTO discoveryinfo VALUES (7329624, 414, 2); -INSERT INTO discoveryinfo VALUES (7329625, 414, 2); -INSERT INTO discoveryinfo VALUES (7329626, 414, 2); -INSERT INTO discoveryinfo VALUES (7329627, 414, 2); -INSERT INTO discoveryinfo VALUES (7329628, 414, 2); -INSERT INTO discoveryinfo VALUES (7329629, 414, 2); -INSERT INTO discoveryinfo VALUES (7329630, 414, 2); -INSERT INTO discoveryinfo VALUES (7329631, 414, 2); -INSERT INTO discoveryinfo VALUES (7329632, 414, 3); -INSERT INTO discoveryinfo VALUES (7329633, 414, 3); -INSERT INTO discoveryinfo VALUES (7329634, 414, 4); -INSERT INTO discoveryinfo VALUES (7329635, 414, 4); -INSERT INTO discoveryinfo VALUES (7329636, 414, 4); -INSERT INTO discoveryinfo VALUES (7329637, 414, 5); -INSERT INTO discoveryinfo VALUES (7329638, 414, 5); -INSERT INTO discoveryinfo VALUES (7329639, 414, 5); -INSERT INTO discoveryinfo VALUES (7329640, 414, 6); -INSERT INTO discoveryinfo VALUES (7329641, 414, 7); -INSERT INTO discoveryinfo VALUES (7329642, 414, 7); -INSERT INTO discoveryinfo VALUES (7329643, 414, 7); -INSERT INTO discoveryinfo VALUES (7329644, 414, 7); -INSERT INTO discoveryinfo VALUES (7329645, 414, 7); -INSERT INTO discoveryinfo VALUES (7329646, 414, 7); -INSERT INTO discoveryinfo VALUES (7329647, 414, 7); -INSERT INTO discoveryinfo VALUES (7329648, 414, 7); -INSERT INTO discoveryinfo VALUES (7329649, 414, 8); -INSERT INTO discoveryinfo VALUES (7329650, 414, 8); -INSERT INTO discoveryinfo VALUES (7329651, 414, 8); -INSERT INTO discoveryinfo VALUES (7329652, 414, 8); -INSERT INTO discoveryinfo VALUES (7329653, 414, 8); -INSERT INTO discoveryinfo VALUES (7329654, 414, 8); -INSERT INTO discoveryinfo VALUES (7329655, 414, 9); -INSERT INTO discoveryinfo VALUES (7329656, 414, 9); -INSERT INTO discoveryinfo VALUES (7329657, 414, 9); -INSERT INTO discoveryinfo VALUES (7329658, 414, 9); -INSERT INTO discoveryinfo VALUES (7127431, 422, 1); -INSERT INTO discoveryinfo VALUES (7127432, 423, 9); -INSERT INTO discoveryinfo VALUES (7127433, 424, 12); -INSERT INTO discoveryinfo VALUES (7146997, 422, 2); -INSERT INTO discoveryinfo VALUES (7146998, 422, 3); -INSERT INTO discoveryinfo VALUES (7146999, 422, 4); -INSERT INTO discoveryinfo VALUES (7147007, 422, 4); -INSERT INTO discoveryinfo VALUES (7147025, 422, 4); -INSERT INTO discoveryinfo VALUES (7147026, 422, 5); -INSERT INTO discoveryinfo VALUES (7147027, 422, 6); -INSERT INTO discoveryinfo VALUES (7147028, 422, 7); -INSERT INTO discoveryinfo VALUES (7147031, 422, 8); -INSERT INTO discoveryinfo VALUES (7147034, 423, 10); -INSERT INTO discoveryinfo VALUES (7150748, 423, 10); -INSERT INTO discoveryinfo VALUES (7150749, 423, 10); -INSERT INTO discoveryinfo VALUES (7150750, 423, 10); -INSERT INTO discoveryinfo VALUES (7150751, 423, 11); -INSERT INTO discoveryinfo VALUES (7150758, 424, 13); -INSERT INTO discoveryinfo VALUES (7150761, 424, 14); -INSERT INTO discoveryinfo VALUES (7150773, 424, 15); -INSERT INTO discoveryinfo VALUES (7167271, 423, 10); -INSERT INTO discoveryinfo VALUES (7387717, 474, 13); -INSERT INTO discoveryinfo VALUES (7393449, 473, 1); -INSERT INTO discoveryinfo VALUES (7393453, 473, 2); -INSERT INTO discoveryinfo VALUES (7393455, 473, 3); -INSERT INTO discoveryinfo VALUES (7393467, 473, 4); -INSERT INTO discoveryinfo VALUES (7393487, 473, 5); -INSERT INTO discoveryinfo VALUES (7393488, 473, 6); -INSERT INTO discoveryinfo VALUES (7393489, 473, 6); -INSERT INTO discoveryinfo VALUES (7393498, 473, 7); -INSERT INTO discoveryinfo VALUES (7393499, 473, 7); -INSERT INTO discoveryinfo VALUES (7393500, 470, 8); -INSERT INTO discoveryinfo VALUES (7393507, 473, 9); -INSERT INTO discoveryinfo VALUES (7393512, 473, 10); -INSERT INTO discoveryinfo VALUES (7393514, 473, 10); -INSERT INTO discoveryinfo VALUES (7393538, 473, 11); -INSERT INTO discoveryinfo VALUES (7393542, 473, 12); -INSERT INTO discoveryinfo VALUES (7393543, 473, 13); -INSERT INTO discoveryinfo VALUES (7393545, 473, 14); -INSERT INTO discoveryinfo VALUES (7393547, 473, 15); - -INSERT INTO `discoveryinfo` VALUES (416144215,1,-858993460); -INSERT INTO `discoveryinfo` VALUES (416494218,10,-858993460); -/*!40000 ALTER TABLE `discoveryinfo` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:13 diff --git a/sql/export.sh b/sql/export.sh deleted file mode 100644 index c82598f9..00000000 --- a/sql/export.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -EXPORT_PATH="C://coding//repositories//ffxiv related//sapphire//Sapphire2Clone//sql//" -USER=root -PASS=root -DBNAME=sapphire -#test -d EXPORT_PATH || mkdir -p $EXPORT_PATH -list=`mysqlshow -u $USER -p$PASS $DBNAME` -for T in $list; -do - if [[ "$T" != "information_schema" ]] && [[ "$T" != "performance_schema" ]] && - [[ "$T" != "mysql" ]] && [[ "$T" != "${DBNAME}"* ]] && [[ "$T" != *"*"* ]] && [[ "$T" != *"+"* ]] && [[ "$T" != *"+="* ]] && - [[ "$T" != "Tables" ]] && [[ "$T" != "Database"* ]] && [[ "$T" != "" ]]; then - echo "Backing up " $T; - mysqldump -u $USER -p$PASS $DBNAME $T --extended-insert=FALSE > "${EXPORT_PATH}/${T}.sql" - fi -done; \ No newline at end of file diff --git a/sql/house.sql b/sql/house.sql deleted file mode 100644 index 716e1c20..00000000 --- a/sql/house.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE `house` ( - `LandSetId` INT UNSIGNED NULL, - `HouseId` INT UNSIGNED NOT NULL AUTO_INCREMENT, - `BuildTime` BIGINT NULL, - `Aetheryte` SMALLINT NULL, - `Welcome` SMALLINT NULL, - `Comment` binary(193) DEFAULT "", - `Endorsements` BIGINT NULL, - UPDATE_DATE DATETIME NULL, - PRIMARY KEY(`HouseId`) -) -COLLATE='latin1_swedish_ci' -ENGINE=InnoDB; - -ALTER TABLE house AUTO_INCREMENT=1; diff --git a/sql/houseiteminventory.sql b/sql/houseiteminventory.sql deleted file mode 100644 index 3746e672..00000000 --- a/sql/houseiteminventory.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE `houseiteminventory` ( - `landIdent` BIGINT(20) UNSIGNED NOT NULL, - `containerId` INT(10) UNSIGNED NOT NULL, - `itemId` INT(20) NOT NULL, - INDEX `landIdent` (`landIdent`) -) -COLLATE='latin1_swedish_ci' -ENGINE=InnoDB -; diff --git a/sql/housepartsitem.sql b/sql/housepartsitem.sql deleted file mode 100644 index 1c9be8f1..00000000 --- a/sql/housepartsitem.sql +++ /dev/null @@ -1,9 +0,0 @@ -CREATE TABLE `housepartsitem` ( - `HouseId` INT UNSIGNED NULL, - `ItemId` INT UNSIGNED NULL, - `CharacterId` INT UNSIGNED NULL, - `Color` INT UNSIGNED DEFAULT '0', - `UPDATE_DATE` DATETIME NULL -) -COLLATE='latin1_swedish_ci' -ENGINE=InnoDB; \ No newline at end of file diff --git a/sql/housepartsstorage.sql b/sql/housepartsstorage.sql deleted file mode 100644 index 6b4e1348..00000000 --- a/sql/housepartsstorage.sql +++ /dev/null @@ -1,18 +0,0 @@ -CREATE TABLE `housepartsstorage` ( - `LandSetId` INT UNSIGNED NULL, - `HouseId` INT UNSIGNED NULL, - `StorageId` BIGINT, - `Type` INT NULL, - `Index` INT NULL, - `Container_0` INT UNSIGNED DEFAULT '0', - `Container_1` INT UNSIGNED DEFAULT '0', - `Container_2` INT UNSIGNED DEFAULT '0', - `Container_3` INT UNSIGNED DEFAULT '0', - `Container_4` INT UNSIGNED DEFAULT '0', - `Container_5` INT UNSIGNED DEFAULT '0', - `Container_6` INT UNSIGNED DEFAULT '0', - `Container_7` INT UNSIGNED DEFAULT '0', - `UPDATE_DATE` DATETIME NULL -) -COLLATE='latin1_swedish_ci' -ENGINE=InnoDB; \ No newline at end of file diff --git a/sql/import.bat b/sql/import.bat deleted file mode 100644 index 3f9de0e9..00000000 --- a/sql/import.bat +++ /dev/null @@ -1,48 +0,0 @@ -@ECHO OFF -SETLOCAL -REM ============= -REM IMPORT CONFIG -REM ============= -REM NOTE: No spaces before or after the '='!!! - -REM ============= -SET PATH_MYSQL="Path\to\mysql.exe" -SET PATH_MYSQLADMIN="Path\to\mysqladmin.exe" -SET PATH_SQL="Path\to\Sapphire\sql" - -SET USER=root -SET PASSWORD= -SET DBADDRESS=localhost -SET DBPORT=3306 -SET DBNAME=sapphire -REM ============= - -IF DEFINED PASSWORD (SET PASSWORD=-p%PASSWORD%) - -ECHO Deleteing old database -%PATH_MYSQLADMIN% -h %DBADDRESS% -u %USER% %PASSWORD% DROP %DBNAME% - -ECHO Creating new database -%PATH_MYSQLADMIN% -h %DBADDRESS% -u %USER% %PASSWORD% CREATE %DBNAME% - -ECHO Loading tables into the database -cd %PATH_SQL% -FOR %%X IN (*.sql) DO ( - IF "%%X"=="update.sql" ( - REM handle update.sql last - ) ELSE ( - ECHO Importing %%X - %PATH_MYSQL% %DBNAME% -h %DBADDRESS% -u %USER% %PASSWORD% < %%X - ) -) - -IF EXIST "update.sql" ( - ECHO Importing update.sql - %PATH_MYSQL% %DBNAME% -h %DBADDRESS% -u %USER% %PASSWORD% < update.sql -) - -ECHO Finished! - -ENDLOCAL -PAUSE -@ECHO ON diff --git a/sql/import.sh b/sql/import.sh deleted file mode 100644 index f7006dba..00000000 --- a/sql/import.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -IMPORT_PATH="C://coding//repositories//ffxiv related//sapphire//Sapphire2Clone//sql//" -USER=root -PASS=root -DBNAME=sapphire - -ECHO Creating Database $DBNAME -mysqladmin -h localhost -u $USER -p$PASS DROP $DBNAME - -ECHO Creating Database $DBNAME -mysqladmin -h localhost -u $USER -p$PASS CREATE $DBNAME IF NOT EXISTS $DBNAME - -ECHO Loading $DBNAME tables into the database -sh cd $IMPORT_PATH - -"C:\program files\mysql\mysql server 5.7\bin\mysql" $DBNAME -h localhost -u $USER -p$PASS -e 'SET AUTOCOMMIT=0;' - -for X in '*.sql'; -do - for Y in $X - do - echo Importing $Y; - "C:\program files\mysql\mysql server 5.7\bin\mysql" $DBNAME -h localhost -u $USER -p$PASS < $Y - done -done - -"C:\program files\mysql\mysql server 5.7\bin\mysql" $DBNAME -h localhost -u $USER -p$PASS -e 'COMMIT;' - -ECHO Finished! \ No newline at end of file diff --git a/sql/infolinkshell.sql b/sql/infolinkshell.sql deleted file mode 100644 index b8c84b19..00000000 --- a/sql/infolinkshell.sql +++ /dev/null @@ -1,57 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `infolinkshell` --- - -DROP TABLE IF EXISTS `infolinkshell`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `infolinkshell` ( - `LinkshellId` bigint(20) NOT NULL AUTO_INCREMENT, - `MasterCharacterId` int(20) DEFAULT NULL, - `CharacterIdList` blob, - `LinkshellName` varchar(32) DEFAULT NULL, - `LeaderIdList` blob, - `InviteIdList` blob, - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`LinkshellId`) -) ENGINE=MyISAM DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `infolinkshell` --- - -LOCK TABLES `infolinkshell` WRITE; -/*!40000 ALTER TABLE `infolinkshell` DISABLE KEYS */; -/*!40000 ALTER TABLE `infolinkshell` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:15 diff --git a/sql/land.sql b/sql/land.sql deleted file mode 100644 index d4b918af..00000000 --- a/sql/land.sql +++ /dev/null @@ -1,15 +0,0 @@ -CREATE TABLE `land` ( - `LandSetId` INT UNSIGNED NULL, - `LandId` INT UNSIGNED NULL, - `Size` SMALLINT NULL, - `Status` SMALLINT NULL, - `LandPrice` BIGINT NULL, - `UpdateTime` BIGINT NULL, - `OwnerId` BIGINT UNSIGNED NULL, - `HouseId` BIGINT UNSIGNED NULL, - `IS_DELETE` SMALLINT NULL DEFAULT '0', - `IS_NOT_ACTIVE_FLG` SMALLINT NULL DEFAULT '0', - `UPDATE_DATE` DATETIME NULL -) -COLLATE='latin1_swedish_ci' -ENGINE=InnoDB; diff --git a/sql/landset.sql b/sql/landset.sql deleted file mode 100644 index 4ff05e52..00000000 --- a/sql/landset.sql +++ /dev/null @@ -1,68 +0,0 @@ -CREATE TABLE `landset` ( - `LandSetId` INT UNSIGNED NULL, - `LandId_0` INT UNSIGNED NULL, - `LandId_1` INT UNSIGNED NULL, - `LandId_2` INT UNSIGNED NULL, - `LandId_3` INT UNSIGNED NULL, - `LandId_4` INT UNSIGNED NULL, - `LandId_5` INT UNSIGNED NULL, - `LandId_6` INT UNSIGNED NULL, - `LandId_7` INT UNSIGNED NULL, - `LandId_8` INT UNSIGNED NULL, - `LandId_9` INT UNSIGNED NULL, - `LandId_10` INT UNSIGNED NULL, - `LandId_11` INT UNSIGNED NULL, - `LandId_12` INT UNSIGNED NULL, - `LandId_13` INT UNSIGNED NULL, - `LandId_14` INT UNSIGNED NULL, - `LandId_15` INT UNSIGNED NULL, - `LandId_16` INT UNSIGNED NULL, - `LandId_17` INT UNSIGNED NULL, - `LandId_18` INT UNSIGNED NULL, - `LandId_19` INT UNSIGNED NULL, - `LandId_20` INT UNSIGNED NULL, - `LandId_21` INT UNSIGNED NULL, - `LandId_22` INT UNSIGNED NULL, - `LandId_23` INT UNSIGNED NULL, - `LandId_24` INT UNSIGNED NULL, - `LandId_25` INT UNSIGNED NULL, - `LandId_26` INT UNSIGNED NULL, - `LandId_27` INT UNSIGNED NULL, - `LandId_28` INT UNSIGNED NULL, - `LandId_29` INT UNSIGNED NULL, - `LandId_30` INT UNSIGNED NULL, - `LandId_31` INT UNSIGNED NULL, - `LandId_32` INT UNSIGNED NULL, - `LandId_33` INT UNSIGNED NULL, - `LandId_34` INT UNSIGNED NULL, - `LandId_35` INT UNSIGNED NULL, - `LandId_36` INT UNSIGNED NULL, - `LandId_37` INT UNSIGNED NULL, - `LandId_38` INT UNSIGNED NULL, - `LandId_39` INT UNSIGNED NULL, - `LandId_40` INT UNSIGNED NULL, - `LandId_41` INT UNSIGNED NULL, - `LandId_42` INT UNSIGNED NULL, - `LandId_43` INT UNSIGNED NULL, - `LandId_44` INT UNSIGNED NULL, - `LandId_45` INT UNSIGNED NULL, - `LandId_46` INT UNSIGNED NULL, - `LandId_47` INT UNSIGNED NULL, - `LandId_48` INT UNSIGNED NULL, - `LandId_49` INT UNSIGNED NULL, - `LandId_50` INT UNSIGNED NULL, - `LandId_51` INT UNSIGNED NULL, - `LandId_52` INT UNSIGNED NULL, - `LandId_53` INT UNSIGNED NULL, - `LandId_54` INT UNSIGNED NULL, - `LandId_55` INT UNSIGNED NULL, - `LandId_56` INT UNSIGNED NULL, - `LandId_57` INT UNSIGNED NULL, - `LandId_58` INT UNSIGNED NULL, - `LandId_59` INT UNSIGNED NULL, - `IS_DELETE` SMALLINT NULL DEFAULT '0', - `IS_NOT_ACTIVE_FLG` SMALLINT NULL DEFAULT '0', - `UPDATE_DATE` DATETIME NULL -) -COLLATE='latin1_swedish_ci' -ENGINE=InnoDB; diff --git a/sql/uniqueiddata.sql b/sql/uniqueiddata.sql deleted file mode 100644 index 0ca048ad..00000000 --- a/sql/uniqueiddata.sql +++ /dev/null @@ -1,505 +0,0 @@ --- MySQL dump 10.13 Distrib 5.7.13, for Win64 (x86_64) --- --- Host: localhost Database: sapphire --- ------------------------------------------------------ --- Server version 5.7.13-log - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `uniqueiddata` --- - -DROP TABLE IF EXISTS `uniqueiddata`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `uniqueiddata` ( - `NextId` int(20) NOT NULL AUTO_INCREMENT, - `IdName` varchar(16) DEFAULT 'NOT SET', - `IS_DELETE` int(3) DEFAULT '0', - `IS_NOT_ACTIVE_FLG` int(3) DEFAULT '0', - `UPDATE_DATE` DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`NextId`) -) ENGINE=MyISAM AUTO_INCREMENT=1000447 DEFAULT CHARSET=utf8; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `uniqueiddata` --- - -LOCK TABLES `uniqueiddata` WRITE; -/*!40000 ALTER TABLE `uniqueiddata` DISABLE KEYS */; -INSERT INTO `uniqueiddata` VALUES (1,'NOT_SET',0,0,'2016-02-10 22:04:00'); -INSERT INTO `uniqueiddata` VALUES (2,'NOT_SET',0,0,'2016-02-10 22:04:23'); -INSERT INTO `uniqueiddata` VALUES (3,'NOT_SET',0,0,'2016-02-10 22:06:29'); -INSERT INTO `uniqueiddata` VALUES (4,'NOT_SET',0,0,'2016-02-10 22:06:29'); -INSERT INTO `uniqueiddata` VALUES (5,'NOT_SET',0,0,'2016-02-10 22:06:29'); -INSERT INTO `uniqueiddata` VALUES (6,'NOT_SET',0,0,'2016-02-10 22:06:29'); -INSERT INTO `uniqueiddata` VALUES (1000001,'NOT_SET',0,0,'2016-02-10 22:07:59'); -INSERT INTO `uniqueiddata` VALUES (1000002,'NOT_SET',0,0,'2016-02-10 22:07:59'); -INSERT INTO `uniqueiddata` VALUES (1000003,'NOT_SET',0,0,'2016-02-10 22:07:59'); -INSERT INTO `uniqueiddata` VALUES (1000004,'NOT_SET',0,0,'2016-02-10 22:07:59'); -INSERT INTO `uniqueiddata` VALUES (1000005,'NOT_SET',0,0,'2016-02-11 00:50:07'); -INSERT INTO `uniqueiddata` VALUES (1000006,'NOT_SET',0,0,'2016-02-11 00:54:50'); -INSERT INTO `uniqueiddata` VALUES (1000007,'NOT_SET',0,0,'2016-02-11 20:46:38'); -INSERT INTO `uniqueiddata` VALUES (1000008,'NOT_SET',0,0,'2016-02-11 20:46:47'); -INSERT INTO `uniqueiddata` VALUES (1000009,'NOT_SET',0,0,'2016-02-11 20:46:54'); -INSERT INTO `uniqueiddata` VALUES (1000010,'NOT_SET',0,0,'2016-02-11 20:47:04'); -INSERT INTO `uniqueiddata` VALUES (1000011,'NOT_SET',0,0,'2016-02-11 20:47:11'); -INSERT INTO `uniqueiddata` VALUES (1000012,'NOT_SET',0,0,'2016-02-11 22:20:14'); -INSERT INTO `uniqueiddata` VALUES (1000013,'NOT_SET',0,0,'2016-02-12 08:18:49'); -INSERT INTO `uniqueiddata` VALUES (1000014,'NOT_SET',0,0,'2016-02-12 08:22:10'); -INSERT INTO `uniqueiddata` VALUES (1000015,'NOT_SET',0,0,'2016-02-12 18:54:51'); -INSERT INTO `uniqueiddata` VALUES (1000016,'NOT_SET',0,0,'2016-02-12 18:54:51'); -INSERT INTO `uniqueiddata` VALUES (1000017,'NOT_SET',0,0,'2016-02-12 18:54:51'); -INSERT INTO `uniqueiddata` VALUES (1000018,'NOT_SET',0,0,'2016-02-12 18:54:51'); -INSERT INTO `uniqueiddata` VALUES (1000019,'NOT_SET',0,0,'2016-02-12 18:54:51'); -INSERT INTO `uniqueiddata` VALUES (1000020,'NOT_SET',0,0,'2016-02-13 11:45:32'); -INSERT INTO `uniqueiddata` VALUES (1000021,'NOT_SET',0,0,'2016-02-13 11:45:40'); -INSERT INTO `uniqueiddata` VALUES (1000022,'NOT_SET',0,0,'2016-02-13 11:45:43'); -INSERT INTO `uniqueiddata` VALUES (1000023,'NOT_SET',0,0,'2016-02-13 11:46:02'); -INSERT INTO `uniqueiddata` VALUES (1000024,'NOT_SET',0,0,'2016-02-13 11:46:04'); -INSERT INTO `uniqueiddata` VALUES (1000025,'NOT_SET',0,0,'2016-02-13 11:46:06'); -INSERT INTO `uniqueiddata` VALUES (1000026,'NOT_SET',0,0,'2016-02-13 11:46:08'); -INSERT INTO `uniqueiddata` VALUES (1000027,'NOT_SET',0,0,'2016-02-13 11:46:10'); -INSERT INTO `uniqueiddata` VALUES (1000028,'NOT_SET',0,0,'2016-02-13 11:50:06'); -INSERT INTO `uniqueiddata` VALUES (1000029,'NOT_SET',0,0,'2016-02-13 11:51:25'); -INSERT INTO `uniqueiddata` VALUES (1000030,'NOT_SET',0,0,'2016-02-13 11:55:58'); -INSERT INTO `uniqueiddata` VALUES (1000031,'NOT_SET',0,0,'2016-02-13 11:56:02'); -INSERT INTO `uniqueiddata` VALUES (1000032,'NOT_SET',0,0,'2016-02-13 11:56:05'); -INSERT INTO `uniqueiddata` VALUES (1000033,'NOT_SET',0,0,'2016-02-13 11:56:08'); -INSERT INTO `uniqueiddata` VALUES (1000034,'NOT_SET',0,0,'2016-02-13 11:56:11'); -INSERT INTO `uniqueiddata` VALUES (1000035,'NOT_SET',0,0,'2016-02-13 11:56:17'); -INSERT INTO `uniqueiddata` VALUES (1000036,'NOT_SET',0,0,'2016-02-13 11:57:24'); -INSERT INTO `uniqueiddata` VALUES (1000037,'NOT_SET',0,0,'2016-02-13 11:57:27'); -INSERT INTO `uniqueiddata` VALUES (1000038,'NOT_SET',0,0,'2016-02-13 11:57:28'); -INSERT INTO `uniqueiddata` VALUES (1000039,'NOT_SET',0,0,'2016-02-13 11:57:29'); -INSERT INTO `uniqueiddata` VALUES (1000040,'NOT_SET',0,0,'2016-02-13 11:57:30'); -INSERT INTO `uniqueiddata` VALUES (1000041,'NOT_SET',0,0,'2016-02-13 11:57:31'); -INSERT INTO `uniqueiddata` VALUES (1000042,'NOT_SET',0,0,'2016-02-13 11:57:34'); -INSERT INTO `uniqueiddata` VALUES (1000043,'NOT_SET',0,0,'2016-02-13 11:57:36'); -INSERT INTO `uniqueiddata` VALUES (1000044,'NOT_SET',0,0,'2016-02-13 11:57:37'); -INSERT INTO `uniqueiddata` VALUES (1000045,'NOT_SET',0,0,'2016-02-13 11:57:38'); -INSERT INTO `uniqueiddata` VALUES (1000046,'NOT_SET',0,0,'2016-02-13 11:57:39'); -INSERT INTO `uniqueiddata` VALUES (1000047,'NOT_SET',0,0,'2016-02-13 11:57:40'); -INSERT INTO `uniqueiddata` VALUES (1000048,'NOT_SET',0,0,'2016-02-13 11:57:41'); -INSERT INTO `uniqueiddata` VALUES (1000049,'NOT_SET',0,0,'2016-02-13 11:57:42'); -INSERT INTO `uniqueiddata` VALUES (1000050,'NOT_SET',0,0,'2016-02-13 11:57:44'); -INSERT INTO `uniqueiddata` VALUES (1000051,'NOT_SET',0,0,'2016-02-13 11:57:47'); -INSERT INTO `uniqueiddata` VALUES (1000052,'NOT_SET',0,0,'2016-02-13 11:57:50'); -INSERT INTO `uniqueiddata` VALUES (1000053,'NOT_SET',0,0,'2016-02-13 11:57:52'); -INSERT INTO `uniqueiddata` VALUES (1000054,'NOT_SET',0,0,'2016-02-13 11:57:55'); -INSERT INTO `uniqueiddata` VALUES (1000055,'NOT_SET',0,0,'2016-02-13 11:57:57'); -INSERT INTO `uniqueiddata` VALUES (1000056,'NOT_SET',0,0,'2016-02-13 11:57:57'); -INSERT INTO `uniqueiddata` VALUES (1000057,'NOT_SET',0,0,'2016-02-13 11:58:00'); -INSERT INTO `uniqueiddata` VALUES (1000058,'NOT_SET',0,0,'2016-02-13 11:58:00'); -INSERT INTO `uniqueiddata` VALUES (1000059,'NOT_SET',0,0,'2016-02-13 11:58:02'); -INSERT INTO `uniqueiddata` VALUES (1000060,'NOT_SET',0,0,'2016-02-13 11:58:02'); -INSERT INTO `uniqueiddata` VALUES (1000061,'NOT_SET',0,0,'2016-02-13 13:03:07'); -INSERT INTO `uniqueiddata` VALUES (1000062,'NOT_SET',0,0,'2016-02-13 13:03:07'); -INSERT INTO `uniqueiddata` VALUES (1000063,'NOT_SET',0,0,'2016-02-13 13:03:51'); -INSERT INTO `uniqueiddata` VALUES (1000064,'NOT_SET',0,0,'2016-02-13 13:03:51'); -INSERT INTO `uniqueiddata` VALUES (1000065,'NOT_SET',0,0,'2016-02-13 13:04:03'); -INSERT INTO `uniqueiddata` VALUES (1000066,'NOT_SET',0,0,'2016-02-13 13:04:07'); -INSERT INTO `uniqueiddata` VALUES (1000067,'NOT_SET',0,0,'2016-02-13 13:04:20'); -INSERT INTO `uniqueiddata` VALUES (1000068,'NOT_SET',0,0,'2016-02-13 13:04:41'); -INSERT INTO `uniqueiddata` VALUES (1000069,'NOT_SET',0,0,'2016-02-15 11:43:46'); -INSERT INTO `uniqueiddata` VALUES (1000070,'NOT_SET',0,0,'2016-02-15 11:43:46'); -INSERT INTO `uniqueiddata` VALUES (1000071,'NOT_SET',0,0,'2016-02-15 11:43:46'); -INSERT INTO `uniqueiddata` VALUES (1000072,'NOT_SET',0,0,'2016-02-15 11:43:46'); -INSERT INTO `uniqueiddata` VALUES (1000073,'NOT_SET',0,0,'2016-02-15 11:43:46'); -INSERT INTO `uniqueiddata` VALUES (1000074,'NOT_SET',0,0,'2016-02-15 12:12:37'); -INSERT INTO `uniqueiddata` VALUES (1000075,'NOT_SET',0,0,'2016-02-15 12:12:37'); -INSERT INTO `uniqueiddata` VALUES (1000076,'NOT_SET',0,0,'2016-02-15 12:12:37'); -INSERT INTO `uniqueiddata` VALUES (1000077,'NOT_SET',0,0,'2016-02-15 12:12:37'); -INSERT INTO `uniqueiddata` VALUES (1000078,'NOT_SET',0,0,'2016-02-15 12:12:37'); -INSERT INTO `uniqueiddata` VALUES (1000079,'NOT_SET',0,0,'2016-02-15 13:19:52'); -INSERT INTO `uniqueiddata` VALUES (1000080,'NOT_SET',0,0,'2016-02-15 13:22:50'); -INSERT INTO `uniqueiddata` VALUES (1000081,'NOT_SET',0,0,'2016-02-15 13:28:08'); -INSERT INTO `uniqueiddata` VALUES (1000082,'NOT_SET',0,0,'2016-02-15 13:31:52'); -INSERT INTO `uniqueiddata` VALUES (1000083,'NOT_SET',0,0,'2016-02-15 13:33:42'); -INSERT INTO `uniqueiddata` VALUES (1000084,'NOT_SET',0,0,'2016-02-15 13:35:28'); -INSERT INTO `uniqueiddata` VALUES (1000085,'NOT_SET',0,0,'2016-02-15 13:50:28'); -INSERT INTO `uniqueiddata` VALUES (1000086,'NOT_SET',0,0,'2016-02-15 14:28:11'); -INSERT INTO `uniqueiddata` VALUES (1000087,'NOT_SET',0,0,'2016-02-15 14:28:21'); -INSERT INTO `uniqueiddata` VALUES (1000088,'NOT_SET',0,0,'2016-02-15 14:28:25'); -INSERT INTO `uniqueiddata` VALUES (1000089,'NOT_SET',0,0,'2016-02-15 14:28:26'); -INSERT INTO `uniqueiddata` VALUES (1000090,'NOT_SET',0,0,'2016-02-15 14:28:26'); -INSERT INTO `uniqueiddata` VALUES (1000091,'NOT_SET',0,0,'2016-02-15 14:28:27'); -INSERT INTO `uniqueiddata` VALUES (1000092,'NOT_SET',0,0,'2016-02-15 14:28:27'); -INSERT INTO `uniqueiddata` VALUES (1000093,'NOT_SET',0,0,'2016-02-15 14:28:35'); -INSERT INTO `uniqueiddata` VALUES (1000094,'NOT_SET',0,0,'2016-02-15 14:40:54'); -INSERT INTO `uniqueiddata` VALUES (1000095,'NOT_SET',0,0,'2016-02-15 14:42:22'); -INSERT INTO `uniqueiddata` VALUES (1000096,'NOT_SET',0,0,'2016-02-15 14:44:54'); -INSERT INTO `uniqueiddata` VALUES (1000097,'NOT_SET',0,0,'2016-02-15 14:50:58'); -INSERT INTO `uniqueiddata` VALUES (1000098,'NOT_SET',0,0,'2016-02-15 14:51:00'); -INSERT INTO `uniqueiddata` VALUES (1000099,'NOT_SET',0,0,'2016-02-15 14:51:02'); -INSERT INTO `uniqueiddata` VALUES (1000100,'NOT_SET',0,0,'2016-02-15 14:51:02'); -INSERT INTO `uniqueiddata` VALUES (1000101,'NOT_SET',0,0,'2016-02-15 14:51:15'); -INSERT INTO `uniqueiddata` VALUES (1000102,'NOT_SET',0,0,'2016-02-15 14:51:17'); -INSERT INTO `uniqueiddata` VALUES (1000103,'NOT_SET',0,0,'2016-02-15 14:51:18'); -INSERT INTO `uniqueiddata` VALUES (1000104,'NOT_SET',0,0,'2016-02-15 14:51:19'); -INSERT INTO `uniqueiddata` VALUES (1000105,'NOT_SET',0,0,'2016-02-15 14:51:19'); -INSERT INTO `uniqueiddata` VALUES (1000106,'NOT_SET',0,0,'2016-02-15 14:51:20'); -INSERT INTO `uniqueiddata` VALUES (1000107,'NOT_SET',0,0,'2016-02-15 14:51:20'); -INSERT INTO `uniqueiddata` VALUES (1000108,'NOT_SET',0,0,'2016-02-15 14:51:21'); -INSERT INTO `uniqueiddata` VALUES (1000109,'NOT_SET',0,0,'2016-02-15 14:51:21'); -INSERT INTO `uniqueiddata` VALUES (1000110,'NOT_SET',0,0,'2016-02-15 14:51:22'); -INSERT INTO `uniqueiddata` VALUES (1000111,'NOT_SET',0,0,'2016-02-15 14:51:23'); -INSERT INTO `uniqueiddata` VALUES (1000112,'NOT_SET',0,0,'2016-02-15 14:51:24'); -INSERT INTO `uniqueiddata` VALUES (1000113,'NOT_SET',0,0,'2016-02-15 14:51:25'); -INSERT INTO `uniqueiddata` VALUES (1000114,'NOT_SET',0,0,'2016-02-15 14:51:26'); -INSERT INTO `uniqueiddata` VALUES (1000115,'NOT_SET',0,0,'2016-02-15 14:51:26'); -INSERT INTO `uniqueiddata` VALUES (1000116,'NOT_SET',0,0,'2016-02-15 14:51:27'); -INSERT INTO `uniqueiddata` VALUES (1000117,'NOT_SET',0,0,'2016-02-15 14:51:28'); -INSERT INTO `uniqueiddata` VALUES (1000118,'NOT_SET',0,0,'2016-02-15 14:51:29'); -INSERT INTO `uniqueiddata` VALUES (1000119,'NOT_SET',0,0,'2016-02-15 14:51:29'); -INSERT INTO `uniqueiddata` VALUES (1000120,'NOT_SET',0,0,'2016-02-15 14:51:30'); -INSERT INTO `uniqueiddata` VALUES (1000121,'NOT_SET',0,0,'2016-02-15 14:51:31'); -INSERT INTO `uniqueiddata` VALUES (1000122,'NOT_SET',0,0,'2016-02-15 14:51:31'); -INSERT INTO `uniqueiddata` VALUES (1000123,'NOT_SET',0,0,'2016-02-15 14:51:31'); -INSERT INTO `uniqueiddata` VALUES (1000124,'NOT_SET',0,0,'2016-02-15 14:51:32'); -INSERT INTO `uniqueiddata` VALUES (1000125,'NOT_SET',0,0,'2016-02-15 14:51:32'); -INSERT INTO `uniqueiddata` VALUES (1000126,'NOT_SET',0,0,'2016-02-15 14:51:33'); -INSERT INTO `uniqueiddata` VALUES (1000127,'NOT_SET',0,0,'2016-02-15 14:51:33'); -INSERT INTO `uniqueiddata` VALUES (1000128,'NOT_SET',0,0,'2016-02-15 14:52:22'); -INSERT INTO `uniqueiddata` VALUES (1000129,'NOT_SET',0,0,'2016-02-15 14:52:22'); -INSERT INTO `uniqueiddata` VALUES (1000130,'NOT_SET',0,0,'2016-02-15 14:52:39'); -INSERT INTO `uniqueiddata` VALUES (1000131,'NOT_SET',0,0,'2016-02-15 14:52:39'); -INSERT INTO `uniqueiddata` VALUES (1000132,'NOT_SET',0,0,'2016-02-15 15:09:49'); -INSERT INTO `uniqueiddata` VALUES (1000133,'NOT_SET',0,0,'2016-02-15 15:09:56'); -INSERT INTO `uniqueiddata` VALUES (1000134,'NOT_SET',0,0,'2016-02-15 15:10:05'); -INSERT INTO `uniqueiddata` VALUES (1000135,'NOT_SET',0,0,'2016-02-15 15:10:05'); -INSERT INTO `uniqueiddata` VALUES (1000136,'NOT_SET',0,0,'2016-02-15 15:10:14'); -INSERT INTO `uniqueiddata` VALUES (1000137,'NOT_SET',0,0,'2016-02-15 15:10:14'); -INSERT INTO `uniqueiddata` VALUES (1000138,'NOT_SET',0,0,'2016-02-15 15:10:34'); -INSERT INTO `uniqueiddata` VALUES (1000139,'NOT_SET',0,0,'2016-02-15 15:10:34'); -INSERT INTO `uniqueiddata` VALUES (1000140,'NOT_SET',0,0,'2016-02-15 15:11:20'); -INSERT INTO `uniqueiddata` VALUES (1000141,'NOT_SET',0,0,'2016-02-15 15:11:20'); -INSERT INTO `uniqueiddata` VALUES (1000142,'NOT_SET',0,0,'2016-02-15 15:12:49'); -INSERT INTO `uniqueiddata` VALUES (1000143,'NOT_SET',0,0,'2016-02-15 15:12:49'); -INSERT INTO `uniqueiddata` VALUES (1000144,'NOT_SET',0,0,'2016-02-15 15:14:34'); -INSERT INTO `uniqueiddata` VALUES (1000145,'NOT_SET',0,0,'2016-02-15 15:14:34'); -INSERT INTO `uniqueiddata` VALUES (1000146,'NOT_SET',0,0,'2016-02-15 15:14:38'); -INSERT INTO `uniqueiddata` VALUES (1000147,'NOT_SET',0,0,'2016-02-15 15:14:38'); -INSERT INTO `uniqueiddata` VALUES (1000148,'NOT_SET',0,0,'2016-02-15 15:14:41'); -INSERT INTO `uniqueiddata` VALUES (1000149,'NOT_SET',0,0,'2016-02-15 15:14:41'); -INSERT INTO `uniqueiddata` VALUES (1000150,'NOT_SET',0,0,'2016-02-15 15:14:42'); -INSERT INTO `uniqueiddata` VALUES (1000151,'NOT_SET',0,0,'2016-02-15 15:14:42'); -INSERT INTO `uniqueiddata` VALUES (1000152,'NOT_SET',0,0,'2016-02-15 15:18:32'); -INSERT INTO `uniqueiddata` VALUES (1000153,'NOT_SET',0,0,'2016-02-15 15:18:32'); -INSERT INTO `uniqueiddata` VALUES (1000154,'NOT_SET',0,0,'2016-02-15 15:18:47'); -INSERT INTO `uniqueiddata` VALUES (1000155,'NOT_SET',0,0,'2016-02-15 15:18:47'); -INSERT INTO `uniqueiddata` VALUES (1000156,'NOT_SET',0,0,'2016-02-15 15:18:59'); -INSERT INTO `uniqueiddata` VALUES (1000157,'NOT_SET',0,0,'2016-02-15 15:18:59'); -INSERT INTO `uniqueiddata` VALUES (1000158,'NOT_SET',0,0,'2016-02-15 15:19:09'); -INSERT INTO `uniqueiddata` VALUES (1000159,'NOT_SET',0,0,'2016-02-15 15:19:09'); -INSERT INTO `uniqueiddata` VALUES (1000160,'NOT_SET',0,0,'2016-02-15 15:19:10'); -INSERT INTO `uniqueiddata` VALUES (1000161,'NOT_SET',0,0,'2016-02-15 15:19:10'); -INSERT INTO `uniqueiddata` VALUES (1000162,'NOT_SET',0,0,'2016-02-15 15:20:33'); -INSERT INTO `uniqueiddata` VALUES (1000163,'NOT_SET',0,0,'2016-02-15 15:20:33'); -INSERT INTO `uniqueiddata` VALUES (1000164,'NOT_SET',0,0,'2016-02-15 15:21:20'); -INSERT INTO `uniqueiddata` VALUES (1000165,'NOT_SET',0,0,'2016-02-15 15:21:20'); -INSERT INTO `uniqueiddata` VALUES (1000166,'NOT_SET',0,0,'2016-02-15 15:21:46'); -INSERT INTO `uniqueiddata` VALUES (1000167,'NOT_SET',0,0,'2016-02-15 15:21:46'); -INSERT INTO `uniqueiddata` VALUES (1000168,'NOT_SET',0,0,'2016-02-15 15:23:36'); -INSERT INTO `uniqueiddata` VALUES (1000169,'NOT_SET',0,0,'2016-02-15 15:23:36'); -INSERT INTO `uniqueiddata` VALUES (1000170,'NOT_SET',0,0,'2016-02-15 15:23:51'); -INSERT INTO `uniqueiddata` VALUES (1000171,'NOT_SET',0,0,'2016-02-15 15:23:51'); -INSERT INTO `uniqueiddata` VALUES (1000172,'NOT_SET',0,0,'2016-02-15 15:29:44'); -INSERT INTO `uniqueiddata` VALUES (1000173,'NOT_SET',0,0,'2016-02-15 15:29:44'); -INSERT INTO `uniqueiddata` VALUES (1000174,'NOT_SET',0,0,'2016-02-15 15:29:44'); -INSERT INTO `uniqueiddata` VALUES (1000175,'NOT_SET',0,0,'2016-02-15 15:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000176,'NOT_SET',0,0,'2016-02-15 15:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000177,'NOT_SET',0,0,'2016-02-15 15:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000178,'NOT_SET',0,0,'2016-02-15 15:32:24'); -INSERT INTO `uniqueiddata` VALUES (1000179,'NOT_SET',0,0,'2016-02-15 15:32:24'); -INSERT INTO `uniqueiddata` VALUES (1000180,'NOT_SET',0,0,'2016-02-15 15:32:24'); -INSERT INTO `uniqueiddata` VALUES (1000181,'NOT_SET',0,0,'2016-02-15 15:34:55'); -INSERT INTO `uniqueiddata` VALUES (1000182,'NOT_SET',0,0,'2016-02-15 15:34:55'); -INSERT INTO `uniqueiddata` VALUES (1000183,'NOT_SET',0,0,'2016-02-15 15:34:55'); -INSERT INTO `uniqueiddata` VALUES (1000184,'NOT_SET',0,0,'2016-02-15 16:12:30'); -INSERT INTO `uniqueiddata` VALUES (1000185,'NOT_SET',0,0,'2016-02-15 16:12:30'); -INSERT INTO `uniqueiddata` VALUES (1000186,'NOT_SET',0,0,'2016-02-15 16:12:30'); -INSERT INTO `uniqueiddata` VALUES (1000187,'NOT_SET',0,0,'2016-02-15 16:12:44'); -INSERT INTO `uniqueiddata` VALUES (1000188,'NOT_SET',0,0,'2016-02-15 16:12:44'); -INSERT INTO `uniqueiddata` VALUES (1000189,'NOT_SET',0,0,'2016-02-15 16:12:44'); -INSERT INTO `uniqueiddata` VALUES (1000190,'NOT_SET',0,0,'2016-02-15 16:12:45'); -INSERT INTO `uniqueiddata` VALUES (1000191,'NOT_SET',0,0,'2016-02-15 16:12:45'); -INSERT INTO `uniqueiddata` VALUES (1000192,'NOT_SET',0,0,'2016-02-15 16:12:45'); -INSERT INTO `uniqueiddata` VALUES (1000193,'NOT_SET',0,0,'2016-02-15 16:12:46'); -INSERT INTO `uniqueiddata` VALUES (1000194,'NOT_SET',0,0,'2016-02-15 16:12:46'); -INSERT INTO `uniqueiddata` VALUES (1000195,'NOT_SET',0,0,'2016-02-15 16:12:46'); -INSERT INTO `uniqueiddata` VALUES (1000196,'NOT_SET',0,0,'2016-02-15 16:12:46'); -INSERT INTO `uniqueiddata` VALUES (1000197,'NOT_SET',0,0,'2016-02-15 16:12:46'); -INSERT INTO `uniqueiddata` VALUES (1000198,'NOT_SET',0,0,'2016-02-15 16:12:46'); -INSERT INTO `uniqueiddata` VALUES (1000199,'NOT_SET',0,0,'2016-02-15 16:14:50'); -INSERT INTO `uniqueiddata` VALUES (1000200,'NOT_SET',0,0,'2016-02-15 16:14:50'); -INSERT INTO `uniqueiddata` VALUES (1000201,'NOT_SET',0,0,'2016-02-15 16:14:50'); -INSERT INTO `uniqueiddata` VALUES (1000202,'NOT_SET',0,0,'2016-02-15 16:15:03'); -INSERT INTO `uniqueiddata` VALUES (1000203,'NOT_SET',0,0,'2016-02-15 16:15:03'); -INSERT INTO `uniqueiddata` VALUES (1000204,'NOT_SET',0,0,'2016-02-15 16:15:03'); -INSERT INTO `uniqueiddata` VALUES (1000205,'NOT_SET',0,0,'2016-02-15 16:15:11'); -INSERT INTO `uniqueiddata` VALUES (1000206,'NOT_SET',0,0,'2016-02-15 16:15:11'); -INSERT INTO `uniqueiddata` VALUES (1000207,'NOT_SET',0,0,'2016-02-15 16:15:11'); -INSERT INTO `uniqueiddata` VALUES (1000208,'NOT_SET',0,0,'2016-02-15 22:32:45'); -INSERT INTO `uniqueiddata` VALUES (1000209,'NOT_SET',0,0,'2016-02-15 22:32:45'); -INSERT INTO `uniqueiddata` VALUES (1000210,'NOT_SET',0,0,'2016-02-15 22:32:45'); -INSERT INTO `uniqueiddata` VALUES (1000211,'NOT_SET',0,0,'2016-02-15 22:32:45'); -INSERT INTO `uniqueiddata` VALUES (1000212,'NOT_SET',0,0,'2016-02-15 22:32:45'); -INSERT INTO `uniqueiddata` VALUES (1000213,'NOT_SET',0,0,'2016-02-15 22:34:23'); -INSERT INTO `uniqueiddata` VALUES (1000214,'NOT_SET',0,0,'2016-02-15 23:11:20'); -INSERT INTO `uniqueiddata` VALUES (1000215,'NOT_SET',0,0,'2016-02-15 23:11:20'); -INSERT INTO `uniqueiddata` VALUES (1000216,'NOT_SET',0,0,'2016-02-15 23:11:20'); -INSERT INTO `uniqueiddata` VALUES (1000217,'NOT_SET',0,0,'2016-02-15 23:11:20'); -INSERT INTO `uniqueiddata` VALUES (1000218,'NOT_SET',0,0,'2016-02-15 23:11:20'); -INSERT INTO `uniqueiddata` VALUES (1000219,'NOT_SET',0,0,'2016-02-15 23:16:58'); -INSERT INTO `uniqueiddata` VALUES (1000220,'NOT_SET',0,0,'2016-02-16 19:00:04'); -INSERT INTO `uniqueiddata` VALUES (1000221,'NOT_SET',0,0,'2016-02-16 19:03:23'); -INSERT INTO `uniqueiddata` VALUES (1000222,'NOT_SET',0,0,'2016-02-16 19:06:00'); -INSERT INTO `uniqueiddata` VALUES (1000223,'NOT_SET',0,0,'2016-02-16 19:11:54'); -INSERT INTO `uniqueiddata` VALUES (1000224,'NOT_SET',0,0,'2016-02-16 19:14:18'); -INSERT INTO `uniqueiddata` VALUES (1000225,'NOT_SET',0,0,'2016-02-16 19:22:28'); -INSERT INTO `uniqueiddata` VALUES (1000226,'NOT_SET',0,0,'2016-02-16 21:43:08'); -INSERT INTO `uniqueiddata` VALUES (1000227,'NOT_SET',0,0,'2016-02-16 21:44:28'); -INSERT INTO `uniqueiddata` VALUES (1000228,'NOT_SET',0,0,'2016-02-16 21:46:22'); -INSERT INTO `uniqueiddata` VALUES (1000229,'NOT_SET',0,0,'2016-02-16 21:46:52'); -INSERT INTO `uniqueiddata` VALUES (1000230,'NOT_SET',0,0,'2016-02-16 21:47:53'); -INSERT INTO `uniqueiddata` VALUES (1000231,'NOT_SET',0,0,'2016-02-16 21:48:12'); -INSERT INTO `uniqueiddata` VALUES (1000232,'NOT_SET',0,0,'2016-02-16 21:48:59'); -INSERT INTO `uniqueiddata` VALUES (1000233,'NOT_SET',0,0,'2016-02-16 21:49:38'); -INSERT INTO `uniqueiddata` VALUES (1000234,'NOT_SET',0,0,'2016-02-16 21:51:07'); -INSERT INTO `uniqueiddata` VALUES (1000235,'NOT_SET',0,0,'2016-02-16 21:51:19'); -INSERT INTO `uniqueiddata` VALUES (1000236,'NOT_SET',0,0,'2016-02-16 21:57:09'); -INSERT INTO `uniqueiddata` VALUES (1000237,'NOT_SET',0,0,'2016-02-16 22:12:34'); -INSERT INTO `uniqueiddata` VALUES (1000238,'NOT_SET',0,0,'2016-02-16 22:12:45'); -INSERT INTO `uniqueiddata` VALUES (1000239,'NOT_SET',0,0,'2016-02-16 22:13:01'); -INSERT INTO `uniqueiddata` VALUES (1000240,'NOT_SET',0,0,'2016-02-16 22:13:08'); -INSERT INTO `uniqueiddata` VALUES (1000241,'NOT_SET',0,0,'2016-02-17 23:58:31'); -INSERT INTO `uniqueiddata` VALUES (1000242,'NOT_SET',0,0,'2016-02-17 23:58:38'); -INSERT INTO `uniqueiddata` VALUES (1000243,'NOT_SET',0,0,'2016-02-17 23:58:46'); -INSERT INTO `uniqueiddata` VALUES (1000244,'NOT_SET',0,0,'2016-02-18 00:00:21'); -INSERT INTO `uniqueiddata` VALUES (1000245,'NOT_SET',0,0,'2016-02-18 00:02:48'); -INSERT INTO `uniqueiddata` VALUES (1000246,'NOT_SET',0,0,'2016-02-18 00:05:42'); -INSERT INTO `uniqueiddata` VALUES (1000247,'NOT_SET',0,0,'2016-02-18 00:06:33'); -INSERT INTO `uniqueiddata` VALUES (1000248,'NOT_SET',0,0,'2016-02-18 00:11:51'); -INSERT INTO `uniqueiddata` VALUES (1000249,'NOT_SET',0,0,'2016-02-18 00:15:13'); -INSERT INTO `uniqueiddata` VALUES (1000250,'NOT_SET',0,0,'2016-02-18 00:20:42'); -INSERT INTO `uniqueiddata` VALUES (1000251,'NOT_SET',0,0,'2016-02-18 00:22:35'); -INSERT INTO `uniqueiddata` VALUES (1000252,'NOT_SET',0,0,'2016-02-18 00:29:39'); -INSERT INTO `uniqueiddata` VALUES (1000253,'NOT_SET',0,0,'2016-02-18 00:34:22'); -INSERT INTO `uniqueiddata` VALUES (1000254,'NOT_SET',0,0,'2016-02-18 00:35:05'); -INSERT INTO `uniqueiddata` VALUES (1000255,'NOT_SET',0,0,'2016-02-18 00:35:10'); -INSERT INTO `uniqueiddata` VALUES (1000256,'NOT_SET',0,0,'2016-02-18 00:35:14'); -INSERT INTO `uniqueiddata` VALUES (1000257,'NOT_SET',0,0,'2016-02-18 00:35:17'); -INSERT INTO `uniqueiddata` VALUES (1000258,'NOT_SET',0,0,'2016-02-18 00:35:22'); -INSERT INTO `uniqueiddata` VALUES (1000259,'NOT_SET',0,0,'2016-02-18 00:35:27'); -INSERT INTO `uniqueiddata` VALUES (1000260,'NOT_SET',0,0,'2016-02-18 00:35:37'); -INSERT INTO `uniqueiddata` VALUES (1000261,'NOT_SET',0,0,'2016-02-18 00:36:37'); -INSERT INTO `uniqueiddata` VALUES (1000262,'NOT_SET',0,0,'2016-02-18 00:36:48'); -INSERT INTO `uniqueiddata` VALUES (1000263,'NOT_SET',0,0,'2016-02-18 00:36:53'); -INSERT INTO `uniqueiddata` VALUES (1000264,'NOT_SET',0,0,'2016-02-18 00:36:57'); -INSERT INTO `uniqueiddata` VALUES (1000265,'NOT_SET',0,0,'2016-02-18 00:37:01'); -INSERT INTO `uniqueiddata` VALUES (1000266,'NOT_SET',0,0,'2016-02-18 00:37:05'); -INSERT INTO `uniqueiddata` VALUES (1000267,'NOT_SET',0,0,'2016-02-18 00:37:07'); -INSERT INTO `uniqueiddata` VALUES (1000268,'NOT_SET',0,0,'2016-02-18 00:37:20'); -INSERT INTO `uniqueiddata` VALUES (1000269,'NOT_SET',0,0,'2016-02-18 00:41:21'); -INSERT INTO `uniqueiddata` VALUES (1000270,'NOT_SET',0,0,'2016-02-18 00:41:55'); -INSERT INTO `uniqueiddata` VALUES (1000271,'NOT_SET',0,0,'2016-02-18 00:42:00'); -INSERT INTO `uniqueiddata` VALUES (1000272,'NOT_SET',0,0,'2016-02-18 00:42:03'); -INSERT INTO `uniqueiddata` VALUES (1000273,'NOT_SET',0,0,'2016-02-18 00:42:09'); -INSERT INTO `uniqueiddata` VALUES (1000274,'NOT_SET',0,0,'2016-02-18 00:43:13'); -INSERT INTO `uniqueiddata` VALUES (1000275,'NOT_SET',0,0,'2016-02-18 00:43:18'); -INSERT INTO `uniqueiddata` VALUES (1000276,'NOT_SET',0,0,'2016-02-18 00:44:32'); -INSERT INTO `uniqueiddata` VALUES (1000277,'NOT_SET',0,0,'2016-02-18 00:45:24'); -INSERT INTO `uniqueiddata` VALUES (1000278,'NOT_SET',0,0,'2016-02-18 17:38:42'); -INSERT INTO `uniqueiddata` VALUES (1000279,'NOT_SET',0,0,'2016-02-18 17:38:50'); -INSERT INTO `uniqueiddata` VALUES (1000280,'NOT_SET',0,0,'2016-02-18 17:38:59'); -INSERT INTO `uniqueiddata` VALUES (1000281,'NOT_SET',0,0,'2016-02-18 17:39:04'); -INSERT INTO `uniqueiddata` VALUES (1000282,'NOT_SET',0,0,'2016-02-18 17:39:12'); -INSERT INTO `uniqueiddata` VALUES (1000283,'NOT_SET',0,0,'2016-02-18 17:39:21'); -INSERT INTO `uniqueiddata` VALUES (1000284,'NOT_SET',0,0,'2016-02-18 17:39:37'); -INSERT INTO `uniqueiddata` VALUES (1000285,'NOT_SET',0,0,'2016-02-18 17:39:55'); -INSERT INTO `uniqueiddata` VALUES (1000286,'NOT_SET',0,0,'2016-02-18 17:40:03'); -INSERT INTO `uniqueiddata` VALUES (1000287,'NOT_SET',0,0,'2016-02-18 17:40:10'); -INSERT INTO `uniqueiddata` VALUES (1000288,'NOT_SET',0,0,'2016-02-18 17:40:24'); -INSERT INTO `uniqueiddata` VALUES (1000289,'NOT_SET',0,0,'2016-02-18 17:40:29'); -INSERT INTO `uniqueiddata` VALUES (1000290,'NOT_SET',0,0,'2016-02-18 17:40:32'); -INSERT INTO `uniqueiddata` VALUES (1000291,'NOT_SET',0,0,'2016-02-18 17:40:46'); -INSERT INTO `uniqueiddata` VALUES (1000292,'NOT_SET',0,0,'2016-02-18 17:41:00'); -INSERT INTO `uniqueiddata` VALUES (1000293,'NOT_SET',0,0,'2016-02-18 17:41:09'); -INSERT INTO `uniqueiddata` VALUES (1000294,'NOT_SET',0,0,'2016-02-18 17:41:12'); -INSERT INTO `uniqueiddata` VALUES (1000295,'NOT_SET',0,0,'2016-02-18 17:41:16'); -INSERT INTO `uniqueiddata` VALUES (1000296,'NOT_SET',0,0,'2016-02-18 17:41:44'); -INSERT INTO `uniqueiddata` VALUES (1000297,'NOT_SET',0,0,'2016-02-18 17:41:50'); -INSERT INTO `uniqueiddata` VALUES (1000298,'NOT_SET',0,0,'2016-02-18 17:41:54'); -INSERT INTO `uniqueiddata` VALUES (1000299,'NOT_SET',0,0,'2016-02-18 17:41:58'); -INSERT INTO `uniqueiddata` VALUES (1000300,'NOT_SET',0,0,'2016-02-18 17:42:02'); -INSERT INTO `uniqueiddata` VALUES (1000301,'NOT_SET',0,0,'2016-02-18 17:42:06'); -INSERT INTO `uniqueiddata` VALUES (1000302,'NOT_SET',0,0,'2016-02-18 17:42:11'); -INSERT INTO `uniqueiddata` VALUES (1000303,'NOT_SET',0,0,'2016-02-18 17:42:48'); -INSERT INTO `uniqueiddata` VALUES (1000304,'NOT_SET',0,0,'2016-02-18 17:42:52'); -INSERT INTO `uniqueiddata` VALUES (1000305,'NOT_SET',0,0,'2016-02-18 17:43:05'); -INSERT INTO `uniqueiddata` VALUES (1000306,'NOT_SET',0,0,'2016-02-18 17:43:11'); -INSERT INTO `uniqueiddata` VALUES (1000307,'NOT_SET',0,0,'2016-02-18 17:43:28'); -INSERT INTO `uniqueiddata` VALUES (1000308,'NOT_SET',0,0,'2016-02-18 17:43:38'); -INSERT INTO `uniqueiddata` VALUES (1000309,'NOT_SET',0,0,'2016-02-18 17:43:45'); -INSERT INTO `uniqueiddata` VALUES (1000310,'NOT_SET',0,0,'2016-02-18 17:43:47'); -INSERT INTO `uniqueiddata` VALUES (1000311,'NOT_SET',0,0,'2016-02-18 17:43:52'); -INSERT INTO `uniqueiddata` VALUES (1000312,'NOT_SET',0,0,'2016-02-18 17:43:57'); -INSERT INTO `uniqueiddata` VALUES (1000313,'NOT_SET',0,0,'2016-02-18 17:44:03'); -INSERT INTO `uniqueiddata` VALUES (1000314,'NOT_SET',0,0,'2016-02-18 17:44:10'); -INSERT INTO `uniqueiddata` VALUES (1000315,'NOT_SET',0,0,'2016-02-18 17:44:13'); -INSERT INTO `uniqueiddata` VALUES (1000316,'NOT_SET',0,0,'2016-02-18 17:44:17'); -INSERT INTO `uniqueiddata` VALUES (1000317,'NOT_SET',0,0,'2016-02-18 17:44:20'); -INSERT INTO `uniqueiddata` VALUES (1000318,'NOT_SET',0,0,'2016-02-18 17:44:29'); -INSERT INTO `uniqueiddata` VALUES (1000319,'NOT_SET',0,0,'2016-02-18 17:46:36'); -INSERT INTO `uniqueiddata` VALUES (1000320,'NOT_SET',0,0,'2016-02-18 17:46:46'); -INSERT INTO `uniqueiddata` VALUES (1000321,'NOT_SET',0,0,'2016-02-18 17:50:52'); -INSERT INTO `uniqueiddata` VALUES (1000322,'NOT_SET',0,0,'2016-02-18 17:50:59'); -INSERT INTO `uniqueiddata` VALUES (1000323,'NOT_SET',0,0,'2016-02-18 20:27:42'); -INSERT INTO `uniqueiddata` VALUES (1000324,'NOT_SET',0,0,'2016-02-18 20:28:24'); -INSERT INTO `uniqueiddata` VALUES (1000325,'NOT_SET',0,0,'2016-02-18 20:28:41'); -INSERT INTO `uniqueiddata` VALUES (1000326,'NOT_SET',0,0,'2016-02-18 20:30:27'); -INSERT INTO `uniqueiddata` VALUES (1000327,'NOT_SET',0,0,'2016-02-18 22:45:38'); -INSERT INTO `uniqueiddata` VALUES (1000328,'NOT_SET',0,0,'2016-02-18 22:46:11'); -INSERT INTO `uniqueiddata` VALUES (1000329,'NOT_SET',0,0,'2016-02-18 22:47:38'); -INSERT INTO `uniqueiddata` VALUES (1000330,'NOT_SET',0,0,'2016-02-18 22:47:50'); -INSERT INTO `uniqueiddata` VALUES (1000331,'NOT_SET',0,0,'2016-06-02 21:29:07'); -INSERT INTO `uniqueiddata` VALUES (1000332,'NOT_SET',0,0,'2016-06-02 21:29:07'); -INSERT INTO `uniqueiddata` VALUES (1000333,'NOT_SET',0,0,'2016-06-02 21:29:07'); -INSERT INTO `uniqueiddata` VALUES (1000334,'NOT_SET',0,0,'2016-06-02 21:29:07'); -INSERT INTO `uniqueiddata` VALUES (1000335,'NOT_SET',0,0,'2016-06-02 21:29:07'); -INSERT INTO `uniqueiddata` VALUES (1000336,'NOT_SET',0,0,'2016-06-02 21:31:00'); -INSERT INTO `uniqueiddata` VALUES (1000337,'NOT_SET',0,0,'2016-06-07 09:43:05'); -INSERT INTO `uniqueiddata` VALUES (1000338,'NOT_SET',0,0,'2016-06-07 09:44:38'); -INSERT INTO `uniqueiddata` VALUES (1000339,'NOT_SET',0,0,'2016-06-07 09:46:36'); -INSERT INTO `uniqueiddata` VALUES (1000340,'NOT_SET',0,0,'2016-06-07 10:04:57'); -INSERT INTO `uniqueiddata` VALUES (1000341,'NOT_SET',0,0,'2016-06-12 12:38:23'); -INSERT INTO `uniqueiddata` VALUES (1000342,'NOT_SET',0,0,'2016-06-12 12:38:23'); -INSERT INTO `uniqueiddata` VALUES (1000343,'NOT_SET',0,0,'2016-06-12 12:38:23'); -INSERT INTO `uniqueiddata` VALUES (1000344,'NOT_SET',0,0,'2016-06-12 12:38:23'); -INSERT INTO `uniqueiddata` VALUES (1000345,'NOT_SET',0,0,'2016-06-12 12:38:23'); -INSERT INTO `uniqueiddata` VALUES (1000346,'NOT_SET',0,0,'2016-06-12 14:09:36'); -INSERT INTO `uniqueiddata` VALUES (1000347,'NOT_SET',0,0,'2016-06-12 14:09:36'); -INSERT INTO `uniqueiddata` VALUES (1000348,'NOT_SET',0,0,'2016-06-12 14:09:36'); -INSERT INTO `uniqueiddata` VALUES (1000349,'NOT_SET',0,0,'2016-06-12 14:09:36'); -INSERT INTO `uniqueiddata` VALUES (1000350,'NOT_SET',0,0,'2016-06-12 14:09:36'); -INSERT INTO `uniqueiddata` VALUES (1000351,'NOT_SET',0,0,'2016-06-12 14:14:55'); -INSERT INTO `uniqueiddata` VALUES (1000352,'NOT_SET',0,0,'2016-06-14 10:55:22'); -INSERT INTO `uniqueiddata` VALUES (1000353,'NOT_SET',0,0,'2016-06-14 10:55:22'); -INSERT INTO `uniqueiddata` VALUES (1000354,'NOT_SET',0,0,'2016-06-14 10:55:22'); -INSERT INTO `uniqueiddata` VALUES (1000355,'NOT_SET',0,0,'2016-06-14 10:55:22'); -INSERT INTO `uniqueiddata` VALUES (1000356,'NOT_SET',0,0,'2016-06-14 10:55:22'); -INSERT INTO `uniqueiddata` VALUES (1000357,'NOT_SET',0,0,'2016-06-14 10:57:31'); -INSERT INTO `uniqueiddata` VALUES (1000358,'NOT_SET',0,0,'2016-06-24 17:11:46'); -INSERT INTO `uniqueiddata` VALUES (1000359,'NOT_SET',0,0,'2016-06-24 17:11:46'); -INSERT INTO `uniqueiddata` VALUES (1000360,'NOT_SET',0,0,'2016-06-24 17:11:46'); -INSERT INTO `uniqueiddata` VALUES (1000361,'NOT_SET',0,0,'2016-06-24 17:11:46'); -INSERT INTO `uniqueiddata` VALUES (1000362,'NOT_SET',0,0,'2016-06-24 17:11:46'); -INSERT INTO `uniqueiddata` VALUES (1000363,'NOT_SET',0,0,'2016-07-03 23:42:26'); -INSERT INTO `uniqueiddata` VALUES (1000364,'NOT_SET',0,0,'2016-07-03 23:42:26'); -INSERT INTO `uniqueiddata` VALUES (1000365,'NOT_SET',0,0,'2016-07-03 23:42:26'); -INSERT INTO `uniqueiddata` VALUES (1000366,'NOT_SET',0,0,'2016-07-03 23:42:26'); -INSERT INTO `uniqueiddata` VALUES (1000367,'NOT_SET',0,0,'2016-07-03 23:42:26'); -INSERT INTO `uniqueiddata` VALUES (1000368,'NOT_SET',0,0,'2016-07-03 23:44:12'); -INSERT INTO `uniqueiddata` VALUES (1000369,'NOT_SET',0,0,'2016-07-03 23:50:02'); -INSERT INTO `uniqueiddata` VALUES (1000370,'NOT_SET',0,0,'2016-07-03 23:50:02'); -INSERT INTO `uniqueiddata` VALUES (1000371,'NOT_SET',0,0,'2016-07-03 23:50:02'); -INSERT INTO `uniqueiddata` VALUES (1000372,'NOT_SET',0,0,'2016-07-03 23:50:02'); -INSERT INTO `uniqueiddata` VALUES (1000373,'NOT_SET',0,0,'2016-07-03 23:50:02'); -INSERT INTO `uniqueiddata` VALUES (1000374,'NOT_SET',0,0,'2016-07-05 18:50:51'); -INSERT INTO `uniqueiddata` VALUES (1000375,'NOT_SET',0,0,'2016-07-05 23:11:55'); -INSERT INTO `uniqueiddata` VALUES (1000376,'NOT_SET',0,0,'2016-07-05 23:11:55'); -INSERT INTO `uniqueiddata` VALUES (1000377,'NOT_SET',0,0,'2016-07-05 23:11:55'); -INSERT INTO `uniqueiddata` VALUES (1000378,'NOT_SET',0,0,'2016-07-05 23:11:55'); -INSERT INTO `uniqueiddata` VALUES (1000379,'NOT_SET',0,0,'2016-07-05 23:11:55'); -INSERT INTO `uniqueiddata` VALUES (1000380,'NOT_SET',0,0,'2016-07-05 23:15:14'); -INSERT INTO `uniqueiddata` VALUES (1000381,'NOT_SET',0,0,'2016-07-06 08:57:30'); -INSERT INTO `uniqueiddata` VALUES (1000382,'NOT_SET',0,0,'2016-07-06 08:57:30'); -INSERT INTO `uniqueiddata` VALUES (1000383,'NOT_SET',0,0,'2016-07-06 08:57:30'); -INSERT INTO `uniqueiddata` VALUES (1000384,'NOT_SET',0,0,'2016-07-06 08:57:30'); -INSERT INTO `uniqueiddata` VALUES (1000385,'NOT_SET',0,0,'2016-07-06 08:57:30'); -INSERT INTO `uniqueiddata` VALUES (1000386,'NOT_SET',0,0,'2016-07-06 08:58:55'); -INSERT INTO `uniqueiddata` VALUES (1000387,'NOT_SET',0,0,'2016-07-06 14:24:09'); -INSERT INTO `uniqueiddata` VALUES (1000388,'NOT_SET',0,0,'2016-07-06 14:24:09'); -INSERT INTO `uniqueiddata` VALUES (1000389,'NOT_SET',0,0,'2016-07-06 14:24:09'); -INSERT INTO `uniqueiddata` VALUES (1000390,'NOT_SET',0,0,'2016-07-06 14:24:09'); -INSERT INTO `uniqueiddata` VALUES (1000391,'NOT_SET',0,0,'2016-07-06 14:24:09'); -INSERT INTO `uniqueiddata` VALUES (1000392,'NOT_SET',0,0,'2016-07-06 14:25:57'); -INSERT INTO `uniqueiddata` VALUES (1000393,'NOT_SET',0,0,'2016-07-07 01:23:56'); -INSERT INTO `uniqueiddata` VALUES (1000394,'NOT_SET',0,0,'2016-07-07 01:23:56'); -INSERT INTO `uniqueiddata` VALUES (1000395,'NOT_SET',0,0,'2016-07-07 01:23:56'); -INSERT INTO `uniqueiddata` VALUES (1000396,'NOT_SET',0,0,'2016-07-07 01:23:56'); -INSERT INTO `uniqueiddata` VALUES (1000397,'NOT_SET',0,0,'2016-07-07 01:23:56'); -INSERT INTO `uniqueiddata` VALUES (1000398,'NOT_SET',0,0,'2016-07-07 01:45:10'); -INSERT INTO `uniqueiddata` VALUES (1000399,'NOT_SET',0,0,'2016-07-07 01:51:59'); -INSERT INTO `uniqueiddata` VALUES (1000400,'NOT_SET',0,0,'2016-07-07 01:51:59'); -INSERT INTO `uniqueiddata` VALUES (1000401,'NOT_SET',0,0,'2016-07-07 01:51:59'); -INSERT INTO `uniqueiddata` VALUES (1000402,'NOT_SET',0,0,'2016-07-07 01:51:59'); -INSERT INTO `uniqueiddata` VALUES (1000403,'NOT_SET',0,0,'2016-07-07 01:51:59'); -INSERT INTO `uniqueiddata` VALUES (1000404,'NOT_SET',0,0,'2016-07-07 01:53:28'); -INSERT INTO `uniqueiddata` VALUES (1000405,'NOT_SET',0,0,'2016-07-08 01:21:37'); -INSERT INTO `uniqueiddata` VALUES (1000406,'NOT_SET',0,0,'2016-07-08 01:21:37'); -INSERT INTO `uniqueiddata` VALUES (1000407,'NOT_SET',0,0,'2016-07-08 01:21:37'); -INSERT INTO `uniqueiddata` VALUES (1000408,'NOT_SET',0,0,'2016-07-08 01:21:37'); -INSERT INTO `uniqueiddata` VALUES (1000409,'NOT_SET',0,0,'2016-07-08 01:21:37'); -INSERT INTO `uniqueiddata` VALUES (1000410,'NOT_SET',0,0,'2016-07-08 01:23:17'); -INSERT INTO `uniqueiddata` VALUES (1000411,'NOT_SET',0,0,'2016-07-14 10:19:45'); -INSERT INTO `uniqueiddata` VALUES (1000412,'NOT_SET',0,0,'2016-07-14 10:19:45'); -INSERT INTO `uniqueiddata` VALUES (1000413,'NOT_SET',0,0,'2016-07-14 10:19:45'); -INSERT INTO `uniqueiddata` VALUES (1000414,'NOT_SET',0,0,'2016-07-14 10:19:45'); -INSERT INTO `uniqueiddata` VALUES (1000415,'NOT_SET',0,0,'2016-07-14 10:19:45'); -INSERT INTO `uniqueiddata` VALUES (1000416,'NOT_SET',0,0,'2016-07-14 10:21:22'); -INSERT INTO `uniqueiddata` VALUES (1000417,'NOT_SET',0,0,'2016-07-14 13:19:59'); -INSERT INTO `uniqueiddata` VALUES (1000418,'NOT_SET',0,0,'2016-07-14 13:19:59'); -INSERT INTO `uniqueiddata` VALUES (1000419,'NOT_SET',0,0,'2016-07-14 13:19:59'); -INSERT INTO `uniqueiddata` VALUES (1000420,'NOT_SET',0,0,'2016-07-14 13:19:59'); -INSERT INTO `uniqueiddata` VALUES (1000421,'NOT_SET',0,0,'2016-07-14 13:19:59'); -INSERT INTO `uniqueiddata` VALUES (1000422,'NOT_SET',0,0,'2016-07-14 13:22:36'); -INSERT INTO `uniqueiddata` VALUES (1000423,'NOT_SET',0,0,'2016-07-14 13:27:51'); -INSERT INTO `uniqueiddata` VALUES (1000424,'NOT_SET',0,0,'2016-07-14 13:27:51'); -INSERT INTO `uniqueiddata` VALUES (1000425,'NOT_SET',0,0,'2016-07-14 13:27:51'); -INSERT INTO `uniqueiddata` VALUES (1000426,'NOT_SET',0,0,'2016-07-14 13:27:51'); -INSERT INTO `uniqueiddata` VALUES (1000427,'NOT_SET',0,0,'2016-07-14 13:27:51'); -INSERT INTO `uniqueiddata` VALUES (1000428,'NOT_SET',0,0,'2016-07-14 13:29:27'); -INSERT INTO `uniqueiddata` VALUES (1000429,'NOT_SET',0,0,'2016-07-20 16:28:04'); -INSERT INTO `uniqueiddata` VALUES (1000430,'NOT_SET',0,0,'2016-07-20 16:28:04'); -INSERT INTO `uniqueiddata` VALUES (1000431,'NOT_SET',0,0,'2016-07-20 16:28:04'); -INSERT INTO `uniqueiddata` VALUES (1000432,'NOT_SET',0,0,'2016-07-20 16:28:04'); -INSERT INTO `uniqueiddata` VALUES (1000433,'NOT_SET',0,0,'2016-07-20 16:28:04'); -INSERT INTO `uniqueiddata` VALUES (1000434,'NOT_SET',0,0,'2016-07-20 17:16:05'); -INSERT INTO `uniqueiddata` VALUES (1000435,'NOT_SET',0,0,'2016-07-23 20:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000436,'NOT_SET',0,0,'2016-07-23 20:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000437,'NOT_SET',0,0,'2016-07-23 20:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000438,'NOT_SET',0,0,'2016-07-23 20:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000439,'NOT_SET',0,0,'2016-07-23 20:32:11'); -INSERT INTO `uniqueiddata` VALUES (1000440,'NOT_SET',0,0,'2016-07-23 20:54:37'); -INSERT INTO `uniqueiddata` VALUES (1000441,'NOT_SET',0,0,'2016-07-28 20:18:23'); -INSERT INTO `uniqueiddata` VALUES (1000442,'NOT_SET',0,0,'2016-07-28 20:18:23'); -INSERT INTO `uniqueiddata` VALUES (1000443,'NOT_SET',0,0,'2016-07-28 20:18:23'); -INSERT INTO `uniqueiddata` VALUES (1000444,'NOT_SET',0,0,'2016-07-28 20:18:23'); -INSERT INTO `uniqueiddata` VALUES (1000445,'NOT_SET',0,0,'2016-07-28 20:18:23'); -INSERT INTO `uniqueiddata` VALUES (1000446,'NOT_SET',0,0,'2016-07-28 20:20:56'); -/*!40000 ALTER TABLE `uniqueiddata` ENABLE KEYS */; -UNLOCK TABLES; -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2016-12-09 17:37:16 diff --git a/sql/update.sql b/sql/update.sql deleted file mode 100644 index 21bc893c..00000000 --- a/sql/update.sql +++ /dev/null @@ -1,48 +0,0 @@ -ALTER TABLE charainfo -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charastatus -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charainfoblacklist -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charaglobalitem -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charainfofriendlist -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charainfolinkshell -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charainfosearch -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charaitemgearset -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charaiteminventory -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charaquestnew -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE infolinkshell -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE uniqueiddata -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charainfo -ADD `Orchestrion` binary(38) DEFAULT NULL AFTER `Mounts`; - -ALTER TABLE `charainfo` CHANGE `Mounts` `Mounts` BINARY(17) NULL DEFAULT NULL; -ALTER TABLE `charainfo` CHANGE `Orchestrion` `Orchestrion` BINARY(40) NULL DEFAULT NULL; -ALTER TABLE `charainfo` CHANGE `Minions` `Minions` BINARY(40) NULL DEFAULT NULL; -ALTER TABLE `charainfo` CHANGE `QuestCompleteFlags` `QuestCompleteFlags` VARBINARY(396) NULL DEFAULT NULL; -ALTER TABLE `charainfo` CHANGE `Aetheryte` `Aetheryte` BINARY(17) NULL DEFAULT NULL; -ALTER TABLE `charainfo` ADD COLUMN `EquipDisplayFlags` INT(3) NULL DEFAULT '0' AFTER `GMRank`; -ALTER TABLE `charainfo` ADD COLUMN `Pose` INT(3) NULL DEFAULT '0' AFTER `EquipDisplayFlags`; - -ALTER TABLE `characlass` DROP PRIMARY KEY, ADD INDEX `CharacterId` (`CharacterId`); diff --git a/sql/update_discovery.sql b/sql/update_discovery.sql deleted file mode 100644 index 35211ed4..00000000 --- a/sql/update_discovery.sql +++ /dev/null @@ -1,4422 +0,0 @@ -INSERT IGNORE INTO discoveryinfo VALUES (5865270, 230, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5865275, 230, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5865286, 230, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5865289, 230, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5933083, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933084, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933085, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933086, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933087, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933088, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933089, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933090, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933091, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933092, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933093, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933094, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933095, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933096, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933097, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933098, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933099, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933100, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933101, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933102, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933103, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933104, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933105, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933106, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933107, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933108, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933109, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933110, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933111, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933112, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933113, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933114, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933115, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933116, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933117, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933118, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933119, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933120, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933121, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933122, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933123, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933124, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933125, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933126, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933127, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933128, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933129, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933130, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933131, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933132, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933133, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933134, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933135, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933136, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933137, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933138, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933139, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933140, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933141, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933142, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933143, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933144, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933145, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933146, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933147, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933148, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933149, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933150, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933151, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933152, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933153, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933154, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933155, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933156, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933157, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933158, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933159, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933160, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933161, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933162, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933163, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933164, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933165, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933166, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933167, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933168, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933169, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933170, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933171, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933172, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933173, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933174, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933175, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933176, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933177, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933178, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933179, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933180, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933181, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933182, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933183, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933184, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933185, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933186, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933187, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933188, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933189, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933190, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933191, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933192, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933193, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933194, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933195, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933196, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933197, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933198, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933199, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933200, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933201, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933202, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933203, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933204, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933205, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933206, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933207, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933208, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933209, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933210, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933211, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933212, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933213, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933214, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933215, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933216, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933217, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5933218, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938783, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938782, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938787, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938788, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938789, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938784, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938785, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938786, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938803, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938802, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938801, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938804, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938808, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938807, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938805, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938799, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938800, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938797, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938798, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938811, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938810, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938809, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938812, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938815, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938814, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938813, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938816, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938806, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938795, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938796, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938791, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938794, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938790, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938792, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938793, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910101, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910102, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910115, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910122, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910126, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910127, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910141, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910144, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910157, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910168, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921858, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921871, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921880, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921881, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921882, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921937, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921940, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921941, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921942, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921945, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921953, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921956, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921962, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921966, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921968, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921969, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921970, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921980, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921981, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921982, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921987, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921988, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921996, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921998, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921999, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922000, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922002, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922004, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922005, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922006, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922007, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922008, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922009, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922010, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922013, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922559, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5922560, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5935490, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5910134, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5935520, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5935521, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5935525, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5936097, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5936102, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5936113, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5936125, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5936127, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5921955, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5938781, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5960788, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (5913203, 216, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6123737, 276, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6123738, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123739, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123740, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123741, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123742, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123743, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123744, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123745, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123746, 276, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6161036, 276, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6161039, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161040, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161041, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161042, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161048, 276, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6163807, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6163808, 276, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6163809, 276, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6163810, 276, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6163811, 276, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6163812, 276, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6163813, 276, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6163814, 276, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6163815, 276, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6163816, 276, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6163817, 276, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6163818, 276, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6170636, 276, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6170637, 276, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170638, 276, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170639, 276, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170640, 276, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170641, 276, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170642, 276, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170643, 276, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170644, 276, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6170645, 276, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6170646, 276, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6170647, 276, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6170648, 276, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6170649, 276, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170650, 276, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6170651, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6170652, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6170653, 276, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6170654, 276, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6170655, 276, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6170656, 276, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6170657, 276, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6170658, 276, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6170659, 276, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6170660, 276, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6170661, 276, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6170662, 276, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6170663, 276, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6170664, 276, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6170665, 276, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6170666, 276, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6170667, 276, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6170668, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6170669, 276, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6170670, 276, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6170671, 276, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6170672, 276, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6170673, 276, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6170674, 276, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6170675, 276, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6170676, 276, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6170677, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6171334, 276, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6171335, 276, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6171336, 276, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6171337, 276, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6171338, 276, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6171339, 276, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6171340, 276, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6171341, 276, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6171342, 276, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6123737, 275, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6123738, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123739, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123740, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123741, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123742, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123743, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123744, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123745, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6123746, 275, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6161036, 275, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6161039, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161040, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161041, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161042, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6161048, 275, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6163807, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6163808, 275, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6163809, 275, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6163810, 275, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6163811, 275, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6163812, 275, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6163813, 275, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6163814, 275, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6163815, 275, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6163816, 275, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6163817, 275, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6163818, 275, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6170636, 275, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6170637, 275, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170638, 275, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170639, 275, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170640, 275, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170641, 275, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170642, 275, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170643, 275, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6170644, 275, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6170645, 275, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6170646, 275, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6170647, 275, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6170648, 275, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6170649, 275, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6170650, 275, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6170651, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6170652, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6170653, 275, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6170654, 275, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6170655, 275, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6170656, 275, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6170657, 275, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6170658, 275, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6170659, 275, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6170660, 275, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6170661, 275, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6170662, 275, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6170663, 275, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6170664, 275, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6170665, 275, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6170666, 275, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6170667, 275, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6170668, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6170669, 275, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6170670, 275, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6170671, 275, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6170672, 275, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6170673, 275, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6170674, 275, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6170675, 275, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6170676, 275, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6170677, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6171334, 275, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6171335, 275, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6171336, 275, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6171337, 275, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6171338, 275, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6171339, 275, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6171340, 275, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6171341, 275, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6171342, 275, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6599910, 356, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6599911, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599912, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599913, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599914, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599915, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599916, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599917, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599918, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599919, 356, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6599920, 356, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6599922, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599923, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599924, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599925, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599926, 356, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6599927, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599928, 356, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6599929, 356, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6599930, 356, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6599931, 356, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6599932, 356, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6599933, 356, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6599934, 356, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6599935, 356, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6599936, 356, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6599937, 356, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6599938, 356, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6599939, 356, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6599940, 356, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6599941, 356, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6599942, 356, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6599943, 356, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6599944, 356, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6599945, 356, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6599946, 356, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6599947, 356, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6599948, 356, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6599949, 356, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6599950, 356, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6599951, 356, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6599952, 356, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6599953, 356, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6599954, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599955, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599956, 356, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6599957, 356, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6599958, 356, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6599959, 356, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6599960, 356, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6599961, 356, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6599962, 356, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6599963, 356, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6599964, 356, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6599965, 356, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6599966, 356, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6599967, 356, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6599968, 356, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6599969, 356, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6599970, 356, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6599971, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599972, 356, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6599973, 356, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6599974, 356, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6599975, 356, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6599976, 356, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6599977, 356, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6599978, 356, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6599979, 356, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6599980, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599981, 356, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6599982, 356, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6599983, 356, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6599984, 356, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6599985, 356, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6599986, 356, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6599987, 356, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6599988, 356, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6599989, 356, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6622965, 356, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6784914, 356, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6784915, 356, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6787121, 356, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6886431, 356, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5874028, 237, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5874029, 237, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5874030, 237, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5874031, 237, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5874032, 237, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6046582, 255, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5910298, 255, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5910299, 255, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5858542, 239, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5910301, 239, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5910302, 239, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5910303, 239, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5910305, 239, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5910306, 239, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5910307, 239, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5910308, 239, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6236476, 286, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6236480, 286, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6236481, 286, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6236486, 286, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6236497, 288, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6236500, 288, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6236501, 288, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6236502, 288, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5795788, 252, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5795795, 252, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5795796, 252, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5840909, 252, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5840914, 252, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5840915, 252, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5840920, 252, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5840923, 252, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5908552, 252, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5937520, 252, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5937536, 252, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5911128, 241, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5911129, 241, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5911131, 241, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5911132, 241, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5911133, 241, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5911136, 241, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5911137, 241, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5911139, 241, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5911141, 241, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5911142, 241, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5911143, 241, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5911144, 241, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5911145, 241, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5911146, 241, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5911147, 241, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5911148, 241, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5911151, 241, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5911154, 241, 8); -INSERT IGNORE INTO discoveryinfo VALUES (5911155, 241, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5911158, 241, 8); -INSERT IGNORE INTO discoveryinfo VALUES (5911159, 241, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5911164, 241, 11); -INSERT IGNORE INTO discoveryinfo VALUES (5911166, 241, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5911167, 241, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5911168, 241, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5911169, 241, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5911173, 241, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5911174, 241, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5911175, 241, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5911176, 241, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5911184, 241, 14); -INSERT IGNORE INTO discoveryinfo VALUES (5911193, 241, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5911200, 241, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5911204, 241, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5911207, 241, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5911208, 241, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5927966, 241, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5927968, 241, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5927969, 241, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5927970, 241, 8); -INSERT IGNORE INTO discoveryinfo VALUES (5927971, 241, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5927972, 241, 14); -INSERT IGNORE INTO discoveryinfo VALUES (5927973, 241, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6070090, 273, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6070269, 273, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6070278, 273, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6161083, 279, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6236450, 279, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6236452, 279, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6242634, 279, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6242635, 279, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6242683, 279, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6331526, 312, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6782060, 352, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5930418, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930419, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930420, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930421, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930422, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930423, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930424, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930425, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930426, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930427, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930428, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930429, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930430, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930431, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930432, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930433, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930434, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930435, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930436, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930437, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930438, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930439, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930440, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930441, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930442, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930443, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930444, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930445, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930446, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930447, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930448, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930449, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930450, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930451, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930452, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930453, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930454, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930455, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930456, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930457, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930458, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930459, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930460, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930461, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930462, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930463, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930464, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930465, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930466, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930467, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930468, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930469, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930470, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930471, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930472, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930473, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930474, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930475, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930476, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930477, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930478, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930479, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930480, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930481, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930482, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930483, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930484, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930485, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930486, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930487, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930488, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930489, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930490, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930491, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930492, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930493, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930494, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930495, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930496, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930497, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930498, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930499, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5930500, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938317, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938314, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938315, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938319, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938318, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938307, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938308, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938305, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938299, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938302, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938300, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938310, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938311, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938281, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938296, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938298, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938291, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938293, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938292, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938323, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938321, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919748, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919753, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919755, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919756, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919791, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919812, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919814, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919815, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919816, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919818, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919824, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919826, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919832, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919835, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919848, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919851, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919853, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919854, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919855, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919859, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919860, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919868, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919870, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919908, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919912, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919927, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919931, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5919973, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920107, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920109, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920110, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920131, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920132, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920134, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920142, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5920147, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5935045, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5936562, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937788, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937789, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937791, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937798, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937800, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937801, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937802, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937803, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937804, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5937805, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938265, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5938270, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6238456, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6238457, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6238459, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5913190, 213, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5933371, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933372, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933373, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933374, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933375, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933376, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933377, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933378, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933379, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933380, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933381, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933382, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933383, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933384, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933385, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933386, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933387, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933388, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933389, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933390, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933391, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933392, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933393, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933394, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933395, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933396, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933397, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933398, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933399, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933400, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933401, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933402, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933403, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933404, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933405, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933406, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933407, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933408, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933409, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933410, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933411, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933412, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933413, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933414, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933415, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933416, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933417, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933418, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933419, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933420, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933421, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933422, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933423, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933424, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933425, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933426, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933427, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933428, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933429, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933430, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933431, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933432, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933433, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933434, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933435, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933436, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933437, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933438, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933439, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933440, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933441, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933442, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933443, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933444, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933445, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933446, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933447, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933448, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933449, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933450, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933451, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933452, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933453, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933454, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933455, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933456, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933457, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933458, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933459, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933460, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933461, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933462, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933463, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933464, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933465, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933466, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933467, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933468, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933469, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933470, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933471, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933472, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933473, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933474, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933475, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933476, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933477, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933478, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933479, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933480, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933481, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933482, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933483, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933484, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933485, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933486, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933487, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933488, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933489, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933490, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933491, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933492, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933493, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933494, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933495, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933496, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933497, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933498, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5933499, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938387, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938388, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938389, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938390, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938391, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938392, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938393, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938394, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938395, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938396, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938397, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938398, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938399, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938400, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938401, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938402, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938403, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938404, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938405, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938406, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938407, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938408, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938409, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938410, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938411, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938412, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938413, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938414, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938416, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938417, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938418, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938419, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909929, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909946, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909947, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909948, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909950, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909951, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909952, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909953, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5909980, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921241, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921242, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921246, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921247, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921249, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921250, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921251, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921252, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921253, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921254, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921260, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921262, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921264, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921265, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921266, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921267, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921268, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921273, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921274, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921275, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921276, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921277, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921278, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921279, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921280, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921281, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921283, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921287, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921288, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921290, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5921292, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5935100, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5935104, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5935105, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5935119, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5938344, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6407718, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6407719, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6407720, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6407721, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6407722, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5913193, 214, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6891617, 336, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6891627, 336, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6891637, 336, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6891692, 336, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6891694, 336, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6893032, 336, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6893241, 336, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6893758, 336, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6893761, 336, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6893762, 336, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6983070, 336, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6983076, 336, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6957295, 375, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6957309, 375, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6957316, 375, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6957345, 375, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6957347, 375, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6957348, 375, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6957349, 375, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6957357, 375, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6957359, 375, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6957361, 375, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6957363, 375, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6957364, 375, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6957365, 375, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6957366, 375, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6957367, 375, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6957368, 375, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6957369, 375, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6957370, 375, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6994517, 375, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6994518, 375, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6994519, 375, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6994521, 375, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6994536, 375, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6994537, 375, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6969457, 396, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6969461, 396, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6969463, 396, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6969464, 396, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6969467, 396, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6969468, 396, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6969470, 396, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6969475, 396, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6969478, 396, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6969486, 396, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6969492, 396, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6969496, 396, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6969507, 396, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6969509, 396, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969513, 396, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6969517, 396, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6969520, 396, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6969521, 396, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6969607, 396, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6969611, 396, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6969612, 396, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6994636, 396, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6994637, 396, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6994638, 396, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6994639, 396, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6951063, 361, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7171972, 439, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7171973, 439, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7171974, 439, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7171977, 439, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7171981, 439, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7171982, 439, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7171983, 439, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7171987, 439, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7171988, 439, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7171997, 439, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7171998, 439, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7171999, 439, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6972099, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6972116, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6972119, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6972120, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6972122, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6972123, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6972124, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6972127, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6972129, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6972130, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6972131, 371, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6972132, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999476, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6999477, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6999478, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6999479, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6999480, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6999481, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6999482, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6999483, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6999484, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6999485, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6999486, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6999487, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6999488, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6999489, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6999490, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6999491, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6999492, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6999493, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6999494, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999495, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999496, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999497, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999498, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6999499, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6999500, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6999501, 371, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6999502, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6999503, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6999504, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6999505, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999506, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999507, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999508, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999509, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999510, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999511, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6999512, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6999513, 371, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6999514, 371, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6999515, 371, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6999516, 371, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6999517, 371, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6999518, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999519, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999520, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999521, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999522, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999523, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999524, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999525, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999526, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999527, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999528, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999529, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999530, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999531, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999532, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999533, 371, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6999534, 371, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6999535, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999536, 371, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6999537, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999538, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999539, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999540, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999541, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999542, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999543, 371, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6999544, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999545, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999546, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999547, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999548, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999549, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999550, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6999551, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6999552, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6999553, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999554, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999555, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999556, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999557, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999558, 371, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6999559, 371, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6999560, 371, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6999561, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6999562, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6999563, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6999564, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999565, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999566, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999567, 371, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6999568, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6999569, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6999570, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999571, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6999572, 371, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6999573, 371, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6999574, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999575, 371, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6972136, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6972138, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6972141, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6972145, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6972153, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6972155, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6972157, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6972158, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6972169, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6972171, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6972175, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6972176, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6972422, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6972423, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6972424, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6973154, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6973156, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6973157, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6973158, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6973160, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6973163, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6973166, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6973168, 371, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6973172, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6973186, 371, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6973189, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6973192, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6973193, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6973200, 371, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6973201, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6973209, 371, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6973213, 371, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6973214, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6973215, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6973223, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6973224, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6973225, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6973231, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6973232, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6973233, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6973236, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6973237, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6973238, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6973241, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6973242, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6973243, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6973251, 371, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6973906, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6973923, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6973969, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6973991, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6973998, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6974005, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6974006, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6974007, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6975746, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015554, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015555, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015556, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015557, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015559, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015560, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015561, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015562, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7015563, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7015564, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7015565, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7015639, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7015809, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7015810, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7015811, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7015831, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7022002, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7022001, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7022000, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7022434, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7022435, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7022436, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7022437, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7022438, 371, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7022439, 371, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998818, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998896, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998897, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998898, 371, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998899, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998900, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998901, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998902, 371, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998946, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998947, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998982, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998983, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998984, 371, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998986, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998987, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998988, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998990, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998991, 371, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6999007, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999008, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999009, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999010, 371, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6999011, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6999012, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6999013, 371, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6999014, 371, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6999015, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6999016, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6999017, 371, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6999020, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999021, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999022, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999023, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999024, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999025, 371, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6999026, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6999028, 371, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6999029, 371, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6999030, 371, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6999032, 371, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6999034, 371, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6999147, 371, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6999150, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999152, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999153, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999154, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999156, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999157, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999158, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999159, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999160, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999163, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999166, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999169, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999170, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999171, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999172, 371, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6999173, 371, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6999174, 371, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6999175, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999176, 371, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6999177, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999179, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999180, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999181, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999182, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999183, 371, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6999184, 371, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6999185, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999186, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999188, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999189, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999190, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999191, 371, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6999192, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6999193, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6999194, 371, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6999195, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999196, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999197, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999200, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999201, 371, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6999202, 371, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6999203, 371, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6999204, 371, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6999206, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6999207, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6999209, 371, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6999212, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999213, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999214, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999216, 371, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6999217, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6999218, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6999219, 371, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6999220, 371, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6999221, 371, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6999222, 371, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6999223, 371, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6999224, 371, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6942997, 371, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6976755, 354, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6976758, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6976760, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6976762, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6976763, 354, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6976765, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6976768, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6976773, 354, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6976823, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6977088, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6977089, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977100, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6977101, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6977102, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6977106, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6977145, 354, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6977146, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6977148, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002715, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002716, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002717, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002718, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002719, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002720, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002721, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002722, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002723, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002725, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002726, 354, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7002727, 354, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7002730, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7002731, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7002732, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002733, 354, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7002734, 354, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7002735, 354, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7002736, 354, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7002737, 354, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7002738, 354, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7002739, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002740, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002741, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002742, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002743, 354, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7002744, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002745, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002746, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002747, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002748, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002749, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002750, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002751, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002752, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002753, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002754, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002755, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002756, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002757, 354, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7002758, 354, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7002759, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7002760, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7002761, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002762, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7002763, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002764, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002765, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002766, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002767, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002768, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002769, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002770, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002771, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002772, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002773, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002774, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002775, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002776, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002777, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002778, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7002779, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002780, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7002781, 354, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7002782, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002783, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002784, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002785, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002786, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002787, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002789, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002790, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002791, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002793, 354, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7002794, 354, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7002795, 354, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7002796, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002797, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002798, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002799, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002800, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002801, 354, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7002802, 354, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7002803, 354, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7002804, 354, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7002805, 354, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7002806, 354, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7002807, 354, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7002808, 354, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7002809, 354, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7002810, 354, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7002811, 354, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6977200, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6977202, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6977203, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6977204, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6977205, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6977208, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6977254, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6977257, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977258, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977260, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977261, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977262, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977275, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977280, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977285, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977286, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977287, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977290, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977293, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977335, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6977436, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6977459, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6977464, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6977465, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6977467, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6977470, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6977472, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6977478, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6977481, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6977488, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6977489, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6977495, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6977497, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6977499, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977502, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977509, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977514, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977518, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977533, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977552, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6977561, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6977566, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6977567, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6977570, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6977576, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6977579, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6977581, 354, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6977586, 354, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6977591, 354, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6977592, 354, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6977594, 354, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6977649, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6977651, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7021959, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7001712, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002280, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002282, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002283, 354, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7002284, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002286, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002287, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002289, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002290, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002292, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002297, 354, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7002298, 354, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7002324, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7002325, 354, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7002327, 354, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7002328, 354, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7002329, 354, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7002333, 354, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7002334, 354, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7002335, 354, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7002336, 354, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7002337, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002338, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002339, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002360, 354, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7002361, 354, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7002363, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002364, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002365, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002366, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002370, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002371, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002372, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7002373, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002374, 354, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7002376, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002378, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002382, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002385, 354, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7002387, 354, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7002388, 354, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7002390, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7002391, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7002392, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002393, 354, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7002394, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002395, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002396, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002397, 354, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7002398, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002399, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002401, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002404, 354, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7002410, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002412, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002413, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002414, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002415, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002416, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002417, 354, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7002418, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7002419, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002420, 354, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7002422, 354, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7002423, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002424, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002425, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002426, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002427, 354, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7002428, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002430, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002431, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002432, 354, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7002434, 354, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7002436, 354, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7002437, 354, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7002439, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002694, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002695, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002696, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002697, 354, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7002698, 354, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7002700, 354, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7002701, 354, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7002703, 354, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7002705, 354, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7002708, 354, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7002710, 354, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7002711, 354, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7002712, 354, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7002713, 354, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7002714, 354, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6942999, 354, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6979969, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6979985, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6979987, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6980003, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6980011, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6980019, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6980024, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6980026, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6980073, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6980078, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980079, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980080, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980082, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980083, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980084, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980087, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980090, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980108, 372, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6980117, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6980124, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6980126, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6980128, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980134, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6980135, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6980136, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6980137, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6980138, 372, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6980140, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6980142, 372, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6980143, 372, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6980145, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6980150, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6980155, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6980157, 372, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6980160, 372, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6980161, 372, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6980187, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6980188, 372, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6980190, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6998414, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998415, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998416, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6998468, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7007424, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7007425, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7007426, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7007427, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7007428, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7007429, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7007430, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7007431, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7007432, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7007433, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7007434, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7007435, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7007436, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7007437, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7007438, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7007439, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7007440, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7007441, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7007442, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7007443, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7007444, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7007445, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7007446, 372, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7007447, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7007448, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7007449, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7007450, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7007451, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7007452, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7007453, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7007454, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7007455, 372, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7007456, 372, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7007457, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7007458, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7007459, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7007460, 372, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7007461, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7007462, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7007463, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7007464, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7007465, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7007466, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7007467, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7007468, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7007469, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7007470, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7007471, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7007472, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7007473, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7007474, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7007475, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7007476, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7007477, 372, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7007478, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007479, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007480, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007481, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007482, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007483, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007484, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007485, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007486, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7007487, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7007488, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7007489, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7007490, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7007491, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7007492, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7007493, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7007494, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7007495, 372, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7007496, 372, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7007497, 372, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7007498, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7007499, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7007500, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7007501, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7007502, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7007503, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7007504, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007505, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007506, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007507, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007508, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007509, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007510, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007511, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007512, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7007513, 372, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7007514, 372, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7007515, 372, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7007516, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7007517, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7007518, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7007519, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7007520, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7007521, 372, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7007522, 372, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7007523, 372, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7007524, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7007525, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7007526, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7007527, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7007528, 372, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7007529, 372, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7007530, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7007531, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7007532, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7007533, 372, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7007534, 372, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7007535, 372, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7007536, 372, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7007537, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6980212, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980214, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6980218, 372, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6980223, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6980229, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6980250, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6980251, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6980252, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6980253, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6980256, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6980257, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6980258, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6980259, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6980260, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6980262, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980263, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980264, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980265, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980266, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980267, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980271, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980273, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6980275, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6980277, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6980283, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6980284, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6980285, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6980311, 372, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6980313, 372, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6980323, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6980325, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6980333, 372, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6980334, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6980336, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6980337, 372, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6980347, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6980355, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6980357, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6980358, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6980359, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6980366, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6980368, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6980383, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6980387, 372, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7008977, 372, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7018030, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7018032, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7022221, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7005090, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7005094, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7005096, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7005098, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7005107, 372, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7005115, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7005118, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7005165, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7005166, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7005167, 372, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7005168, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7005169, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7005170, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7005171, 372, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7005172, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7005173, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7005174, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7005175, 372, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7005176, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7005177, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7005179, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7005180, 372, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7005181, 372, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7005183, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7005184, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7005186, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7005210, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7005211, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7005212, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7005213, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7005214, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7005215, 372, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7005217, 372, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7005240, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7005401, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7005404, 372, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7005406, 372, 6); -INSERT IGNORE INTO discoveryinfo VALUES (7005408, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7005409, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7005410, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7005411, 372, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7005412, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7005413, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7005414, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7005415, 372, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7005417, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7005418, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7005419, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7005420, 372, 15); -INSERT IGNORE INTO discoveryinfo VALUES (7005422, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7005423, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7005424, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7005425, 372, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7005426, 372, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7005427, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005429, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005431, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005432, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005433, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005434, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005435, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005436, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005437, 372, 19); -INSERT IGNORE INTO discoveryinfo VALUES (7005438, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7005441, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7005442, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7005444, 372, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7005445, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7005446, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7005447, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7005451, 372, 20); -INSERT IGNORE INTO discoveryinfo VALUES (7005452, 372, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7005453, 372, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7005454, 372, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7005455, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7005456, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7005457, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7005458, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7005459, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7005460, 372, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7005465, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005468, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005469, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005470, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005471, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005472, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005473, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005474, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005475, 372, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7005477, 372, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7005481, 372, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7005482, 372, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7005584, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7005585, 372, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7005586, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7005587, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7005588, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7005589, 372, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7005590, 372, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7005591, 372, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7005592, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7005593, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7005594, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7005595, 372, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7005596, 372, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7005598, 372, 29); -INSERT IGNORE INTO discoveryinfo VALUES (7005600, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7005601, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7005602, 372, 27); -INSERT IGNORE INTO discoveryinfo VALUES (7005606, 372, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7005607, 372, 28); -INSERT IGNORE INTO discoveryinfo VALUES (7005608, 372, 26); -INSERT IGNORE INTO discoveryinfo VALUES (7005609, 372, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7005610, 372, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6943038, 372, 30); -INSERT IGNORE INTO discoveryinfo VALUES (4635476, 148, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4635477, 148, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4635478, 148, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4635479, 148, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4635480, 148, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4695119, 148, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4170252, 8, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4170268, 8, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4170279, 8, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4170285, 8, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4170288, 8, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4170294, 8, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4170300, 8, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4170349, 8, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4170358, 8, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4170364, 8, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4170368, 8, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4170389, 8, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4170407, 8, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4170413, 8, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4170416, 8, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4170420, 8, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4170421, 8, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4170429, 8, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4170439, 8, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4170443, 8, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4170448, 8, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4323354, 85, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4323360, 85, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4323383, 85, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4323387, 85, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4323412, 85, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4323414, 85, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4323419, 85, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4323420, 85, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4323427, 85, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4323428, 85, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4323429, 85, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4323431, 85, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4323432, 85, 8); -INSERT IGNORE INTO discoveryinfo VALUES (5681124, 85, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4515612, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515623, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515624, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515625, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515681, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515697, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515699, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515701, 139, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4515702, 139, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4515703, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515704, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515705, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515706, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515707, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515708, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515709, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515711, 139, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4515713, 139, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4516011, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4517194, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488408, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488410, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488411, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488413, 139, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4488416, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4488417, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488419, 139, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4488420, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488421, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4488422, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4488423, 139, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4488425, 139, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4488427, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4488428, 139, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4488429, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488430, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488431, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488432, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4488433, 139, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4488435, 139, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4488438, 139, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4634055, 151, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4634056, 151, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4634062, 151, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4634065, 151, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4634083, 151, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4634094, 151, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4634095, 151, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4634104, 151, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4634106, 151, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4634712, 151, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4634715, 151, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4639200, 151, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4639204, 151, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4639208, 151, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4660178, 165, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4660179, 165, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4660180, 165, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4660181, 165, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4660182, 165, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4660183, 165, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4660184, 165, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4660185, 165, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4660186, 165, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4660187, 165, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4660189, 165, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4755385, 165, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4755389, 165, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4755390, 165, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4660190, 165, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4660194, 165, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4660195, 165, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4660197, 165, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4660198, 165, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4902564, 190, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4902565, 190, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4902566, 190, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4902567, 190, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4902568, 190, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4902569, 190, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4902571, 190, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4902572, 190, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4902573, 190, 8); -INSERT IGNORE INTO discoveryinfo VALUES (5321547, 190, 11); -INSERT IGNORE INTO discoveryinfo VALUES (5321639, 190, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6564487, 340, 12); -INSERT IGNORE INTO discoveryinfo VALUES (1367775, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1367776, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1367779, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1367780, 4, 3); -INSERT IGNORE INTO discoveryinfo VALUES (1367785, 4, 3); -INSERT IGNORE INTO discoveryinfo VALUES (1367793, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1367798, 4, 1); -INSERT IGNORE INTO discoveryinfo VALUES (1367800, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1367801, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2052662, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2052668, 4, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2052672, 4, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2052682, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2052693, 4, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2052695, 4, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2052698, 4, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2052699, 4, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2052706, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2052708, 4, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2052710, 4, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2052711, 4, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2052714, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2052716, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2052721, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2052722, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2052724, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2465005, 4, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2465008, 4, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2465009, 4, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2465010, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2465013, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2465017, 4, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2465018, 4, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2465019, 4, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2465025, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2465028, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2465029, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2496289, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2496437, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2564171, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2652480, 4, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2652490, 4, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3907879, 4, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3907888, 4, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3907897, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3907899, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3907901, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3907903, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3907908, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3907909, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3908308, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3908312, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3908313, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2052705, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (1367823, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1420009, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (1420010, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (1420011, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1420012, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (1420013, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (1436587, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1436597, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (1436598, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (1436599, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (1436600, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1436601, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1436602, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1436603, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1436604, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1436605, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (1436606, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2152921, 4, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2152922, 4, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2152923, 4, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2152925, 4, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2152928, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2152930, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152931, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152933, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152934, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152935, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152936, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152937, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152938, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2152939, 4, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2152941, 4, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2152942, 4, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2152943, 4, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2152944, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152945, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152946, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152949, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152950, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152951, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152952, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152953, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152954, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2152955, 4, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2152956, 4, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2152957, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2152963, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2152965, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2152966, 4, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2152967, 4, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2349784, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2349791, 4, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2349792, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2349794, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2349857, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2349858, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2349860, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2496282, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2564149, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2564152, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2622826, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2622881, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2622884, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2622886, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (3907414, 4, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3925825, 4, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4586009, 4, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2065961, 5, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2065962, 5, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2065963, 5, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2065970, 5, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2065974, 5, 17); -INSERT IGNORE INTO discoveryinfo VALUES (2065975, 5, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2065981, 5, 16); -INSERT IGNORE INTO discoveryinfo VALUES (2065986, 5, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065987, 5, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2065988, 5, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2065992, 5, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065994, 5, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065995, 5, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2065996, 5, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065997, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2065998, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2065999, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2066000, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2066001, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2066002, 5, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2066003, 5, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2066004, 5, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2066007, 5, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2066011, 5, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2066013, 5, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2066018, 5, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2066019, 5, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2066021, 5, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2066022, 5, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2066023, 5, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2066024, 5, 15); -INSERT IGNORE INTO discoveryinfo VALUES (2066027, 5, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2066029, 5, 19); -INSERT IGNORE INTO discoveryinfo VALUES (2066030, 5, 18); -INSERT IGNORE INTO discoveryinfo VALUES (2465059, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2465060, 5, 19); -INSERT IGNORE INTO discoveryinfo VALUES (2465061, 5, 19); -INSERT IGNORE INTO discoveryinfo VALUES (2465064, 5, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2465069, 5, 15); -INSERT IGNORE INTO discoveryinfo VALUES (2465072, 5, 17); -INSERT IGNORE INTO discoveryinfo VALUES (2927639, 5, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4335536, 5, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2308332, 5, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2308333, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2308340, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2308346, 5, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2308354, 5, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2308355, 5, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2308361, 5, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2308363, 5, 16); -INSERT IGNORE INTO discoveryinfo VALUES (2308364, 5, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2308366, 5, 17); -INSERT IGNORE INTO discoveryinfo VALUES (2563317, 5, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2280307, 6, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2280313, 6, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2280316, 6, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2280318, 6, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2280320, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2280327, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2280330, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2280347, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2280351, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2280358, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2280362, 6, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2280365, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2280369, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2280371, 6, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2280375, 6, 15); -INSERT IGNORE INTO discoveryinfo VALUES (2280388, 6, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2280391, 6, 14); -INSERT IGNORE INTO discoveryinfo VALUES (2280395, 6, 14); -INSERT IGNORE INTO discoveryinfo VALUES (2280400, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2280402, 6, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2280403, 6, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2280404, 6, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2280406, 6, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2299601, 6, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2351856, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2351858, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2351870, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381027, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381028, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381029, 6, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2381030, 6, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2381031, 6, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2381032, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2381033, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381034, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381035, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381036, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381037, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381038, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2381039, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2381040, 6, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2381041, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2381044, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2422825, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2453661, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2563798, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2280409, 6, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2280410, 6, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2280425, 6, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2280426, 6, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2280428, 6, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2280430, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2280432, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2280448, 6, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2280451, 6, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2280453, 6, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2280455, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2280456, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2280458, 6, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2280461, 6, 16); -INSERT IGNORE INTO discoveryinfo VALUES (2280464, 6, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2563790, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2563804, 6, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2563859, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2563867, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2563868, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2563872, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2563875, 6, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2763450, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2763451, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2763452, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2280414, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2563792, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4191057, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4191058, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4191060, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4191062, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4191063, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4191065, 6, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4191066, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4191069, 6, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4191070, 6, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4191075, 6, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4191081, 6, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2264614, 7, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2264620, 7, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2264625, 7, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2264626, 7, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2264633, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2264634, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2264636, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2264637, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2264640, 7, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2264642, 7, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2264643, 7, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2264649, 7, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2264653, 7, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2264660, 7, 12); -INSERT IGNORE INTO discoveryinfo VALUES (2264662, 7, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2264669, 7, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2264671, 7, 14); -INSERT IGNORE INTO discoveryinfo VALUES (2264672, 7, 15); -INSERT IGNORE INTO discoveryinfo VALUES (2264673, 7, 16); -INSERT IGNORE INTO discoveryinfo VALUES (2264674, 7, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2264675, 7, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2264676, 7, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2264682, 7, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2264685, 7, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2453678, 7, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2453679, 7, 15); -INSERT IGNORE INTO discoveryinfo VALUES (2453681, 7, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2453682, 7, 13); -INSERT IGNORE INTO discoveryinfo VALUES (2453685, 7, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2453686, 7, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2453687, 7, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2453688, 7, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2453689, 7, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2453690, 7, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4334885, 7, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4889986, 7, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4889987, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4889991, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4889995, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2264721, 7, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2264728, 7, 1); -INSERT IGNORE INTO discoveryinfo VALUES (2264731, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2264736, 7, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2264772, 7, 16); -INSERT IGNORE INTO discoveryinfo VALUES (2264773, 7, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2264775, 7, 11); -INSERT IGNORE INTO discoveryinfo VALUES (2264791, 7, 15); -INSERT IGNORE INTO discoveryinfo VALUES (2264796, 7, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2264798, 7, 16); -INSERT IGNORE INTO discoveryinfo VALUES (2341847, 7, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2341870, 7, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2341892, 7, 10); -INSERT IGNORE INTO discoveryinfo VALUES (2499345, 7, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3899968, 7, 15); -INSERT IGNORE INTO discoveryinfo VALUES (2065859, 9, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2065860, 9, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2065861, 9, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2065866, 9, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065867, 9, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065868, 9, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065869, 9, 4); -INSERT IGNORE INTO discoveryinfo VALUES (2065871, 9, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2065872, 9, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2065873, 9, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2065875, 9, 9); -INSERT IGNORE INTO discoveryinfo VALUES (2065877, 9, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2065879, 9, 3); -INSERT IGNORE INTO discoveryinfo VALUES (2065880, 9, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2065882, 9, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2065883, 9, 8); -INSERT IGNORE INTO discoveryinfo VALUES (2112183, 9, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2112184, 9, 6); -INSERT IGNORE INTO discoveryinfo VALUES (2112186, 9, 7); -INSERT IGNORE INTO discoveryinfo VALUES (2112188, 9, 5); -INSERT IGNORE INTO discoveryinfo VALUES (2112189, 9, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3746504, 9, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3746513, 9, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3746515, 9, 11); -INSERT IGNORE INTO discoveryinfo VALUES (3746546, 9, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3746643, 9, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3746648, 9, 12); -INSERT IGNORE INTO discoveryinfo VALUES (3746649, 9, 13); -INSERT IGNORE INTO discoveryinfo VALUES (3746650, 9, 13); -INSERT IGNORE INTO discoveryinfo VALUES (3762950, 9, 2); -INSERT IGNORE INTO discoveryinfo VALUES (2065870, 9, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3784508, 9, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3784514, 9, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3784517, 9, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3784520, 9, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3784522, 9, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3784563, 9, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3784565, 9, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7082919, 415, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7082925, 415, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7082926, 415, 14); -INSERT IGNORE INTO discoveryinfo VALUES (7171388, 415, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6953721, 367, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6953722, 367, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6953723, 367, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6953726, 367, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6953738, 367, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6953772, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6953773, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6953776, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6953780, 367, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6953786, 367, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6953788, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6953789, 367, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6953790, 367, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6953792, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6953800, 367, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6953802, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6953804, 367, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6953807, 367, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6953811, 367, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6953814, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6953815, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6953816, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6953817, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6953818, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6953819, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6953820, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6987034, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6987035, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6987036, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6987037, 367, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6987038, 367, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6987039, 367, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6987040, 367, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6987041, 367, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6987042, 367, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6987043, 367, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6987044, 367, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6987045, 367, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6987046, 367, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6987047, 367, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6987048, 367, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6987049, 367, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6987050, 367, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6987051, 367, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6987052, 367, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6987053, 367, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6987054, 367, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6987055, 367, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6987056, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6987057, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6987058, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6987059, 367, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6987060, 367, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6987061, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6987062, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6987063, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6987064, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6987065, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6987067, 367, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6987068, 367, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6987070, 367, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6987071, 367, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6987072, 367, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6987073, 367, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6987074, 367, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6987075, 367, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6987076, 367, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6987077, 367, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6987078, 367, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6987079, 367, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6987080, 367, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6987081, 367, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6987082, 367, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6987083, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6987084, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6987085, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6987086, 367, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6987087, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6987088, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6987089, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6987090, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6987091, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6987092, 367, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6987093, 367, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6987094, 367, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6987095, 367, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6987096, 367, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6987097, 367, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6987098, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6987099, 367, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6987100, 367, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6987101, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6987102, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6987103, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6987104, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6987105, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6987106, 367, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6987107, 367, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6987108, 367, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6987109, 367, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6987110, 367, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6987111, 367, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6987112, 367, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6987113, 367, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6954096, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6954100, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6954278, 367, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6954280, 367, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6954281, 367, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6954284, 367, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6954287, 367, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6954295, 367, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6954296, 367, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6954297, 367, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6954298, 367, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6954300, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6954302, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6954311, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6954328, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6954522, 367, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6954780, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6954781, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6954784, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6954791, 367, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6955593, 367, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6955601, 367, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6955610, 367, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6955618, 367, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6955619, 367, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6955623, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955625, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955627, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955631, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955632, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955633, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955643, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6955645, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6955646, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6955647, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6955648, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6955649, 367, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6955650, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955651, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955652, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955653, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955654, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955655, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955656, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955657, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955658, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955659, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955660, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955661, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955662, 367, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6955663, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955664, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955666, 367, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6955667, 367, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6943043, 367, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6989593, 368, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6989594, 368, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6989595, 368, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6989596, 368, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6989597, 368, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6989598, 368, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6989599, 368, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6989600, 368, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6989601, 368, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6989602, 368, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6989603, 368, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6989604, 368, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6989605, 368, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6989606, 368, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6989607, 368, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6989608, 368, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6989609, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6989610, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6989611, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6989612, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6989613, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6989614, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6989615, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6989616, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6989617, 368, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6989618, 368, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6989619, 368, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6989620, 368, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6989621, 368, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6989622, 368, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6989623, 368, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6989624, 368, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6989625, 368, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6989626, 368, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6989627, 368, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6989628, 368, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6989629, 368, 31); -INSERT IGNORE INTO discoveryinfo VALUES (6989630, 368, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6989631, 368, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6989632, 368, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6989633, 368, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6989634, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6989635, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6989636, 368, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6989637, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6989638, 368, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6989639, 368, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6989640, 368, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6989641, 368, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6989642, 368, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6989643, 368, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6989644, 368, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6989645, 368, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6989646, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6989647, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6989648, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6989649, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6989650, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6989651, 368, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6989652, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6989653, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6989654, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6989655, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6989656, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989657, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989658, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989659, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989660, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989661, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989662, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989663, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6989664, 368, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6989665, 368, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6989666, 368, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6989667, 368, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6989668, 368, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6989669, 368, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6989670, 368, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6989671, 368, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6989672, 368, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6989673, 368, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6989674, 368, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6989675, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6989676, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6989677, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6989678, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6989679, 368, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6989680, 368, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6989681, 368, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6989682, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6989683, 368, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6989685, 368, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6958837, 368, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6958838, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6958839, 368, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6958840, 368, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6958841, 368, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6958842, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6958843, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6959180, 368, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6959190, 368, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6959196, 368, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6959201, 368, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6959202, 368, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6959204, 368, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6959205, 368, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6959210, 368, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6959270, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6959276, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6959284, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6959315, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6959321, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6959322, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6959332, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6959337, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6959418, 368, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6959448, 368, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6967602, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6967981, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6968551, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6969053, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6969094, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969098, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969100, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969102, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969105, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969117, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969118, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969119, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969120, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969121, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969122, 368, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6969618, 368, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6969620, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6969622, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6969626, 368, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6969630, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6969632, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6969633, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6969635, 368, 25); -INSERT IGNORE INTO discoveryinfo VALUES (7008614, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7008615, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7008616, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7008617, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7011608, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011609, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011611, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011612, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011613, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7017072, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7017073, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7017074, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7017821, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7017822, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7017823, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7017824, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7017825, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6997901, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6997902, 368, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6997903, 368, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6997904, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6997905, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6997906, 368, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6997907, 368, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6997908, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6997909, 368, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6997910, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6997911, 368, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6997912, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6997913, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6997914, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6997915, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6997916, 368, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6997917, 368, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6997918, 368, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6997919, 368, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6943044, 368, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6970815, 369, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6970818, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6970820, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6970822, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6970824, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6970826, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6970827, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6970858, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6970860, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6970861, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6970863, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6971003, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6971057, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6971058, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6971059, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6971060, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6971062, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6971063, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6971064, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6971065, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6971068, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6971069, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6971070, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6971072, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6971073, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6971075, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6971077, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6971084, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6998685, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998686, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998687, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998688, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998689, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998690, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998691, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998692, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998693, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998694, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998695, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998696, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998697, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998698, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998699, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998700, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998701, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998702, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998703, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998704, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998705, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998706, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998707, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998708, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998709, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998710, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998711, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998712, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998713, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998714, 369, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6998715, 369, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6998716, 369, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6998717, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998718, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998719, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998720, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998722, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998723, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998724, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998725, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998726, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998727, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998728, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998729, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998730, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998731, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998732, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998735, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (6998736, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (6998737, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998738, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6998739, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6998740, 369, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6998741, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998742, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998743, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998744, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998745, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998746, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998747, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998748, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998749, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998750, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998751, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6998752, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6998753, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6998754, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998755, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998756, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998757, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998758, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998759, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998760, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998761, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998762, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998763, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998764, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998765, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6998766, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6998767, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6998768, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998769, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6998770, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6998771, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6998772, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998773, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998774, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998775, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998776, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998777, 369, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6998778, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998779, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998780, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998781, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998782, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998783, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6998784, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6998785, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6998786, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998787, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998788, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998789, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998790, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6998791, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6998792, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6998793, 369, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6998794, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6998795, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6998796, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6998797, 369, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6998798, 369, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6998799, 369, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6998800, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011909, 369, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7011910, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011911, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011912, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7011913, 369, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7011914, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (7011915, 369, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7011916, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7011917, 369, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7011918, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011919, 369, 24); -INSERT IGNORE INTO discoveryinfo VALUES (7011920, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011921, 369, 18); -INSERT IGNORE INTO discoveryinfo VALUES (7011922, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (7011923, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7031233, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7031993, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7032050, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7032051, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (7036942, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6971185, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6971191, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6971193, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6971194, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6971199, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6971201, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6971202, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6971218, 369, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6971225, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6971339, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6971342, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6971343, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6971345, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6971346, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6971347, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971349, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971350, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971351, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6971352, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6971353, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6971386, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971395, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971398, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971399, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971401, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971402, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971404, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971406, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971407, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6971412, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6971414, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6971416, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6971418, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6971424, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6971428, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6971432, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6971460, 369, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6971461, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6971463, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6971464, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6971465, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6971466, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6971467, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6971468, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6971471, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6971479, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6971482, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6971969, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6971973, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6971977, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6971980, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6971982, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6971983, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6971984, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6971985, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6971986, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6971989, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6971991, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6971993, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6971994, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6971996, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6971998, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (7011528, 369, 23); -INSERT IGNORE INTO discoveryinfo VALUES (7022080, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7022081, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7022082, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7022083, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7022084, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7022085, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7022086, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7022088, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7022089, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7022472, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7022480, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7022482, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7022484, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7031210, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031211, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031212, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031213, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031219, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031225, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031226, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (7031228, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031229, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031230, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031341, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031346, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (7031381, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (6998471, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998472, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998474, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998479, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998483, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998486, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998487, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998488, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998490, 369, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6998491, 369, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6998492, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998493, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998494, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998495, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998496, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998499, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998502, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998503, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998504, 369, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6998506, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998507, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998508, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998509, 369, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6998510, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998512, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998513, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998514, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998515, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998523, 369, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6998529, 369, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6998530, 369, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6998533, 369, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6998535, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998536, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998537, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998538, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998541, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998543, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998545, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998546, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998547, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998548, 369, 20); -INSERT IGNORE INTO discoveryinfo VALUES (6998551, 369, 19); -INSERT IGNORE INTO discoveryinfo VALUES (6998552, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998553, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998555, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998556, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998559, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (6998561, 369, 31); -INSERT IGNORE INTO discoveryinfo VALUES (6998565, 369, 21); -INSERT IGNORE INTO discoveryinfo VALUES (6998569, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6998571, 369, 30); -INSERT IGNORE INTO discoveryinfo VALUES (6998573, 369, 29); -INSERT IGNORE INTO discoveryinfo VALUES (6998575, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998576, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998577, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998579, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998580, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998581, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998582, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998583, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998592, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998593, 369, 28); -INSERT IGNORE INTO discoveryinfo VALUES (6998594, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6998595, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6998596, 369, 27); -INSERT IGNORE INTO discoveryinfo VALUES (6998598, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998599, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998600, 369, 26); -INSERT IGNORE INTO discoveryinfo VALUES (6998601, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998603, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998605, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998607, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998608, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998609, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998610, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998611, 369, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6998612, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6998613, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6998618, 369, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6998620, 369, 25); -INSERT IGNORE INTO discoveryinfo VALUES (6998622, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6998623, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6998625, 369, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6998627, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998628, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998637, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998638, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998639, 369, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6998640, 369, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6998641, 369, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6998642, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998643, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998644, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998646, 369, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6998647, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6998648, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6998649, 369, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6998653, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998654, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998655, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998656, 369, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6998657, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6998658, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6998659, 369, 22); -INSERT IGNORE INTO discoveryinfo VALUES (6998661, 369, 18); -INSERT IGNORE INTO discoveryinfo VALUES (6998666, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6998667, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6998668, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (6998669, 369, 23); -INSERT IGNORE INTO discoveryinfo VALUES (6998670, 369, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6998676, 369, 24); -INSERT IGNORE INTO discoveryinfo VALUES (6998682, 369, 16); -INSERT IGNORE INTO discoveryinfo VALUES (6943045, 369, 17); -INSERT IGNORE INTO discoveryinfo VALUES (5579669, 203, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5680661, 203, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5681112, 203, 9); -INSERT IGNORE INTO discoveryinfo VALUES (5681115, 203, 11); -INSERT IGNORE INTO discoveryinfo VALUES (5681121, 203, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5681153, 203, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5681166, 203, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4303238, 71, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4284655, 71, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4317176, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4284679, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4317154, 71, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4317155, 71, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4284668, 71, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4317193, 71, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4284672, 71, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4317200, 71, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4287440, 71, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4303212, 71, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4489186, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489187, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489188, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489189, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489190, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489192, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489193, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489194, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489195, 71, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4489236, 71, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4489237, 71, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4303276, 71, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4303280, 71, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4303285, 71, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4303288, 71, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4287437, 71, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4759603, 164, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4759604, 164, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4759652, 164, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4759654, 164, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4760563, 164, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4760674, 164, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4760676, 164, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4760685, 164, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4760683, 164, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4760689, 164, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6950667, 359, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6950676, 359, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6950680, 359, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6950685, 359, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6950720, 359, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6950723, 359, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6950726, 359, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6950727, 359, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6950728, 359, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6950731, 359, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6950777, 359, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6950784, 359, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6950788, 359, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6950798, 359, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6950799, 359, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6950811, 359, 14); -INSERT IGNORE INTO discoveryinfo VALUES (6950815, 359, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6950824, 359, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6950847, 359, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6950853, 359, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4322860, 37, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4322861, 37, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4322862, 37, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4322864, 37, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4322867, 37, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4322868, 37, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4322870, 37, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4322871, 37, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4322872, 37, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4322969, 37, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4322970, 37, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4322971, 37, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4322973, 37, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4322974, 37, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4322975, 37, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4322976, 37, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4322977, 37, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4322978, 37, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4322979, 37, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4559071, 157, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4559075, 157, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4559076, 157, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4559077, 157, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4559078, 157, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4559085, 157, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4559086, 157, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4559087, 157, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4559088, 157, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4559091, 157, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4559092, 157, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4559094, 157, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4721268, 157, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4559093, 157, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4721270, 157, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4721271, 157, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4721272, 157, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4721273, 157, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4980983, 174, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4980985, 174, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4980993, 174, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4980994, 174, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4980995, 174, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4980997, 174, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4980998, 174, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4980999, 174, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4981002, 174, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4981003, 174, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4981004, 174, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4981005, 174, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4981006, 174, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4981007, 174, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4981009, 174, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4981010, 174, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4247747, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4247847, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4247850, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4247852, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4247856, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4247877, 53, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4247879, 53, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4247884, 53, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4247885, 53, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4247888, 53, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4247906, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4247927, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4248224, 53, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4248230, 53, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4248232, 53, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4248236, 53, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4248241, 53, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4248262, 53, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4248265, 53, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4248272, 53, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4248277, 53, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4248291, 53, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4248293, 53, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4248308, 53, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4248340, 53, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4248346, 53, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4248351, 53, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4248359, 53, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4248390, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4248398, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4248402, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4248430, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4248444, 53, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4248486, 53, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4248488, 53, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4248490, 53, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4248491, 53, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4248517, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248520, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248523, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248529, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248537, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248539, 53, 17); -INSERT IGNORE INTO discoveryinfo VALUES (4248613, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248638, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248684, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4248689, 53, 18); -INSERT IGNORE INTO discoveryinfo VALUES (4248796, 53, 19); -INSERT IGNORE INTO discoveryinfo VALUES (4248833, 53, 19); -INSERT IGNORE INTO discoveryinfo VALUES (4248837, 53, 19); -INSERT IGNORE INTO discoveryinfo VALUES (4248842, 53, 20); -INSERT IGNORE INTO discoveryinfo VALUES (4248886, 53, 21); -INSERT IGNORE INTO discoveryinfo VALUES (4248889, 53, 21); -INSERT IGNORE INTO discoveryinfo VALUES (4248890, 53, 21); -INSERT IGNORE INTO discoveryinfo VALUES (4248892, 53, 22); -INSERT IGNORE INTO discoveryinfo VALUES (4249639, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4249643, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248922, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248924, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248926, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248931, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248933, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248935, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248936, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248942, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248943, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248947, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248950, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4248965, 53, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4248968, 53, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4248971, 53, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4248972, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4248975, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4248976, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4248982, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4248988, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4249002, 53, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4249008, 53, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4249027, 53, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4249037, 53, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4249038, 53, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4249041, 53, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4249047, 53, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4249060, 53, 19); -INSERT IGNORE INTO discoveryinfo VALUES (4249068, 53, 19); -INSERT IGNORE INTO discoveryinfo VALUES (4249070, 53, 18); -INSERT IGNORE INTO discoveryinfo VALUES (4249075, 53, 18); -INSERT IGNORE INTO discoveryinfo VALUES (4249078, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4249084, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4249089, 53, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4249092, 53, 20); -INSERT IGNORE INTO discoveryinfo VALUES (4249093, 53, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4249094, 53, 20); -INSERT IGNORE INTO discoveryinfo VALUES (4249565, 53, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4249569, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249570, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249572, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249573, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249574, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249577, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249587, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249589, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4249605, 53, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4249617, 53, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4251428, 53, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4332767, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4332770, 53, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4238993, 86, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4238994, 86, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4238996, 86, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4239000, 86, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4239001, 86, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4239002, 86, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4239003, 86, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4239004, 86, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4239005, 86, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4239009, 86, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4287170, 86, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4287171, 86, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4235276, 38, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4313956, 38, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4235277, 38, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4313961, 38, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4235282, 38, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4235309, 38, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4313968, 38, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4235312, 38, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4237484, 38, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4237485, 38, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4262477, 38, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4262478, 38, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4237487, 38, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4237488, 38, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5759673, 243, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5868146, 243, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5868148, 243, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5868150, 243, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5759683, 243, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5759685, 243, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5759692, 243, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5759696, 243, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5868156, 243, 8); -INSERT IGNORE INTO discoveryinfo VALUES (5868159, 243, 9); -INSERT IGNORE INTO discoveryinfo VALUES (5759698, 243, 9); -INSERT IGNORE INTO discoveryinfo VALUES (5759701, 243, 11); -INSERT IGNORE INTO discoveryinfo VALUES (5759705, 243, 12); -INSERT IGNORE INTO discoveryinfo VALUES (5868162, 243, 13); -INSERT IGNORE INTO discoveryinfo VALUES (5759706, 243, 14); -INSERT IGNORE INTO discoveryinfo VALUES (5759708, 243, 14); -INSERT IGNORE INTO discoveryinfo VALUES (5868163, 243, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5762435, 243, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5762437, 243, 8); -INSERT IGNORE INTO discoveryinfo VALUES (5762441, 243, 14); -INSERT IGNORE INTO discoveryinfo VALUES (5953591, 248, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5953592, 248, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5878769, 248, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5908839, 248, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5908841, 248, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5908844, 248, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5908846, 248, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5908848, 248, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5908851, 248, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5908859, 248, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5908863, 248, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5908868, 248, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5908869, 248, 6); -INSERT IGNORE INTO discoveryinfo VALUES (5909356, 248, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5909364, 248, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5909385, 248, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5927843, 248, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5927869, 248, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5927903, 248, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6402356, 313, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6402704, 313, 11); -INSERT IGNORE INTO discoveryinfo VALUES (6515982, 313, 11); -INSERT IGNORE INTO discoveryinfo VALUES (5925606, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925609, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925610, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925611, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925612, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925613, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925616, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925618, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925619, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925620, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925622, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925623, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925808, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925812, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925813, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925814, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925815, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925817, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925819, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925820, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925821, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925823, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925825, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925827, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925830, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925835, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925836, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925837, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925838, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925840, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925841, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925842, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925844, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925845, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925848, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925849, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925850, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925852, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925854, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925858, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5925860, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926068, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926069, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926070, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926071, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926072, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926073, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926074, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926075, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926076, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926078, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926079, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926080, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926081, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926082, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926083, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926085, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926086, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926088, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926090, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926091, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926092, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926093, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926094, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926095, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926096, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926097, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926099, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926100, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926103, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926104, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926105, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926106, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926107, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926109, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926110, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926111, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926112, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926113, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926114, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926115, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926117, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926118, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926119, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926128, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926129, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926130, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926131, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926132, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926133, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926134, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926135, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926136, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926138, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926139, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926141, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926142, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926143, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926144, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926146, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926157, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926158, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926160, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926161, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926162, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926163, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926164, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926563, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926566, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926610, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926611, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926614, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926615, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926616, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926619, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926622, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926623, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926627, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926630, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926637, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926639, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926644, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926651, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926653, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926654, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926663, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926665, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926666, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926667, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926668, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926670, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926671, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926672, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926674, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926676, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926680, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926681, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926683, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926685, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926686, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926687, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926696, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926702, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926709, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926710, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926711, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926713, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926717, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926718, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926720, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926723, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926724, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926727, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926729, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926734, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926736, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926737, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926739, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926740, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926742, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926744, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926745, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926753, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926757, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926758, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926759, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5926760, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937680, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937681, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937682, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937678, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937679, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937665, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937688, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937692, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937687, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937685, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937686, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937667, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937672, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937670, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937668, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937669, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937674, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937666, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937673, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937676, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937689, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937690, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937691, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937675, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937677, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937671, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937684, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937683, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5909746, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5909768, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5909769, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5909770, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5909773, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5909778, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915489, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915512, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915513, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915517, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915539, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915553, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915580, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915598, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915620, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915631, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915632, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915635, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915734, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915736, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915737, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915739, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915740, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915742, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917285, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917286, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917287, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917288, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917289, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917290, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917292, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917294, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917313, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917314, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917315, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917318, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917319, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917320, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917322, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917323, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917330, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917360, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917362, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917363, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917364, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5934964, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5934965, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5934961, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5934962, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5915630, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937626, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917284, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937643, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937644, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917338, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5917350, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937659, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937660, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937661, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937662, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5937663, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960797, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960798, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960799, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960800, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960801, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960802, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960803, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960805, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960806, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5960807, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5896017, 211, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4091012, 31, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4092388, 31, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4091018, 31, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4091019, 31, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4092471, 31, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4092472, 31, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4092418, 31, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4092436, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092437, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092425, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092429, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092430, 31, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4092435, 31, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4092432, 31, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4092433, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092431, 31, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4092438, 31, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4092439, 31, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4092440, 31, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4092444, 31, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4092449, 31, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4092534, 31, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4092536, 31, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4092537, 31, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4092538, 31, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4092539, 31, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4092540, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092541, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092542, 31, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4092543, 31, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4092544, 31, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4092545, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4092546, 31, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4092547, 31, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4092548, 31, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4103415, 31, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4121883, 45, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4121897, 45, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4121909, 45, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4121915, 45, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4121922, 45, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4123952, 45, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4123953, 45, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4125929, 45, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4125941, 45, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4125947, 45, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4125950, 45, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4125987, 45, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4125993, 45, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4126016, 45, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4126017, 45, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4126028, 45, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4126039, 45, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4126040, 45, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4126043, 45, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4126044, 45, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4126049, 45, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4126052, 45, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4127125, 45, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4127126, 45, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4127132, 45, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4127137, 45, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4127141, 45, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4126375, 45, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4126377, 45, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4126378, 45, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4126383, 45, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4126384, 45, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4126386, 45, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4126394, 45, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4241928, 45, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4242048, 45, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4230667, 32, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4230669, 32, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4230670, 32, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4313896, 32, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4230673, 32, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4230674, 32, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4230675, 32, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4230676, 32, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4313898, 32, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4230677, 32, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4230690, 32, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4230682, 32, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4230684, 32, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4230685, 32, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4230686, 32, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4230687, 32, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4230689, 32, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4395364, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404417, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404426, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404431, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404435, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404439, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404440, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404442, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404445, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404450, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404451, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4404452, 134, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4972550, 168, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4972551, 168, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4757557, 168, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4757558, 168, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4757560, 168, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4757561, 168, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4757563, 168, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4757565, 168, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4757566, 168, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4757569, 168, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4768065, 169, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4768067, 169, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4982004, 169, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4982007, 169, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4982009, 169, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4982039, 169, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4982041, 169, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4982050, 169, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4982051, 169, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4768073, 169, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4768082, 169, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4768083, 169, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4768084, 169, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4768085, 169, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4768087, 169, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4768094, 169, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4768099, 169, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4768100, 169, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4768101, 169, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4768102, 169, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4768103, 169, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5018506, 169, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5018517, 169, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5018518, 169, 4); -INSERT IGNORE INTO discoveryinfo VALUES (5018519, 169, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5018520, 169, 5); -INSERT IGNORE INTO discoveryinfo VALUES (5018524, 169, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5018525, 169, 7); -INSERT IGNORE INTO discoveryinfo VALUES (5018526, 169, 9); -INSERT IGNORE INTO discoveryinfo VALUES (5018528, 169, 9); -INSERT IGNORE INTO discoveryinfo VALUES (5119555, 169, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5119560, 169, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5964418, 262, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5964441, 262, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5964439, 262, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6032372, 262, 2); -INSERT IGNORE INTO discoveryinfo VALUES (5964410, 262, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5964409, 262, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5964449, 262, 1); -INSERT IGNORE INTO discoveryinfo VALUES (5964457, 262, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6234179, 297, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6234181, 297, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6234182, 297, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6234184, 297, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6234185, 297, 6); -INSERT IGNORE INTO discoveryinfo VALUES (6234186, 297, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6234187, 297, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6234188, 297, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6234189, 297, 9); -INSERT IGNORE INTO discoveryinfo VALUES (6234190, 297, 10); -INSERT IGNORE INTO discoveryinfo VALUES (6280057, 297, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6280060, 297, 2); -INSERT IGNORE INTO discoveryinfo VALUES (6280251, 297, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6280417, 297, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6280446, 297, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6280447, 297, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6280449, 297, 7); -INSERT IGNORE INTO discoveryinfo VALUES (6280451, 297, 5); -INSERT IGNORE INTO discoveryinfo VALUES (6280453, 297, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6421882, 297, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3975004, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4161435, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4242604, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4242609, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4242610, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3975007, 15, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4161439, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4161440, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4161442, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975011, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4161449, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4161453, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4161456, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4161457, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4161462, 15, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3975015, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3975127, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3975138, 15, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3975183, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975188, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975191, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975192, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975196, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3975233, 15, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3975242, 15, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3975244, 15, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3975251, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3975256, 15, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3975261, 15, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3975267, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3975278, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3975282, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3975283, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3975285, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4236358, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4242605, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3975132, 15, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3975135, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975198, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3975202, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3975204, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3975205, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3975208, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3975212, 15, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3975215, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975217, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975223, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975229, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975232, 15, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3975272, 15, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3643234, 16, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3643236, 16, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3643414, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3643415, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3643457, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4334728, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643485, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643486, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643487, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643488, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643489, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3643491, 16, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3643495, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643496, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643498, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643499, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643501, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643509, 16, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3643506, 16, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3643507, 16, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3643500, 16, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3643502, 16, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3643503, 16, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3643504, 16, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3643505, 16, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4334730, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643556, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3643588, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3643590, 16, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3692933, 16, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3692941, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3692942, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3692943, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3692944, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3692948, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3643597, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3692961, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3692965, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3923782, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3923784, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3923785, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3923789, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3923790, 16, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643598, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3692973, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3692975, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3692976, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3692977, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3693075, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3693080, 16, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3693104, 16, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3643602, 16, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3693126, 16, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3693128, 16, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3693148, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3693159, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3693168, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3693169, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643604, 16, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3643605, 16, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3643606, 16, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3693181, 16, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3693182, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643607, 16, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3693189, 16, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3693190, 16, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4175720, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4374678, 16, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3861103, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3861106, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3861109, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3861111, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3861113, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3643589, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3692932, 16, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4162133, 17, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4164735, 17, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4164742, 17, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4162142, 17, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4164739, 17, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4164740, 17, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4162143, 17, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4164731, 17, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4164732, 17, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4162144, 17, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4162145, 17, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4164620, 17, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4162147, 17, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4164648, 17, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4164654, 17, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4164656, 17, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4162148, 17, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4164663, 17, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4162150, 17, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4162153, 17, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4164611, 17, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4162155, 17, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4162154, 17, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4162317, 17, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4162319, 17, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4162320, 17, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4162321, 17, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4164693, 17, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4162322, 17, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4162323, 17, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4162324, 17, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4162325, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4162326, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4162329, 17, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4164698, 17, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4164699, 17, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4164700, 17, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4164701, 17, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4164706, 17, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4164707, 17, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4164708, 17, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4164715, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4164723, 17, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4164725, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4164727, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4164728, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4162328, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4200506, 17, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4200508, 17, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4164858, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4164859, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4164861, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4164846, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4164905, 18, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4164912, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4164914, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4164917, 18, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4164923, 18, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4164924, 18, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4164926, 18, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4164929, 18, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4164931, 18, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4164934, 18, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4164937, 18, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4164938, 18, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4164940, 18, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4164942, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4164944, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4164947, 18, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4164950, 18, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4164952, 18, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4164953, 18, 17); -INSERT IGNORE INTO discoveryinfo VALUES (4164955, 18, 18); -INSERT IGNORE INTO discoveryinfo VALUES (4164956, 18, 18); -INSERT IGNORE INTO discoveryinfo VALUES (4164957, 18, 18); -INSERT IGNORE INTO discoveryinfo VALUES (4164958, 18, 19); -INSERT IGNORE INTO discoveryinfo VALUES (4665752, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4665756, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4165006, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165007, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165009, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165010, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165044, 18, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165045, 18, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165048, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165049, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165050, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165051, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165052, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165053, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165054, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165055, 18, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165056, 18, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165057, 18, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165058, 18, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165059, 18, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165061, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165063, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165064, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165065, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165066, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165079, 18, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4165089, 18, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4165091, 18, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4165095, 18, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4165097, 18, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4165098, 18, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4165101, 18, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4165132, 18, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4165138, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4165146, 18, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165587, 18, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4165147, 18, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4374258, 18, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4665759, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4665766, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4665773, 18, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4755366, 18, 18); -INSERT IGNORE INTO discoveryinfo VALUES (4165141, 18, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4165774, 19, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165761, 19, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165767, 19, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4165768, 19, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165762, 19, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165770, 19, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165763, 19, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4311173, 19, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4311182, 19, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165784, 19, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4165786, 19, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4165793, 19, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4165795, 19, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4165789, 19, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165798, 19, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4310468, 19, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165791, 19, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165826, 19, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4310490, 19, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4310494, 19, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165792, 19, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4165787, 19, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4165788, 19, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4165790, 19, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165830, 30, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165834, 30, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4334751, 30, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4165838, 30, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4165843, 30, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4165870, 30, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4165845, 30, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4165862, 30, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4665788, 30, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4107623, 41, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4142953, 41, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4142959, 41, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4142960, 41, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4143007, 41, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4143009, 41, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4143011, 41, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4143012, 41, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4143014, 41, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4143143, 41, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4143144, 41, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4143146, 41, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4143147, 41, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4143154, 41, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4278339, 43, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4278406, 43, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4278410, 43, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4278415, 43, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4278417, 43, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4278419, 43, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4278420, 43, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4278432, 43, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4278438, 43, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4278461, 43, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4278472, 43, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4278474, 43, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4278494, 43, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4279992, 43, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4280840, 43, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4282568, 43, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4282573, 43, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4282574, 43, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4282585, 43, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4282592, 43, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4282598, 43, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4283510, 43, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4283661, 43, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4335666, 43, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4335670, 43, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4284218, 43, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4284220, 43, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4284346, 43, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4284350, 43, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4284353, 43, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4284354, 43, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4284356, 43, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4284479, 43, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4284483, 43, 16); -INSERT IGNORE INTO discoveryinfo VALUES (4284485, 43, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4322392, 47, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4322393, 47, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4322394, 47, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4322395, 47, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4322396, 47, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4322398, 47, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4322399, 47, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4322400, 47, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4322404, 47, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4322408, 47, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4322411, 47, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4322417, 47, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4322427, 47, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4322428, 47, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4322429, 47, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4322431, 47, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4322434, 47, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4322439, 47, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4322441, 47, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4322442, 47, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4322444, 47, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4322445, 47, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4322449, 47, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4322453, 47, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4322455, 47, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4322458, 47, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4322459, 47, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4313975, 103, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4322841, 103, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4328706, 103, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4328707, 103, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4328816, 103, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4328833, 103, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4328892, 103, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4328894, 103, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4328897, 103, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4328902, 103, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4515268, 142, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4515306, 142, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515308, 142, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4515382, 142, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4515386, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4481391, 142, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4481392, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4481393, 142, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4481404, 142, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4481407, 142, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4481409, 142, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4481412, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4481413, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4481414, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4481415, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4481416, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4481418, 142, 15); -INSERT IGNORE INTO discoveryinfo VALUES (4569450, 145, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4569451, 145, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4569461, 145, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4569464, 145, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4569465, 145, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4569471, 145, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4569472, 145, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4569479, 145, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4627320, 145, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4627322, 145, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4627324, 145, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4627332, 145, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4630742, 145, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4890336, 182, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4890497, 182, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4890506, 182, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4890535, 182, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4890651, 182, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4890664, 182, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4890679, 182, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4890766, 182, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4890770, 182, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4890776, 182, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4890780, 182, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4890784, 182, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4890786, 182, 13); -INSERT IGNORE INTO discoveryinfo VALUES (4890788, 182, 14); -INSERT IGNORE INTO discoveryinfo VALUES (4890791, 182, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5032226, 182, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5034828, 182, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5034833, 182, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5034834, 182, 15); -INSERT IGNORE INTO discoveryinfo VALUES (5348496, 182, 10); -INSERT IGNORE INTO discoveryinfo VALUES (5476910, 182, 3); -INSERT IGNORE INTO discoveryinfo VALUES (5485941, 182, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4098244, 20, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4098246, 20, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4098252, 20, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4098653, 20, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4098655, 20, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4098662, 20, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4098665, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4098675, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4098680, 20, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4098686, 20, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4098719, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4098723, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4098733, 20, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4203976, 20, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4203984, 20, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4218112, 20, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4218256, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4218258, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4203968, 20, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4098786, 20, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4098790, 20, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4098794, 20, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4098812, 20, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4098843, 20, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4098858, 20, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4098869, 20, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4098978, 20, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4098984, 20, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4098990, 20, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4098991, 20, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4098996, 20, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4099007, 20, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4099014, 20, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4099017, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4099024, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4099214, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4099220, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4099234, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4099313, 20, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4099338, 20, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4099357, 20, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4099376, 20, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4099424, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4099430, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4099464, 20, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4241594, 20, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4332518, 20, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4333235, 20, 9); -INSERT IGNORE INTO discoveryinfo VALUES (4334276, 20, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4373250, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4373251, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4373252, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4373253, 20, 10); -INSERT IGNORE INTO discoveryinfo VALUES (4374738, 20, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4374739, 20, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3643649, 21, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3643706, 21, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3643707, 21, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643708, 21, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3643709, 21, 2); -INSERT IGNORE INTO discoveryinfo VALUES (3643715, 21, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3643728, 21, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3643815, 21, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3643825, 21, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3643831, 21, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3643841, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3643859, 21, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3643862, 21, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3643864, 21, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3643865, 21, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3643871, 21, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3643879, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3645046, 21, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3645058, 21, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3645548, 21, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3645576, 21, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3645590, 21, 11); -INSERT IGNORE INTO discoveryinfo VALUES (3645591, 21, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3645607, 21, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3645675, 21, 11); -INSERT IGNORE INTO discoveryinfo VALUES (3645684, 21, 11); -INSERT IGNORE INTO discoveryinfo VALUES (3645746, 21, 12); -INSERT IGNORE INTO discoveryinfo VALUES (3645751, 21, 13); -INSERT IGNORE INTO discoveryinfo VALUES (3645793, 21, 12); -INSERT IGNORE INTO discoveryinfo VALUES (3645800, 21, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4204051, 21, 11); -INSERT IGNORE INTO discoveryinfo VALUES (4204061, 21, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4204069, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4204078, 21, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4204084, 21, 12); -INSERT IGNORE INTO discoveryinfo VALUES (4204092, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4218268, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4334881, 21, 7); -INSERT IGNORE INTO discoveryinfo VALUES (4334882, 21, 13); -INSERT IGNORE INTO discoveryinfo VALUES (3646818, 21, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3646820, 21, 1); -INSERT IGNORE INTO discoveryinfo VALUES (3646848, 21, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3646849, 21, 3); -INSERT IGNORE INTO discoveryinfo VALUES (3647060, 21, 4); -INSERT IGNORE INTO discoveryinfo VALUES (3647062, 21, 5); -INSERT IGNORE INTO discoveryinfo VALUES (3647073, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3647079, 21, 7); -INSERT IGNORE INTO discoveryinfo VALUES (3647131, 21, 8); -INSERT IGNORE INTO discoveryinfo VALUES (3647136, 21, 10); -INSERT IGNORE INTO discoveryinfo VALUES (3647138, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3647142, 21, 9); -INSERT IGNORE INTO discoveryinfo VALUES (3647308, 21, 12); -INSERT IGNORE INTO discoveryinfo VALUES (3649749, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (3649760, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4241611, 21, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4241612, 21, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4332187, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4332188, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4332189, 21, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4101783, 24, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4101846, 24, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4101870, 24, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4101889, 24, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4101896, 24, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4101900, 24, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4101904, 24, 5); -INSERT IGNORE INTO discoveryinfo VALUES (4101907, 24, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4101914, 24, 8); -INSERT IGNORE INTO discoveryinfo VALUES (4102354, 24, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4102358, 24, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4102359, 24, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4102360, 24, 1); -INSERT IGNORE INTO discoveryinfo VALUES (4102361, 24, 2); -INSERT IGNORE INTO discoveryinfo VALUES (4102365, 24, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4102371, 24, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4102372, 24, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4102373, 24, 3); -INSERT IGNORE INTO discoveryinfo VALUES (4102375, 24, 6); -INSERT IGNORE INTO discoveryinfo VALUES (4102377, 24, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4102378, 24, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4102379, 24, 4); -INSERT IGNORE INTO discoveryinfo VALUES (4102381, 24, 8); -INSERT IGNORE INTO discoveryinfo VALUES (6095410, 272, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6098955, 272, 12); -INSERT IGNORE INTO discoveryinfo VALUES (6268735, 303, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6268736, 303, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6288695, 303, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6271621, 303, 15); -INSERT IGNORE INTO discoveryinfo VALUES (6627252, 345, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6627266, 345, 13); -INSERT IGNORE INTO discoveryinfo VALUES (6740473, 345, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7309598, 414, 1); -INSERT IGNORE INTO discoveryinfo VALUES (7309601, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7309602, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7309603, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7309608, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7309609, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7309615, 414, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7309629, 414, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7309632, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7309633, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7309634, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7309640, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7309641, 414, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7309642, 414, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7309679, 414, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7309688, 414, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7309690, 414, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7309692, 414, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7309694, 414, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7309695, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7309697, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7309698, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7309699, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7310021, 414, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7310031, 414, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7310032, 414, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7310046, 414, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7310052, 414, 3); -INSERT IGNORE INTO discoveryinfo VALUES (7329610, 414, 10); -INSERT IGNORE INTO discoveryinfo VALUES (7329613, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7329615, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7329616, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7329617, 414, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7329620, 414, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7329621, 414, 13); -INSERT IGNORE INTO discoveryinfo VALUES (7329623, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329624, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329625, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329626, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329627, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329629, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329630, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329631, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329635, 414, 4); -INSERT IGNORE INTO discoveryinfo VALUES (7329639, 414, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7329641, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7329643, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7329644, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7329645, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7329646, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7329648, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7329650, 414, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7329651, 414, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7329653, 414, 8); -INSERT IGNORE INTO discoveryinfo VALUES (7329654, 414, 2); -INSERT IGNORE INTO discoveryinfo VALUES (7329655, 414, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7329656, 414, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7329658, 414, 9); -INSERT IGNORE INTO discoveryinfo VALUES (7310119, 414, 7); -INSERT IGNORE INTO discoveryinfo VALUES (7310228, 414, 12); -INSERT IGNORE INTO discoveryinfo VALUES (7310233, 414, 11); -INSERT IGNORE INTO discoveryinfo VALUES (7310337, 414, 5); -INSERT IGNORE INTO discoveryinfo VALUES (7257150, 414, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6890477, 389, 1); -INSERT IGNORE INTO discoveryinfo VALUES (6954246, 389, 3); -INSERT IGNORE INTO discoveryinfo VALUES (6954248, 389, 4); -INSERT IGNORE INTO discoveryinfo VALUES (6997567, 389, 1); \ No newline at end of file diff --git a/sql/update_land.sql b/sql/update_land.sql deleted file mode 100644 index 7dc864f6..00000000 --- a/sql/update_land.sql +++ /dev/null @@ -1,5 +0,0 @@ -ALTER TABLE `land` ADD `Type` SMALLINT(6) NOT NULL DEFAULT '0' AFTER `LandId`; -ALTER TABLE `house` ADD `HouseName` binary(23) DEFAULT "" AFTER `Comment`; -ALTER TABLE `house` ADD `HousePartModels` BINARY(32) DEFAULT "" AFTER `Endorsements`; -ALTER TABLE `house` ADD `HousePartColours` BINARY(8) DEFAULT "" AFTER `HousePartModels`; -ALTER TABLE `house` ADD `HouseInteriorModels` BINARY(40) DEFAULT "" AFTER `HousePartColours`; \ No newline at end of file diff --git a/sql/zonepositions.sql b/sql/zonepositions.sql deleted file mode 100644 index 9d842235..00000000 --- a/sql/zonepositions.sql +++ /dev/null @@ -1,227 +0,0 @@ --- -------------------------------------------------------- --- Host: 127.0.0.1 --- Server version: 10.1.28-MariaDB - mariadb.org binary distribution --- Server OS: Win32 --- HeidiSQL Version: 9.4.0.5125 --- -------------------------------------------------------- - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET NAMES utf8 */; -/*!50503 SET NAMES utf8mb4 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; - --- Dumping structure for table sapphire.zonepositions -CREATE TABLE IF NOT EXISTS `zonepositions` ( - `id` int(11) NOT NULL, - `target_zone_id` int(11) NOT NULL, - `pos_x` float NOT NULL, - `pos_y` float NOT NULL, - `pos_z` float NOT NULL, - `pos_o` float NOT NULL, - `radius` int(11) NOT NULL DEFAULT '2', - PRIMARY KEY (`id`) -) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; - --- Dumping data for table sapphire.zonepositions: 192 rows -DELETE FROM `zonepositions`; -/*!40000 ALTER TABLE `zonepositions` DISABLE KEYS */; -INSERT INTO `zonepositions` (`id`, `target_zone_id`, `pos_x`, `pos_y`, `pos_z`, `pos_o`, `radius`) VALUES - (1317556, 133, 16.3201, 8.34547, -91.7458, 2.48019, 2), - (1317554, 133, 140.8, 11.15, -22.6, 2.5, 2), - (1317535, 132, 10.2559, 1.03707, -11.7784, -0.43944, 2), - (1317558, 133, -130.42, 5.5, -36.36, -1.69019, 2), - (1317552, 148, 129.341, 26.9524, -311.06, -0.01836, 2), - (1317623, 132, 149.42, -11.2378, 157.749, -1.66604, 2), - (1317628, 152, -515.845, 18.4252, 271.573, 2.83271, 2), - (1320077, 148, 384, -3, -184, -1, 2), - (1317540, 132, -104, 1, 12.6, 0.3, 2), - (1320086, 148, 158, -24, 546, -3, 2), - (1317630, 153, -366, 29, -241, 0.8, 2), - (1332303, 152, -165, 6, 450, -1.4, 2), - (1320082, 153, 275.5, 11.1, -258.7, -0.8, 2), - (1317533, 132, 99.2226, 4.78645, 16.5797, -0.741859, 2), - (1317542, 154, 452, -1, 196, -1, 2), - (1320072, 133, -205, 10, -96, 1.6, 2), - (1317633, 154, 14.8739, -55.3396, 527.905, -2.44165, 2), - (1359064, 132, 40.1767, 1.19993, 33.5491, -2.0572, 2), - (1359244, 152, -196.215, 3.10004, 291.934, 1.0742, 2), - (1359648, 153, 185.686, 9.21862, -74.6898, -0.828473, 2), - (1359652, 154, -31.4935, -39.9006, 238.436, -1.95462, 2), - (3693843, 129, -96.5371, 18.5462, 0.164331, 1.55699, 2), - (3693863, 130, -144.305, -3.15489, -163.06, 0.844608, 2), - (3860373, 135, 156.876, 14.0959, 680.845, -3.01048, 2), - (3961173, 137, 491.614, 18.236, 474.858, -2.71565, 2), - (3965407, 138, 651.437, 9.39925, 507.082, -0.015805, 2), - (4142002, 139, 437.484, 4.21339, 84.1072, 0, 2), - (4142062, 180, -117.633, 64.3225, -219.456, 0, 2), - (3965476, 140, 73.0305, 45.9193, -232.058, -0.837415, 2), - (3965498, 145, -379.737, -59, 142.563, -1.60992, 2), - (3965549, 146, -153.169, 26.3166, -418.709, -0.966313, 2), - (3965676, 147, 28.5353, 6.97858, 454.249, -1.59139, 2), - (3965792, 155, 228.603, 312, -238.728, -0.872663, 2), - (3965896, 156, 47.7514, 20.4912, -667.904, -1.5964, 2), - (2563653, 132, 165.172, -2.53922, 83.0344, 2.28249, 2), - (2563690, 133, 101.232, 8.36029, -108.339, -1.72413, 2), - (2563700, 133, 117.217, 11.5772, -231.311, 2.29494, 2), - (2563702, 133, -146.938, 3.99984, -13.7873, -1.46085, 2), - (2563740, 133, -307.932, 7.06028, -174.981, 1.41482, 2), - (2563748, 133, -73.8652, 6.99362, -136.568, 1.13622, 2), - (2563810, 148, 128.68, 25.6247, -302.237, -0.407334, 2), - (2563828, 154, 448.667, -0.881895, 198.039, -0.81543, 2), - (4205005, 134, 224, 113.1, -261, 0.71968, 2), - (4205026, 141, -16.1511, -1.87702, -163.139, 3.13206, 2), - (4265667, 250, 40.9851, 5.6, -23.4832, 0, 2), - (3724283, 148, -502.084, 73.8739, -349.12, 0.022136, 2), - (1406089, 155, 7.46379, 184.824, 573.833, -2.9039, 2), - (1406085, 154, -366.571, -7.6982, 194.777, 0.759619, 2), - (4176152, 153, -282.699, -0.13973, 692.715, 2.57545, 2), - (1320088, 145, 366.689, 31.0121, -291.751, -0.526007, 2), - (1406087, 156, 120.007, 31.4998, -765.044, -0.804052, 2), - (1418272, 155, -228.277, 218.179, 698.528, -2.42958, 2), - (1418277, 147, -102.023, 84.4271, -411.113, -0.874677, 2), - (4295875, 156, -421.317, -3.21682, -122.225, -2.80336, 2), - (3876614, 134, -36.4611, 36.6508, 150.243, 1.98843, 2), - (2464045, 129, 58.7886, 20, -0.066879, -1.53495, 2), - (2453662, 134, 194.511, 65.2717, 285.229, -1.59811, 2), - (2464048, 135, 235.118, 73.7873, -338.534, 0.887104, 2), - (2453729, 134, -372.325, 33.3472, -595.069, 0.942594, 2), - (2464054, 138, 810.028, 49.9019, 384.635, -2.54678, 2), - (2210360, 135, -46.1092, 73.9411, 116.089, 1.54535, 2), - (2443382, 128, 24.9766, 44.5, 175.56, -3.13474, 2), - (4323017, 135, 596.704, 61.6635, -112.685, -2.81539, 2), - (2453713, 135, 571.106, 96.3, -518.642, -0.05646, 2), - (2453673, 137, -132.425, 69.3748, 739.518, -3.13744, 2), - (2453708, 135, 693.492, 79.5221, -382.789, -0.232514, 2), - (2453666, 137, 246.611, 56.1687, 831.572, 2.89764, 2), - (2372269, 130, 42.3246, 4, -158.943, -0.273386, 2), - (2377056, 141, -114.159, 18.3778, 332.705, 2.8655, 2), - (2376310, 130, 91.1395, 4, -111.101, -2.27906, 2), - (2377064, 131, 94.3718, 4, -108.09, 0.815058, 2), - (2376964, 130, 58.4986, 8, -88.0199, -2.27798, 2), - (2377068, 131, 67.2002, 8, -80.4213, 0.854852, 2), - (2376969, 130, -12.143, 10, -44.8101, -2.89781, 2), - (2377071, 131, -7.5771, 12.5628, -27.816, 0.26209, 2), - (2369965, 130, -176.583, 14, -14.6283, 1.56838, 2), - (2377075, 140, 465.194, 96.6206, 159.051, -1.73197, 2), - (2379246, 130, -123.162, 9.99999, -8.84062, -1.56451, 2), - (2377082, 131, -107.435, 6.98457, -9.0397, 1.57633, 2), - (2379249, 130, -121.899, 10.0722, 9.43441, -1.5354, 2), - (2377078, 131, -106.993, 6.98457, 9.39492, 1.58387, 2), - (2372279, 131, 159.45, 4, 42.6079, -1.86339, 2), - (2376287, 141, 20.1486, 18.3778, 565.384, 1.34262, 2), - (2210427, 128, -3.02154, 43, -27.8195, 1.52636, 2), - (2210364, 129, -2.24011, 20.0008, 27.8738, 1.54483, 2), - (2210434, 128, -92.7087, 35.5, 104.59, 0.839544, 2), - (2210376, 129, -89.9423, 20.6775, 111.428, -3.09037, 2), - (2210411, 128, -70.0571, 40.6609, -125.182, 2.3762, 2), - (2210368, 129, -84.1969, 18.0003, -22.3949, 0.030137, 2), - (2453691, 134, -166.683, 35.0913, -726.536, -0.302407, 2), - (2464051, 137, -108.773, 70.3399, 46.5696, 1.79447, 2), - (2453742, 137, 80.4418, 80.0177, -115.679, 0.063873, 2), - (2453717, 139, 717.879, 0.468218, 208.285, -3.11069, 2), - (2453747, 138, 408.384, 27.5189, -5.33734, -0.320773, 2), - (2453733, 139, -472.983, 1.43406, 283.031, 2.36451, 2), - (4057217, 139, -350.797, 47.4884, -14.5283, -1.14213, 2), - (4056858, 148, -326.559, 51.2799, -87.2374, -2.82522, 2), - (4057229, 139, 289.163, 41.1628, -198.013, 0.64875, 2), - (4056861, 148, 238.76, 54.7158, -252.767, -1.7284, 2), - (2376981, 141, -398.28, -0.789985, 99.3511, 1.96518, 2), - (2372291, 140, 258.5, 52.6883, -4.64944, -0.456935, 2), - (2377124, 141, 226.726, 2.7533, 669.653, -2.22354, 2), - (2372323, 146, -423.482, 12.8616, -422.811, 0.697403, 2), - (2377115, 141, 446.556, -17.9999, -174.403, -0.73727, 2), - (2372300, 145, -559.838, -19.777, 335.605, 2.10368, 2), - (2377133, 141, -26.9884, 33, -486.807, 0.127408, 2), - (2372337, 147, 36.6025, 5.93622, 506.673, 3.10036, 2), - (2377127, 145, -173.756, -45.2898, 483.95, -2.64246, 2), - (2377118, 146, -27.6321, 16.1257, -760.456, -0.049568, 2), - (1359242, 148, 5.5, -1.2, 39, 2, 2), - (5866176, 397, 469.424, 224.482, 878.862, 2.871, 2), - (5866084, 418, -187.517, 14.727, -57.656, 0.855, 2), - (5866221, 418, 154.928, -19.477, 55.268, -0.73, 2), - (5866257, 419, 256.628, -13.734, -103.892, -1.439, 2), - (5866245, 419, -18.889, -12.57, -68.431, -1.771, 2), - (5866233, 418, -61.586, 18.543, -92.179, -0.651, 2), - (5866262, 419, 19.538, -12.472, -68.271, 2.03, 2), - (5866230, 418, -154.269, 28.129, -132.983, -0.0197, 2), - (5866241, 419, -310.907, -24.644, -67.234, 2.203, 2), - (5866236, 418, 55.03, 27.575, -73.413, 0.242, 2), - (5877389, 418, -64.611, 8.113, 33.657, 1.315, 2), - (6905480, 635, 71.855, 0, 90.949, 90.94, 2), - (6905243, 612, -625.769, 130, -499.801, -2.776, 2), - (6905262, 612, 417.205, 114.272, 235.743, -0.195, 2), - (6905281, 620, 121.319, 118.155, -735.75, -2.59, 2), - (6905290, 620, -264.638, 257.78, 754.837, -2.283, 2), - (6905383, 621, -649.236, 50, -7.226, -2.841, 2), - (6905404, 621, 600.419, 80.999, 650.526, 1.105, 2), - (6905785, 628, 36.879, 4.499, -38.675, 1.443, 2), - (6905517, 613, 340.799, -119.983, -259.297, 1.787, 2), - (6905556, 613, 97.253, 3.0741, -578.398, -2.061, 2), - (6905594, 614, 430.091, 68.028, -76.178, 2.976, 2), - (6905606, 614, 240.855, 4.903, -405.901, 0.848, 2), - (6905720, 622, 553.881, -19.505, 354.754, 3.004, 2), - (6905736, 622, 77.954, 114.904, 54.161, 3.124, 2), - (5877470, 397, 475.573, 212.539, 724.138, -3.088, 2), - (5877548, 401, -614.543, -122.5, 560.65, -2.967, 2), - (5877554, 401, -602.771, -51.051, -402.786, -2.478, 2), - (5877573, 402, -732.918, -186.96, -600.872, 0.791, 2), - (5877684, 478, 78.692, 207.827, -11.564, -2.42, 2), - (5877731, 398, 527.068, -51.275, 44.389, 2.778, 2), - (5877743, 398, -295.193, -21.131, 30.783, -1.449, 2), - (5877767, 400, 244.675, -42.223, 589.172, 1.071, 2), - (5877776, 400, -577.575, 48.808, 305.611, -0.752, 2), - (4168380, 130, 65.298, 4, -118.459, -0.312, 2), - (4168385, 130, -154.348, 14.005, 70.563, -0.192, 2), - (4169078, 131, -52.238, 10, 10.248, -0.679, 2), - (4203093, 131, -20.026, 14.049, 74.811, 2.875, 2), - (4169094, 131, 30.708, 12.056, 111.8, 1.098, 2), - (4194547, 131, 91.638, 12, 59.42, -2.105, 2), - (6953712, 131, 131.552, 4, -31.932, 0.23, 2), - (4203094, 131, 3.728, 29.999, -23.907, 1.886, 2), - (4169099, 131, -99.958, 41, 88.312, 1.483, 2), - (6390350, 130, -26.465, 83, -17.332, -0.148, 2), - (4169491, 140, 467.013, 96.62, 159.009, -1.692, 2), - (4169494, 141, -115.018, 18.377, 333.546, 2.882, 2), - (4169496, 141, 18.549, 18.377, 565.206, 1.345, 2), - (4170478, 128, 15.792, 40, 71.464, 3.027, 2), - (4170467, 128, -55.892, 42, -129.285, -2.857, 2), - (4170361, 129, -335.144, 11.999, 53.509, -0.002, 2), - (4170387, 129, -180.396, 4, 180.309, 0.386, 2), - (4203091, 128, -3.309, 44, -218.191, -1.517, 2), - (4203092, 129, -213.582, 16, 48.801, -0.006, 2), - (6390356, 128, -11.685, 91.499, -13.191, -0.377, 2), - (4170499, 134, -39.562, 36.039, 152.972, 2.041, 2), - (4170784, 135, -39.271, 71.504, 116.516, 1.587, 2), - (6100648, 478, -74.827, 209.524, -23.346, 2.854, 2), - (5865600, 478, 135.482, 207, 114.076, -2.166, 2), - (5865605, 478, 79.813, 203.98, 132.018, 2.558, 2), - (5865668, 399, -221.2, 104.271, -599.535, 0.268, 2), - (5865672, 399, -221.2, 155.809, -516.036, 0.295, 2), - (5865598, 399, -221.2, 104.271, -599.535, 0.268, 2), - (5865604, 399, -533.153, 153.074, -487.968, 0.18, 2), - (5916706, 418, -111.521, 15.14, -29.188, 0.0077, 2), - (5916705, 418, 47.713, 23.979, 1.144, 1.457, 2), - (5916704, 418, 47.701, -12.02, 67.738, 2.057, 2), - (5916727, 155, -161.481, 304.153, -321.403, 0.795, 2), - (5916708, 419, 0.000456, 16.015, -35.806, -0.0296, 2), - (5916724, 419, 80.156, 10.054, -123.9, -2.445, 2), - (5916722, 419, -80.517, 10.054, -123.315, 2.468, 2), - (5916717, 419, -136.889, -12.634, -16.757, 0.978, 2), - (5916716, 419, 136.079, -9.234, -66.426, -0.989, 2), - (6905273, 612, 475.811, 61.576, -555.551, -1.274, 2), - (6905297, 620, -653.588, 51.867, -790.168, 1.1366, 2), - (6906489, 635, -82.295, 0, 8.925, 1.77, 2), - (6906492, 635, 100.312, 2.731, -113.366, -0.481, 2), - (3961228, 137, -11.9, 70.5, 3.273, -1.553, 2), - (3965420, 138, 257.506, -22.75, 224.382, 2.526, 2), - (1359650, 153, -226.643, 21.23, 351.76, -0.74, 2), - (3965709, 147, 22.9166, 48.309, -26.801, -2.406, 2), - (3965584, 146, -320.39, 8.262, 406.08, -1.455, 2), - (5668783, 144, -0.3458, 1.0425, -5.786, 0.0603, 2), - (4656744, 341, 29.4298, -11.0766, -211.529, -0.5092, 2); -/*!40000 ALTER TABLE `zonepositions` ENABLE KEYS */; - -/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; -/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/sql_import.sh b/sql_import.sh index a49e7f12..e95463df 100644 --- a/sql_import.sh +++ b/sql_import.sh @@ -1,14 +1,3 @@ #!/bin/bash -cd sql -mysql -u root -e 'create database sapphire;' -for f in *.sql - do - [ "$f" = "update.sql" ] && continue; - echo -n "importing $f into the database..." - mysql sapphire -u root < $f && echo "Success" - CODE=$? - if [ $CODE -ne 0 ]; then exit $CODE; fi -done -#mysql sapphire -u root < update.sql -f -echo 'todo: test update sql' -cd .. +bin/sapphire_dbm --mode initialize --user root --database sapphire --sfile bin/sql/schema/schema.sql --ifile bin/sql/schema/inserts.sql +bin/sapphire_dbm --mode liquidate --user root --database sapphire diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index 13f691fc..e6b98064 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -10,7 +10,9 @@ DbManager::DbManager( const std::string& host, const std::string& database, cons m_database( database ), m_user( user ), m_password( pw ), - m_port( port ) + m_port( port ), + m_sFile( "sql/schema/schema.sql" ), + m_iFile( "sql/schema/inserts.sql" ) { } @@ -120,8 +122,6 @@ bool DbManager::performAction() bool DbManager::modeInit() { - const std::string schemaFile = "sql/schema/schema.sql"; - const std::string insertFile = "sql/schema/inserts.sql"; bool result = false; bool dbCreated = false; @@ -166,10 +166,10 @@ bool DbManager::modeInit() return false; } - std::ifstream t( schemaFile ); + std::ifstream t( m_sFile ); if( !t.is_open() ) { - m_lastError = "File " + schemaFile + " does not exist!"; + m_lastError = "File " + m_sFile + " does not exist!"; return false; } std::string content( ( std::istreambuf_iterator< char >( t ) ), @@ -196,10 +196,10 @@ bool DbManager::modeInit() std::cout << "Inserting default values..." << std::endl; - std::ifstream t1( insertFile ); + std::ifstream t1( m_iFile ); if( !t1.is_open() ) { - m_lastError = "File " + insertFile + " does not exist!"; + m_lastError = "File " + m_iFile + " does not exist!"; return false; } std::string content1( ( std::istreambuf_iterator< char >( t1 ) ), @@ -270,17 +270,10 @@ bool DbManager::modeLiquidate() while( resultSet->next() ) { - std::cout << resultSet->getString( 1 ) << "\n"; + std::cout << "DROP TABLE `" + resultSet->getString( 1 ) + "`;" << "\n"; + if( !execute( "DROP TABLE `" + resultSet->getString( 1 ) + "`;" ) ) + return false; } - return false; - - auto count = resultSet->getUInt( 1 ); - if( count ) - { - m_lastError = "Database " + m_database + " still contains tables. it first!"; - return false; - } - } catch( std::runtime_error& e ) { @@ -288,6 +281,17 @@ bool DbManager::modeLiquidate() return false; } - - return false; + return true; } + +void DbManager::setInsertFile( const std::string& iFile ) +{ + m_iFile = iFile; +} + +void DbManager::setSchemaFile( const std::string& sFile ) +{ + m_sFile = sFile; +} + + diff --git a/src/dbm/DbManager.h b/src/dbm/DbManager.h index bf302e06..a750a980 100644 --- a/src/dbm/DbManager.h +++ b/src/dbm/DbManager.h @@ -41,6 +41,12 @@ class DbManager const std::string& getLastError(); + const std::string& getSchemaFile() const; + const std::string& getInsertFile() const; + + void setSchemaFile( const std::string& schemaFile ); + void setInsertFile( const std::string& insertFile ); + private: std::string m_host; std::string m_database; @@ -50,6 +56,8 @@ class DbManager std::shared_ptr< Mysql::Connection > m_pConnection; std::string m_lastError; Mode m_mode; + std::string m_iFile; + std::string m_sFile; }; diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index c8f20207..b2654593 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -89,6 +89,8 @@ void printUsage() g_log.info( "\t --host ( default 127.0.0.1 )" ); g_log.info( "\t --port ( default 3306 )" ); g_log.info( "\t --database " ); + g_log.info( "\t --sfile ( default sql/schema/schema.sql )" ); + g_log.info( "\t --ifile ( default sql/schema/inserts.sql )" ); } @@ -105,6 +107,8 @@ int main( int32_t argc, char* argv[] ) g_log.setLogPath( "log/SapphireDbm" ); g_log.init(); + std::string sFile; + std::string iFile; std::vector< std::string > args( argv + 1, argv + argc ); for( uint32_t i = 0; i + 1 < args.size(); i += 2 ) @@ -116,12 +120,19 @@ int main( int32_t argc, char* argv[] ) arg = arg.erase( 0, arg.find_first_not_of( '-' ) ); if( arg == "mode" ) mode = val; + else if( arg == "initialize" || arg == "liquidate" ) + mode = arg; else if( arg == "user" ) user = val; else if( arg == "host" ) host = val; else if( arg == "database" ) database = val; + else if( arg == "sfile" ) + sFile = val; + else if( arg == "ifile" ) + iFile = val; + } if( host.empty() ) @@ -135,6 +146,12 @@ int main( int32_t argc, char* argv[] ) auto dbm = DbManager( host, database, user, "", 3306 ); + if( !sFile.empty() && !iFile.empty() ) + { + dbm.setInsertFile( iFile ); + dbm.setSchemaFile( sFile ); + + } //initialize|check|update|clearchars|liquidate if( mode.find( "initialize" ) != std::string::npos ) { @@ -159,7 +176,7 @@ int main( int32_t argc, char* argv[] ) else { g_log.fatal( "Not a valid mode: " + mode + " !" ); - return 0; + return 1; } g_log.info( "Launching in " + mode + " mode..." ); @@ -168,23 +185,16 @@ int main( int32_t argc, char* argv[] ) { g_log.fatal( "Could not connect to server!" ); g_log.fatal( dbm.getLastError() ); - return 0; + return 1; } if( !dbm.performAction() ) { g_log.fatal( "Could not perform action!" ); g_log.fatal( dbm.getLastError() ); + return 1; } - //if( !dbm.selectSchema() ) - //{ - // g_log.fatal( "Could not set schema!" ); - // g_log.fatal( dbm.getLastError() ); - // return 0; - //} - - return 0; } From 18ae25521c307a60b179d25fc16fab32740c43aa Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 12 Dec 2018 12:23:56 +0100 Subject: [PATCH 174/385] Allow force mode in dbm --- sql_import.sh | 2 +- src/dbm/DbManager.cpp | 24 +++++++++++++++--------- src/dbm/DbManager.h | 3 +++ src/dbm/main.cpp | 11 +++++++---- 4 files changed, 26 insertions(+), 14 deletions(-) diff --git a/sql_import.sh b/sql_import.sh index e95463df..cce9bdef 100644 --- a/sql_import.sh +++ b/sql_import.sh @@ -1,3 +1,3 @@ #!/bin/bash bin/sapphire_dbm --mode initialize --user root --database sapphire --sfile bin/sql/schema/schema.sql --ifile bin/sql/schema/inserts.sql -bin/sapphire_dbm --mode liquidate --user root --database sapphire +bin/sapphire_dbm --mode liquidate --user root --database sapphire --force diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index e6b98064..b4545ae7 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -12,7 +12,8 @@ DbManager::DbManager( const std::string& host, const std::string& database, cons m_password( pw ), m_port( port ), m_sFile( "sql/schema/schema.sql" ), - m_iFile( "sql/schema/inserts.sql" ) + m_iFile( "sql/schema/inserts.sql" ), + m_force( false ) { } @@ -36,6 +37,11 @@ bool DbManager::execute( const std::string& sql ) } } +void DbManager::setForceMode( bool mode ) +{ + m_force = mode; +} + bool DbManager::connect() { std::shared_ptr< Mysql::MySqlBase > base( new Mysql::MySqlBase() ); @@ -250,14 +256,14 @@ bool DbManager::modeLiquidate() return false; char type = '\0'; - - while( promptForChar( "This action will drop all tables in the database. Are you sure? [y/n]", type ) ) - { - if( type == 'y' ) - break; - if( type == 'n' ) - return true; - } + if( !m_force ) + while( promptForChar( "This action will drop all tables in the database. Are you sure? [y/n]", type ) ) + { + if( type == 'y' ) + break; + if( type == 'n' ) + return true; + } std::string query = "SELECT TABLE_NAME " "FROM information_schema.tables " diff --git a/src/dbm/DbManager.h b/src/dbm/DbManager.h index a750a980..d53e27f4 100644 --- a/src/dbm/DbManager.h +++ b/src/dbm/DbManager.h @@ -47,6 +47,8 @@ class DbManager void setSchemaFile( const std::string& schemaFile ); void setInsertFile( const std::string& insertFile ); + void setForceMode( bool ); + private: std::string m_host; std::string m_database; @@ -58,6 +60,7 @@ class DbManager Mode m_mode; std::string m_iFile; std::string m_sFile; + bool m_force; }; diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index b2654593..7087fbf2 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -90,8 +90,7 @@ void printUsage() g_log.info( "\t --port ( default 3306 )" ); g_log.info( "\t --database " ); g_log.info( "\t --sfile ( default sql/schema/schema.sql )" ); - g_log.info( "\t --ifile ( default sql/schema/inserts.sql )" ); - + g_log.info( "\t --force ( skips user input / auto Yes )" ); } int main( int32_t argc, char* argv[] ) @@ -110,6 +109,8 @@ int main( int32_t argc, char* argv[] ) std::string sFile; std::string iFile; + bool force = false; + std::vector< std::string > args( argv + 1, argv + argc ); for( uint32_t i = 0; i + 1 < args.size(); i += 2 ) { @@ -132,7 +133,8 @@ int main( int32_t argc, char* argv[] ) sFile = val; else if( arg == "ifile" ) iFile = val; - + else if( arg == "force" ) + force = true; } if( host.empty() ) @@ -150,8 +152,9 @@ int main( int32_t argc, char* argv[] ) { dbm.setInsertFile( iFile ); dbm.setSchemaFile( sFile ); - } + if( force ) + dbm.setForceMode( true ); //initialize|check|update|clearchars|liquidate if( mode.find( "initialize" ) != std::string::npos ) { From 762d7a941d89f78d65f60d1364873d7ea5c99638 Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 12 Dec 2018 12:36:06 +0100 Subject: [PATCH 175/385] Skip input on liquidate --- src/dbm/DbManager.cpp | 4 ++-- src/dbm/DbManager.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index b4545ae7..1be6b172 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -256,14 +256,14 @@ bool DbManager::modeLiquidate() return false; char type = '\0'; - if( !m_force ) +/* if( !m_force ) while( promptForChar( "This action will drop all tables in the database. Are you sure? [y/n]", type ) ) { if( type == 'y' ) break; if( type == 'n' ) return true; - } + }*/ std::string query = "SELECT TABLE_NAME " "FROM information_schema.tables " diff --git a/src/dbm/DbManager.h b/src/dbm/DbManager.h index d53e27f4..302a5422 100644 --- a/src/dbm/DbManager.h +++ b/src/dbm/DbManager.h @@ -47,7 +47,7 @@ class DbManager void setSchemaFile( const std::string& schemaFile ); void setInsertFile( const std::string& insertFile ); - void setForceMode( bool ); + void setForceMode( bool mode ); private: std::string m_host; From ecb486e7c7d0439dcf6ec6b96b4700ce6b32420b Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 12 Dec 2018 14:04:04 +0100 Subject: [PATCH 176/385] use mysqlclient for statically linking in windows --- cmake/FindMySQL.cmake | 2 +- deps/mysqlConnector/CMakeLists.txt | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 5fd19dae..b7ff988f 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -139,7 +139,7 @@ endif( UNIX ) if( WIN32 ) find_library( MYSQL_LIBRARY NAMES - libmysql + mysqlclient PATHS ${MYSQL_ADD_LIBRARIES_PATH} "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/lib" diff --git a/deps/mysqlConnector/CMakeLists.txt b/deps/mysqlConnector/CMakeLists.txt index 1002f498..76f2f97f 100644 --- a/deps/mysqlConnector/CMakeLists.txt +++ b/deps/mysqlConnector/CMakeLists.txt @@ -16,11 +16,5 @@ set_target_properties( mysqlConnector PROPERTIES ) target_include_directories( mysqlConnector PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) -if(UNIX) - target_include_directories( mysqlConnector PUBLIC "/usr/include/mysql/" ) - -else() - target_include_directories( mysqlConnector PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/../MySQL/" ) -endif() target_link_libraries( mysqlConnector PUBLIC mysql ) #cotire(mysqlConnector) From a89def6f4ac18e08ee1f3bc229dc578cdbee13cc Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 12 Dec 2018 14:18:27 +0100 Subject: [PATCH 177/385] What about a release windows build? --- .appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.appveyor.yml b/.appveyor.yml index 7b5dacf3..65e32393 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -21,7 +21,7 @@ before_build: - mkdir build - cd build - cmake .. -G "Visual Studio 15 2017 Win64" - - cmake --build . --target ALL_BUILD --config Debug + - cmake --build . --target ALL_BUILD --config Release build_script: - cd .. From 8b937414a4f663c9183d0f6e9a4b01a092781f4f Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 12 Dec 2018 14:56:37 +0100 Subject: [PATCH 178/385] Appveyor should ..hopefully... be fine now --- .appveyor.yml | 3 +++ cmake/FindMySQL.cmake | 2 +- sql_import.sh | 6 ++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 65e32393..6a140060 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -25,4 +25,7 @@ before_build: build_script: - cd .. + - cd bin + - copy "C:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.dll" libmysql.dll + - cd .. - sh sql_import.sh diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index b7ff988f..5fd19dae 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -139,7 +139,7 @@ endif( UNIX ) if( WIN32 ) find_library( MYSQL_LIBRARY NAMES - mysqlclient + libmysql PATHS ${MYSQL_ADD_LIBRARIES_PATH} "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/lib" diff --git a/sql_import.sh b/sql_import.sh index cce9bdef..c2071301 100644 --- a/sql_import.sh +++ b/sql_import.sh @@ -1,3 +1,5 @@ #!/bin/bash -bin/sapphire_dbm --mode initialize --user root --database sapphire --sfile bin/sql/schema/schema.sql --ifile bin/sql/schema/inserts.sql -bin/sapphire_dbm --mode liquidate --user root --database sapphire --force +cd bin +sapphire_dbm --mode initialize --user root --database sapphire --sfile sql/schema/schema.sql --ifile sql/schema/inserts.sql +sapphire_dbm --mode liquidate --user root --database sapphire --force +cd .. From 17501592473d4b364b9bcabcb4975fda9d2cd3d3 Mon Sep 17 00:00:00 2001 From: mordred Date: Thu, 13 Dec 2018 10:18:51 +0100 Subject: [PATCH 179/385] Actually run sapphire_dbm --- sql_import.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sql_import.sh b/sql_import.sh index c2071301..041e880e 100644 --- a/sql_import.sh +++ b/sql_import.sh @@ -1,5 +1,5 @@ #!/bin/bash cd bin -sapphire_dbm --mode initialize --user root --database sapphire --sfile sql/schema/schema.sql --ifile sql/schema/inserts.sql -sapphire_dbm --mode liquidate --user root --database sapphire --force +./sapphire_dbm --mode initialize --user root --database sapphire --sfile sql/schema/schema.sql --ifile sql/schema/inserts.sql +./sapphire_dbm --mode liquidate --user root --database sapphire --force cd .. From ea64b653319f8bffc06f92054691030c56ec23f4 Mon Sep 17 00:00:00 2001 From: mordred Date: Thu, 13 Dec 2018 12:40:42 +0100 Subject: [PATCH 180/385] Restructured project slightly --- CMakeLists.txt | 5 +- .../sapphire_api => api}/CMakeLists.txt | 20 +- src/{servers/sapphire_api => api}/Forwards.h | 0 .../sapphire_api => api}/LoginSession.cpp | 0 .../sapphire_api => api}/LoginSession.h | 0 .../sapphire_api => api}/PlayerMinimal.cpp | 0 .../sapphire_api => api}/PlayerMinimal.h | 0 .../sapphire_api => api}/SapphireAPI.cpp | 0 .../sapphire_api => api}/SapphireAPI.h | 0 src/{servers/sapphire_api => api}/Session.cpp | 0 src/{servers/sapphire_api => api}/Session.h | 0 .../sapphire_api => api}/client_http.hpp | 0 src/{servers/sapphire_api => api}/main.cpp | 0 .../sapphire_api => api}/server_http.hpp | 0 src/dbm/CMakeLists.txt | 22 +- .../sapphire_lobby => lobby}/CMakeLists.txt | 17 +- .../sapphire_lobby => lobby}/Forwards.h | 0 .../GameConnection.cpp | 0 .../sapphire_lobby => lobby}/GameConnection.h | 0 .../LobbyPacketContainer.cpp | 0 .../LobbyPacketContainer.h | 0 .../sapphire_lobby => lobby}/LobbySession.cpp | 0 .../sapphire_lobby => lobby}/LobbySession.h | 0 .../RestConnector.cpp | 0 .../sapphire_lobby => lobby}/RestConnector.h | 0 .../sapphire_lobby => lobby}/ServerLobby.cpp | 0 .../sapphire_lobby => lobby}/ServerLobby.h | 0 .../sapphire_lobby => lobby}/client_http.hpp | 0 .../mainLobbyServer.cpp | 0 .../Scripts => scripts}/CMakeLists.txt | 6 +- .../Scripts => scripts}/ScriptLoader.cpp.in | 0 .../Scripts => scripts}/ScriptObject.h | 0 .../action/ActionReturn6.cpp | 0 .../action/ActionSprint3.cpp | 0 src/scripts/action/ScriptLoader.cpp | 17 + .../common/CmnDefCutSceneReplay.cpp | 0 .../common/CmnDefInnBed.cpp | 0 .../common/CmnDefLinkShell.cpp | 0 .../common/CmnDefMarketBoardGridania.cpp | 0 .../common/CmnDefMogLetter.cpp | 0 .../common/CmnDefNpcRepair.cpp | 0 .../common/CmnDefWeatherForeCast.cpp | 0 .../common/ComDefMobHuntBoard.cpp | 0 .../Scripts => scripts}/common/GilShop.cpp | 0 .../common/HouFurOrchestrion.cpp | 0 src/scripts/common/ScriptLoader.cpp | 47 ++ .../common/aethernet/Aetheryte.cpp | 0 .../common/aethernet/HousingAethernet.cpp | 0 .../common/eobj/HousingEstateEntrance.cpp | 0 .../CmnDefHousingPersonalRoomEntrance.cpp | 0 .../common/housing/CmnDefHousingSignboard.cpp | 0 .../warptaxi/HousingWarpTaxiExitEstate.cpp | 0 .../common/warptaxi/WarpTaxi.cpp | 0 src/scripts/instances/ScriptLoader.cpp | 549 ++++++++++++++++++ .../ThePalaceoftheDeadFloors101110.cpp | 0 .../ThePalaceoftheDeadFloors110.cpp | 0 .../ThePalaceoftheDeadFloors111120.cpp | 0 .../ThePalaceoftheDeadFloors1120.cpp | 0 .../ThePalaceoftheDeadFloors121130.cpp | 0 .../ThePalaceoftheDeadFloors131140.cpp | 0 .../ThePalaceoftheDeadFloors141150.cpp | 0 .../ThePalaceoftheDeadFloors151160.cpp | 0 .../ThePalaceoftheDeadFloors161170.cpp | 0 .../ThePalaceoftheDeadFloors171180.cpp | 0 .../ThePalaceoftheDeadFloors181190.cpp | 0 .../ThePalaceoftheDeadFloors191200.cpp | 0 .../ThePalaceoftheDeadFloors2130.cpp | 0 .../ThePalaceoftheDeadFloors3140.cpp | 0 .../ThePalaceoftheDeadFloors4150.cpp | 0 .../ThePalaceoftheDeadFloors5160.cpp | 0 .../ThePalaceoftheDeadFloors6170.cpp | 0 .../ThePalaceoftheDeadFloors7180.cpp | 0 .../ThePalaceoftheDeadFloors8190.cpp | 0 .../ThePalaceoftheDeadFloors91100.cpp | 0 .../instances/dungeons/AlaMhigo.cpp | 0 .../instances/dungeons/AmdaporKeep.cpp | 0 .../instances/dungeons/AmdaporKeepHard.cpp | 0 .../instances/dungeons/BaelsarsWall.cpp | 0 .../instances/dungeons/BardamsMettle.cpp | 0 .../instances/dungeons/BrayfloxsLongstop.cpp | 0 .../dungeons/BrayfloxsLongstopHard.cpp | 0 .../instances/dungeons/CastrumAbania.cpp | 0 .../instances/dungeons/CastrumMeridianum.cpp | 0 .../instances/dungeons/CopperbellMines.cpp | 0 .../dungeons/CopperbellMinesHard.cpp | 0 .../instances/dungeons/CuttersCry.cpp | 0 .../instances/dungeons/DomaCastle.cpp | 0 .../instances/dungeons/DzemaelDarkhold.cpp | 0 .../instances/dungeons/Halatali.cpp | 0 .../instances/dungeons/HalataliHard.cpp | 0 .../instances/dungeons/HaukkeManor.cpp | 0 .../instances/dungeons/HaukkeManorHard.cpp | 0 .../instances/dungeons/HellsLid.cpp | 0 .../instances/dungeons/HullbreakerIsle.cpp | 0 .../dungeons/HullbreakerIsleHard.cpp | 0 .../instances/dungeons/KuganeCastle.cpp | 0 .../instances/dungeons/Neverreap.cpp | 0 .../instances/dungeons/PharosSirius.cpp | 0 .../instances/dungeons/PharosSiriusHard.cpp | 0 .../dungeons/SaintMociannesArboretum.cpp | 0 .../instances/dungeons/Sastasha.cpp | 0 .../instances/dungeons/SastashaHard.cpp | 0 .../dungeons/ShisuioftheVioletTides.cpp | 0 .../instances/dungeons/Snowcloak.cpp | 0 .../instances/dungeons/SohmAl.cpp | 0 .../instances/dungeons/SohmAlHard.cpp | 0 .../instances/dungeons/SohrKhai.cpp | 0 .../instances/dungeons/TheAery.cpp | 0 .../TheAetherochemicalResearchFacility.cpp | 0 .../instances/dungeons/TheAntitower.cpp | 0 .../instances/dungeons/TheAurumVale.cpp | 0 .../dungeons/TheDrownedCityofSkalla.cpp | 0 .../instances/dungeons/TheDuskVigil.cpp | 0 .../dungeons/TheFractalContinuum.cpp | 0 .../dungeons/TheFractalContinuumHard.cpp | 0 .../dungeons/TheGreatGubalLibrary.cpp | 0 .../dungeons/TheGreatGubalLibraryHard.cpp | 0 .../instances/dungeons/TheKeeperoftheLake.cpp | 0 .../dungeons/TheLostCityofAmdapor.cpp | 0 .../dungeons/TheLostCityofAmdaporHard.cpp | 0 .../instances/dungeons/ThePraetorium.cpp | 0 .../instances/dungeons/TheSirensongSea.cpp | 0 .../instances/dungeons/TheStoneVigil.cpp | 0 .../instances/dungeons/TheStoneVigilHard.cpp | 0 .../dungeons/TheSunkenTempleofQarn.cpp | 0 .../dungeons/TheSunkenTempleofQarnHard.cpp | 0 .../dungeons/TheTamTaraDeepcroft.cpp | 0 .../dungeons/TheTamTaraDeepcroftHard.cpp | 0 .../instances/dungeons/TheTempleoftheFist.cpp | 0 .../dungeons/TheThousandMawsofTotoRak.cpp | 0 .../instances/dungeons/TheVault.cpp | 0 .../instances/dungeons/TheWanderersPalace.cpp | 0 .../dungeons/TheWanderersPalaceHard.cpp | 0 .../instances/dungeons/Xelphatol.cpp | 0 .../instances/events/TheHauntedManor.cpp | 0 .../events/TheValentionesCeremony.cpp | 0 .../guildhests/AllsWellthatEndsintheWell.cpp | 0 .../instances/guildhests/AnnoytheVoid.cpp | 0 .../guildhests/BasicTrainingEnemyParties.cpp | 0 .../BasicTrainingEnemyStrongholds.cpp | 0 .../FlickingSticksandTakingNames.cpp | 0 .../guildhests/HeroontheHalfShell.cpp | 0 .../instances/guildhests/LongLivetheQueen.cpp | 0 .../instances/guildhests/MorethanaFeeler.cpp | 0 .../guildhests/PullingPoisonPosies.cpp | 0 .../instances/guildhests/ShadowandClaw.cpp | 0 .../instances/guildhests/SolemnTrinity.cpp | 0 .../instances/guildhests/StingingBack.cpp | 0 .../instances/guildhests/UndertheArmor.cpp | 0 .../instances/guildhests/WardUp.cpp | 0 .../AccrueEnmityfromMultipleTargets.cpp | 0 .../AssistAlliesinDefeatingaTarget.cpp | 0 .../AvoidAreaofEffectAttacks.cpp | 0 .../hallofthenovice/AvoidEngagedTargets.cpp | 0 .../DefeatanOccupiedTarget.cpp | 0 .../EngageEnemyReinforcements.cpp | 0 .../hallofthenovice/EngageMultipleTargets.cpp | 0 .../hallofthenovice/ExecuteaComboinBattle.cpp | 0 .../ExecuteaCombotoIncreaseEnmity.cpp | 0 .../ExecuteaRangedAttacktoIncreaseEnmity.cpp | 0 .../hallofthenovice/FinalExercise.cpp | 0 .../hallofthenovice/HealMultipleAllies.cpp | 0 .../instances/hallofthenovice/HealanAlly.cpp | 0 .../InteractwiththeBattlefield.cpp | 0 .../instances/pvp/Astragalos.cpp | 0 .../instances/pvp/SealRockSeize.cpp | 0 .../pvp/TheBorderlandRuinsSecure.cpp | 0 .../instances/pvp/TheFeast4on4LightParty.cpp | 0 .../instances/pvp/TheFeast4on4Ranked.cpp | 0 .../instances/pvp/TheFeast4on4Training.cpp | 0 .../pvp/TheFeastCustomMatchCrystalTower.cpp | 0 .../TheFeastCustomMatchFeastingGrounds.cpp | 0 .../pvp/TheFeastCustomMatchLichenweed.cpp | 0 .../instances/pvp/TheFeastRanked.cpp | 0 .../instances/pvp/TheFeastTeamRanked.cpp | 0 .../instances/pvp/TheFeastTraining.cpp | 0 .../instances/pvp/TheFieldsofGloryShatter.cpp | 0 .../instances/questbattles/ABloodyReunion.cpp | 0 .../questbattles/ASpectaclefortheAges.cpp | 0 .../instances/questbattles/BloodDragoon.cpp | 0 .../instances/questbattles/BloodontheDeck.cpp | 0 .../CuriousGorgeMeetsHisMatch.cpp | 0 .../instances/questbattles/DarkwingDragon.cpp | 0 .../instances/questbattles/InThalsName.cpp | 0 .../questbattles/InterdimensionalRift.cpp | 0 .../questbattles/ItsProbablyaTrap.cpp | 0 .../instances/questbattles/MatsubaMayhem.cpp | 0 .../instances/questbattles/Naadam.cpp | 0 .../questbattles/OneLifeforOneWorld.cpp | 0 .../instances/questbattles/OurCompromise.cpp | 0 .../questbattles/OurUnsungHeroes.cpp | 0 .../questbattles/RaisingtheSword.cpp | 0 .../questbattles/ReturnoftheBull.cpp | 0 .../questbattles/TheBattleonBekko.cpp | 0 .../TheCarteneauFlatsHeliodrome.cpp | 0 .../questbattles/TheFaceofTrueEvil.cpp | 0 .../questbattles/TheHeartoftheProblem.cpp | 0 .../TheOrphansandtheBrokenBlade.cpp | 0 .../instances/questbattles/TheResonant.cpp | 0 .../questbattles/WhenClansCollide.cpp | 0 .../questbattles/WithHeartandSteel.cpp | 0 .../raids/AlexanderTheArmoftheFather.cpp | 0 .../AlexanderTheArmoftheFatherSavage.cpp | 0 .../raids/AlexanderTheArmoftheSon.cpp | 0 .../raids/AlexanderTheArmoftheSonSavage.cpp | 0 .../raids/AlexanderTheBreathoftheCreator.cpp | 0 .../AlexanderTheBreathoftheCreatorSavage.cpp | 0 .../raids/AlexanderTheBurdenoftheFather.cpp | 0 .../AlexanderTheBurdenoftheFatherSavage.cpp | 0 .../raids/AlexanderTheBurdenoftheSon.cpp | 0 .../AlexanderTheBurdenoftheSonSavage.cpp | 0 .../raids/AlexanderTheCuffoftheFather.cpp | 0 .../AlexanderTheCuffoftheFatherSavage.cpp | 0 .../raids/AlexanderTheCuffoftheSon.cpp | 0 .../raids/AlexanderTheCuffoftheSonSavage.cpp | 0 .../raids/AlexanderTheEyesoftheCreator.cpp | 0 .../AlexanderTheEyesoftheCreatorSavage.cpp | 0 .../raids/AlexanderTheFistoftheFather.cpp | 0 .../AlexanderTheFistoftheFatherSavage.cpp | 0 .../raids/AlexanderTheFistoftheSon.cpp | 0 .../raids/AlexanderTheFistoftheSonSavage.cpp | 0 .../raids/AlexanderTheHeartoftheCreator.cpp | 0 .../AlexanderTheHeartoftheCreatorSavage.cpp | 0 .../raids/AlexanderTheSouloftheCreator.cpp | 0 .../AlexanderTheSouloftheCreatorSavage.cpp | 0 .../instances/raids/DeltascapeV10.cpp | 0 .../instances/raids/DeltascapeV10Savage.cpp | 0 .../instances/raids/DeltascapeV20.cpp | 0 .../instances/raids/DeltascapeV20Savage.cpp | 0 .../instances/raids/DeltascapeV30.cpp | 0 .../instances/raids/DeltascapeV30Savage.cpp | 0 .../instances/raids/DeltascapeV40.cpp | 0 .../instances/raids/DeltascapeV40Savage.cpp | 0 .../instances/raids/DunScaith.cpp | 0 .../instances/raids/SigmascapeV10.cpp | 0 .../instances/raids/SigmascapeV10Savage.cpp | 0 .../instances/raids/SigmascapeV20.cpp | 0 .../instances/raids/SigmascapeV20Savage.cpp | 0 .../instances/raids/SigmascapeV30.cpp | 0 .../instances/raids/SigmascapeV30Savage.cpp | 0 .../instances/raids/SigmascapeV40.cpp | 0 .../instances/raids/SigmascapeV40Savage.cpp | 0 .../instances/raids/SyrcusTower.cpp | 0 .../raids/TheBindingCoilofBahamutTurn1.cpp | 0 .../raids/TheBindingCoilofBahamutTurn2.cpp | 0 .../raids/TheBindingCoilofBahamutTurn3.cpp | 0 .../raids/TheBindingCoilofBahamutTurn4.cpp | 0 .../raids/TheBindingCoilofBahamutTurn5.cpp | 0 .../raids/TheFinalCoilofBahamutTurn1.cpp | 0 .../raids/TheFinalCoilofBahamutTurn2.cpp | 0 .../raids/TheFinalCoilofBahamutTurn3.cpp | 0 .../raids/TheFinalCoilofBahamutTurn4.cpp | 0 .../raids/TheLabyrinthoftheAncients.cpp | 0 .../raids/TheRoyalCityofRabanastre.cpp | 0 .../TheSecondCoilofBahamutSavageTurn1.cpp | 0 .../TheSecondCoilofBahamutSavageTurn2.cpp | 0 .../TheSecondCoilofBahamutSavageTurn3.cpp | 0 .../TheSecondCoilofBahamutSavageTurn4.cpp | 0 .../raids/TheSecondCoilofBahamutTurn1.cpp | 0 .../raids/TheSecondCoilofBahamutTurn2.cpp | 0 .../raids/TheSecondCoilofBahamutTurn3.cpp | 0 .../raids/TheSecondCoilofBahamutTurn4.cpp | 0 .../TheUnendingCoilofBahamutUltimate.cpp | 0 .../instances/raids/TheVoidArk.cpp | 0 .../raids/TheWeaponsRefrainUltimate.cpp | 0 .../instances/raids/TheWeepingCityofMhach.cpp | 0 .../instances/raids/TheWorldofDarkness.cpp | 0 .../instances/treasurehunt/TheAquapolis.cpp | 0 .../treasurehunt/TheHiddenCanalsofUznair.cpp | 0 .../treasurehunt/TheLostCanalsofUznair.cpp | 0 .../trials/ARelicReborntheChimera.cpp | 0 .../instances/trials/ARelicReborntheHydra.cpp | 0 .../trials/AkhAfahAmphitheatreExtreme.cpp | 0 .../trials/AkhAfahAmphitheatreHard.cpp | 0 .../instances/trials/BattleintheBigKeep.cpp | 0 .../instances/trials/BattleontheBigBridge.cpp | 0 .../instances/trials/CapeWestwind.cpp | 0 .../instances/trials/ContainmentBayP1T6.cpp | 0 .../trials/ContainmentBayP1T6Extreme.cpp | 0 .../instances/trials/ContainmentBayS1T7.cpp | 0 .../trials/ContainmentBayS1T7Extreme.cpp | 0 .../instances/trials/ContainmentBayZ1T9.cpp | 0 .../trials/ContainmentBayZ1T9Extreme.cpp | 0 .../instances/trials/Emanation.cpp | 0 .../instances/trials/EmanationExtreme.cpp | 0 .../instances/trials/SpecialEventI.cpp | 0 .../instances/trials/SpecialEventII.cpp | 0 .../instances/trials/SpecialEventIII.cpp | 0 .../instances/trials/TheBowlofEmbers.cpp | 0 .../trials/TheBowlofEmbersExtreme.cpp | 0 .../instances/trials/TheBowlofEmbersHard.cpp | 0 .../instances/trials/TheChrysalis.cpp | 0 .../instances/trials/TheDragonsNeck.cpp | 0 .../instances/trials/TheFinalStepsofFaith.cpp | 0 .../instances/trials/TheHowlingEye.cpp | 0 .../instances/trials/TheHowlingEyeExtreme.cpp | 0 .../instances/trials/TheHowlingEyeHard.cpp | 0 .../instances/trials/TheJadeStoa.cpp | 0 .../instances/trials/TheJadeStoaExtreme.cpp | 0 .../trials/TheLimitlessBlueExtreme.cpp | 0 .../instances/trials/TheLimitlessBlueHard.cpp | 0 .../trials/TheMinstrelsBalladNidhoggsRage.cpp | 0 .../TheMinstrelsBalladShinryusDomain.cpp | 0 .../TheMinstrelsBalladThordansReign.cpp | 0 .../trials/TheMinstrelsBalladUltimasBane.cpp | 0 .../instances/trials/TheNavel.cpp | 0 .../instances/trials/TheNavelExtreme.cpp | 0 .../instances/trials/TheNavelHard.cpp | 0 .../instances/trials/ThePoolofTribute.cpp | 0 .../trials/ThePoolofTributeExtreme.cpp | 0 .../instances/trials/TheRoyalMenagerie.cpp | 0 .../trials/TheSingularityReactor.cpp | 0 .../instances/trials/TheStepsofFaith.cpp | 0 .../trials/TheStrikingTreeExtreme.cpp | 0 .../instances/trials/TheStrikingTreeHard.cpp | 0 .../instances/trials/TheWhorleaterExtreme.cpp | 0 .../instances/trials/TheWhorleaterHard.cpp | 0 .../instances/trials/ThokastThokExtreme.cpp | 0 .../instances/trials/ThokastThokHard.cpp | 0 .../instances/trials/ThornmarchExtreme.cpp | 0 .../instances/trials/ThornmarchHard.cpp | 0 .../instances/trials/UrthsFount.cpp | 0 .../opening/OpeningGridania.cpp | 0 .../opening/OpeningLimsa.cpp | 0 .../opening/OpeningUldah.cpp | 0 src/scripts/opening/ScriptLoader.cpp | 19 + .../Scripts => scripts}/quest/ManFst001.cpp | 0 .../Scripts => scripts}/quest/ManFst002.cpp | 0 .../Scripts => scripts}/quest/ManFst003.cpp | 0 .../Scripts => scripts}/quest/ManFst004.cpp | 0 .../Scripts => scripts}/quest/ManSea001.cpp | 0 .../Scripts => scripts}/quest/ManSea002.cpp | 0 .../Scripts => scripts}/quest/ManSea003.cpp | 0 .../Scripts => scripts}/quest/ManWil001.cpp | 0 .../Scripts => scripts}/quest/ManWil002.cpp | 0 src/scripts/quest/ScriptLoader.cpp | 91 +++ .../quest/subquest/gridania/SubFst001.cpp | 0 .../quest/subquest/gridania/SubFst002.cpp | 0 .../quest/subquest/gridania/SubFst003.cpp | 0 .../quest/subquest/gridania/SubFst004.cpp | 0 .../quest/subquest/gridania/SubFst008.cpp | 0 .../quest/subquest/gridania/SubFst009.cpp | 0 .../quest/subquest/gridania/SubFst010.cpp | 0 .../quest/subquest/gridania/SubFst011.cpp | 0 .../quest/subquest/gridania/SubFst013.cpp | 0 .../quest/subquest/gridania/SubFst014.cpp | 0 .../quest/subquest/gridania/SubFst015.cpp | 0 .../quest/subquest/gridania/SubFst019.cpp | 0 .../quest/subquest/gridania/SubFst026.cpp | 0 .../quest/subquest/gridania/SubFst029.cpp | 0 .../quest/subquest/gridania/SubFst030.cpp | 0 .../quest/subquest/gridania/SubFst041.cpp | 0 .../quest/subquest/limsa/SubSea001.cpp | 0 .../quest/subquest/uldah/SubWil000.cpp | 0 .../quest/subquest/uldah/SubWil001.cpp | 0 .../quest/subquest/uldah/SubWil002.cpp | 0 .../quest/subquest/uldah/SubWil004.cpp | 0 .../quest/subquest/uldah/SubWil006.cpp | 0 .../quest/subquest/uldah/SubWil007.cpp | 0 .../quest/subquest/uldah/SubWil018.cpp | 0 .../quest/subquest/uldah/SubWil019.cpp | 0 .../quest/subquest/uldah/SubWil021.cpp | 0 .../quest/subquest/uldah/SubWil022.cpp | 0 .../quest/subquest/uldah/SubWil027.cpp | 0 .../quest/subquest/uldah/SubWil028.cpp | 0 .../quest/subquest/uldah/SubWil029.cpp | 0 src/servers/CMakeLists.txt | 7 - .../sapphire_zone => world}/Action/Action.cpp | 0 .../sapphire_zone => world}/Action/Action.h | 0 .../Action/ActionCast.cpp | 0 .../Action/ActionCast.h | 0 .../Action/ActionCollision.cpp | 0 .../Action/ActionCollision.h | 0 .../Action/ActionMount.cpp | 0 .../Action/ActionMount.h | 0 .../Action/ActionTeleport.cpp | 0 .../Action/ActionTeleport.h | 0 .../Action/EventAction.cpp | 0 .../Action/EventAction.h | 0 .../Action/EventItemAction.cpp | 0 .../Action/EventItemAction.h | 0 .../sapphire_zone => world}/Actor/Actor.cpp | 0 .../sapphire_zone => world}/Actor/Actor.h | 0 .../sapphire_zone => world}/Actor/BNpc.cpp | 0 .../sapphire_zone => world}/Actor/BNpc.h | 0 .../Actor/BNpcTemplate.cpp | 0 .../Actor/BNpcTemplate.h | 0 .../sapphire_zone => world}/Actor/Chara.cpp | 0 .../sapphire_zone => world}/Actor/Chara.h | 0 .../Actor/EventObject.cpp | 0 .../Actor/EventObject.h | 0 .../sapphire_zone => world}/Actor/Npc.cpp | 0 .../sapphire_zone => world}/Actor/Npc.h | 0 .../sapphire_zone => world}/Actor/Player.cpp | 0 .../sapphire_zone => world}/Actor/Player.h | 0 .../Actor/PlayerEvent.cpp | 0 .../Actor/PlayerInventory.cpp | 0 .../Actor/PlayerQuest.cpp | 0 .../Actor/PlayerSql.cpp | 0 .../Actor/SpawnGroup.h | 0 .../Actor/SpawnPoint.cpp | 0 .../Actor/SpawnPoint.h | 0 .../sapphire_zone => world}/CMakeLists.txt | 25 +- .../ContentFinder/ContentFinder.cpp | 0 .../ContentFinder/ContentFinder.h | 0 .../DebugCommand/DebugCommand.h | 0 .../DebugCommand/DebugCommandHandler.cpp | 0 .../DebugCommand/DebugCommandHandler.h | 0 .../Event/Director.cpp | 0 .../sapphire_zone => world}/Event/Director.h | 0 .../sapphire_zone => world}/Event/EventDefs.h | 0 .../Event/EventHandler.cpp | 0 .../Event/EventHandler.h | 0 .../Event/EventHelper.cpp | 0 .../Event/EventHelper.h | 0 .../sapphire_zone => world}/ForwardsZone.h | 0 .../Inventory/Item.cpp | 0 .../sapphire_zone => world}/Inventory/Item.h | 0 .../Inventory/ItemContainer.cpp | 0 .../Inventory/ItemContainer.h | 0 .../Inventory/ItemUtil.cpp | 0 .../Inventory/ItemUtil.h | 0 .../Linkshell/Linkshell.cpp | 0 .../Linkshell/Linkshell.h | 0 .../Manager/HousingMgr.cpp | 0 .../Manager/HousingMgr.h | 0 .../Manager/LinkshellMgr.cpp | 0 .../Manager/LinkshellMgr.h | 0 .../Manager/PlayerMgr.cpp | 0 .../Manager/PlayerMgr.h | 0 .../Manager/ShopMgr.cpp | 0 .../sapphire_zone => world}/Manager/ShopMgr.h | 0 .../Manager/TerritoryMgr.cpp | 0 .../Manager/TerritoryMgr.h | 0 .../Math/CalcBattle.cpp | 0 .../sapphire_zone => world}/Math/CalcBattle.h | 0 .../Math/CalcStats.cpp | 0 .../sapphire_zone => world}/Math/CalcStats.h | 0 .../Network/GameConnection.cpp | 0 .../Network/GameConnection.h | 0 .../Network/Handlers/ActionHandler.cpp | 0 .../Network/Handlers/CFHandlers.cpp | 0 .../Network/Handlers/ClientTriggerHandler.cpp | 0 .../Network/Handlers/EventHandlers.cpp | 0 .../Network/Handlers/GMCommandHandlers.cpp | 0 .../Network/Handlers/InventoryHandler.cpp | 0 .../Network/Handlers/PacketHandlers.cpp | 0 .../PacketWrappers/ActorControlPacket142.h | 0 .../PacketWrappers/ActorControlPacket143.h | 0 .../PacketWrappers/ActorControlPacket144.h | 0 .../Network/PacketWrappers/ChatPacket.h | 0 .../PacketWrappers/DirectorPlayScenePacket.h | 0 .../Network/PacketWrappers/EffectPacket.h | 0 .../PacketWrappers/EventFinishPacket.h | 0 .../Network/PacketWrappers/EventPlayPacket.h | 0 .../Network/PacketWrappers/EventStartPacket.h | 0 .../Network/PacketWrappers/ExaminePacket.h | 0 .../Network/PacketWrappers/InitUIPacket.h | 0 .../Network/PacketWrappers/ModelEquipPacket.h | 0 .../Network/PacketWrappers/MoveActorPacket.h | 0 .../Network/PacketWrappers/NpcSpawnPacket.h | 0 .../Network/PacketWrappers/PingPacket.h | 0 .../PacketWrappers/PlayerSpawnPacket.h | 0 .../PacketWrappers/PlayerStateFlagsPacket.h | 0 .../PacketWrappers/QuestMessagePacket.h | 0 .../PacketWrappers/ServerNoticePacket.h | 0 .../PacketWrappers/UpdateHpMpTpPacket.h | 0 .../UpdateInventorySlotPacket.h | 0 .../Script/NativeScriptApi.cpp | 0 .../Script/NativeScriptApi.h | 0 .../Script/NativeScriptMgr.cpp | 0 .../Script/NativeScriptMgr.h | 0 .../Script/ScriptInfo.h | 0 .../Script/ScriptLoader.cpp | 0 .../Script/ScriptLoader.h | 0 .../Script/ScriptMgr.cpp | 0 .../Script/ScriptMgr.h | 0 .../sapphire_zone => world}/ServerMgr.cpp | 0 .../sapphire_zone => world}/ServerMgr.h | 0 .../sapphire_zone => world}/Session.cpp | 0 .../sapphire_zone => world}/Session.h | 0 .../StatusEffect/StatusEffect.cpp | 0 .../StatusEffect/StatusEffect.h | 0 .../Territory/Cell.cpp | 0 .../sapphire_zone => world}/Territory/Cell.h | 0 .../Territory/CellHandler.h | 0 .../Territory/House.cpp | 0 .../sapphire_zone => world}/Territory/House.h | 0 .../Housing/HousingInteriorTerritory.cpp | 0 .../Housing/HousingInteriorTerritory.h | 0 .../Territory/HousingZone.cpp | 0 .../Territory/HousingZone.h | 0 .../Territory/InstanceContent.cpp | 0 .../Territory/InstanceContent.h | 0 .../Territory/Land.cpp | 0 .../sapphire_zone => world}/Territory/Land.h | 0 .../Territory/Zone.cpp | 0 .../sapphire_zone => world}/Territory/Zone.h | 0 .../Territory/ZonePosition.cpp | 0 .../Territory/ZonePosition.h | 0 .../mainGameServer.cpp | 0 501 files changed, 772 insertions(+), 53 deletions(-) rename src/{servers/sapphire_api => api}/CMakeLists.txt (50%) rename src/{servers/sapphire_api => api}/Forwards.h (100%) rename src/{servers/sapphire_api => api}/LoginSession.cpp (100%) rename src/{servers/sapphire_api => api}/LoginSession.h (100%) rename src/{servers/sapphire_api => api}/PlayerMinimal.cpp (100%) rename src/{servers/sapphire_api => api}/PlayerMinimal.h (100%) rename src/{servers/sapphire_api => api}/SapphireAPI.cpp (100%) rename src/{servers/sapphire_api => api}/SapphireAPI.h (100%) rename src/{servers/sapphire_api => api}/Session.cpp (100%) rename src/{servers/sapphire_api => api}/Session.h (100%) rename src/{servers/sapphire_api => api}/client_http.hpp (100%) rename src/{servers/sapphire_api => api}/main.cpp (100%) rename src/{servers/sapphire_api => api}/server_http.hpp (100%) rename src/{servers/sapphire_lobby => lobby}/CMakeLists.txt (75%) rename src/{servers/sapphire_lobby => lobby}/Forwards.h (100%) rename src/{servers/sapphire_lobby => lobby}/GameConnection.cpp (100%) rename src/{servers/sapphire_lobby => lobby}/GameConnection.h (100%) rename src/{servers/sapphire_lobby => lobby}/LobbyPacketContainer.cpp (100%) rename src/{servers/sapphire_lobby => lobby}/LobbyPacketContainer.h (100%) rename src/{servers/sapphire_lobby => lobby}/LobbySession.cpp (100%) rename src/{servers/sapphire_lobby => lobby}/LobbySession.h (100%) rename src/{servers/sapphire_lobby => lobby}/RestConnector.cpp (100%) rename src/{servers/sapphire_lobby => lobby}/RestConnector.h (100%) rename src/{servers/sapphire_lobby => lobby}/ServerLobby.cpp (100%) rename src/{servers/sapphire_lobby => lobby}/ServerLobby.h (100%) rename src/{servers/sapphire_lobby => lobby}/client_http.hpp (100%) rename src/{servers/sapphire_lobby => lobby}/mainLobbyServer.cpp (100%) rename src/{servers/Scripts => scripts}/CMakeLists.txt (96%) rename src/{servers/Scripts => scripts}/ScriptLoader.cpp.in (100%) rename src/{servers/Scripts => scripts}/ScriptObject.h (100%) rename src/{servers/Scripts => scripts}/action/ActionReturn6.cpp (100%) rename src/{servers/Scripts => scripts}/action/ActionSprint3.cpp (100%) create mode 100644 src/scripts/action/ScriptLoader.cpp rename src/{servers/Scripts => scripts}/common/CmnDefCutSceneReplay.cpp (100%) rename src/{servers/Scripts => scripts}/common/CmnDefInnBed.cpp (100%) rename src/{servers/Scripts => scripts}/common/CmnDefLinkShell.cpp (100%) rename src/{servers/Scripts => scripts}/common/CmnDefMarketBoardGridania.cpp (100%) rename src/{servers/Scripts => scripts}/common/CmnDefMogLetter.cpp (100%) rename src/{servers/Scripts => scripts}/common/CmnDefNpcRepair.cpp (100%) rename src/{servers/Scripts => scripts}/common/CmnDefWeatherForeCast.cpp (100%) rename src/{servers/Scripts => scripts}/common/ComDefMobHuntBoard.cpp (100%) rename src/{servers/Scripts => scripts}/common/GilShop.cpp (100%) rename src/{servers/Scripts => scripts}/common/HouFurOrchestrion.cpp (100%) create mode 100644 src/scripts/common/ScriptLoader.cpp rename src/{servers/Scripts => scripts}/common/aethernet/Aetheryte.cpp (100%) rename src/{servers/Scripts => scripts}/common/aethernet/HousingAethernet.cpp (100%) rename src/{servers/Scripts => scripts}/common/eobj/HousingEstateEntrance.cpp (100%) rename src/{servers/Scripts => scripts}/common/housing/CmnDefHousingPersonalRoomEntrance.cpp (100%) rename src/{servers/Scripts => scripts}/common/housing/CmnDefHousingSignboard.cpp (100%) rename src/{servers/Scripts => scripts}/common/warptaxi/HousingWarpTaxiExitEstate.cpp (100%) rename src/{servers/Scripts => scripts}/common/warptaxi/WarpTaxi.cpp (100%) create mode 100644 src/scripts/instances/ScriptLoader.cpp rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors101110.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors110.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors111120.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors1120.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors121130.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors131140.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors141150.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors151160.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors161170.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors171180.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors181190.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors191200.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors2130.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors3140.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors4150.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors5160.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors6170.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors7180.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors8190.cpp (100%) rename src/{servers/Scripts => scripts}/instances/deepdungeon/ThePalaceoftheDeadFloors91100.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/AlaMhigo.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/AmdaporKeep.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/AmdaporKeepHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/BaelsarsWall.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/BardamsMettle.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/BrayfloxsLongstop.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/BrayfloxsLongstopHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/CastrumAbania.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/CastrumMeridianum.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/CopperbellMines.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/CopperbellMinesHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/CuttersCry.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/DomaCastle.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/DzemaelDarkhold.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/Halatali.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/HalataliHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/HaukkeManor.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/HaukkeManorHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/HellsLid.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/HullbreakerIsle.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/HullbreakerIsleHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/KuganeCastle.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/Neverreap.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/PharosSirius.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/PharosSiriusHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/SaintMociannesArboretum.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/Sastasha.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/SastashaHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/ShisuioftheVioletTides.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/Snowcloak.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/SohmAl.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/SohmAlHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/SohrKhai.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheAery.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheAetherochemicalResearchFacility.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheAntitower.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheAurumVale.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheDrownedCityofSkalla.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheDuskVigil.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheFractalContinuum.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheFractalContinuumHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheGreatGubalLibrary.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheGreatGubalLibraryHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheKeeperoftheLake.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheLostCityofAmdapor.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheLostCityofAmdaporHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/ThePraetorium.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheSirensongSea.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheStoneVigil.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheStoneVigilHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheSunkenTempleofQarn.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheSunkenTempleofQarnHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheTamTaraDeepcroft.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheTamTaraDeepcroftHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheTempleoftheFist.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheThousandMawsofTotoRak.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheVault.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheWanderersPalace.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/TheWanderersPalaceHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/dungeons/Xelphatol.cpp (100%) rename src/{servers/Scripts => scripts}/instances/events/TheHauntedManor.cpp (100%) rename src/{servers/Scripts => scripts}/instances/events/TheValentionesCeremony.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/AllsWellthatEndsintheWell.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/AnnoytheVoid.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/BasicTrainingEnemyParties.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/BasicTrainingEnemyStrongholds.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/FlickingSticksandTakingNames.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/HeroontheHalfShell.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/LongLivetheQueen.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/MorethanaFeeler.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/PullingPoisonPosies.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/ShadowandClaw.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/SolemnTrinity.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/StingingBack.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/UndertheArmor.cpp (100%) rename src/{servers/Scripts => scripts}/instances/guildhests/WardUp.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/AccrueEnmityfromMultipleTargets.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/AssistAlliesinDefeatingaTarget.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/AvoidAreaofEffectAttacks.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/AvoidEngagedTargets.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/DefeatanOccupiedTarget.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/EngageEnemyReinforcements.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/EngageMultipleTargets.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/ExecuteaComboinBattle.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/ExecuteaCombotoIncreaseEnmity.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/ExecuteaRangedAttacktoIncreaseEnmity.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/FinalExercise.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/HealMultipleAllies.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/HealanAlly.cpp (100%) rename src/{servers/Scripts => scripts}/instances/hallofthenovice/InteractwiththeBattlefield.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/Astragalos.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/SealRockSeize.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheBorderlandRuinsSecure.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeast4on4LightParty.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeast4on4Ranked.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeast4on4Training.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeastCustomMatchCrystalTower.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeastCustomMatchFeastingGrounds.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeastCustomMatchLichenweed.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeastRanked.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeastTeamRanked.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFeastTraining.cpp (100%) rename src/{servers/Scripts => scripts}/instances/pvp/TheFieldsofGloryShatter.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/ABloodyReunion.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/ASpectaclefortheAges.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/BloodDragoon.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/BloodontheDeck.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/CuriousGorgeMeetsHisMatch.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/DarkwingDragon.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/InThalsName.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/InterdimensionalRift.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/ItsProbablyaTrap.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/MatsubaMayhem.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/Naadam.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/OneLifeforOneWorld.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/OurCompromise.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/OurUnsungHeroes.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/RaisingtheSword.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/ReturnoftheBull.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/TheBattleonBekko.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/TheCarteneauFlatsHeliodrome.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/TheFaceofTrueEvil.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/TheHeartoftheProblem.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/TheOrphansandtheBrokenBlade.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/TheResonant.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/WhenClansCollide.cpp (100%) rename src/{servers/Scripts => scripts}/instances/questbattles/WithHeartandSteel.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheArmoftheFather.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheArmoftheFatherSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheArmoftheSon.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheArmoftheSonSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheBreathoftheCreator.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheBreathoftheCreatorSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheBurdenoftheFather.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheBurdenoftheFatherSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheBurdenoftheSon.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheBurdenoftheSonSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheCuffoftheFather.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheCuffoftheFatherSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheCuffoftheSon.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheCuffoftheSonSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheEyesoftheCreator.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheEyesoftheCreatorSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheFistoftheFather.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheFistoftheFatherSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheFistoftheSon.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheFistoftheSonSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheHeartoftheCreator.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheHeartoftheCreatorSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheSouloftheCreator.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/AlexanderTheSouloftheCreatorSavage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV10.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV10Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV20.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV20Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV30.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV30Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV40.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DeltascapeV40Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/DunScaith.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV10.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV10Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV20.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV20Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV30.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV30Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV40.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SigmascapeV40Savage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/SyrcusTower.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheBindingCoilofBahamutTurn1.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheBindingCoilofBahamutTurn2.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheBindingCoilofBahamutTurn3.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheBindingCoilofBahamutTurn4.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheBindingCoilofBahamutTurn5.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheFinalCoilofBahamutTurn1.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheFinalCoilofBahamutTurn2.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheFinalCoilofBahamutTurn3.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheFinalCoilofBahamutTurn4.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheLabyrinthoftheAncients.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheRoyalCityofRabanastre.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutSavageTurn1.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutSavageTurn2.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutSavageTurn3.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutSavageTurn4.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutTurn1.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutTurn2.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutTurn3.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheSecondCoilofBahamutTurn4.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheUnendingCoilofBahamutUltimate.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheVoidArk.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheWeaponsRefrainUltimate.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheWeepingCityofMhach.cpp (100%) rename src/{servers/Scripts => scripts}/instances/raids/TheWorldofDarkness.cpp (100%) rename src/{servers/Scripts => scripts}/instances/treasurehunt/TheAquapolis.cpp (100%) rename src/{servers/Scripts => scripts}/instances/treasurehunt/TheHiddenCanalsofUznair.cpp (100%) rename src/{servers/Scripts => scripts}/instances/treasurehunt/TheLostCanalsofUznair.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ARelicReborntheChimera.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ARelicReborntheHydra.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/AkhAfahAmphitheatreExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/AkhAfahAmphitheatreHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/BattleintheBigKeep.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/BattleontheBigBridge.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/CapeWestwind.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ContainmentBayP1T6.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ContainmentBayP1T6Extreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ContainmentBayS1T7.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ContainmentBayS1T7Extreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ContainmentBayZ1T9.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ContainmentBayZ1T9Extreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/Emanation.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/EmanationExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/SpecialEventI.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/SpecialEventII.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/SpecialEventIII.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheBowlofEmbers.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheBowlofEmbersExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheBowlofEmbersHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheChrysalis.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheDragonsNeck.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheFinalStepsofFaith.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheHowlingEye.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheHowlingEyeExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheHowlingEyeHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheJadeStoa.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheJadeStoaExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheLimitlessBlueExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheLimitlessBlueHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheMinstrelsBalladNidhoggsRage.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheMinstrelsBalladShinryusDomain.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheMinstrelsBalladThordansReign.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheMinstrelsBalladUltimasBane.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheNavel.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheNavelExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheNavelHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ThePoolofTribute.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ThePoolofTributeExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheRoyalMenagerie.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheSingularityReactor.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheStepsofFaith.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheStrikingTreeExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheStrikingTreeHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheWhorleaterExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/TheWhorleaterHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ThokastThokExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ThokastThokHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ThornmarchExtreme.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/ThornmarchHard.cpp (100%) rename src/{servers/Scripts => scripts}/instances/trials/UrthsFount.cpp (100%) rename src/{servers/Scripts => scripts}/opening/OpeningGridania.cpp (100%) rename src/{servers/Scripts => scripts}/opening/OpeningLimsa.cpp (100%) rename src/{servers/Scripts => scripts}/opening/OpeningUldah.cpp (100%) create mode 100644 src/scripts/opening/ScriptLoader.cpp rename src/{servers/Scripts => scripts}/quest/ManFst001.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManFst002.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManFst003.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManFst004.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManSea001.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManSea002.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManSea003.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManWil001.cpp (100%) rename src/{servers/Scripts => scripts}/quest/ManWil002.cpp (100%) create mode 100644 src/scripts/quest/ScriptLoader.cpp rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst001.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst002.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst003.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst004.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst008.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst009.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst010.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst011.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst013.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst014.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst015.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst019.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst026.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst029.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst030.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/gridania/SubFst041.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/limsa/SubSea001.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil000.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil001.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil002.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil004.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil006.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil007.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil018.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil019.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil021.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil022.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil027.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil028.cpp (100%) rename src/{servers/Scripts => scripts}/quest/subquest/uldah/SubWil029.cpp (100%) delete mode 100644 src/servers/CMakeLists.txt rename src/{servers/sapphire_zone => world}/Action/Action.cpp (100%) rename src/{servers/sapphire_zone => world}/Action/Action.h (100%) rename src/{servers/sapphire_zone => world}/Action/ActionCast.cpp (100%) rename src/{servers/sapphire_zone => world}/Action/ActionCast.h (100%) rename src/{servers/sapphire_zone => world}/Action/ActionCollision.cpp (100%) rename src/{servers/sapphire_zone => world}/Action/ActionCollision.h (100%) rename src/{servers/sapphire_zone => world}/Action/ActionMount.cpp (100%) rename src/{servers/sapphire_zone => world}/Action/ActionMount.h (100%) rename src/{servers/sapphire_zone => world}/Action/ActionTeleport.cpp (100%) rename src/{servers/sapphire_zone => world}/Action/ActionTeleport.h (100%) rename src/{servers/sapphire_zone => world}/Action/EventAction.cpp (100%) rename src/{servers/sapphire_zone => world}/Action/EventAction.h (100%) rename src/{servers/sapphire_zone => world}/Action/EventItemAction.cpp (100%) rename src/{servers/sapphire_zone => world}/Action/EventItemAction.h (100%) rename src/{servers/sapphire_zone => world}/Actor/Actor.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/Actor.h (100%) rename src/{servers/sapphire_zone => world}/Actor/BNpc.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/BNpc.h (100%) rename src/{servers/sapphire_zone => world}/Actor/BNpcTemplate.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/BNpcTemplate.h (100%) rename src/{servers/sapphire_zone => world}/Actor/Chara.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/Chara.h (100%) rename src/{servers/sapphire_zone => world}/Actor/EventObject.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/EventObject.h (100%) rename src/{servers/sapphire_zone => world}/Actor/Npc.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/Npc.h (100%) rename src/{servers/sapphire_zone => world}/Actor/Player.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/Player.h (100%) rename src/{servers/sapphire_zone => world}/Actor/PlayerEvent.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/PlayerInventory.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/PlayerQuest.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/PlayerSql.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/SpawnGroup.h (100%) rename src/{servers/sapphire_zone => world}/Actor/SpawnPoint.cpp (100%) rename src/{servers/sapphire_zone => world}/Actor/SpawnPoint.h (100%) rename src/{servers/sapphire_zone => world}/CMakeLists.txt (62%) rename src/{servers/sapphire_zone => world}/ContentFinder/ContentFinder.cpp (100%) rename src/{servers/sapphire_zone => world}/ContentFinder/ContentFinder.h (100%) rename src/{servers/sapphire_zone => world}/DebugCommand/DebugCommand.h (100%) rename src/{servers/sapphire_zone => world}/DebugCommand/DebugCommandHandler.cpp (100%) rename src/{servers/sapphire_zone => world}/DebugCommand/DebugCommandHandler.h (100%) rename src/{servers/sapphire_zone => world}/Event/Director.cpp (100%) rename src/{servers/sapphire_zone => world}/Event/Director.h (100%) rename src/{servers/sapphire_zone => world}/Event/EventDefs.h (100%) rename src/{servers/sapphire_zone => world}/Event/EventHandler.cpp (100%) rename src/{servers/sapphire_zone => world}/Event/EventHandler.h (100%) rename src/{servers/sapphire_zone => world}/Event/EventHelper.cpp (100%) rename src/{servers/sapphire_zone => world}/Event/EventHelper.h (100%) rename src/{servers/sapphire_zone => world}/ForwardsZone.h (100%) rename src/{servers/sapphire_zone => world}/Inventory/Item.cpp (100%) rename src/{servers/sapphire_zone => world}/Inventory/Item.h (100%) rename src/{servers/sapphire_zone => world}/Inventory/ItemContainer.cpp (100%) rename src/{servers/sapphire_zone => world}/Inventory/ItemContainer.h (100%) rename src/{servers/sapphire_zone => world}/Inventory/ItemUtil.cpp (100%) rename src/{servers/sapphire_zone => world}/Inventory/ItemUtil.h (100%) rename src/{servers/sapphire_zone => world}/Linkshell/Linkshell.cpp (100%) rename src/{servers/sapphire_zone => world}/Linkshell/Linkshell.h (100%) rename src/{servers/sapphire_zone => world}/Manager/HousingMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/Manager/HousingMgr.h (100%) rename src/{servers/sapphire_zone => world}/Manager/LinkshellMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/Manager/LinkshellMgr.h (100%) rename src/{servers/sapphire_zone => world}/Manager/PlayerMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/Manager/PlayerMgr.h (100%) rename src/{servers/sapphire_zone => world}/Manager/ShopMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/Manager/ShopMgr.h (100%) rename src/{servers/sapphire_zone => world}/Manager/TerritoryMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/Manager/TerritoryMgr.h (100%) rename src/{servers/sapphire_zone => world}/Math/CalcBattle.cpp (100%) rename src/{servers/sapphire_zone => world}/Math/CalcBattle.h (100%) rename src/{servers/sapphire_zone => world}/Math/CalcStats.cpp (100%) rename src/{servers/sapphire_zone => world}/Math/CalcStats.h (100%) rename src/{servers/sapphire_zone => world}/Network/GameConnection.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/GameConnection.h (100%) rename src/{servers/sapphire_zone => world}/Network/Handlers/ActionHandler.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/Handlers/CFHandlers.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/Handlers/ClientTriggerHandler.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/Handlers/EventHandlers.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/Handlers/GMCommandHandlers.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/Handlers/InventoryHandler.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/Handlers/PacketHandlers.cpp (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/ActorControlPacket142.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/ActorControlPacket143.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/ActorControlPacket144.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/ChatPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/DirectorPlayScenePacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/EffectPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/EventFinishPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/EventPlayPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/EventStartPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/ExaminePacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/InitUIPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/ModelEquipPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/MoveActorPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/NpcSpawnPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/PingPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/PlayerSpawnPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/PlayerStateFlagsPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/QuestMessagePacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/ServerNoticePacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/UpdateHpMpTpPacket.h (100%) rename src/{servers/sapphire_zone => world}/Network/PacketWrappers/UpdateInventorySlotPacket.h (100%) rename src/{servers/sapphire_zone => world}/Script/NativeScriptApi.cpp (100%) rename src/{servers/sapphire_zone => world}/Script/NativeScriptApi.h (100%) rename src/{servers/sapphire_zone => world}/Script/NativeScriptMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/Script/NativeScriptMgr.h (100%) rename src/{servers/sapphire_zone => world}/Script/ScriptInfo.h (100%) rename src/{servers/sapphire_zone => world}/Script/ScriptLoader.cpp (100%) rename src/{servers/sapphire_zone => world}/Script/ScriptLoader.h (100%) rename src/{servers/sapphire_zone => world}/Script/ScriptMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/Script/ScriptMgr.h (100%) rename src/{servers/sapphire_zone => world}/ServerMgr.cpp (100%) rename src/{servers/sapphire_zone => world}/ServerMgr.h (100%) rename src/{servers/sapphire_zone => world}/Session.cpp (100%) rename src/{servers/sapphire_zone => world}/Session.h (100%) rename src/{servers/sapphire_zone => world}/StatusEffect/StatusEffect.cpp (100%) rename src/{servers/sapphire_zone => world}/StatusEffect/StatusEffect.h (100%) rename src/{servers/sapphire_zone => world}/Territory/Cell.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/Cell.h (100%) rename src/{servers/sapphire_zone => world}/Territory/CellHandler.h (100%) rename src/{servers/sapphire_zone => world}/Territory/House.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/House.h (100%) rename src/{servers/sapphire_zone => world}/Territory/Housing/HousingInteriorTerritory.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/Housing/HousingInteriorTerritory.h (100%) rename src/{servers/sapphire_zone => world}/Territory/HousingZone.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/HousingZone.h (100%) rename src/{servers/sapphire_zone => world}/Territory/InstanceContent.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/InstanceContent.h (100%) rename src/{servers/sapphire_zone => world}/Territory/Land.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/Land.h (100%) rename src/{servers/sapphire_zone => world}/Territory/Zone.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/Zone.h (100%) rename src/{servers/sapphire_zone => world}/Territory/ZonePosition.cpp (100%) rename src/{servers/sapphire_zone => world}/Territory/ZonePosition.h (100%) rename src/{servers/sapphire_zone => world}/mainGameServer.cpp (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index a0b051f8..1a53f793 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,8 +36,11 @@ add_subdirectory( "deps/datReader" ) add_subdirectory( "deps/mysqlConnector" ) add_subdirectory( "src/common" ) -add_subdirectory( "src/servers" ) +add_subdirectory( "src/api" ) +add_subdirectory( "src/lobby" ) +add_subdirectory( "src/world" ) add_subdirectory( "src/dbm" ) +add_subdirectory( "src/scripts" ) add_subdirectory( "src/tools/exd_common_gen" ) add_subdirectory( "src/tools/exd_struct_gen" ) diff --git a/src/servers/sapphire_api/CMakeLists.txt b/src/api/CMakeLists.txt similarity index 50% rename from src/servers/sapphire_api/CMakeLists.txt rename to src/api/CMakeLists.txt index ab5f9d6f..c30aded2 100644 --- a/src/servers/sapphire_api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -1,13 +1,13 @@ -cmake_minimum_required(VERSION 2.6) -cmake_policy(SET CMP0015 NEW) -project(Sapphire) +cmake_minimum_required( VERSION 2.6 ) +cmake_policy( SET CMP0015 NEW ) +project( Sapphire ) -file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") -file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") +file( GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*" ) +file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) -add_executable(sapphire_api ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) +add_executable( api ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) -set_target_properties(sapphire_api PROPERTIES +set_target_properties( api PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON @@ -18,10 +18,10 @@ set_target_properties(sapphire_api PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" ) -target_link_libraries( sapphire_api common ) +target_link_libraries( api common ) if( UNIX ) - target_link_libraries( sapphire_api mysqlclient stdc++fs ) + target_link_libraries( api mysqlclient stdc++fs ) else() - target_link_libraries( sapphire_api mysql ) + target_link_libraries( api mysql ) endif() diff --git a/src/servers/sapphire_api/Forwards.h b/src/api/Forwards.h similarity index 100% rename from src/servers/sapphire_api/Forwards.h rename to src/api/Forwards.h diff --git a/src/servers/sapphire_api/LoginSession.cpp b/src/api/LoginSession.cpp similarity index 100% rename from src/servers/sapphire_api/LoginSession.cpp rename to src/api/LoginSession.cpp diff --git a/src/servers/sapphire_api/LoginSession.h b/src/api/LoginSession.h similarity index 100% rename from src/servers/sapphire_api/LoginSession.h rename to src/api/LoginSession.h diff --git a/src/servers/sapphire_api/PlayerMinimal.cpp b/src/api/PlayerMinimal.cpp similarity index 100% rename from src/servers/sapphire_api/PlayerMinimal.cpp rename to src/api/PlayerMinimal.cpp diff --git a/src/servers/sapphire_api/PlayerMinimal.h b/src/api/PlayerMinimal.h similarity index 100% rename from src/servers/sapphire_api/PlayerMinimal.h rename to src/api/PlayerMinimal.h diff --git a/src/servers/sapphire_api/SapphireAPI.cpp b/src/api/SapphireAPI.cpp similarity index 100% rename from src/servers/sapphire_api/SapphireAPI.cpp rename to src/api/SapphireAPI.cpp diff --git a/src/servers/sapphire_api/SapphireAPI.h b/src/api/SapphireAPI.h similarity index 100% rename from src/servers/sapphire_api/SapphireAPI.h rename to src/api/SapphireAPI.h diff --git a/src/servers/sapphire_api/Session.cpp b/src/api/Session.cpp similarity index 100% rename from src/servers/sapphire_api/Session.cpp rename to src/api/Session.cpp diff --git a/src/servers/sapphire_api/Session.h b/src/api/Session.h similarity index 100% rename from src/servers/sapphire_api/Session.h rename to src/api/Session.h diff --git a/src/servers/sapphire_api/client_http.hpp b/src/api/client_http.hpp similarity index 100% rename from src/servers/sapphire_api/client_http.hpp rename to src/api/client_http.hpp diff --git a/src/servers/sapphire_api/main.cpp b/src/api/main.cpp similarity index 100% rename from src/servers/sapphire_api/main.cpp rename to src/api/main.cpp diff --git a/src/servers/sapphire_api/server_http.hpp b/src/api/server_http.hpp similarity index 100% rename from src/servers/sapphire_api/server_http.hpp rename to src/api/server_http.hpp diff --git a/src/dbm/CMakeLists.txt b/src/dbm/CMakeLists.txt index 0736265e..f731b609 100644 --- a/src/dbm/CMakeLists.txt +++ b/src/dbm/CMakeLists.txt @@ -1,13 +1,13 @@ -cmake_minimum_required(VERSION 3.0) -cmake_policy(SET CMP0015 NEW) -project(sapphire_dbm) +cmake_minimum_required( VERSION 3.0 ) +cmake_policy( SET CMP0015 NEW ) +project( dbm ) -file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*" ) -file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") +file( GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*" ) +file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) -add_executable(sapphire_dbm ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) +add_executable( dbm ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) -set_target_properties(sapphire_dbm PROPERTIES +set_target_properties( dbm PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS ON @@ -17,15 +17,15 @@ set_target_properties(sapphire_dbm PROPERTIES RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" ) -target_include_directories( sapphire_dbm +target_include_directories( dbm PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../" ) - target_link_libraries( sapphire_dbm PRIVATE mysqlConnector common xivdat ) +target_link_libraries( dbm PRIVATE mysqlConnector common xivdat ) if (UNIX) - target_link_libraries( sapphire_dbm PRIVATE stdc++fs ) + target_link_libraries( dbm PRIVATE stdc++fs ) else() - target_link_libraries( sapphire_dbm PRIVATE mysql ) + target_link_libraries( dbm PRIVATE mysql ) endif() diff --git a/src/servers/sapphire_lobby/CMakeLists.txt b/src/lobby/CMakeLists.txt similarity index 75% rename from src/servers/sapphire_lobby/CMakeLists.txt rename to src/lobby/CMakeLists.txt index b6000a47..cc262001 100644 --- a/src/servers/sapphire_lobby/CMakeLists.txt +++ b/src/lobby/CMakeLists.txt @@ -6,9 +6,9 @@ file( GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*" ) file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) -add_executable( sapphire_lobby ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) +add_executable( lobby ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) -set_target_properties( sapphire_lobby +set_target_properties( lobby PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON @@ -18,15 +18,16 @@ set_target_properties( sapphire_lobby RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../../bin/" - ) -target_link_libraries( sapphire_lobby - PRIVATE - common mysql ) +) +target_link_libraries( lobby + PRIVATE + common + mysql ) if( UNIX ) - target_link_libraries( sapphire_lobby + target_link_libraries( lobby PRIVATE stdc++fs ) endif() - #cotire( sapphire_lobby ) +#cotire( lobby ) diff --git a/src/servers/sapphire_lobby/Forwards.h b/src/lobby/Forwards.h similarity index 100% rename from src/servers/sapphire_lobby/Forwards.h rename to src/lobby/Forwards.h diff --git a/src/servers/sapphire_lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp similarity index 100% rename from src/servers/sapphire_lobby/GameConnection.cpp rename to src/lobby/GameConnection.cpp diff --git a/src/servers/sapphire_lobby/GameConnection.h b/src/lobby/GameConnection.h similarity index 100% rename from src/servers/sapphire_lobby/GameConnection.h rename to src/lobby/GameConnection.h diff --git a/src/servers/sapphire_lobby/LobbyPacketContainer.cpp b/src/lobby/LobbyPacketContainer.cpp similarity index 100% rename from src/servers/sapphire_lobby/LobbyPacketContainer.cpp rename to src/lobby/LobbyPacketContainer.cpp diff --git a/src/servers/sapphire_lobby/LobbyPacketContainer.h b/src/lobby/LobbyPacketContainer.h similarity index 100% rename from src/servers/sapphire_lobby/LobbyPacketContainer.h rename to src/lobby/LobbyPacketContainer.h diff --git a/src/servers/sapphire_lobby/LobbySession.cpp b/src/lobby/LobbySession.cpp similarity index 100% rename from src/servers/sapphire_lobby/LobbySession.cpp rename to src/lobby/LobbySession.cpp diff --git a/src/servers/sapphire_lobby/LobbySession.h b/src/lobby/LobbySession.h similarity index 100% rename from src/servers/sapphire_lobby/LobbySession.h rename to src/lobby/LobbySession.h diff --git a/src/servers/sapphire_lobby/RestConnector.cpp b/src/lobby/RestConnector.cpp similarity index 100% rename from src/servers/sapphire_lobby/RestConnector.cpp rename to src/lobby/RestConnector.cpp diff --git a/src/servers/sapphire_lobby/RestConnector.h b/src/lobby/RestConnector.h similarity index 100% rename from src/servers/sapphire_lobby/RestConnector.h rename to src/lobby/RestConnector.h diff --git a/src/servers/sapphire_lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp similarity index 100% rename from src/servers/sapphire_lobby/ServerLobby.cpp rename to src/lobby/ServerLobby.cpp diff --git a/src/servers/sapphire_lobby/ServerLobby.h b/src/lobby/ServerLobby.h similarity index 100% rename from src/servers/sapphire_lobby/ServerLobby.h rename to src/lobby/ServerLobby.h diff --git a/src/servers/sapphire_lobby/client_http.hpp b/src/lobby/client_http.hpp similarity index 100% rename from src/servers/sapphire_lobby/client_http.hpp rename to src/lobby/client_http.hpp diff --git a/src/servers/sapphire_lobby/mainLobbyServer.cpp b/src/lobby/mainLobbyServer.cpp similarity index 100% rename from src/servers/sapphire_lobby/mainLobbyServer.cpp rename to src/lobby/mainLobbyServer.cpp diff --git a/src/servers/Scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt similarity index 96% rename from src/servers/Scripts/CMakeLists.txt rename to src/scripts/CMakeLists.txt index 06ea6827..dd9f0759 100644 --- a/src/servers/Scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.0) -project(Sapphire_Script) +project(Script) file(GLOB SCRIPT_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") @@ -36,7 +36,7 @@ foreach(_scriptDir ${children}) endforeach() add_library("script_${_name}" MODULE ${SCRIPT_BUILD_FILES} "${SCRIPT_INCLUDE_FILES}" "${_scriptDir}/ScriptLoader.cpp") - target_link_libraries( "script_${_name}" sapphire_zone ) + target_link_libraries( "script_${_name}" world ) if(MSVC) set_target_properties( "script_${_name}" PROPERTIES @@ -56,7 +56,7 @@ foreach(_scriptDir ${children}) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/ScriptLoader.cpp.in" "${_scriptDir}/ScriptLoader.cpp") - #cotire("script_${_name}") + cotire("script_${_name}") if(MSVC) add_custom_command(TARGET "script_${_name}" POST_BUILD diff --git a/src/servers/Scripts/ScriptLoader.cpp.in b/src/scripts/ScriptLoader.cpp.in similarity index 100% rename from src/servers/Scripts/ScriptLoader.cpp.in rename to src/scripts/ScriptLoader.cpp.in diff --git a/src/servers/Scripts/ScriptObject.h b/src/scripts/ScriptObject.h similarity index 100% rename from src/servers/Scripts/ScriptObject.h rename to src/scripts/ScriptObject.h diff --git a/src/servers/Scripts/action/ActionReturn6.cpp b/src/scripts/action/ActionReturn6.cpp similarity index 100% rename from src/servers/Scripts/action/ActionReturn6.cpp rename to src/scripts/action/ActionReturn6.cpp diff --git a/src/servers/Scripts/action/ActionSprint3.cpp b/src/scripts/action/ActionSprint3.cpp similarity index 100% rename from src/servers/Scripts/action/ActionSprint3.cpp rename to src/scripts/action/ActionSprint3.cpp diff --git a/src/scripts/action/ScriptLoader.cpp b/src/scripts/action/ScriptLoader.cpp new file mode 100644 index 00000000..53a1a372 --- /dev/null +++ b/src/scripts/action/ScriptLoader.cpp @@ -0,0 +1,17 @@ +#include @@ -79,7 +87,7 @@
From 50276dcbc3220e571a972029b75c8a18de0ea740 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 17:44:03 +1100 Subject: [PATCH 275/385] #448 - remove deed on build --- src/common/Common.h | 2 +- src/world/Actor/Player.h | 2 +- src/world/Actor/PlayerInventory.cpp | 21 ++++++++++ src/world/Manager/HousingMgr.cpp | 41 ++++++++++++------- src/world/Manager/HousingMgr.h | 2 +- src/world/Territory/House.cpp | 4 +- src/world/Territory/House.h | 4 +- .../Housing/HousingInteriorTerritory.cpp | 2 +- 8 files changed, 56 insertions(+), 22 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 29296509..9363426d 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -791,7 +791,7 @@ namespace Sapphire::Common ExteriorFence }; - enum HousingInteriorSlot + enum HouseInteriorSlot { InteriorWall, InteriorFloor, diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index ce11587c..2721bba2 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -916,7 +916,7 @@ namespace Sapphire::Entity uint32_t getNextInventorySequence(); - void send(); + bool findFirstItemWithId( uint32_t catalogId, Inventory::InventoryContainerPair& location ); uint8_t getFreeSlotsInBags(); diff --git a/src/world/Actor/PlayerInventory.cpp b/src/world/Actor/PlayerInventory.cpp index d0b9cf82..df42dc8d 100644 --- a/src/world/Actor/PlayerInventory.cpp +++ b/src/world/Actor/PlayerInventory.cpp @@ -932,4 +932,25 @@ void Sapphire::Entity::Player::insertInventoryItem( Sapphire::Common::InventoryT auto slotUpdate = std::make_shared< UpdateInventorySlotPacket >( getId(), slot, type, *item ); queuePacket( slotUpdate ); +} + +bool Sapphire::Entity::Player::findFirstItemWithId( uint32_t catalogId, + Inventory::InventoryContainerPair& location ) +{ + for( auto bagId : { Bag0, Bag1, Bag2, Bag3 } ) + { + auto& container = m_storageMap[ bagId ]; + + for( const auto& item : container->getItemMap() ) + { + if( item.second->getId() != catalogId ) + continue; + + location = std::make_pair( bagId, item.first ); + + return true; + } + } + + return false; } \ No newline at end of file diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index b14ac88b..1d3d079b 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -564,6 +564,18 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play if( !preset ) return false; + // remove preset item + Inventory::InventoryContainerPair foundItem; + if( !player.findFirstItemWithId( presetCatalogId, foundItem ) ) + return false; + + auto item = player.dropInventoryItem( foundItem.first, foundItem.second ); + if( !item ) + return false; + + // move preset item into ext appearance container + houseInventory[ InventoryType::HousingExteriorAppearance ]->setItem( HouseExteriorSlot::HousePermit, item ); + // high iq shit auto invMap = std::map< uint16_t, std::map< uint32_t, int32_t > > { @@ -583,19 +595,19 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play InventoryType::HousingInteriorAppearance, { // lobby/middle floor - { HousingInteriorSlot::InteriorWall, preset->interiorWall }, - { HousingInteriorSlot::InteriorFloor, preset->interiorFlooring }, - { HousingInteriorSlot::InteriorLight, preset->interiorLighting }, + { HouseInteriorSlot::InteriorWall, preset->interiorWall }, + { HouseInteriorSlot::InteriorFloor, preset->interiorFlooring }, + { HouseInteriorSlot::InteriorLight, preset->interiorLighting }, // attic - { HousingInteriorSlot::InteriorWall_Attic, preset->otherFloorWall }, - { HousingInteriorSlot::InteriorFloor_Attic, preset->otherFloorFlooring }, - { HousingInteriorSlot::InteriorLight_Attic, preset->otherFloorLighting }, + { HouseInteriorSlot::InteriorWall_Attic, preset->otherFloorWall }, + { HouseInteriorSlot::InteriorFloor_Attic, preset->otherFloorFlooring }, + { HouseInteriorSlot::InteriorLight_Attic, preset->otherFloorLighting }, // basement - { HousingInteriorSlot::InteriorWall_Basement, preset->basementWall }, - { HousingInteriorSlot::InteriorFloor_Basement, preset->basementFlooring }, - { HousingInteriorSlot::InteriorLight_Basement, preset->basementLighting }, + { HouseInteriorSlot::InteriorWall_Basement, preset->basementWall }, + { HouseInteriorSlot::InteriorFloor_Basement, preset->basementFlooring }, + { HouseInteriorSlot::InteriorLight_Basement, preset->basementLighting }, } } }; @@ -641,7 +653,7 @@ void Sapphire::World::Manager::HousingMgr::createHouse( Sapphire::HousePtr house pDb->execute( stmt ); } -void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ) +void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetCatalogId ) { auto hZone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ); @@ -656,8 +668,6 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl if( pLand->getOwnerId() != player.getId() ) return; - // todo: check if permit is in inventory and remove one - // create house auto ident = pLand->getLandIdent(); auto house = make_House( getNextHouseId(), pLand->getLandSetId(), ident, @@ -666,8 +676,11 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl pLand->setHouse( house ); // create inventory items - if( !initHouseModels( player, pLand, presetItem ) ) + if( !initHouseModels( player, pLand, presetCatalogId ) ) + { + pLand->setHouse( nullptr ); return; + } createHouse( house ); @@ -913,7 +926,7 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr { for( auto& item : intContainer->second->getItemMap() ) { - house->setInteriorModel( static_cast< Common::HousingInteriorSlot >( item.first ), + house->setInteriorModel( static_cast< Common::HouseInteriorSlot >( item.first ), getItemAdditionalData( item.second->getId() ) ); } } diff --git a/src/world/Manager/HousingMgr.h b/src/world/Manager/HousingMgr.h index 9dd0bd23..4f2a6898 100644 --- a/src/world/Manager/HousingMgr.h +++ b/src/world/Manager/HousingMgr.h @@ -91,7 +91,7 @@ namespace Sapphire::World::Manager bool relinquishLand( Entity::Player& player, uint8_t plot ); - void buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetItem ); + void buildPresetEstate( Entity::Player& player, uint8_t plotNum, uint32_t presetCatalogId ); void requestEstateRename( Entity::Player& player, const Common::LandIdent ident ); diff --git a/src/world/Territory/House.cpp b/src/world/Territory/House.cpp index 396e763e..fe08783d 100644 --- a/src/world/Territory/House.cpp +++ b/src/world/Territory/House.cpp @@ -96,12 +96,12 @@ Sapphire::House::HousePart Sapphire::House::getExteriorModel( Sapphire::Common:: return m_exteriorModelCache[ slot ]; } -void Sapphire::House::setInteriorModel( Sapphire::Common::HousingInteriorSlot slot, uint32_t modelId ) +void Sapphire::House::setInteriorModel( Sapphire::Common::HouseInteriorSlot slot, uint32_t modelId ) { m_interiorModelCache[ slot ] = modelId; } -uint32_t Sapphire::House::getInteriorModel( Sapphire::Common::HousingInteriorSlot slot ) +uint32_t Sapphire::House::getInteriorModel( Sapphire::Common::HouseInteriorSlot slot ) { return m_interiorModelCache[ slot ]; } diff --git a/src/world/Territory/House.h b/src/world/Territory/House.h index 3229e0e0..21d3ea86 100644 --- a/src/world/Territory/House.h +++ b/src/world/Territory/House.h @@ -34,8 +34,8 @@ namespace Sapphire void setExteriorModel( Common::HouseExteriorSlot slot, uint32_t modelId, uint16_t stain ); HousePart getExteriorModel( Common::HouseExteriorSlot slot ); - void setInteriorModel( Common::HousingInteriorSlot slot, uint32_t modelId ); - uint32_t getInteriorModel( Common::HousingInteriorSlot slot ); + void setInteriorModel( Common::HouseInteriorSlot slot, uint32_t modelId ); + uint32_t getInteriorModel( Common::HouseInteriorSlot slot ); HouseModelsArray const& getHouseModels() const; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index dddbd86d..1ad7b57e 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -71,7 +71,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone for( auto i = 0; i < 10; i++ ) { indoorInitPacket->data().indoorItems[ i ] = pHouse->getInteriorModel( - static_cast< Common::HousingInteriorSlot >( i ) ); + static_cast< Common::HouseInteriorSlot >( i ) ); } player.queuePacket( indoorInitPacket ); From e418e61b4aa5ab8eb74aeb66e8e8550fa2942447 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 18:48:45 +1100 Subject: [PATCH 276/385] #448 - Place character correctly on entering a house --- .../common/eobj/HousingEstateEntrance.cpp | 41 ++++++++++++++++--- src/world/Actor/Player.cpp | 27 ++++++++++++ src/world/Actor/Player.h | 3 ++ src/world/Manager/TerritoryMgr.cpp | 8 ++-- src/world/Manager/TerritoryMgr.h | 2 +- 5 files changed, 70 insertions(+), 11 deletions(-) diff --git a/src/scripts/common/eobj/HousingEstateEntrance.cpp b/src/scripts/common/eobj/HousingEstateEntrance.cpp index a576bc19..7461ef1e 100644 --- a/src/scripts/common/eobj/HousingEstateEntrance.cpp +++ b/src/scripts/common/eobj/HousingEstateEntrance.cpp @@ -4,6 +4,7 @@ #include "Actor/EventObject.h" #include "Territory/HousingZone.h" #include "Manager/TerritoryMgr.h" +#include "Territory/Land.h" #include "Framework.h" using namespace Sapphire; @@ -19,8 +20,6 @@ public: void onTalk( uint32_t eventId, Entity::Player& player, Entity::EventObject& eobj ) override { - player.sendDebug( "Found plot entrance for plot: " + std::to_string( eobj.getHousingLink() >> 8 ) ); - player.playScene( eventId, 0, 0, [this, eobj]( Entity::Player& player, const Event::SceneResult& result ) { // param2 == 1 when player wants to enter house @@ -42,15 +41,45 @@ public: ident.worldId = 67; auto internalZone = terriMgr->findOrCreateHousingInterior( ident ); - if( internalZone ) + if( !internalZone ) { - player.sendDebug( "created zone with guid: " + std::to_string( internalZone->getGuId() ) + "\nname: " + internalZone->getName() ); + // an error occurred during event movement + // lol + player.sendLogMessage( 1311 ); + player.eventFinish( result.eventId, 1 ); + return; } player.eventFinish( result.eventId, 1 ); - player.setPos( { 0.f, 0.f, 0.f } ); - player.setInstance( internalZone ); + Common::FFXIVARR_POSITION3 pos {}; + + auto land = zone->getLand( eobj.getHousingLink() >> 8 ); + if( !land ) + return; + + switch( land->getSize() ) + { + case 0: + { + pos = { 0.1321167f, 0.f, 2.746273f }; + break; + } + case 1: + { + pos = { 1.337722f, 0.f, 3.995964f }; + break; + } + case 2: + { + pos = { 0.07214607f, 0.f, 8.217761f }; + break; + } + default: + return; + } + + player.setInstance( internalZone, pos ); } ); } }; \ No newline at end of file diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index 33bcb871..5696a8a0 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -459,6 +459,33 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance ) return true; } +bool Sapphire::Entity::Player::setInstance( ZonePtr instance, Common::FFXIVARR_POSITION3 pos ) +{ + if( !instance ) + return false; + + m_onEnterEventDone = false; + + auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto currentZone = getCurrentZone(); + + m_prevPos = m_pos; + m_prevRot = m_rot; + m_prevTerritoryTypeId = currentZone->getTerritoryTypeId(); + m_prevTerritoryId = getTerritoryId(); + + if( pTeriMgr->movePlayer( instance, getAsPlayer() ) ) + { + m_pos = pos; + + sendZonePackets(); + + return true; + } + + return false; +} + bool Sapphire::Entity::Player::exitInstance() { auto pTeriMgr = m_pFw->get< TerritoryMgr >(); diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 2721bba2..218b27f9 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -482,6 +482,9 @@ namespace Sapphire::Entity /*! sets the players instance & initiates zoning process */ bool setInstance( ZonePtr instance ); + /*! sets the players instance & initiates zoning process */ + bool setInstance( Sapphire::ZonePtr instance, Sapphire::Common::FFXIVARR_POSITION3 pos ); + /*! returns the player to their position before zoning into an instance */ bool exitInstance(); diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 575c60b7..9e260c61 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -287,7 +287,7 @@ Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createInstanceContent( pTeri->name, pInstanceContent->name, instanceContentId, framework() ); pZone->init(); - m_instanceContentToInstanceMap[ instanceContentId ][ pZone->getGuId() ] = pZone; + m_instanceContentIdToInstanceMap[ instanceContentId ][ pZone->getGuId() ] = pZone; m_instanceIdToZonePtrMap[ pZone->getGuId() ] = pZone; m_instanceZoneSet.insert( pZone ); @@ -381,7 +381,7 @@ bool Sapphire::World::Manager::TerritoryMgr::removeTerritoryInstance( uint32_t i if( isInstanceContentTerritory( pZone->getTerritoryTypeId() ) ) { auto instance = std::dynamic_pointer_cast< InstanceContent >( pZone ); - m_instanceContentToInstanceMap[ instance->getInstanceContentId() ].erase( pZone->getGuId() ); + m_instanceContentIdToInstanceMap[ instance->getInstanceContentId() ].erase( pZone->getGuId() ); } else m_territoryTypeIdToInstanceGuidMap[ pZone->getTerritoryTypeId() ].erase( pZone->getGuId() ); @@ -486,8 +486,8 @@ void Sapphire::World::Manager::TerritoryMgr::updateTerritoryInstances( uint32_t Sapphire::World::Manager::TerritoryMgr::InstanceIdList Sapphire::World::Manager::TerritoryMgr::getInstanceContentIdList( uint16_t instanceContentId ) const { std::vector< uint32_t > idList; - auto zoneMap = m_instanceContentToInstanceMap.find( instanceContentId ); - if( zoneMap == m_instanceContentToInstanceMap.end() ) + auto zoneMap = m_instanceContentIdToInstanceMap.find( instanceContentId ); + if( zoneMap == m_instanceContentIdToInstanceMap.end() ) return idList; for( auto& entry : zoneMap->second ) diff --git a/src/world/Manager/TerritoryMgr.h b/src/world/Manager/TerritoryMgr.h index b32c9fcb..1905b7f6 100644 --- a/src/world/Manager/TerritoryMgr.h +++ b/src/world/Manager/TerritoryMgr.h @@ -176,7 +176,7 @@ namespace Sapphire::World::Manager LandSetIdToZonePtrMap m_landSetIdToZonePtrMap; /*! map holding actual instances of InstanceContent */ - InstanceContentIdToInstanceMap m_instanceContentToInstanceMap; + InstanceContentIdToInstanceMap m_instanceContentIdToInstanceMap; /*! flat map for easier lookup of instances by guid */ InstanceIdToZonePtrMap m_instanceIdToZonePtrMap; From e7587972136c61b332e78e42447933b96162558d Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 20:24:20 +1100 Subject: [PATCH 277/385] minor refactoring and zero out model cache arrays on init --- src/world/Territory/House.cpp | 7 +++++-- src/world/Territory/House.h | 10 ++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/world/Territory/House.cpp b/src/world/Territory/House.cpp index fe08783d..def91bc6 100644 --- a/src/world/Territory/House.cpp +++ b/src/world/Territory/House.cpp @@ -19,7 +19,10 @@ Sapphire::House::House( uint32_t houseId, uint32_t landSetId, Common::LandIdent m_estateName( estateName ), m_estateComment( estateComment ), m_pFw( pFw ) -{} +{ + m_interiorModelCache.fill( 0 ); + m_exteriorModelCache.fill( std::make_pair( 0, 0 ) ); +} Sapphire::House::~House() = default; @@ -57,7 +60,7 @@ uint32_t Sapphire::House::getId() const return m_houseId; } -Sapphire::House::HouseModelsArray const& Sapphire::House::getHouseModels() const +Sapphire::House::ExteriorModelsArray const& Sapphire::House::getHouseModels() const { return m_exteriorModelCache; } diff --git a/src/world/Territory/House.h b/src/world/Territory/House.h index 21d3ea86..1fa0ca43 100644 --- a/src/world/Territory/House.h +++ b/src/world/Territory/House.h @@ -5,6 +5,7 @@ #include #include #include +#include namespace Sapphire { @@ -17,7 +18,8 @@ namespace Sapphire virtual ~House(); using HousePart = std::pair< uint32_t, uint16_t >; - using HouseModelsArray = std::array< HousePart, 8 >; + using ExteriorModelsArray = std::array< HousePart, 8 >; + using InteriorModelsArray = std::array< uint32_t, 10 >; //gerneral uint32_t getLandSetId() const; @@ -37,7 +39,7 @@ namespace Sapphire void setInteriorModel( Common::HouseInteriorSlot slot, uint32_t modelId ); uint32_t getInteriorModel( Common::HouseInteriorSlot slot ); - HouseModelsArray const& getHouseModels() const; + ExteriorModelsArray const& getHouseModels() const; void updateHouseDb(); @@ -52,8 +54,8 @@ namespace Sapphire uint64_t m_buildTime; bool m_hasAetheryte; - HouseModelsArray m_exteriorModelCache; - uint32_t m_interiorModelCache[10]; + ExteriorModelsArray m_exteriorModelCache; + InteriorModelsArray m_interiorModelCache; std::string m_estateComment; std::string m_estateName; From 35db5865a29ad4991782838d335b357b3eeed03a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 20:26:03 +1100 Subject: [PATCH 278/385] fix eobj id allocation skipping every nth index --- src/world/Territory/Zone.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 699a1dfd..1a3a5745 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -714,7 +714,6 @@ void Sapphire::Zone::registerEObj( Entity::EventObjectPtr object ) if( !object ) return; - object->setId( getNextEObjId() ); pushActor( object ); m_eventObjects[ object->getId() ] = object; From 66964ec8f6892adcbb54df18a41f967d84c9a1aa Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 21:26:32 +1100 Subject: [PATCH 279/385] fix issue where items couldn't be placed in storeroom from inv --- src/common/Logging/Logger.cpp | 10 ++ src/common/Logging/Logger.h | 4 + .../Network/PacketDef/Zone/ClientZoneDef.h | 2 +- src/world/Manager/HousingMgr.cpp | 133 ++++++++++++++---- src/world/Manager/HousingMgr.h | 4 + src/world/Network/Handlers/PacketHandlers.cpp | 10 +- 6 files changed, 130 insertions(+), 33 deletions(-) diff --git a/src/common/Logging/Logger.cpp b/src/common/Logging/Logger.cpp index 1a599551..c051e946 100644 --- a/src/common/Logging/Logger.cpp +++ b/src/common/Logging/Logger.cpp @@ -58,6 +58,11 @@ namespace Sapphire spdlog::get( "logger" )->error( text ); } + void Logger::warn( const std::string& text ) + { + spdlog::get( "logger" )->warn( text ); + } + void Logger::info( const std::string& text ) { spdlog::get( "logger" )->info( text ); @@ -73,4 +78,9 @@ namespace Sapphire spdlog::get( "logger" )->critical( text ); } + void Logger::trace( const std::string& text ) + { + spdlog::get( "logger" )->trace( text ); + } + } diff --git a/src/common/Logging/Logger.h b/src/common/Logging/Logger.h index 876fadc3..b716e319 100644 --- a/src/common/Logging/Logger.h +++ b/src/common/Logging/Logger.h @@ -20,12 +20,16 @@ namespace Sapphire static void error( const std::string& text ); + static void warn( const std::string& text ); + static void info( const std::string& text ); static void debug( const std::string& text ); static void fatal( const std::string& text ); + static void trace( const std::string& text ); + }; } diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 12b452dd..e096fa8a 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -253,7 +253,7 @@ struct FFXIVIpcReqPlaceHousingItem : /* 000C */ Common::FFXIVARR_POSITION3 position; /* 0018 */ float rotation; - /* 001C */ uint32_t unknown3; // always 1? + /* 001C */ uint32_t shouldPlaceItem; // 1 if placing an item, 0 if placing in store /* 0020 */ uint32_t unknown4[2]; // always 0 it looks like }; diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 1d3d079b..8badd385 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -416,11 +416,10 @@ bool Sapphire::World::Manager::HousingMgr::relinquishLand( Entity::Player& playe auto pLand = pHousing->getLand( plot ); auto plotMaxPrice = pLand->getCurrentPrice(); - auto landOwnerId = pLand->getOwnerId(); // can't relinquish when you are not the owner // TODO: actually use permissions here for FC houses - if( landOwnerId != player.getId() ) + if( !hasPermission( player, *pLand, 0 ) ) { auto msgPkt = makeActorControl143( player.getId(), ActorControl::LogMsg, 3304, 0 ); player.queuePacket( msgPkt ); @@ -664,8 +663,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl if( !pLand ) return; - // todo: when doing FC houses, look up the type from the original purchase and check perms from FC and set state accordingly - if( pLand->getOwnerId() != player.getId() ) + if( !hasPermission( player, *pLand, 0 ) ) return; // create house @@ -763,8 +761,7 @@ void Sapphire::World::Manager::HousingMgr::updateEstateGreeting( Entity::Player& if( !land ) return; - // todo: implement proper permissions checks - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; auto house = land->getHouse(); @@ -789,8 +786,7 @@ void Sapphire::World::Manager::HousingMgr::requestEstateEditGuestAccess( Entity: if( !land ) return; - // todo: add proper permission check - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; auto packet = makeZonePacket< Server::FFXIVIpcHousingShowEstateGuestAccess >( player.getId() ); @@ -854,8 +850,7 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player& if( !targetLand ) return; - // todo: add proper permissions checks - if( targetLand->getOwnerId() != player.getId() ) + if( !hasPermission( player, *targetLand, 0 ) ) return; auto& containers = getEstateInventory( targetLand->getLandIdent() ); @@ -993,12 +988,11 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity if( !land ) return; - // todo: add proper permissions checks - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; // todo: check item position and make sure it's not outside the plot - // retail uses a radius based check + // anecdotal evidence on reddit seems to imply retail uses a radius based check // unlink item Inventory::HousingItemPtr item; @@ -1009,6 +1003,8 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity containerId == InventoryType::Bag3 ) { auto tmpItem = player.dropInventoryItem( static_cast< Common::InventoryType >( containerId ), slotId ); + if( !tmpItem ) + return; item = Inventory::make_HousingItem( tmpItem->getUId(), tmpItem->getId(), framework() ); @@ -1042,6 +1038,76 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity player.sendUrgent( "An internal error occurred when placing the item." ); } +void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity::Player& player, uint16_t landId, + uint16_t containerId, uint16_t slotId ) +{ + LandPtr land; + bool isOutside = false; + + if( auto zone = std::dynamic_pointer_cast< HousingZone >( player.getCurrentZone() ) ) + { + land = zone->getLand( landId ); + isOutside = true; + } + else if( auto zone = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ) ) + { + // todo: this whole process is retarded and needs to be fixed + // perhaps maintain a list of estates by ident inside housingmgr? + auto ident = zone->getLandIdent(); + auto landSet = toLandSetId( ident.territoryTypeId, ident.wardNum ); + + land = getHousingZoneByLandSetId( landSet )->getLand( ident.landId ); + } + + if( !hasPermission( player, *land, 0 ) ) + return; + + auto invMgr = framework()->get< InventoryMgr >(); + auto ident = land->getLandIdent(); + auto& containers = getEstateInventory( ident ); + + if( isOutside ) + { + auto& container = containers[ InventoryType::HousingExteriorStoreroom ]; + + auto freeSlot = container->getFreeSlot(); + if( freeSlot == -1 ) + return; + + auto item = player.dropInventoryItem( static_cast< Common::InventoryType >( containerId ), slotId ); + if( !item ) + return; + + container->setItem( freeSlot, item ); + invMgr->sendInventoryContainer( player, container ); + invMgr->saveHousingContainer( ident, container ); + } + else + { + for( auto houseContainer : m_internalStoreroomContainers ) + { + auto needle = containers.find( houseContainer ); + if( needle == containers.end() ) + continue; + + auto container = needle->second; + auto freeSlot = container->getFreeSlot(); + if( freeSlot == -1 ) + { + continue; + } + + auto item = player.dropInventoryItem( static_cast< Common::InventoryType >( containerId ), slotId ); + if( !item ) + return; + + container->setItem( freeSlot, item ); + invMgr->sendInventoryContainer( player, container ); + invMgr->saveHousingContainer( ident, container ); + } + } +} + bool Sapphire::World::Manager::HousingMgr::placeExternalItem( Entity::Player& player, Inventory::HousingItemPtr item, Common::LandIdent ident ) @@ -1107,9 +1173,6 @@ bool Sapphire::World::Manager::HousingMgr::placeInteriorItem( Entity::Player& pl // have a free slot container->setItem( freeSlot, item ); - // todo: see comment above in placeExternalItem where the same func is called - invMgr->saveItem( player, item ); - // resend container invMgr->sendInventoryContainer( player, container ); invMgr->saveHousingContainer( ident, container ); @@ -1176,8 +1239,7 @@ void Sapphire::World::Manager::HousingMgr::reqMoveHousingItem( Entity::Player& p if( !land ) return; - // todo: proper perms checks - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; // todo: what happens when either of these fail? how does the server let the client know that the moment failed @@ -1250,8 +1312,7 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla { auto land = terri.getLand( ident.landId ); - // todo: add proper perms check - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return false; auto& containers = getEstateInventory( ident ); @@ -1298,8 +1359,7 @@ void Sapphire::World::Manager::HousingMgr::reqRemoveHousingItem( Sapphire::Entit if( !land ) return; - // todo: proper perms checks - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; removeInternalItem( player, *terri, containerId, slot, sendToStoreroom ); @@ -1310,7 +1370,7 @@ void Sapphire::World::Manager::HousingMgr::reqRemoveHousingItem( Sapphire::Entit if( !land ) return; - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; auto containerType = static_cast< Common::InventoryType >( containerId ); @@ -1419,11 +1479,13 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p if( !item ) return false; + bool shouldDespawnItem = containerType != InventoryType::HousingExteriorStoreroom; + auto invMgr = framework()->get< InventoryMgr >(); if( sendToStoreroom ) { - auto& storeroomContainer = containers[ InventoryType::HousingExteriorStoreroom ]; + auto& storeroomContainer = containers[ containerType ]; auto freeSlot = storeroomContainer->getFreeSlot(); if( freeSlot == -1 ) @@ -1431,8 +1493,8 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p sourceContainer->removeItem( slotId ); invMgr->sendInventoryContainer( player, sourceContainer ); - invMgr->removeHousingItemPosition( *item ); invMgr->removeItemFromHousingContainer( land.getLandIdent(), sourceContainer->getId(), slotId ); + invMgr->removeHousingItemPosition( *item ); storeroomContainer->setItem( freeSlot, item ); invMgr->sendInventoryContainer( player, storeroomContainer ); @@ -1454,7 +1516,8 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p player.insertInventoryItem( containerPair.first, containerPair.second, item ); } - terri.despawnYardObject( land.getLandIdent().landId, slotId ); + if( shouldDespawnItem ) + terri.despawnYardObject( land.getLandIdent().landId, slotId ); return true; } @@ -1495,8 +1558,7 @@ void Sapphire::World::Manager::HousingMgr::reqEstateExteriorRemodel( Sapphire::E if( !land ) return; - // todo: proper perms checks - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; auto& inv = getEstateInventory( land->getLandIdent() ); @@ -1526,8 +1588,7 @@ void Sapphire::World::Manager::HousingMgr::reqEstateInteriorRemodel( Sapphire::E if( !land ) return; - // todo: proper perms checks - if( land->getOwnerId() != player.getId() ) + if( !hasPermission( player, *land, 0 ) ) return; auto& inv = getEstateInventory( land->getLandIdent() ); @@ -1541,4 +1602,16 @@ void Sapphire::World::Manager::HousingMgr::reqEstateInteriorRemodel( Sapphire::E auto pkt = Server::makeActorControl143( player.getId(), Network::ActorControl::ShowEstateInternalAppearanceUI ); player.queuePacket( pkt ); +} + +bool Sapphire::World::Manager::HousingMgr::hasPermission( Sapphire::Entity::Player& player, Sapphire::Land& land, + uint32_t permission ) +{ + // todo: proper perms checks pls + if( land.getOwnerId() == player.getId() ) + return true; + + // todo: check perms here + + return false; } \ No newline at end of file diff --git a/src/world/Manager/HousingMgr.h b/src/world/Manager/HousingMgr.h index 4f2a6898..deb6c099 100644 --- a/src/world/Manager/HousingMgr.h +++ b/src/world/Manager/HousingMgr.h @@ -159,6 +159,8 @@ namespace Sapphire::World::Manager void reqPlaceHousingItem( Entity::Player& player, uint16_t landId, uint16_t containerId, uint16_t slotId, Common::FFXIVARR_POSITION3 pos, float rotation ); + void reqPlaceItemInStore( Entity::Player& player, uint16_t landId, uint16_t containerId, uint16_t slotId ); + /*! * @brief Returns the equivalent YardObject for a HousingItem * @param item The item to convert into a YardObject @@ -179,6 +181,8 @@ namespace Sapphire::World::Manager void reqEstateInteriorRemodel( Entity::Player& player ); + bool hasPermission( Entity::Player& player, Land& land, uint32_t permission ); + private: ItemContainerPtr getFreeEstateInventorySlot( Common::LandIdent ident, diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index a41ed334..fa6543bf 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -731,8 +731,14 @@ void Sapphire::Network::GameConnection::reqPlaceHousingItem( FrameworkPtr pFw, const auto packet = ZoneChannelPacket< Client::FFXIVIpcReqPlaceHousingItem >( inPacket ); const auto& data = packet.data(); - housingMgr->reqPlaceHousingItem( player, data.landId, data.sourceInvContainerId, data.sourceInvSlotId, - data.position, data.rotation ); + if( data.shouldPlaceItem == 1 ) + { + housingMgr->reqPlaceHousingItem( player, data.landId, data.sourceInvContainerId, data.sourceInvSlotId, + data.position, data.rotation ); + } + else + housingMgr->reqPlaceItemInStore( player, data.landId, data.sourceInvContainerId, data.sourceInvSlotId ); + } void Sapphire::Network::GameConnection::reqMoveHousingItem( FrameworkPtr pFw, From d21b0018dce8f8610f0809e680bfb1772f727f17 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 22:36:44 +1100 Subject: [PATCH 280/385] standardise log names and potentially fix log folder issue on windows --- src/api/main.cpp | 2 +- src/common/Logging/Logger.cpp | 2 +- src/dbm/main.cpp | 2 +- src/lobby/ServerLobby.cpp | 8 +++----- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/api/main.cpp b/src/api/main.cpp index 81aa0024..f287fc08 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -734,7 +734,7 @@ void defaultGet( shared_ptr< HttpServer::Response > response, shared_ptr< HttpSe int main( int argc, char* argv[] ) { - Logger::init( "log/SapphireAPI" ); + Logger::init( "log/api" ); Logger::info( "===========================================================" ); Logger::info( "Sapphire API Server " ); diff --git a/src/common/Logging/Logger.cpp b/src/common/Logging/Logger.cpp index c051e946..dbf83f4f 100644 --- a/src/common/Logging/Logger.cpp +++ b/src/common/Logging/Logger.cpp @@ -25,7 +25,7 @@ namespace Sapphire void Logger::init( const std::string& logPath ) { - auto pos = logPath.find_last_of( '/' ); + auto pos = logPath.find_last_of( fs::path::preferred_separator ); if( pos != std::string::npos ) { diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index 6cce2ac4..b82dde0c 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -104,7 +104,7 @@ int main( int32_t argc, char* argv[] ) std::string database; std::string pass; - Logger::init( "log/SapphireDbm" ); + Logger::init( "log/dbm" ); std::string sFile; std::string iFile; diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index dcdacee1..c0ad8ebf 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -31,12 +31,10 @@ namespace Sapphire m_configPath( configPath ), m_numConnections( 0 ) { - m_pConfig = std::shared_ptr< ConfigMgr >( new ConfigMgr ); + m_pConfig = std::make_shared< ConfigMgr >(); } - ServerLobby::~ServerLobby( void ) - { - } + ServerLobby::~ServerLobby( void ) = default; LobbySessionPtr ServerLobby::getSession( char* sessionId ) { @@ -50,7 +48,7 @@ namespace Sapphire void ServerLobby::run( int32_t argc, char* argv[] ) { - Logger::init( "log/SapphireLobby" ); + Logger::init( "log/lobby" ); Logger::info( "===========================================================" ); Logger::info( "Sapphire Server Project " ); From 06afdfb79ef9f8f187f6b80bfa157e3f5efbdc74 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 30 Dec 2018 23:25:52 +1100 Subject: [PATCH 281/385] hide additional quarters door in private housing --- src/common/Network/CommonActorControl.h | 1 + src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++++ src/world/Territory/Housing/HousingInteriorTerritory.cpp | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 6438bc49..32a00705 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -240,6 +240,7 @@ enum ActorControlType : uint16_t */ HousingItemMoveConfirm = 0x3F9, OpenEstateSettingsUI = 0x3FF, + HideAdditionalChambersDoor = 0x400, /*! * param1 = outdoor furnishings diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 40cd48a3..63ea03ba 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1701,6 +1701,10 @@ struct FFXIVIpcHousingObjectMove : FFXIVIpcBasePacket< HousingObjectMove > struct FFXIVIpcHousingObjectInitialize : FFXIVIpcBasePacket< HousingObjectInitialize > { Common::LandIdent landIdent; + /*! + * when this is 2, actrl 0x400 will hide the additional quarters door + * if it's any other value, it will stay there regardless + */ int8_t u1; //Outdoor -1 / Indoor 0 - probably indicator uint8_t packetNum; uint8_t packetTotal; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 1ad7b57e..63fb581e 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -76,12 +76,14 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone player.queuePacket( indoorInitPacket ); + auto yardPacketTotal = static_cast< uint8_t >( 2 + pLand->getSize() ); for( uint8_t yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { auto objectInitPacket = makeZonePacket< Server::FFXIVIpcHousingObjectInitialize >( player.getId() ); memcpy( &objectInitPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) ); - objectInitPacket->data().u1 = 0; + // todo: change this when FC houses become a thing + objectInitPacket->data().u1 = 2; // 2 = actrl 0x400 will hide the fc door, otherwise it will stay there objectInitPacket->data().u2 = 100; objectInitPacket->data().packetNum = yardPacketNum; objectInitPacket->data().packetTotal = yardPacketTotal; @@ -92,6 +94,8 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone player.queuePacket( objectInitPacket ); } + // todo: if in fc house, don't send this + player.queuePacket( Server::makeActorControl143( player.getId(), Network::ActorControl::HideAdditionalChambersDoor ) ); } void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onUpdate( uint32_t currTime ) From b2b38d2f10e8110095becdedea32589bc27efd1a Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 30 Dec 2018 17:36:30 +0100 Subject: [PATCH 282/385] Added a new table for spawnpoints and initial data --- bin/sql/schema/inserts.sql | 310 +++++++++++++++++++++++++++++++++++ bin/sql/schema/schema.sql | 13 +- src/tools/mob_parse/main.cpp | 37 ++++- 3 files changed, 353 insertions(+), 7 deletions(-) diff --git a/bin/sql/schema/inserts.sql b/bin/sql/schema/inserts.sql index dc9568b9..4ebaea9d 100644 --- a/bin/sql/schema/inserts.sql +++ b/bin/sql/schema/inserts.sql @@ -9183,3 +9183,313 @@ INSERT INTO `zonepositions` (`id`, `target_zone_id`, `pos_x`, `pos_y`, `pos_z`, (6905297, 620, -653.588, 51.867, -790.168, 1.1366, 2), (6906489, 635, -82.295, 0, 8.925, 1.77, 2), (6906492, 635, 100.312, 2.731, -113.366, -0.481, 2); + + +INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -345.388947, 29.566580, -435.753174, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -326.154724, 22.296928, -401.389435, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -244.302933, 12.706744, -305.015015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -302.352875, 13.372667, -300.373566, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.955841, 14.688709, -320.949066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -298.585846, 18.829691, -359.511688, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -275.675323, 22.961006, -380.670990, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -287.137817, 23.382748, -389.604645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.550751, 14.436340, -352.420563, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -246.839096, 15.333442, -347.116882, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -238.478638, 15.116598, -356.427399, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -298.493927, 21.773628, -406.852844, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -269.881897, 14.504688, -322.676117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -272.379456, 14.096419, -318.399017, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -271.760620, 23.480957, -387.760803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -313.823639, 13.033344, -301.501678, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.390060, 14.245410, -457.364075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.925201, 11.680475, -450.890533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.758735, 14.201798, -461.258636, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -20.628424, 11.938938, -439.977692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.013916, 12.245436, -411.487366, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.313797, 12.305261, -314.432495, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.436157, 13.084026, -319.166626, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -198.334290, 12.714041, -360.448151, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.388519, 22.400616, -441.069214, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.498245, 23.399185, -446.166595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.239288, 15.520851, -399.813934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -151.488739, 14.084651, -391.802826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -176.903427, 17.061604, -407.286926, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -200.076279, 24.850960, -447.242645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -216.500504, 27.365400, -473.241180, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'CaptainPetyrPigeontoe_350' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.328251, 51.480759, -227.008499, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -202.810013, 25.391012, -460.873047, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -235.964523, 25.110031, -467.975067, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -199.158157, 14.872395, -396.241333, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -356.450928, 33.451496, -540.853455, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -320.785858, 33.649094, -583.676697, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -287.356537, 30.274841, -561.919373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -249.511169, 25.519537, -483.387787, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -325.360657, 27.810431, -472.799927, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -325.478394, 27.690218, -475.958923, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -335.211273, 36.900539, -595.765808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -318.070435, 36.132381, -591.977966, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -284.451721, 22.047026, -437.852325, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -324.255280, 27.436514, -526.413879, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -370.006042, 35.231163, -487.073334, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -373.264984, 35.985336, -488.961395, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -367.792694, 36.009693, -495.739410, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.364128, 44.093685, 107.553200, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.268539, 46.724518, 136.338364, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.707085, 46.311752, 136.568741, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -358.018402, 33.117115, -563.082275, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.515167, 26.205408, -541.412598, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.101288, 25.391624, -533.395813, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -337.221771, 29.686281, -470.199615, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -250.047440, 31.206146, -576.813782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -248.136444, 33.524559, -595.852356, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -257.733032, 33.874985, -597.828491, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -218.360413, 33.645500, -505.330078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.525543, 31.869547, -509.008240, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.430328, 32.272133, -539.706909, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.613434, 24.118813, -380.878967, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.744934, 23.897331, -381.954956, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -360.261383, 13.775493, -317.929474, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -348.834808, 17.254112, -347.665527, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -361.815643, 16.845871, -349.862549, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -355.717438, 17.858700, -352.803070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -377.243317, 26.654594, -393.651733, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -269.175659, 33.564983, -589.111572, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -207.435623, 32.362934, -565.767761, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -376.526489, 13.896859, -324.553253, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -243.008102, 30.253586, -570.609436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -242.243301, 27.613777, -521.215027, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -420.094330, 12.597722, -311.434753, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -421.849731, 12.510590, -311.934723, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -366.167694, 12.091236, -306.270905, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -58.299580, 55.042175, -257.084961, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.795578, 51.582069, -32.362301, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -28.510176, 47.169777, 7.795540, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.551537, 29.851358, 189.738098, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.262884, 29.407082, 179.518234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.720869, 29.053928, 181.304443, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 4.495502, 30.380665, 172.407364, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.329781, 43.955208, 155.005188, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.518013, 42.989105, 118.780502, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -68.166626, 43.007225, 107.905563, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -61.092205, 43.629402, 111.378723, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.234561, 24.291334, 201.717117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.773578, 23.680052, 196.653931, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.779884, 44.791718, 145.633957, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.749100, 44.637295, 143.545715, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -20.238331, 45.256756, 96.337936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.197205, 44.597931, 113.161217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -17.754864, 45.153427, 99.784790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.992736, 45.949394, 79.764458, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 38.424831, 44.679016, 151.940872, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -1.866279, 24.183924, 198.192154, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.086426, 45.106491, 148.815216, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.979847, 44.280872, 158.869125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.076588, 43.842724, 141.637619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 6.916911, 43.823296, 109.991936, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 8.591410, 27.638182, 213.702469, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.038459, 28.971394, 177.228210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -78.871887, 43.941578, 147.002197, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.422501, 44.440933, 100.524612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.934925, 34.461262, 183.119568, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.059912, 34.235126, 188.966934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.693619, 44.330345, 106.495529, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.875931, 44.091866, 155.132431, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 226.015106, 103.203697, -193.008301, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 253.558899, 105.985802, -214.094299, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 249.144104, 105.712402, -208.740204, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 244.738297, 105.634201, -204.802994, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.339401, 103.033401, -192.118607, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.287445, 48.774925, 60.049950, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 136.677322, 48.342552, 79.262779, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 133.528473, 48.270821, 77.847992, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.654846, 46.787323, 109.788803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 160.743423, 47.474777, 108.471367, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 158.584122, 47.480267, 108.689880, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 130.970322, 46.841934, 109.707222, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 137.913269, 46.945381, 111.036270, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.688782, 48.229084, 67.383591, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 97.552887, 47.999767, 67.711365, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 103.503937, 48.141754, 69.153397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 97.344719, 46.694866, 81.742561, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 87.444679, 46.425037, 120.738876, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 90.658997, 46.397110, 122.156570, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.095657, 46.443115, 117.044342, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 67.960510, 47.640308, 52.202122, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.655762, 47.580715, 63.141129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.554558, 44.667294, 102.201637, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.965904, 44.615826, 98.036583, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 136.463654, 48.419487, 76.549248, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 40.421417, 47.941963, 59.158360, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 108.089668, 46.433601, 104.064827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 107.238647, 46.415787, 105.150032, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.160904, 48.173183, 50.316780, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.956974, 44.704605, 99.881027, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.549736, 57.190449, 214.553436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 108.525253, 56.042690, 209.422760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.051403, 62.446442, 282.129425, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.944962, 61.911633, 276.713409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 70.922646, 56.992622, 225.424026, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.078773, 56.885986, 223.856781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.744236, 57.267506, 242.963562, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.297165, 51.641514, 183.525055, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.394539, 50.344387, 210.498703, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 40.321896, 51.855530, 215.426514, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.232063, 50.115326, 176.923965, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.856224, 50.262341, 179.783936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.554813, 50.278587, 197.175262, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.076126, 51.404095, 181.327026, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 106.336151, 46.542542, 146.037781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.529419, 46.496357, 146.864578, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.411922, 47.397476, 188.868851, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 55.938103, 48.382042, 192.162201, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.970428, 46.898621, 171.290314, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 93.714684, 60.832500, 257.380402, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.119259, 49.030884, 202.622604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 92.332085, 57.267738, 222.708633, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 108.338364, 46.940929, 155.956055, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.729538, 47.873699, 181.971664, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.173416, 47.911686, 182.943954, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 164.362442, 54.497883, 210.910156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 186.164612, 61.510574, 211.963135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 185.987930, 56.263233, 187.923843, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 189.434906, 56.940521, 186.661606, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 190.979340, 60.333061, 200.027451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.632248, 47.897598, 144.888062, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 182.115936, 48.810600, 152.630585, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.268143, 48.080715, 148.391388, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 157.007324, 60.923241, 263.217133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 150.500488, 60.850376, 263.248718, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 146.530884, 57.584221, 233.633820, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 128.803909, 60.055973, 252.144592, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 145.100479, 57.249226, 223.608643, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 139.773010, 57.841290, 226.183258, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 138.917557, 58.084629, 228.757660, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.993903, 51.633678, -102.898903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.280601, 52.694759, -114.580383, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -1.444717, 53.167774, -115.282059, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -10.711990, 49.782681, -90.152298, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.019464, 49.165482, -87.729759, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.284972, 47.606350, 19.982195, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.341366, 50.012794, -60.434803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 12.952839, 50.403530, -58.057556, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 113.687347, 65.358727, -110.080292, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 107.216080, 62.031960, -96.706802, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 103.731094, 62.449772, -104.154373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 77.290741, 49.612831, 0.064280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.626144, 49.297306, 4.778895, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 58.414593, 50.474976, -30.910105, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.437317, 55.576977, -68.951340, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 85.662285, 56.313927, -69.116508, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.731392, 56.317226, -50.044048, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.679257, 49.292801, -27.752888, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.263829, 49.315575, -35.775459, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.821778, 49.282028, -25.081804, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.025280, 49.349777, -5.415370, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 110.613480, 44.009529, 30.942867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 135.623169, 44.819939, 32.029903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.687996, 39.260262, 73.701317, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 33.763969, 42.924706, 30.753731, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -40.181015, 40.679569, 71.883293, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -35.683956, 40.893539, 66.671013, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 14.538228, 43.437088, 46.584648, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -7.279146, 42.683540, 49.196579, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 10.273220, 42.865303, 39.455036, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 12.479734, 43.282387, 45.144421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.434624, 43.189404, 29.502472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 111.008865, 44.158417, 28.212202, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.664551, 58.286568, 220.240219, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 176.934769, 58.712387, 226.232986, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.747498, 60.830498, 274.423828, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 203.351578, 50.978226, 152.279388, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 203.548477, 51.224773, 153.686295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 175.959366, 53.570744, 189.470215, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.472961, 59.694351, 248.385452, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.020264, 55.370415, -69.352966, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.170364, 49.838821, -68.782326, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.571152, 51.888584, -19.764053, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 0.773760, 47.606594, 19.565292, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.204916, 46.720444, -30.901602, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.168560, 60.444397, -183.799896, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.053051, 60.401928, -183.783249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.484033, 54.311432, -156.329300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.599415, 54.562565, -155.812119, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.257294, 53.970779, -149.141663, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.645035, 73.184212, -211.623795, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.141672, 57.110146, -193.953354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.450117, 56.646244, -187.739624, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 90.372414, 66.027878, -163.958939, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.131348, 66.684288, -163.940903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 20.829683, 56.061222, -157.242508, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.480545, 84.157242, -216.300781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.541214, 84.289825, -211.426544, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 116.005386, 67.953743, -142.929062, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 147.584274, 85.442703, -178.240295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 120.868019, 73.653473, -167.020645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.458961, 79.525024, -191.170502, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.138042, 55.869495, -155.769455, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 62.006012, 55.425858, -125.869781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 67.963425, 56.335258, -114.111465, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.461700, 55.657070, -117.027122, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.746140, 67.471092, -137.663147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.973221, 68.098656, -146.530090, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.713570, 67.625000, -143.377502, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.486435, 62.308422, -165.237076, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.644001, 62.305508, -174.715576, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.222466, 63.667103, -168.534195, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.465408, 62.292175, -167.113373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.337288, 76.675690, -190.652710, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.189346, 79.572144, -191.947861, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 32.338299, 61.946495, -192.012360, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.009339, 56.475613, -164.606705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 23.313643, 60.965805, -188.869537, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.576660, 84.558853, -214.791580, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -27.866758, 50.403988, -112.145859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -22.229101, 52.105640, -126.614952, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.155701, 75.448906, -196.027115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.136543, 65.626106, -159.680511, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.210106, 58.112301, -202.417557, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblinfisher_769' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 118.425201, 49.484989, 10.177730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.565399, 49.175140, 13.275840, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.630295, 52.191109, 0.493474, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.709000, 52.181438, 1.958378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.385597, 49.234230, 11.315280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 119.187698, 52.657040, -17.502140, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.246078, 51.459473, 0.485654, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 105.423264, 48.900520, 14.196040, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.599762, 41.054874, -20.094616, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -144.017395, 42.810432, -34.186378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -151.625854, 41.554680, -26.096842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -88.918823, 43.204742, -17.722685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.965546, 48.252819, -102.441193, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -43.827671, 46.200661, 19.798168, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -88.788368, 45.940002, -76.557014, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -92.941093, 46.645500, -87.251610, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -95.979286, 46.592018, -79.841980, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -93.820442, 43.197647, -20.644436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.025192, 44.894878, -44.410561, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -80.286346, 41.722137, 35.408527, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -37.407791, 46.238487, 31.785645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -38.814682, 46.454853, 21.565491, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.277756, 41.351612, -114.713394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -169.266388, 40.687962, -61.911877, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -166.801147, 40.699997, -64.838356, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -101.616592, 45.212582, -124.887360, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -69.954361, 45.725876, -168.462494, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.238197, 45.842312, -175.969131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.504135, 45.709385, -170.983658, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 21.688540, 55.237114, -249.336975, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 21.221603, 55.142979, -251.206650, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.021748, 57.039089, -254.211136, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -113.482796, 43.995758, -128.084473, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -40.277176, 47.483330, -213.903809, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.327293, 45.760178, -76.024277, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.675735, 42.961151, -44.501488, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.782242, 42.689823, -6.933394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -41.639767, 45.214169, 48.610859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -56.309303, 45.660477, 5.984929, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -158.192322, 41.106590, -259.243225, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -157.207184, 41.086460, -260.163269, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -63.083252, 53.688164, -278.163940, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -61.458576, 54.025280, -276.558777, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -75.620689, 51.382935, -245.781509, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.856087, 51.634296, -246.516800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.512016, 51.628036, -245.741226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -34.785534, 55.625523, -241.429657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -41.291142, 55.412819, -245.904037, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -36.349129, 55.578960, -242.701019, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.669804, 58.343464, -263.162811, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.807606, 58.136826, -264.724731, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -94.023582, 48.623371, -195.581924, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -99.659416, 48.012768, -197.962555, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.964874, 45.076744, -291.723206, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.894981, 45.337498, -289.692657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.786194, 52.336086, -244.533859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -69.183395, 46.165981, -305.605804, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -128.199341, 42.753056, -284.560211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.601761, 40.910500, -323.565857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.082520, 41.069489, -322.295532, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -107.989319, 40.836521, -325.645508, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.465107, 45.273018, -370.755737, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -84.872406, 40.256310, -352.051361, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -92.191818, 39.770813, -345.820923, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.554394, 46.347958, -350.959320, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.473343, 46.482601, -347.291534, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.033226, 45.865627, -371.026489, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.798931, 45.616169, -348.236267, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.499832, 47.053680, -242.012115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -103.995613, 46.643417, -239.056519, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -86.179993, 50.484299, -262.635132, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -91.691269, 48.634628, -262.121002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -86.452660, 50.134514, -264.685852, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -31.531996, 54.714878, -264.603302, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -99.645760, 47.782211, -202.084732, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'bogy_342' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.821171, 26.648108, -144.725708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.548843, 26.669088, -132.981705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.434685, 26.604877, -147.973160, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.879177, 25.679827, -158.735397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.083721, 25.258137, -153.525589, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.542942, 28.538513, -107.222115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.779339, 27.603992, -128.726578, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.617275, 26.943687, -131.619720, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -142.926392, 40.314911, -290.996735, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -136.354324, 40.829044, -294.772430, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -48.029114, 54.278446, -241.896179, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -51.581413, 47.112206, -311.481201, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -59.413441, 46.402538, -320.133301, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.052662, 45.887260, -356.489929, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -79.738419, 52.048374, -261.417542, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblingambler_769' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 141.935989, 51.884037, 14.806472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 127.126289, 50.907925, 8.929708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 111.503899, 49.330059, 5.172480, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.747849, 54.673080, -4.795078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.787727, 49.467583, 3.458449, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'woundedaurochs_323' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -133.282837, 45.754066, -217.522751, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -137.267136, 45.618862, -216.675995, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.235107, 44.624092, -218.372223, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -145.960434, 46.086548, -197.344772, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -200.232101, 40.129150, -261.332977, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -183.795349, 41.687798, -245.081512, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -185.965454, 40.926170, -254.748978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -229.571594, 38.839432, -179.839996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -193.934723, 41.542332, -149.620667, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -199.423264, 42.497814, -139.297287, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -178.735687, 43.134167, -176.989685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -128.948746, 47.443077, -164.533234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -120.582161, 47.869087, -173.918777, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -123.605011, 47.818863, -162.689804, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -176.681824, 41.645901, -248.407944, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -213.774139, 38.813259, -150.218536, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -178.535583, 43.628948, -203.078415, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedpirate_348' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -58.565269, 51.362320, -226.270996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -71.680878, 50.965340, -233.694061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -63.299820, 50.321152, -220.334595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.530807, 50.187229, -223.000702, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedraider_349' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.816235, 53.229298, -235.326721, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -64.206528, 51.132904, -224.558258, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -61.834114, 52.017464, -231.658936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -64.276390, 50.332390, -220.639801, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.290398, 40.322010, 573.227905, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -60.314915, 40.110245, 575.792114, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -23.620897, 57.285927, 508.625763, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.468094, 58.483242, 496.386566, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.365952, 51.727959, 549.140564, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -80.817833, 56.661560, 537.505066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.038486, 40.361443, 594.924194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.582077, 40.264317, 598.391479, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -47.518322, 40.373714, 589.616760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.468704, 60.077606, 502.455170, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.901297, 60.020233, 483.755493, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.339584, 55.511475, 507.494324, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.153000, 61.332344, 500.107452, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -26.130857, 46.304897, 551.232422, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.374115, 20.953936, 790.655029, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 143.236206, 21.654545, 825.135742, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.660950, 19.804104, 781.593994, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.304710, 19.838562, 780.547974, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.744324, 8.199000, 801.542908, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 243.316299, 6.389911, 769.215210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.922058, 6.183510, 770.405029, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.742157, 7.694178, 784.369446, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.827148, 7.973563, 787.824646, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 249.842758, 7.710939, 787.673218, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 254.667450, 6.616430, 780.404114, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 213.886414, 25.659513, 805.622131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 120.811371, 25.102345, 819.271606, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 130.967728, 24.257393, 811.500610, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 89.266502, 21.719769, 801.784729, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 24.453007, 16.388350, 783.661865, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 137.162354, 21.831797, 781.869629, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.695816, 25.808521, 757.471802, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -20.255661, 9.615396, 805.790283, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 63.823036, 57.064499, 724.493225, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.239830, 51.769058, 684.438110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.414261, 50.861782, 682.068054, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.595825, 48.787796, 645.855713, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.068626, 48.266430, 631.182983, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.219879, 56.385124, 716.791199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.848076, 54.702995, 729.259705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.545219, 56.787682, 715.667419, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.024426, 35.792965, 690.217041, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.733669, 37.499966, 688.096008, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.624710, 51.260124, 640.301331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.228138, 37.099724, 660.023499, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 202.664322, 47.130844, 40.074265, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.854713, 46.477989, 90.732613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 195.101822, 51.360214, 245.328018, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 72.700020, 51.071037, 160.793518, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -55.088406, 38.074795, 664.306946, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -55.645992, 38.772026, 660.599365, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.556934, 42.180382, 708.252197, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -48.496529, 39.269810, 663.201782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -51.500923, 37.012867, 674.528015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.145434, 42.288139, 706.083801, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.199514, 40.592983, 632.030334, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -2.834037, 40.855797, 621.834290, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.077995, 42.645485, 625.443604, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -127.880661, 8.199225, 662.265625, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -130.271301, 8.760700, 653.775574, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.043037, 3.029166, 802.280579, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -167.360901, 0.192970, 741.616821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.105789, 0.192970, 665.192383, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -115.657036, 3.732756, 702.174438, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.088989, 0.192970, 695.820801, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.347412, 0.192970, 686.557373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.666428, 6.567122, 686.000122, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.962639, 0.833841, 754.274231, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -129.574051, 0.366468, 756.930542, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -78.763962, 1.965495, 762.245728, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -84.255234, 2.316301, 807.157654, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirneggdigger_771' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -152.054932, 4.573110, 658.858643, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -142.595551, 6.078611, 660.024963, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.952896, 1.569027, 667.861206, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -161.990494, 1.669328, 666.421692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -154.867004, 1.251185, 682.037842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.620605, 3.102985, 669.616089, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -140.565781, 1.617873, 716.305237, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -148.567505, 0.750069, 714.199524, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.139404, 0.759766, 712.362000, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 16.537346, 44.088127, 834.352844, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.156769, 48.701702, 870.370544, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.790197, 46.105656, 848.701172, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 33.608295, 45.270161, 818.972778, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 39.663425, 45.700741, 821.791626, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.545862, 42.715298, 761.550659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -23.999332, 42.612450, 757.071289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.315750, 48.374645, 869.111389, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.836945, 80.021965, -349.248810, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 565.216431, 83.095825, -306.819336, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 455.473480, 67.810539, -123.630386, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 375.830872, 66.879967, -107.765045, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.294533, 57.287041, 100.836075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.434448, 64.481537, 64.159660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 38.694130, 63.733395, 68.799767, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.532879, 63.661598, 72.839180, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.264307, 64.356834, 69.366142, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.045307, 64.700050, 69.941322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.921568, 59.784504, 131.917343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.174042, 55.436501, 110.212471, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 62.116161, 57.291229, 105.807106, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.838654, 54.671867, 108.062912, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.651297, 66.863014, 134.103897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.938428, 65.401749, 136.624969, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.469887, 60.747574, 155.960098, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.735464, 60.314034, 151.299133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 18.797560, 62.371342, 146.850464, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 15.261803, 63.832664, 106.379623, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 8.741608, 65.253212, 92.257599, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 10.913162, 64.974815, 95.179398, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.863117, 60.588356, 101.507233, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.030218, 63.985119, 76.442604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.129930, 64.289429, 69.652756, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 27.530689, 60.966793, 122.992928, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.288868, 62.641926, 152.854385, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.169344, 60.889542, 143.065704, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.847337, 67.396812, 93.828651, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.027699, 63.512241, 104.713951, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 15.466980, 64.467873, 94.719208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 9.859295, 65.085213, 95.879517, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 62.250587, 61.661640, 69.098907, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.971352, 49.198536, 165.746689, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.846367, 53.816826, 184.504410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 75.251656, 55.495728, 83.890091, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.773689, 55.349224, 146.168808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.102898, 56.397987, 192.556747, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.251907, 56.542641, 184.209198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.748695, 57.034107, 194.153549, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.792671, 49.618786, 77.402550, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.716331, 42.433197, 102.106140, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.801235, 55.842659, 148.313049, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.123383, 49.023922, 159.378052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.893135, 41.848457, 102.787659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 69.008430, 53.216988, 116.434280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.652199, 53.238319, 90.122620, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.246452, 41.570320, 140.122253, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.747833, 44.100784, 123.993179, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 113.454712, 42.345196, 100.948547, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.571033, 57.356201, 150.570984, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.304482, 55.216850, 151.417862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.113060, 56.823566, 191.221069, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.058884, 55.278248, 143.906418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.773232, 48.285912, 155.548477, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 96.166550, 49.865639, 74.718452, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 85.432297, 51.678909, 87.332741, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.098320, 48.875435, 75.065170, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 66.143730, 59.490005, 78.265450, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.377922, 44.330078, 130.574432, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.169579, 44.106537, 130.386093, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.143463, 54.169704, 106.052872, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 66.322388, 54.924107, 184.590073, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 107.798225, 43.411076, 104.886528, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.880043, 67.458412, 296.623932, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 146.188293, 56.939262, 245.259857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.376389, 55.812046, 253.175720, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 218.216965, 52.296589, 260.076874, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 250.545639, 36.017284, 235.457108, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.294846, 38.279060, 237.271759, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 184.790344, 57.019611, 269.565765, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 183.965454, 56.715187, 268.115601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 231.187881, 34.652035, 207.873764, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 224.039474, 36.268261, 204.835510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 196.098526, 47.213280, 225.738007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 227.140305, 29.550524, 166.387589, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.416321, 44.062424, 196.894440, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 181.006363, 43.680195, 196.869965, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 194.137177, 47.895237, 228.178833, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 153.964737, 64.167671, 315.198730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.200058, 63.085449, 309.499878, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.957993, 63.655045, 311.873932, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 111.903336, 68.743546, 300.661255, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.897453, 68.324715, 295.133606, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.350342, 58.937344, 274.565033, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 187.742783, 55.044521, 261.096619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 216.307541, 51.503906, 257.291656, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 210.699219, 52.011250, 257.106445, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.165085, 38.392544, 233.739548, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 187.012482, 45.573689, 216.676331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 229.088959, 35.555225, 208.886688, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.446045, 30.751472, 160.489532, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 215.104324, 31.385826, 159.672028, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 202.646469, 37.279289, 176.293274, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 177.782684, 44.458412, 196.410294, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.618759, 64.436661, 316.207001, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 151.824402, 58.862495, 273.164246, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.480591, 55.605923, -19.244616, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 411.791534, 54.457600, -15.883924, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 340.543945, 47.122749, 2.214485, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 341.583160, 59.172894, -66.581017, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'rivertoad_313' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.464691, 38.519886, 10.684659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.973785, 37.234180, 46.013535, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.570610, 38.011002, 11.701272, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.236008, 38.309334, 7.205370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 158.442062, 34.370682, 80.349533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 201.666260, 27.524975, 92.516258, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 167.294083, 33.590755, 69.887001, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 153.883469, 34.846092, 74.288155, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.986801, 44.935120, 43.373550, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 224.098328, 52.458633, 24.242342, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 225.999817, 50.733646, 30.041693, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 216.458954, 52.403118, 26.247066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 283.880951, 44.155113, 49.234337, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 283.263702, 41.858246, 62.531952, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 147.989014, 38.185940, 43.552074, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 144.362808, 37.922974, 41.341286, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 239.468414, 43.743702, 48.086830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 183.534637, 41.262024, 52.110279, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 189.437561, 44.447548, 45.937778, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 184.753876, 43.332886, 47.189186, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 244.019852, 36.014511, 69.926308, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 239.753937, 35.597179, 70.454971, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.136200, 50.403240, -13.734234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.027985, 66.161713, -72.315598, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 449.639343, 65.303894, -30.821619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 442.088135, 64.160156, -40.026783, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 455.870239, 55.518864, 3.272704, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 452.671356, 58.115013, -5.166701, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 446.943329, 54.652969, 9.564107, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.063202, 63.229794, -82.102165, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 406.717987, 63.644306, -86.204910, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 363.379822, 49.732506, -10.085771, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.224060, 47.922523, 0.497604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.791046, 48.713047, -2.706928, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 343.845428, 52.141602, -31.888533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 360.562195, 62.739830, -82.151413, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.901367, 59.727901, -61.852295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.609436, 58.438030, -55.536110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 378.224823, 59.231499, -57.050884, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.581940, 54.029053, 19.279335, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.587646, 43.731007, 50.083656, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 204.658096, 42.179863, 52.989445, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 198.983627, 30.358673, 80.954002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 222.884781, 51.949562, 26.155874, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.354279, 39.774525, 40.408192, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.209137, 43.212093, 55.520477, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 189.975784, 40.889244, 55.307251, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 210.336929, 42.171211, 53.502865, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 237.494446, 35.801193, 69.936287, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 272.746399, 46.054150, 36.030727, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 419.832550, 66.125008, -151.399826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 420.032501, 66.434593, -160.272156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 441.862000, 65.614815, -126.050018, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 420.231934, 66.234299, -158.144501, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 440.404388, 65.763298, -128.258789, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 434.575104, 65.704308, -127.933617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 477.989105, 66.571220, -146.671173, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 467.847137, 66.867813, -148.765076, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 396.368256, 67.786751, -122.644615, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 389.902344, 68.438660, -120.238037, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 388.816010, 68.861168, -123.025856, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 351.695587, 69.927399, -125.725754, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 357.954834, 69.522141, -123.606110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 338.487183, 69.478577, -132.456451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.440216, 68.663689, -118.765343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 382.010651, 70.166397, -134.019211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.114655, 70.161736, -143.352936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 390.056458, 69.155167, -140.515961, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 379.822540, 70.397919, -137.378250, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 353.897919, 71.613380, -144.669220, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 351.686157, 71.083435, -140.461899, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'nestingbuzzard_12' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 563.318542, 74.410683, -271.810699, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 558.802734, 74.299782, -270.912262, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 562.022949, 67.962524, -227.877182, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 561.874817, 68.546982, -232.569168, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 568.347595, 73.577438, -268.564087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 528.827637, 77.612038, -287.096863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 529.415894, 79.599213, -294.353790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 538.748596, 75.058891, -274.535675, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 526.682312, 69.835686, -239.749542, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 530.122192, 69.797562, -239.787460, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 519.848328, 69.790367, -238.733307, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 503.513336, 71.486565, -253.849579, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 636.123718, 70.413269, -279.500397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 630.403748, 72.509262, -286.077087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 390.160156, 79.890434, -358.783234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 406.324982, 88.096336, -399.940216, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 409.124756, 87.158852, -397.583557, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 608.237366, 70.946320, -265.898285, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 610.655884, 69.939163, -263.038879, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 605.864258, 71.952057, -270.677063, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 486.796844, 72.703178, -272.439667, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 391.271698, 69.652451, -264.843475, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 386.010254, 71.401779, -254.654022, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.482727, 72.436256, -254.333282, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 698.577209, 67.180229, -298.386536, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 660.052246, 67.938362, -279.966827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 650.803711, 68.715714, -280.011780, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 503.492828, 76.159920, -292.720673, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 496.124176, 76.771576, -299.405273, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.801544, 71.142204, -298.075897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 435.050293, 72.245720, -301.558533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 437.919464, 72.041763, -299.617920, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 358.943481, 73.582802, -315.218323, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 349.780762, 74.740341, -316.816895, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.961578, 74.875626, -321.563171, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.296844, 74.692383, -319.988922, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'cavebat_38' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 233.810730, 73.586388, -273.787872, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 230.908157, 73.656395, -274.500061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.013351, 75.401123, -303.494843, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 285.320435, 75.578819, -265.805176, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.612335, 75.364700, -256.060822, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 278.321503, 73.597031, -235.935959, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 279.102783, 75.624527, -255.437775, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 276.342987, 74.367447, -276.038605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 273.543701, 74.295868, -280.026184, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 236.170349, 75.241707, -332.495361, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 269.015045, 73.683670, -309.586090, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 294.723572, 76.246216, -320.254028, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 294.432831, 76.617851, -316.516144, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 604.106567, 66.095642, -214.137878, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 600.394043, 66.002831, -201.103607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 612.743591, 61.863049, -153.264847, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 627.916016, 61.467808, -169.797104, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 624.263489, 62.610977, -172.166809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 648.127930, 61.767151, -181.579208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 639.136414, 61.900654, -178.588196, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 681.631470, 64.906136, -221.895981, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 683.687561, 64.748779, -220.552322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 680.251587, 65.090805, -224.182343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 679.503357, 65.023972, -222.532898, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 677.820679, 65.290237, -226.927368, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 660.814392, 66.431412, -234.368591, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 664.211182, 66.330055, -236.155014, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 659.342285, 66.287399, -229.376236, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 624.711792, 66.610771, -233.029205, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 638.439331, 65.977501, -211.567291, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 631.613281, 66.114395, -213.538193, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 634.585144, 66.187698, -214.315826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 631.768738, 65.430511, -205.114731, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 623.746887, 66.586647, -229.050339, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 597.572388, 65.932281, -202.829224, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 642.739258, 60.376305, -174.569244, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 612.511047, 62.265327, -155.992722, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 609.297729, 62.941418, -152.494919, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 617.223999, 61.760101, -159.124969, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 581.315125, 63.941509, -162.398743, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 577.759399, 63.908821, -161.433121, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 724.959839, 64.510010, -239.044235, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 638.208984, 66.948196, -227.057037, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 614.043091, 61.041290, -146.291199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 622.407227, 62.909519, -172.249405, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 669.547180, 61.896049, -188.504135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 680.076843, 63.297722, -203.122406, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 676.648438, 60.998432, -187.351532, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'galago_5' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 398.594391, 86.938850, -395.725555, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 385.238983, 81.717377, -370.002289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.627106, 81.745964, -371.062988, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 408.861298, 82.580498, -374.672211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 415.871094, 84.370522, -384.927032, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 421.558533, 84.224174, -378.451904, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 474.853149, 87.663361, -351.449249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 461.404541, 85.193039, -345.374939, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 453.884369, 83.996025, -351.491241, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 428.101532, 77.176521, -330.722809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 393.978424, 76.234848, -331.036102, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 391.122162, 76.014748, -329.418121, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 397.105896, 76.976234, -336.823914, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 532.470581, 91.520287, -385.161407, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 530.146362, 91.061691, -381.784119, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 585.778381, 89.363602, -386.939697, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 656.953186, 78.282013, -356.964355, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 659.677429, 79.926849, -363.085175, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 652.882446, 78.775528, -358.058838, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 513.869385, 87.221413, -358.488800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 595.020081, 99.359871, -474.622345, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 596.605957, 101.166290, -483.939484, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 570.725525, 90.486488, -409.461853, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 639.963989, 75.507866, -317.423309, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 632.261536, 76.737450, -319.611938, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 633.949402, 75.880203, -312.780609, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 582.750244, 77.316277, -287.949646, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 587.057617, 78.599426, -296.115112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 583.232727, 83.028053, -322.348724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 553.331421, 86.246201, -343.383331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 549.962036, 86.221115, -335.880371, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 560.620544, 86.314621, -334.075378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 592.004578, 86.690178, -364.584747, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 596.683838, 87.444733, -370.492584, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'kobolddustman_752' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 517.050964, 96.222397, -459.080231, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsupplicant_754' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 540.745300, 96.927368, -467.733673, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 515.891357, 96.243935, -466.257721, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 372.246185, 28.720036, 741.938660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.128510, 32.244225, 708.033936, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'apkallu_314' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 431.721527, 13.975726, 655.738708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.286865, 13.533363, 675.021545, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.038330, 13.436191, 672.796204, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.155792, 13.959119, 667.944580, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 428.893768, 15.403847, 728.476685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 431.970032, 15.034657, 728.005493, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 419.314087, 17.541180, 740.629883, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.655792, 14.955267, 728.253418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.256073, 26.918362, 711.608459, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 391.824738, 27.036375, 715.442749, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.857025, 27.687635, 714.824097, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.999573, 24.816513, 693.751343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 390.215973, 25.120920, 694.781433, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 348.497864, 31.759195, 729.429321, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 350.386688, 31.448929, 728.785889, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.810486, 34.494507, 699.025513, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.758575, 37.825691, 702.853455, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 290.597412, 43.343941, 745.739685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 293.732147, 42.956852, 744.136902, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.556915, 34.175179, 254.676575, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 306.056396, 32.084148, 523.375427, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 519.251038, 40.352879, 551.294434, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 522.082275, 41.854961, 545.003601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 408.845581, 27.656450, 488.111481, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 334.707428, 36.504086, 423.652527, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 284.726166, 42.087921, 402.735870, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 331.623688, 38.916473, 327.954041, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 232.209991, 55.331787, 617.594421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 309.601624, 36.440109, 593.929993, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 467.868073, 31.961191, 556.752197, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'largebuffalo_322' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 401.396179, 35.054623, 222.734406, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 291.158844, 41.639423, 554.037903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 382.222351, 23.840349, 526.231934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.445770, 29.053875, 521.701782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.082886, 32.692612, 546.509521, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 338.258728, 30.744928, 455.014282, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 312.520599, 37.736408, 434.084412, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 287.192932, 43.570984, 369.160370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.216888, 40.808041, 354.268921, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.005096, 41.719658, 655.549744, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 429.784027, 17.786268, 593.056213, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.085052, 20.037975, 767.870605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 445.827515, 13.115939, 700.180786, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -251.967834, 55.243580, 192.459091, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.392525, 84.774948, -71.764091, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -133.050049, 53.990719, 636.436096, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -154.149033, 63.531036, 694.353882, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -93.800804, 59.829895, 661.897278, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 139.161118, 75.339279, 18.111082, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 143.705627, 73.825974, 6.568444, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -82.297890, 49.768051, 284.502075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 0.242683, 41.477894, 294.645935, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.170158, 77.173737, -19.728859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.733305, 41.245575, 346.205017, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.307009, 42.160084, 346.931152, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -138.975067, 50.036945, 336.339355, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -249.466690, 43.644550, 256.877136, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'giantpelican_178' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -104.625664, 38.006046, 460.946198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.058182, 40.457481, 509.719421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -45.960896, 52.462914, 571.532043, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -55.922276, 51.980762, 578.434753, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.414613, 49.896057, 509.611755, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -68.915504, 44.210693, 544.967285, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -40.563282, 46.516109, 523.413330, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.638638, 44.899216, 519.204956, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'grassraptor_2' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -247.816727, 50.680946, 207.230743, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -165.673279, 55.549320, 634.470032, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -96.612160, 57.008339, 639.203064, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -238.393372, 43.843601, 239.024277, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.185379, 45.833904, 224.204086, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -310.033844, 53.365177, 253.411087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.968750, 77.336281, -36.169071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 138.729279, 91.027161, -76.475929, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 134.107803, 90.189934, -75.294937, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.663414, 87.537735, -90.260155, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -273.921112, 52.281662, 219.633392, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 119.839310, 71.614166, 17.244806, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -106.747353, 60.368134, 674.293457, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.673538, 62.803711, 683.443542, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.672653, 76.129517, -8.622675, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -93.922867, 62.861301, 680.264038, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 125.975220, 83.588005, -59.488007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -164.992828, 62.249355, 682.125305, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -162.238342, 61.626869, 681.015198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.699371, 78.790428, -59.445129, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'snipper_325' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 504.239563, 9.219303, 685.512695, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 472.254883, 10.564069, 726.620361, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 463.649567, 11.310349, 698.085510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 465.627777, 12.656516, 602.219116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 505.001068, 9.415708, 632.124390, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 484.161926, 10.010633, 644.091370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 479.783447, 9.435391, 763.075867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 491.271393, 9.295449, 757.102295, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'corkbulb_384' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -169.711227, 48.139221, 183.802261, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -164.758163, 47.074829, 192.599335, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.419083, 48.265182, 173.729431, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -156.414856, 49.196289, 171.626007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.229843, 48.627834, 172.936539, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -92.152237, 46.671131, 177.070511, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.935814, 46.450417, 178.284103, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -107.492027, 43.030487, 199.119522, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.821083, 39.551929, 204.728775, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -132.937134, 48.119797, 170.243561, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.902214, 42.397972, 199.993027, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -60.683254, 41.885715, 202.716248, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.895386, 14.607802, 272.320496, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 464.343353, 13.820408, 277.345978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 439.958099, 16.836380, 332.653015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.443237, 36.219193, 127.508369, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 437.561188, 34.641438, 198.739212, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -114.906540, 45.180805, 408.725342, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -151.086990, 51.171707, 568.910889, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -308.923279, 45.098831, 464.539001, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -302.912323, 44.708927, 461.839172, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -241.525604, 44.868385, 494.086975, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -232.489197, 45.362839, 567.486084, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -193.868896, 53.098679, 610.272888, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -198.784103, 52.273563, 605.728699, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -276.964813, 44.047970, 328.564941, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -208.194763, 41.863541, 383.252441, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -203.964371, 41.149185, 379.679016, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.629547, 34.494732, 256.320251, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.019539, 34.731869, 223.876038, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'gigantoad_26' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -323.569305, 46.080910, 364.520782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -197.242493, 34.694187, 264.061066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.788895, 35.770496, 242.080597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -131.930069, 35.678688, 237.568268, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -232.206055, 34.845417, 295.551453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -63.805229, 35.052498, 220.223587, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'Bloodshorebell_312' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 539.988159, 10.728779, 201.962463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 508.702332, 9.843376, 210.636063, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 488.300049, 11.344833, 231.362061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 512.723206, 9.212793, 222.065933, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 481.537384, 11.387406, 252.843628, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 525.416382, 9.520628, 250.390350, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 516.614746, 9.196991, 265.035309, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 510.098602, 9.718414, 210.246414, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'goobbue_320' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -142.779907, 45.538643, 390.789978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -8.204351, 40.733112, 387.741608, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.786427, 44.073502, 393.556488, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.590973, 54.865368, 620.933411, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -220.394562, 52.914051, 601.973694, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -140.082657, 48.086334, 541.116150, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -211.088623, 39.729519, 368.213989, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -213.953491, 47.186401, 443.753571, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -195.193054, 47.639656, 498.962738, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -277.234406, 44.030235, 334.434814, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -257.839233, 45.907104, 522.402100, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -196.695114, 46.416176, 571.984924, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'colibri_386' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 522.765137, 30.365868, 187.004410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 516.769836, 31.304415, 186.869141, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.407501, 36.752094, 115.708374, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 430.489563, 36.679100, 101.818298, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.955902, 36.557060, 103.377113, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 475.375275, 31.951229, 214.381836, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 483.411194, 43.005402, 164.453827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 511.686005, 49.788960, 136.333237, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 500.406738, 46.853142, 143.340286, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 415.773193, 35.943077, 154.037125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.130280, 34.927956, 166.278198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.614624, 35.188046, 171.682129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.695526, 36.421738, 194.230072, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.050262, 13.037590, 185.272095, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 456.832764, 12.846014, 149.105515, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'junglecoeurl_117' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -87.302818, 61.613789, 350.757111, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -121.799904, 52.516403, 326.409454, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -102.978989, 46.322708, 283.227692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -143.837524, 40.508278, 285.981903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -186.847992, 38.187733, 344.288849, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -170.481018, 40.745045, 317.857147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.847977, 48.664265, 344.132172, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -126.912247, 48.245762, 314.641449, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 333.649597, 38.490589, 164.717346, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.680969, 39.330353, 169.159546, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -87.352127, 45.814068, 567.012634, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -24.314640, 52.265717, 546.747131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.086487, 37.975540, 475.008118, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'mildewedgoobbue_321' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.688431, 44.764317, 553.852051, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.476135, 36.519455, 219.916962, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.658203, 37.686790, 233.860397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 322.804413, 37.674561, 206.378204, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 313.557495, 38.419243, 219.506363, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 325.863403, 37.460819, 205.065903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.045197, 38.194221, 236.654907, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldmissionary_331' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 339.655701, 36.864342, 239.408051, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 315.073486, 38.121010, 233.173004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.614807, 40.290474, 194.957336, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorthoplomachus_55' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 472.982330, 76.196999, -58.989597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 371.606262, 76.322876, -20.744659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 187.608551, 74.710724, -2.765123, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 285.295349, 76.650215, -0.718120, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortlaquearius_61' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.150146, 76.196999, -8.852811, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 297.365143, 76.319992, -19.353390, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 431.955353, 76.196999, -108.918213, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 205.328918, 73.958359, -23.871384, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorteques_62' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 354.466187, 76.065430, -67.588791, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 389.015991, 76.084824, -102.386803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 481.615387, 77.197006, -107.208000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 429.465088, 76.203674, -63.431820, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 436.628632, 76.196999, -101.585655, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 228.454910, 75.939194, -8.190249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.298004, 74.848045, -23.727840, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.697388, 76.196999, -39.613617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.136505, 76.397003, -61.814331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 413.997803, 76.325714, 0.872293, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 335.799988, 76.196999, -11.489540, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsecutor_63' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 452.249542, 76.228813, -128.922562, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 301.524933, 76.289238, -16.579481, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 205.523087, 75.581001, -33.315983, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 411.744904, 76.196999, -5.216177, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsignifer_64' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 359.907318, 76.619888, -39.989422, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 401.510406, 79.863983, -80.450699, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, 1.148477, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, -34.551071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 211.275253, 74.969193, -10.168123, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 275.107452, 76.457809, -22.407925, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 376.375610, 79.997002, -55.369541, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 474.943909, 76.196991, -97.530579, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 448.056213, 79.863983, -48.739960, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortvanguard_201' ) , 50, 2778 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 355.095093, 76.213654, -93.768280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.403473, 76.478249, -103.176918, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.683380, 76.196999, -97.358223, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 465.146515, 76.196999, -78.248222, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.725006, 76.196999, -41.925694, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 393.013885, 76.262604, -41.708679, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 661.376892, 16.868380, 444.546478, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 600.877197, 5.880996, 485.953308, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 598.322144, 5.898227, 483.624512, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'roseling_22' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 747.951599, 50.427887, 357.928772, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 750.353027, 50.083611, 360.748383, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 743.340820, 44.356922, 397.143066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 678.437561, 19.654554, 435.200378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 667.057800, 20.397568, 429.583344, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 741.121460, 28.184546, 441.007660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 734.497192, 26.854353, 442.302002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 672.214539, 14.595839, 442.895569, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 719.658081, 40.786228, 365.821228, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 715.957581, 39.597771, 371.410339, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 657.032166, 41.796482, 338.018616, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 687.857300, 42.032818, 339.103790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 677.403137, 41.886250, 357.998016, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 696.959045, 28.637814, 408.641937, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 694.449768, 34.261051, 390.357208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 706.790405, 28.210888, 410.849121, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'sewermole_205' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 610.036804, 35.572445, 344.129456, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 608.844360, 34.301891, 347.554077, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 589.346008, 29.897394, 350.330688, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 619.494202, 27.583639, 374.089874, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 621.858521, 29.944971, 367.900574, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 619.407898, 29.057913, 369.502777, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 586.461548, 28.951075, 351.303070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 585.813171, 28.438513, 352.369751, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 622.800171, 41.141388, 327.561768, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 622.963623, 41.739059, 320.949005, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 602.817566, 30.726345, 355.777466, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 617.181580, 32.516930, 357.289886, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 643.447693, 23.634590, 398.243011, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 635.017883, 24.391804, 392.765808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 635.004395, 20.669270, 404.579987, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 598.226685, 25.550039, 368.222595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 634.595825, 42.144840, 321.818115, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'arborbuzzard_12' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 506.149567, 2.814311, 418.210938, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 516.260681, 1.855386, 421.547974, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 448.871796, 9.227687, 418.364410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 511.570709, 3.457108, 411.553375, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 461.846924, 12.663937, 362.355682, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 450.908691, 9.735098, 386.559052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.675018, 10.103431, 384.870239, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 490.583740, 8.330388, 397.629272, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 510.636200, 16.715385, 353.222382, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 448.888367, 5.203311, 276.677948, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 522.148376, 23.025820, 338.460297, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 549.980774, 37.888100, 297.108398, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 560.540100, 24.185499, 348.622803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 557.885254, 29.173893, 333.929108, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 554.530212, 29.420858, 329.752747, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 562.316833, 33.890800, 318.024475, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 503.762207, 17.623161, 322.609985, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 514.717102, 22.343367, 297.317657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 529.777893, 26.199690, 320.881897, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_348' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 611.903076, 43.327553, 310.701385, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 607.670898, 42.955601, 306.352112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 601.489197, 43.952782, 299.576599, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 607.933411, 44.651409, 294.689972, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_349' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 590.237366, 46.126652, 286.961273, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 585.551025, 44.082901, 293.967102, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 600.182373, 43.941280, 299.534485, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 604.942139, 46.820461, 284.395782, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'hedgemole_206' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 240.009308, -11.875637, 94.363434, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 236.622910, -12.374062, 95.346664, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 270.845459, -9.754198, 101.272354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 268.099945, -9.356598, 95.027283, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 267.954834, -8.345027, 88.461983, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.214783, -13.903976, 118.906860, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 249.788513, -12.784965, 108.927460, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.353348, -13.125180, 119.497467, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 218.270966, -15.558857, 108.854996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 222.898697, -14.414904, 103.984398, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 301.762268, 3.169765, 70.885086, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 291.185822, -11.798216, 131.701752, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 346.115662, -19.054857, 220.172867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.560944, -7.906649, 201.375565, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.154724, -8.001914, 208.562607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 308.206299, 3.224269, 66.798668, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.874359, -13.722762, 140.560760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 298.710693, -14.609919, 146.761963, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 307.000458, -20.029356, 160.336914, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.115234, -12.237656, 93.315231, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 278.200012, -9.068469, 105.533852, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 264.399048, -16.985626, 162.506134, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 266.914124, -16.392138, 157.156372, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 324.282349, -4.017180, 105.255798, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rothlytpelican_181' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 134.495255, -15.960920, 55.492996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 162.879456, -14.323977, 79.460434, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 173.172256, -12.719238, 113.497765, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 195.181580, -8.629279, 65.083954, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 119.722115, -17.771116, 161.300476, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 93.570320, -15.437970, 163.421646, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.031578, -15.878393, 123.544548, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 127.459404, -14.926886, 94.082710, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.393642, -1.974696, -13.929848, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.976189, -2.045702, -13.768462, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.400002, -2.953552, -16.400000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 384.199646, 14.428646, 32.482605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 172.820511, -14.820461, 60.165451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 3.016516, -22.292753, 53.719463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.071075, 4.564421, 80.886124, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.787872, 4.598518, 83.138847, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 151.129349, -12.239421, 101.233078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 149.609390, -12.477910, 100.059769, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'killermantis_397' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.943352, -3.992505, -26.552906, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.919285, -3.706397, -31.336760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.056923, -3.885968, -62.313755, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.506714, -10.486404, 8.971105, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.148802, -22.535498, 50.525768, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -14.729313, -22.401009, 41.722015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 24.571882, -23.505068, 112.018021, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 6.203632, -24.387508, 109.371689, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.153160, -22.274078, 64.863579, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 19, 420 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.519829, -0.915667, -68.345375, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.276382, -2.694968, -61.816307, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.460457, -1.391993, -58.048004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 89.436523, -0.989940, -60.869198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.697441, -2.455795, -50.182808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 77.607559, -2.221285, -61.116398, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'preyingmantis_396' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -279.919220, -39.905281, 656.459167, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -275.170227, -39.782280, 655.657288, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -253.976105, -37.625439, 564.579956, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -314.709747, -38.249912, 623.179077, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -343.226685, -40.837242, 665.661011, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -389.110626, -40.132030, 655.361572, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.610077, -39.364208, 701.057129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -242.819107, -37.835190, 663.537170, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -367.344208, -39.756889, 693.627441, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -258.862610, -38.845234, 656.123657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -290.473724, -38.221050, 625.219788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.641068, -38.717575, 499.031586, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -249.695206, -37.244095, 497.706360, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -221.257446, -38.644001, 506.923462, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.924347, -36.732006, 477.895660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -259.013824, -39.834621, 440.567963, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -288.734344, -39.829880, 425.177887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -306.641113, -40.615318, 415.293915, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.500275, -39.220528, 433.955505, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.037277, -38.624527, 514.310486, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -244.434479, -37.127861, 547.532959, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lammergeyer_403' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -450.986206, -37.787945, 738.352051, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -476.749207, -37.986050, 757.037903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -483.847992, -37.370193, 736.790588, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -449.547180, -37.671715, 733.113403, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -502.139069, -36.506023, 743.624451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -448.947144, -36.675556, 703.180054, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -474.291046, -36.357124, 712.860901, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.666382, -41.931458, 742.759705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -333.599945, -41.347382, 708.581604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -333.698303, -41.775959, 714.647217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -290.457306, -41.281891, 688.647827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -242.258255, -40.055676, 710.315002, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'deadmansmoan_20' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.771606, -41.212288, 735.835693, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -346.306793, -41.448574, 720.441650, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.640503, -41.655495, 697.187317, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -308.085052, -41.953552, 708.300720, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -286.262238, -41.513474, 697.558167, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -262.640625, -41.512302, 722.137085, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.341949, -41.249001, 734.726685, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -438.858093, -34.486282, 671.690613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -444.367584, -36.737885, 712.967957, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.395172, -37.043217, 719.711182, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -469.749176, -37.181816, 722.876709, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -469.493256, -37.631023, 748.576294, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'whelkballista_2835' ) , 44, 4300 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -96.910004, -30.450001, -92.839996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -91.264221, -30.197689, -128.465698, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -84.733398, -29.587280, -110.399101, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.730499, -32.303410, -133.012894, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -103.441002, -31.479370, -116.075401, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -166.464432, -35.424061, -11.169662, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -204.166534, -39.734409, -90.640930, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -192.958786, -40.200939, -43.811974, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.541470, -23.889269, -92.920448, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.317398, -40.194572, -88.486130, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -158.070892, -33.927280, -101.886833, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.532974, -29.059402, -141.626770, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -59.227985, -24.572134, -117.284523, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -129.817825, -32.226665, -109.254219, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -189.200836, -38.028507, -83.829842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.513153, -30.945234, 1.708608, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleSahagin_765' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -213.979187, -40.301193, -87.161430, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -38.060734, -21.651909, -161.480682, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -75.913696, -28.427610, -146.562897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -155.277664, -34.216839, -89.592522, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -143.651108, -26.894556, 20.560968, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.166702, -32.339401, -135.991302, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -104.014999, -31.623831, -118.950104, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -155.565796, -38.010250, -31.357361, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawSahagin_766' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -75.944153, -27.532305, -144.487701, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -101.024223, -30.306547, -149.355865, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -190.973221, -36.762527, -111.709793, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.365509, -31.385445, -102.356194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.840622, -29.611879, -107.485497, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -157.610504, -38.071289, -31.235229, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.234207, -38.051666, -76.633934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -132.165466, -30.458733, -8.729252, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfspineSahagin_767' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -94.161926, -30.635151, -89.379402, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -48.966251, -22.665247, -124.681503, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -106.523300, -31.509951, -130.479904, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -166.765900, -32.578060, 5.874695, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -215.871918, -40.822292, -67.836021, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.256203, -30.084669, -124.693199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -115.534233, -26.784563, 18.541813, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.201096, -32.487724, -113.122444, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsaelbst_2832' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -274.764923, -40.703537, -336.407104, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -277.360535, -41.199173, -352.245148, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -257.346191, -41.214268, -330.312500, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -218.294724, -40.989071, -291.742096, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -181.207321, -41.844490, -270.081940, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -196.028442, -41.727314, -288.479828, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'freshwhelkballista_2836' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.392303, -41.489319, -349.569000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -283.527893, -41.916561, -357.747803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.894806, -41.733459, -359.090607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -293.720886, -41.641911, -367.788208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.062988, -42.038639, -367.910309, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalscaleSahagin_765' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -223.208710, -41.764877, -196.344330, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -168.981369, -40.908073, -290.732086, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalclawSahagin_766' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.990204, -41.031559, -289.265289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -212.413269, -41.816219, -228.919693, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalspineSahagin_767' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -237.445602, -41.977600, -231.189499, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -243.732407, -41.032051, -179.705597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -237.476196, -42.008121, -307.362488, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -197.619598, -41.428280, -317.036713, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -202.472000, -42.008121, -244.739395, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoaltoothSahagin_768' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -147.081696, -41.031559, -291.035309, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.826675, -41.672653, -219.247238, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.340927, -40.254555, -214.701431, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -203.427094, -41.483276, -281.547546, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -139.955750, -40.404739, -240.812851, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -265.469360, -42.719551, -266.499634, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -281.116913, -42.008121, -359.151611, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.307190, -42.008121, -365.072113, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -293.720886, -41.580872, -346.913910, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.652802, -41.672421, -327.657013, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.652802, -41.733459, -365.011108, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -228.354919, -39.483036, -345.774384, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.453400, -41.580872, -359.822998, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'axolotl_139' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -390.927277, -34.285240, -295.150085, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.479279, -36.514393, -288.353485, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -371.290802, -37.204941, -296.766418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -355.628601, -37.750099, -302.916290, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'reinforcedwhelkballista_2837' ) , 48, 5138 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -423.105713, -33.005535, -367.492004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -415.392700, -33.236031, -358.443909, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -425.528412, -33.066349, -357.686798, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -395.040802, -38.559631, -343.953613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -377.859192, -39.444641, -348.989105, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'seawasp_312' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -373.559967, -39.256435, -203.779465, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.283478, -39.316368, -202.468887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -393.575012, -41.767242, -203.534607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -360.035217, -38.911335, -222.539642, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -354.089874, -39.660213, -201.978973, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -355.678864, -37.158779, -241.068436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -350.930023, -37.643482, -237.743713, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'trenchtoothSahagin_768' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -78.263550, -26.108219, -70.908691, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.338928, -25.642410, -74.728661, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.901482, -25.768646, -86.375961, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleReaver_773' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -441.402222, -40.701698, -233.601974, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawReaver_774' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -441.245209, -39.475101, -220.111496, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfeyeReaver_776' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -441.435974, -38.926212, -213.282013, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfscale_765' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -422.721344, -33.686390, -326.296539, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -415.514801, -33.350899, -355.147888, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -344.364044, -39.466038, -361.109711, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -425.589386, -33.107040, -354.529510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -361.484436, -35.257927, -411.014862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -352.739044, -38.351639, -377.168549, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -319.625488, -39.391800, -300.050995, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -440.940002, -32.821819, -363.149506, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -425.913300, -32.916882, -368.407501, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -458.416687, -32.786930, -362.740295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -397.546295, -37.902161, -342.084900, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -350.843597, -35.153549, -405.412476, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -370.744995, -35.287498, -414.281708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -375.469208, -39.479321, -346.811401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.930511, -39.354549, -298.395599, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'wildwolf_303' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -381.951752, -1.865713, 212.042023, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -371.391357, -0.687764, 196.625290, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.788086, -4.146658, 249.937302, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -424.664642, -4.389118, 254.018524, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -462.297302, -7.249224, 236.271515, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -398.920288, -2.606930, 180.822937, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -448.650696, -11.947705, 209.230209, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -402.708191, -3.109433, 174.303268, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -422.501465, -7.614745, 201.604248, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -388.824432, -2.578248, 177.678131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -354.077728, 0.536767, 174.858154, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -465.114685, -3.054204, 249.472595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -467.935242, -2.167278, 250.799210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -439.207886, -7.911947, 241.229767, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.281189, -1.188653, 102.061584, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -435.544128, -0.955348, 123.893471, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -437.993896, -1.031299, 126.314613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -414.902252, -2.773921, 160.474014, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'stoneshell_382' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -422.713104, -2.312514, 137.219559, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -373.282501, -2.801552, 149.988815, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -371.671844, -2.430629, 156.019821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -396.004242, -2.555122, 148.152954, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -383.427673, -2.876643, 160.658722, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -403.971313, -2.240242, 157.015625, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -405.759705, -2.889138, 139.678970, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -391.970581, -2.744184, 146.105545, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -380.797363, -2.897662, 146.567444, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'forestyarzon_159' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -414.757141, -3.022781, 28.021654, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -405.892303, -2.628568, 43.051041, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -515.360107, -3.022781, -9.979798, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -522.299805, -3.022781, -10.434307, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -483.240540, -3.022781, -1.752226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -426.197021, -2.781258, 25.197863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -432.669647, -2.654341, 20.002827, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -432.868530, -2.043492, 62.119469, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -475.415741, -2.053370, 23.742413, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'coeurlpup_28' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -592.409119, -0.896684, 0.386436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -564.974304, -0.983113, -13.998669, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -591.289734, -2.385894, -32.616730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -626.554626, -2.556157, -3.032897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -644.733398, -2.579175, 5.788857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -592.026917, -0.139966, 8.961593, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -589.191589, -1.701380, -16.803839, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -581.001099, -1.248399, -12.149311, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -555.803711, -1.936794, -2.565444, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldfootman_328' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -377.173157, 38.711910, 29.792322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -404.069885, 35.812199, 36.532841, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -489.859711, -2.618297, 38.082218, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -396.071106, 43.296131, -2.805411, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -439.528412, 32.168262, 55.036327, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.465546, 36.479664, 26.908142, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -484.342163, -1.634364, 24.240206, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpickman_329' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -491.041992, -2.412468, 34.461601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -428.479553, 38.496067, 14.828461, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -402.817291, 36.296867, 33.293110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -391.328400, 44.270889, -5.423687, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -476.028992, 29.465151, 52.901867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -477.677368, 27.532982, 57.619347, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -480.850861, -1.622468, 35.452560, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -380.239441, 40.455021, 15.811886, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -467.829315, 31.729000, 45.958958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -427.287354, 35.776600, 40.411327, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'mudpugil_383' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 561.284851, -1.738799, 205.528839, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 623.663635, -2.932235, 132.726913, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 640.196655, -3.022781, 174.134933, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 645.843750, -2.975219, 170.168198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 638.579102, -2.995459, 186.706192, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 584.620300, -2.303465, 169.148834, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 593.450562, -2.844428, 139.766556, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 574.049438, -2.987645, 137.301453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 580.756775, -2.611646, 131.970093, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 664.319397, -2.598749, 162.226898, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 542.460022, -2.149217, 151.568039, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 541.605957, -3.010482, 157.341522, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 601.389954, -2.892532, 128.130249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 617.788452, -2.952927, 183.668243, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 661.936829, -1.528112, 134.098465, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 595.966858, -1.835564, 221.160812, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 695.272278, 0.237290, 145.195099, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 570.693848, -1.735677, 191.361359, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 685.403076, -0.007515, 122.931915, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 593.693115, -2.607079, 207.171448, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 619.854187, -3.022781, 198.036560, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 705.063721, -0.073885, 131.977234, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'uragnite_389' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 450.240051, -2.881454, 177.001404, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 397.457977, -2.500741, 180.186234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 437.507446, -2.849627, 192.575226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 439.095184, -2.668610, 187.743286, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 363.489441, -2.988054, 127.097084, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.101715, -2.852393, 141.769638, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 394.360138, -2.946918, 141.727402, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 415.567535, -3.022781, 152.113510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 358.055237, -2.438254, 31.307247, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 373.647980, -2.204629, 21.426832, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 376.822510, -2.764290, 20.605335, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 361.111664, -2.359983, 141.265671, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.486603, -2.883696, 54.215927, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 386.960846, -2.544994, 180.465637, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 321.662354, -1.706533, 0.576895, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 299.033508, -2.221566, 89.648232, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 339.212128, -0.687913, 207.471146, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 321.650604, -2.761652, 82.931305, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.731079, 2.535215, -15.226002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 344.894470, -0.917974, 206.625656, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 358.525208, 2.440526, -4.988740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 359.317413, -0.445646, 214.080124, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 338.428162, -2.649891, 100.926704, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 351.069305, 0.455040, 2.362295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 298.613068, -2.510823, 96.570503, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 352.498535, -2.229944, 192.390152, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 274.326050, -3.022781, 220.717575, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.186829, -3.022781, 246.639771, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 275.964752, -3.022781, 218.849091, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'salamander_139' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 330.537537, -2.184135, 153.375824, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 305.825378, -3.022781, 146.717667, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 296.616180, -3.013719, 160.163116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 276.898376, -3.022781, 81.090591, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 286.759888, -3.022781, 38.590855, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 293.494293, -3.022781, 38.362095, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 325.467896, -2.961442, 28.651447, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 287.232941, 22.459917, -94.937210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 339.338654, 28.810354, -152.997025, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 369.648438, 23.634579, -124.963051, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 334.573517, 13.179729, -64.033875, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.261505, 24.531950, -141.892105, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 262.362488, 26.421909, -92.842506, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsidesman_330' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 374.994720, 25.746836, -131.705902, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 261.838196, 34.373199, -145.137985, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 259.484711, 26.393141, -94.860497, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 314.082611, -2.220537, 16.427921, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 304.273346, -3.022781, 127.453300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 250.051987, -2.988935, 83.435684, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 243.946030, -2.814081, 36.932377, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.924103, -2.738626, 94.117409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.596893, -3.008550, 85.275566, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 154.950455, 25.137733, 220.499100, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -98.540382, 85.807083, -350.417999, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.565582, 82.029961, -330.553619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -187.955566, 82.418648, -242.364868, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -68.849266, 77.210121, -228.975296, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -32.679142, 78.788490, -197.195984, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.138035, 76.590508, -179.011887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -138.190628, 74.867424, -197.155426, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -115.129318, 69.254097, -164.934433, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 122.724625, 28.303354, 58.724297, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 160.029358, 37.028255, -21.424707, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.821182, 37.507317, -27.008282, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -261.132935, 64.443398, -90.575928, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -167.294601, 66.193542, -115.411652, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.072603, 12.420581, 249.430618, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 9.859401, 26.299496, 161.978531, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -201.519424, 76.680183, -189.318375, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -45.378353, 4.594343, 327.925201, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.113718, 9.739895, 301.944397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -264.697968, 84.737694, -278.522827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 88.354134, 17.421412, 203.354218, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 8.481019, 31.876749, 95.327995, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 102.454002, 21.556597, 133.843796, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -267.482941, 83.303230, -182.044739, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'basilisk_173' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -2.600920, 24.342901, 176.407578, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -26.477421, 23.268620, 166.940125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.336456, 29.613770, 53.853245, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.270794, 31.794752, 85.501617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.731804, 27.457956, 86.951363, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 153.025681, 26.303059, 60.375832, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.607170, 19.393501, 136.708725, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.706234, 12.549705, 269.077087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.741432, 17.201839, 269.658844, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.052513, 9.488839, 260.401764, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'ahriman_183' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 141.796097, 37.025734, 1.178478, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 122.859512, 37.629654, 2.002243, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 127.627159, 33.635292, 21.377235, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 70.859192, 17.383774, 184.972321, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.422623, 18.933929, 252.523972, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.614525, 21.238791, 254.591293, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 113.948357, 22.440674, 195.022736, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 93.687889, 16.169958, 214.933899, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.220345, 16.107920, 239.544205, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.353172, 16.866383, 248.478348, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'magitekvanguard_200' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.913391, 85.775131, -336.263336, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -275.471313, 86.578674, -250.622040, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -272.031189, 86.589439, -210.045593, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -208.797012, 82.544693, -315.692413, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -248.703522, 84.883377, -294.410217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -201.729172, 73.905502, -152.126556, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -215.444275, 79.656067, -224.448868, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.075104, 80.036079, -227.536377, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.136047, 25.071756, 107.612526, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorthoplomachus_55' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -91.872368, 75.002228, -228.461075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -232.630829, 81.257980, -181.372650, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortlaquearius_61' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.689713, 79.861855, -285.206177, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.244980, 83.404892, -326.932861, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.613144, 85.306969, -271.404236, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorteques_62' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -145.073380, 76.635963, -224.310577, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -205.944687, 77.407257, -185.684372, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -177.328827, 74.465652, -181.077026, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsecutor_63' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -134.915619, 79.662804, -321.463623, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.025040, 83.300125, -278.188354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -224.933304, 84.489143, -253.589706, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsignifer_64' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.623947, 79.470093, -288.801514, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.367599, 84.477493, -253.589706, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -122.910088, 77.754440, -253.873520, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -229.763550, 81.019020, -190.646881, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -182.051605, 83.428810, -347.554321, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.474274, 75.299904, -194.970032, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 21.578611, 4.975241, 26.377096, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'kedtrap_23' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.868296, 7.106042, -17.171526, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.205910, 5.484024, 47.603928, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'riveryarzon_159' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 139.399139, 6.263747, 26.419214, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.402847, 5.237850, 17.936674, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 151.709412, 5.807860, 10.336679, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.642181, 5.755404, 51.438736, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 98.720840, 4.971702, 52.386410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.767986, 4.761376, 66.993118, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.680748, 4.953293, 72.245308, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.079338, 5.674155, 66.390022, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.758194, 8.080178, -56.307663, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.938576, 14.116609, -81.036194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 100.920952, 7.607679, -55.427074, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.284698, 4.644264, 45.026176, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.348400, 5.031322, 66.236412, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 253.061035, 12.450743, -152.553329, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 250.477966, 10.586761, -169.728119, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.365814, 9.617976, -178.429169, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 281.224182, 9.269560, -169.353790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 296.623962, 11.894608, -161.868713, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 295.196777, 10.541725, -183.692078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 238.942795, 18.960083, -144.317749, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 292.637482, 10.876761, -164.807648, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.622810, 7.818439, -111.865150, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 75.660446, 7.607049, -108.592979, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.906487, 7.766785, -112.382797, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.243660, 8.847745, -90.705162, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 69.137863, 8.508118, -105.323936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.866234, 7.953293, -107.132462, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 157.845596, 16.789454, -140.097214, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 167.626282, 17.473413, -145.147446, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 135.518982, 19.229555, -146.295181, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 170.907196, 17.193430, -151.395401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.376198, 19.198467, -146.837601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.090240, 20.705063, -111.209366, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 123.185997, 20.035912, -97.032173, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.000183, 19.030325, -159.014297, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.188995, 19.796492, -142.951370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.414299, 19.054943, -145.398300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.760773, 18.225830, -160.113007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 121.843201, 20.218161, -96.971130, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 171.717804, 17.307770, -150.139297, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 102.838219, 20.272621, -160.238190, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 278.901642, 3.911347, 46.565025, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 324.412292, 5.306582, -42.944809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 342.498230, 8.256850, -41.135147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 272.340118, 3.846904, 13.428856, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 264.393372, 2.637880, 23.084396, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'goblinthug_52' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 320.515686, 2.215992, -18.509239, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 331.883972, 2.904445, -16.655821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.658691, 2.299638, -15.389510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 317.199188, 0.290855, 13.417520, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.366119, 2.005001, -17.149740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 320.698792, 2.227228, -15.091220, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 313.945190, 0.195134, 8.234367, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.018890, 0.478852, 12.307590, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 292.225494, 0.411926, 13.809330, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 311.033295, 0.517801, -0.204813, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 306.959686, 0.228231, 2.388638, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 300.585052, 0.253785, -0.255648, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawcutter_311' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.521759, 1.297850, -25.194082, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 435.940704, -0.982693, 5.487583, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 435.723999, -1.106398, 3.907724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 399.968506, 4.714575, -41.852612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 362.637268, 1.761672, 9.493670, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.912415, 2.690911, -10.183659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.075500, -1.022401, 21.408360, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawpoacher_79' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.405365, 2.269864, -31.143581, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 436.545288, -1.022401, 4.501364, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.771088, 2.792354, 1.937849, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 400.476288, 4.241707, -40.787842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 376.814392, 4.773165, -33.204460, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawhunter_81' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 438.216705, 0.502468, -19.721241, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 392.419891, 5.388818, -31.738232, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 404.366333, -0.462935, 16.939405, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.472290, -0.900329, 20.340231, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.160797, 2.597828, 2.700800, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'midlandcondor_13' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -281.824707, 1.375012, 337.180084, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -120.189743, 1.298543, 297.432922, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.129181, 1.586027, 290.873566, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -180.149811, 1.329228, 259.241241, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -174.450653, 0.826647, 326.032074, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -233.590225, 0.609150, 303.478058, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -208.225418, 1.091709, 321.095123, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -189.756714, 0.523384, 276.984833, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -154.484329, 0.228401, 290.810242, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.577454, 1.781374, 344.390350, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -243.982834, 0.294519, 312.494995, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'bigmouthorobon_302' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -136.303848, 0.235673, 470.061859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -135.688385, 0.209063, 466.644989, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -186.763107, 0.368787, 478.433899, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -172.772980, 0.564238, 437.816650, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -163.358063, 0.632972, 460.179504, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -191.338089, 0.343685, 474.522247, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -180.257813, 0.435515, 480.663116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -173.713257, 0.153294, 446.080353, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -307.343994, 1.574708, 411.567749, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -252.784439, 0.284077, 461.137482, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.081299, 0.939354, 467.506958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -316.329285, 0.085494, 443.564148, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -205.251495, 1.132652, 434.677643, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -284.932007, 0.811789, 409.177917, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -293.701935, 0.574562, 415.584351, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -239.102600, 1.174322, 487.598419, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -272.729065, 0.371793, 454.892212, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -301.002502, 0.971183, 477.373108, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -223.200058, 0.360053, 432.863922, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'revenant_305' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -361.600006, 1.953293, 461.799988, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -358.479858, 1.895434, 458.000153, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -341.376892, -0.246708, 431.042175, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -334.172821, -0.142858, 441.960754, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -362.200012, 2.353294, 450.799988, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -334.659546, 0.086901, 455.306061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -337.223297, 0.167704, 454.781830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -345.804718, 0.536044, 449.956573, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.595444, 0.654059, 440.756439, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.552437, 0.556002, 337.963379, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.910637, 0.399478, 426.748169, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.549438, 0.759574, 446.906830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -127.783997, 0.153294, 343.045929, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -124.156303, 0.622273, 390.338318, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -123.271049, 0.153294, 336.635468, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -102.907066, 1.110574, 385.834503, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.304504, 0.220831, 460.319794, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.513351, 0.254719, 441.550232, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -104.048363, 1.260202, 382.858948, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.559479, 0.927049, 383.122620, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'stroper_304' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -18.452950, 0.207803, 361.804718, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.646904, 0.492321, 373.455322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.496044, 0.153294, 322.616821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -60.369980, 0.620001, 331.898956, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -44.584179, 0.468473, 399.977570, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -79.705612, 1.004676, 377.104370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.331188, 0.153294, 341.051147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.701607, 0.650173, 324.390594, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -24.597773, 0.336645, 382.682190, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -28.498209, 0.238283, 382.024170, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -38.815331, 0.878316, 326.413666, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -17.169430, 1.614668, 343.095428, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -67.169716, 0.450503, 346.946411, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 218.278320, 9.626074, 42.293156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 201.231918, 13.938748, 18.245020, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 208.655640, 12.012166, 40.583130, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 243.538208, 6.369292, 43.698978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.841019, 9.326168, 42.316071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 215.659210, 9.621600, 21.393459, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.666031, 7.852551, 27.424515, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 205.594772, 11.920905, 12.274120, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 193.294479, 14.422457, 15.546280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.509689, 13.172311, 15.140548, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.165024, 15.262697, 20.420422, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.671593, 18.664917, 103.629242, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 122.636292, 19.212322, 85.012367, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 118.593910, 19.753290, 81.778809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 166.242508, 17.621466, 71.034737, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 190.215240, 16.190983, 24.241163, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 194.059692, 15.553300, 58.400002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 193.453125, 15.622672, 59.301884, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 148.602325, 17.591097, 64.458740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 110.585899, 19.560278, 116.602638, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.674263, 26.419935, 135.548584, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 69.238647, 23.642693, 202.599472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.212658, 20.345995, 218.766418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 49.663757, 12.027298, 281.284607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.175465, 11.474810, 285.991211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.829185, 25.959589, 143.245911, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.810070, 26.042759, 138.357468, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.381493, 23.541809, 246.465607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.844872, 10.819162, 285.051788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.966400, 5.725693, 299.167664, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.123070, 22.513016, 213.663788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 88.113548, 23.136980, 172.128036, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.183640, 22.950760, 172.328491, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.987141, 26.500879, 130.803696, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 35.066334, 25.258486, 122.712532, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 63.075527, 18.440212, 254.309052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.862797, 26.633394, 135.292236, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'will-o-the-wisp_45' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.220726, 24.047203, 202.930588, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 75.620148, 23.101341, 173.372421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 87.131577, 22.574894, 147.871826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 85.647774, 24.132235, 202.558289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 134.761444, 28.608131, 167.188324, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.156998, 25.553301, 181.000000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 130.522385, 28.263964, 163.548691, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 147.503143, 32.914188, 178.984558, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 35.917995, 20.827244, 200.469391, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.165949, 21.876945, 190.043381, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.875324, 23.129019, 189.192474, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 44.467606, 20.028774, 208.815323, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.018549, 21.832933, 191.113770, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 458.028564, 1.207998, 166.398666, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.177734, 0.977621, 169.305634, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 382.045959, -3.000765, 87.875648, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 380.607117, -1.714232, 96.928268, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 364.208771, -3.970027, 67.266266, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.628906, -4.532925, 65.597023, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 379.016663, -3.561828, 81.993332, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 413.104309, 4.103601, 130.404922, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 413.245178, 3.991643, 157.491852, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 441.558441, 1.072546, 192.598175, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 458.455750, 4.506071, 200.943817, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.870850, 2.925568, 198.553757, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 397.338837, 0.778188, 117.291611, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 361.043579, 2.042016, 137.151703, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.318726, 3.714472, 154.953125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 393.102020, 4.861976, 164.145691, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 473.094635, 0.853687, 151.026642, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 495.067139, 3.394598, 169.433228, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 372.369049, -0.252312, 145.539474, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 507.013977, 5.353294, 208.204666, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 498.367493, 7.215365, 187.338974, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 545.736084, 11.106025, 197.726318, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 556.766907, 22.091091, 102.551453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 501.207977, 5.114982, 172.674042, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 483.206665, 5.295686, 204.618622, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 531.545410, 9.615707, 194.108994, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 545.011475, 10.566165, 202.816986, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 552.279114, 10.250693, 218.189026, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 509.520203, 5.797393, 203.292374, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 565.008789, 22.103556, 119.079933, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 523.467896, 17.700638, 110.807457, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 537.433899, 15.900310, 149.338684, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 521.968994, 18.131744, 102.781433, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'ked_8' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 559.085510, 22.032907, 130.158432, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 557.397766, 22.323153, 98.222397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 540.623718, 22.001871, 120.312935, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 538.782227, 13.122617, 164.472412, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 510.703217, 14.727483, 136.516693, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 506.451019, 15.708985, 115.746490, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -328.214935, -1.382104, -562.018494, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -388.065887, -6.709208, -538.175354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -203.945206, 7.083276, -662.385864, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -379.218628, -13.288798, -504.089905, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.662155, 17.365246, -621.277710, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.671295, 0.858022, -621.603394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -157.870773, -1.739383, -601.380615, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -306.650543, -15.724052, -485.586731, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'mudpuppy_139' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -466.278961, -9.345193, -536.730896, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -415.876953, -0.624770, -563.817444, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -353.362549, -6.366338, -521.945862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -353.668152, -1.889767, -554.169678, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -358.576813, -4.208381, -544.994019, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -393.795471, -14.137053, -498.157990, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -419.072571, -6.750120, -525.624817, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -364.357361, -16.055626, -485.979156, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'morbol_140' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -400.447693, -16.800800, -359.738800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -430.408478, -16.474775, -380.616394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -305.019958, -16.239365, -455.824524, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -382.151276, -16.695229, -437.809906, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -340.258087, -16.800798, -435.010925, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -368.801117, -16.799139, -384.071411, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -399.663300, -15.824222, -469.566040, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -392.769775, -16.800800, -355.330872, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'nix_27' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -270.115723, -5.564771, -530.555054, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -279.074890, -9.268876, -515.046387, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.879089, -3.662974, -551.692932, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -106.126770, -0.551605, -641.217102, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.280334, 2.170384, -585.664856, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -168.402740, 6.150620, -671.770264, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -205.364151, -2.393888, -579.431946, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -207.987137, 2.095308, -618.217896, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.234894, 14.862438, -595.883179, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 221.954544, 20.428785, -614.556824, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 204.700058, 0.592923, -555.540466, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lakecobra_777' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.281021, -22.899044, -448.000000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.274078, -25.327501, -425.410950, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 308.878082, -26.339148, -406.439697, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 268.547302, -22.023846, -404.229553, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 214.777313, -22.923229, -424.896454, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 206.022980, -23.576593, -420.736481, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 148.975128, -26.967882, -439.738098, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 161.692841, -27.403070, -429.507172, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 294.337982, 15.031981, -649.709106, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.565247, 26.081779, -728.244263, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 380.336121, -3.791148, -690.031677, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 337.717163, 4.031579, -690.909851, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 560.117798, -6.999856, -657.073792, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 573.328003, -1.667467, -623.888733, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 341.486481, -7.720042, -454.207611, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorthoplomachus_55' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -556.903625, -2.485354, -455.298401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.370392, -13.977342, -423.385071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -449.289978, -10.910893, -468.692657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -475.984589, -4.141672, -466.825958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -465.682953, -3.579284, -251.795898, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -532.359619, -2.044634, -291.235474, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortlaquearius_61' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.484222, -4.199565, -501.470306, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.636261, -4.000793, -276.630219, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -542.703735, -3.200111, -329.053131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -475.353668, -3.883567, -478.330811, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -640.300476, -3.558564, -367.160309, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorteques_62' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -592.797729, -2.945007, -432.211792, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -446.294891, -3.984699, -219.651199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -431.483154, -1.764804, -303.251862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -635.341492, -2.933044, -396.278687, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -546.838928, -1.655508, -293.503632, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -557.301758, -3.677437, -381.385284, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -558.028809, -3.625569, -364.324585, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -489.250092, -3.627208, -282.124115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -482.683105, -5.597062, -441.493073, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -479.714355, -4.413937, -417.199463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -437.867004, -2.581742, -273.708099, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsecutor_63' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -566.502625, -2.782105, -424.495209, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.060333, -3.250240, -244.869003, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -563.040833, -2.800797, -326.335052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -470.802673, -6.755476, -449.609680, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsignifer_64' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -600.921204, -3.536839, -364.490417, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -489.175293, -3.463209, -246.931213, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -450.320038, -10.954619, -443.615082, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -527.848938, -3.884468, -328.329559, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hippogryph_645' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 288.388214, 35.697899, -691.959290, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 297.593445, 22.060387, -684.986938, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 347.112274, 21.745182, -725.411682, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 357.257690, 21.586653, -742.933533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 370.948944, 22.898510, -736.725281, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 360.181458, -0.605726, -693.488159, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 562.813049, -3.384825, -641.108826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 265.096130, 31.913975, -655.052612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 271.069336, 32.070313, -656.951233, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasshramana_727' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 306.364746, -5.760643, -519.664429, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.097046, -13.677204, -430.790649, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasbonze_728' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.880981, -0.431493, -568.846741, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 355.587311, -4.908767, -464.247131, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigassozu_729' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 313.073486, 6.867375, -558.511169, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 357.963623, -24.465349, -377.861969, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortvanguard_201' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -582.038574, -3.258524, -375.911133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -541.600830, -3.747990, -410.381073, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -551.768066, -1.774953, -306.972473, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -498.718903, -3.551362, -255.750671, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 485.397308, 5.016501, -833.477112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 481.436981, 5.220707, -835.526794, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 471.936218, 3.177799, -816.784912, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 499.297638, -2.805530, -776.088135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.334198, -8.178817, -750.712708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 555.593201, -8.565275, -754.109070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 482.898956, 2.257884, -809.709290, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hapalit_647' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 555.226746, -8.898793, -734.929565, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 453.029816, -4.964316, -753.367249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 455.815704, -4.557326, -760.564636, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 473.033081, 1.239610, -802.416260, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 484.811157, -0.451689, -793.427063, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 483.354614, 2.609100, -811.419617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 495.249084, -4.774260, -758.666748, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.968075, 40.626629, 577.494324, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.772152, 40.937740, 569.377563, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -27.903179, 55.617722, 511.196289, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.379288, 57.873600, 491.677826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -80.299843, 60.484467, 498.957672, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -79.367607, 57.337360, 534.587830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.123886, 55.629345, 540.495178, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.353406, 60.152943, 476.861328, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.753616, 61.324738, 494.654724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -26.776743, 43.582298, 560.247437, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.769970, 40.481682, 588.929504, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.828140, 40.217793, 600.331543, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.674686, 40.202091, 599.041870, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.956455, 55.197498, 509.726349, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.880508, 50.351704, 638.699036, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.658043, 46.920773, 632.664490, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.426044, 37.137592, 655.502625, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.656174, 49.286789, 644.880005, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.340401, 42.041264, 627.708862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.056473, 42.693142, 626.235168, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -124.439224, 10.043127, 653.849670, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -128.738632, 8.098146, 662.301453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.418259, 3.002367, 802.470886, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.758530, 0.192970, 740.565857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -129.824707, 0.392452, 755.607910, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -126.430168, 0.436597, 759.001587, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.773346, 8.807611, 680.411194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.412216, 2.084321, 760.770325, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.570595, 3.740158, 701.817200, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.683006, 3.098206, 798.504700, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.956909, 0.192970, 664.005737, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -222.488434, 0.192970, 683.450134, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.674591, 0.192970, 689.205322, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirneggdigger_771' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -144.570282, 4.538429, 667.944885, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.620605, 3.272589, 669.616089, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -161.990494, 1.669328, 666.421692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.952896, 1.569027, 667.861206, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -147.976685, 7.211773, 648.754333, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.745529, 1.891097, 679.430908, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -140.959915, 1.381874, 717.960083, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.139404, 0.759766, 712.362000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -148.567505, 0.750069, 714.199524, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'blackbat_1037' ) , 15, 905 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 263.554291, 46.455059, -196.807800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 267.421997, 45.726028, -206.636902, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.008209, 47.155479, -168.970596, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 310.276093, 46.441952, -163.621597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 329.482605, 44.452869, -210.422897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 324.378510, 43.693790, -222.837906, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'caveaurelia_1038' ) , 15, 905 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 271.453613, 45.504711, -200.075607, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'foper_7439' ) , 60, 40160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 9.523642, 53.720516, -217.046158, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'spinner_7442' ) , 60, 40160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 223.210526, 44.843811, -339.998749, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -346.389740, 62.519150, -126.275093, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -353.836487, 61.672997, -119.187897, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'pteroc_65' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -354.420074, 56.423233, -96.513840, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -344.395325, 64.607246, -157.902496, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -341.323090, 64.578575, -160.182724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -350.233124, 61.524578, -113.885941, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -319.546082, 60.104488, -124.223816, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.671509, 53.908203, -95.338379, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.611389, 60.075729, -128.127838, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'coeurl_117' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.764526, 65.494736, -305.070099, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.933563, 70.880463, -266.741791, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.481171, 60.137611, -369.996338, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.656219, 61.014076, -350.488831, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'highlandcondor_13' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -303.275574, 61.479023, -149.118958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -248.915100, 63.041786, -183.808167, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -252.249084, 63.570446, -185.770676, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -216.185196, 66.569382, -242.893326, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -300.852142, 63.176342, -178.160568, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -263.679626, 63.708836, -251.339615, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -229.079773, 64.834488, -245.728836, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.108521, 67.672935, -243.264084, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -330.467377, 64.261154, -336.252960, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -393.794373, 49.725521, -341.202271, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -322.923187, 64.709900, -184.963135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -316.858765, 64.213211, -314.357330, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -290.307983, 55.575882, -263.303406, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -380.062164, 53.973499, -291.843719, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -153.678604, 82.767532, -307.626709, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -170.819321, 78.937599, -266.836945, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -264.982056, 63.947887, -224.000000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -351.385284, 54.183876, -241.304657, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'velociraptor_2' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 25.128429, 71.268677, -189.144226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.871716, 68.419571, -210.217117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -59.508007, 64.795944, -302.991058, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -126.917580, 81.681725, -323.143463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -138.590454, 81.639252, -317.720551, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -161.965485, 79.463608, -261.348389, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -196.249908, 71.570564, -273.608765, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -47.980247, 63.111557, -275.292786, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -51.387047, 64.510307, -309.933960, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -123.665451, 78.886292, -293.496613, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'youngcoeurl_2269' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -268.777344, 64.469254, -321.818024, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -246.820190, 64.967072, -319.323730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -300.127502, 68.867729, -297.000824, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'basaltgolem_30' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -379.582794, 49.599728, -320.617401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -392.384827, 48.829506, -270.781586, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -289.848114, 54.379707, -289.998871, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -339.448914, 50.635178, -294.665192, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -404.812653, 46.717731, -310.487518, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -324.328186, 55.788815, -224.676117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -351.290314, 51.576576, -265.921173, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.076050, 59.615356, -148.851715, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 183.105377, 60.757282, -155.007202, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 184.878326, 61.323547, -156.019150, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 191.771393, 61.550873, -163.132507, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 185.650284, 60.073540, -150.433075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 188.958481, 58.811165, -143.723083, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 172.057220, 60.347488, -160.257004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 190.024429, 61.667694, -162.565582, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'ringtail_6' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -337.538879, 22.261187, -512.543579, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.067444, 15.837619, -526.381409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -284.631256, 15.979709, -524.325195, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -309.562897, 33.556576, -437.443756, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -327.216400, 33.860405, -452.127991, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -309.471985, 33.399452, -451.401154, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.423798, 32.770798, -443.928497, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -306.180389, 33.152576, -443.576508, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 49.782619, 48.558388, -359.919220, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.883301, 50.040894, -366.288025, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.501572, 48.824192, -386.915070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.480934, 48.723763, -384.418518, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.816909, 49.996655, -342.930389, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.917726, 50.031612, -336.814178, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 16.670258, 49.568516, -332.820740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.356415, 48.560959, -377.403534, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 3.316012, 48.751251, -308.807129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.967811, 49.255138, -301.323792, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.587284, 49.616844, -347.270569, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.205463, 50.334320, -341.626526, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 77.880554, 57.709564, -304.362427, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.891975, 57.670910, -316.025116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.143547, 48.569462, -406.118896, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.789307, 68.458755, -250.385300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 23.727297, 49.034428, -362.581635, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.388740, 48.944725, -320.026978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -2.076543, 49.155315, -324.895752, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 70.334991, 67.581085, -261.801605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.335938, 48.508419, -408.346710, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 46.616211, 48.585762, -346.456085, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 16.776409, 48.642620, -366.713409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.775769, 49.300411, -323.626160, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.524841, 48.325321, -324.818787, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -7.160486, 48.940979, -321.393829, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 66.550941, 48.806358, -363.489288, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.058411, 48.957294, -398.777863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.175064, 66.270889, -239.485504, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 43.717041, 48.884872, -344.197815, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.895678, 48.686302, -303.251129, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -23.801125, 53.776348, -341.428009, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 41.243237, 48.551842, -397.472931, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'bombincubator_2833' ) , 44, 4300 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.290409, 55.318249, -509.565887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.868221, 55.176491, -509.842285, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.481640, 55.599010, -491.209015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.109711, 56.992210, -500.873199, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.011013, 56.871895, -476.327240, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.081234, 55.888691, -500.382965, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.261269, 55.470901, -451.263214, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.660034, 57.014153, -507.752472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.135010, 56.961788, -498.527496, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.299801, 55.422451, -506.939392, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.829788, 55.176491, -510.031586, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.337578, 55.921329, -458.039429, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.985661, 55.599010, -492.126312, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 97.362740, 55.733959, -463.581757, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.672039, 24.659719, -611.021057, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.970928, 24.301811, -622.183655, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.582047, 24.139624, -710.028992, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 14.818369, 21.657869, -771.717468, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.921148, 26.625668, -802.449768, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'prototypebombincubator_2834' ) , 48, 5138 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 280.820007, 21.850000, -818.599976, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.380005, 22.062380, -807.590027, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 285.487915, 22.096889, -798.198914, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroroundsman_755' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.990967, 26.955635, -816.802246, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.540199, 24.338131, -605.890015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.905769, 25.186752, -589.007019, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -11.884809, 25.236567, -663.126221, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 118.760902, 23.636169, -718.165894, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroquarryman_756' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.457634, 24.349905, -754.022217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 44.950539, 24.971989, -675.010803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.062794, 24.636602, -620.785767, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.762131, 25.395679, -678.056274, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 33.112991, 21.874960, -777.966125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.037354, 24.478621, -699.376709, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarobedesman_757' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 22.326897, 23.223667, -657.985352, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.358307, 40.804111, -574.260376, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.461895, 25.641956, -722.111023, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 27.246609, 21.618671, -784.161194, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaropriest_758' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.893402, 23.059460, -785.317871, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.200001, 24.470900, -606.984863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.990971, 22.995300, -758.266602, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.746227, 22.116056, -793.993530, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 207.624969, 24.173374, -679.869446, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 206.738022, 23.187981, -689.253052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 203.890320, 24.761229, -742.728943, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 174.455490, 24.918858, -679.265625, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarogolem_2838' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 279.971466, 23.543526, -732.147705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 284.018738, 21.924915, -701.318176, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 307.891937, 24.247149, -729.314880, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 256.669067, 21.883627, -813.910156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 245.038605, 25.634367, -840.968018, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'eliteroundsman_755' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 281.156311, 21.832199, -815.852112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 177.686096, 23.920490, -654.072205, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 175.829697, 23.483580, -792.629883, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitequarryman_756' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.098969, 25.198187, -654.522827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 148.700470, 25.171375, -757.199341, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 163.440704, 23.438585, -715.525391, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 283.243195, 22.311359, -796.170898, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitebedesman_757' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 279.447388, 21.881470, -807.844788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 158.525894, 21.622009, -698.329224, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 177.663101, 23.430275, -782.703918, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitepriest_758' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 254.038452, 21.881643, -798.051270, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 137.963898, 24.624701, -656.164612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.508408, 21.852791, -697.356995, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 250, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_8016' ) , 1, 10000 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 96.160080, 2.359415, -4.634595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.112198, 2.334595, -4.719133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.987587, 2.359415, -24.583460, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 103.990997, 2.360248, -24.776320, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.759247, 25.616760, -51.532589, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 3.004736, 25.616760, -51.484291, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.924433, 25.616760, -51.544392, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.181253, 25.616760, -41.729118, 0 ); diff --git a/bin/sql/schema/schema.sql b/bin/sql/schema/schema.sql index cdaa247e..902064cb 100644 --- a/bin/sql/schema/schema.sql +++ b/bin/sql/schema/schema.sql @@ -27,6 +27,17 @@ CREATE TABLE `bnpctemplate` ( KEY `templatename` (`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE `spawnpoint` ( + `id` int(11) NOT NULL AUTO_INCREMENT, + `spawnGroupId` int(11) NOT NULL, + `x` float NOT NULL, + `y` float NOT NULL, + `z` float NOT NULL, + `r` float NOT NULL, + PRIMARY KEY (`id`), + KEY `spawngroupidx` (`spawnGroupId`) +) ENGINE=InnoDB DEFAULT CHARSET=latin1; + CREATE TABLE `charainfo` ( `AccountId` int(11) NOT NULL, `CharacterId` int(20) NOT NULL, @@ -535,14 +546,12 @@ CREATE TABLE `houseiteminventory` ( INDEX `landIdent` (`LandIdent`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; - CREATE TABLE `spawngroup` ( `id` int(10) NOT NULL AUTO_INCREMENT, `territoryTypeId` int(5) NOT NULL, `bNpcTemplateId` int(10) NOT NULL, `level` int(3) NOT NULL, `maxHp` int(10) NOT NULL, - `gimmickId` int(10) NOT NULL, PRIMARY KEY(`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; diff --git a/src/tools/mob_parse/main.cpp b/src/tools/mob_parse/main.cpp index c6a6df07..07ce253a 100644 --- a/src/tools/mob_parse/main.cpp +++ b/src/tools/mob_parse/main.cpp @@ -250,7 +250,7 @@ int dumpSpawns() } - //std::ofstream out("output.txt"); + std::ofstream out("output_1.txt"); int spawngroups = 0; for( auto entry : zoneToPacketList ) @@ -285,6 +285,23 @@ int dumpSpawns() auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mobName.second.at(0).bNPCName ); Logger::info( "|--> " + nameStruct->singular + "(" + std::to_string( mobName.second.size() ) + ")" ); + Logger::info( "|-> " + std::to_string( entry.first ) ); + + std::string name1 = delChar( nameStruct->singular, ' ' ); + name1 = delChar( name1, '\'' ); + + std::string templateName = name1 + "_" + std::to_string( mobName.second.at(0).bNPCBase ); + + std::string output = "INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) " + " VALUES ( " + std::to_string( entry.first ) + + ", ( SELECT id FROM bnpctemplate WHERE name = '" + templateName + "' ) , " + + std::to_string( mobName.second.at(0).level ) + ", " + + std::to_string( mobName.second.at(0).hPMax ) + " );"; + + output += "\nSET @last_id_spawngroup = LAST_INSERT_ID(); "; + + + spawngroups++; for( FFXIVIpcNpcSpawn instance : mobName.second ) { @@ -298,7 +315,6 @@ int dumpSpawns() modelStr += "]"; - std::string cusStr = "["; for( auto cusEntry : instance.look ) @@ -315,7 +331,8 @@ int dumpSpawns() std::string name = delChar( nameStruct->singular, ' ' ); name = delChar( name, '\'' ); - Logger::info( "|----> " + name + "_" + std::to_string( instance.bNPCBase ) + " " + + Logger::info( "|----> " + name + "_" + + std::to_string( instance.bNPCBase ) + " " + std::to_string( instance.posX ) + ", " + std::to_string( instance.posY ) + ", " + std::to_string( instance.posZ ) + ", " + @@ -325,6 +342,14 @@ int dumpSpawns() std::to_string( instance.hPMax ) ); //Logger::info( "|----> " + name + " - " + std::to_string( instance.bNPCBase ) + ", " + std::to_string( instance.gimmickId ) ); + output += "INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) " + " VALUES ( @last_id_spawngroup, " + + std::to_string( instance.posX ) + ", " + + std::to_string( instance.posY ) + ", " + + std::to_string( instance.posZ ) + ", " + + std::to_string( 0 ) + " ); "; + + //Logger::info( output ); /*std::string output = "INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) " @@ -343,10 +368,11 @@ int dumpSpawns() //Logger::info( output ); - //out << output; + } + out << output; } nameToPacketList.clear(); @@ -572,7 +598,8 @@ int dumpTemplates() int main() { - dumpTemplates(); + //dumpTemplates(); + dumpSpawns(); return 0; } \ No newline at end of file From 470b0c867f7a3440ad47361a8a588933831eee12 Mon Sep 17 00:00:00 2001 From: Dantestyle Date: Sun, 30 Dec 2018 19:06:21 +0100 Subject: [PATCH 283/385] [Quest] SubFst005 + SubFst045 added --- .../quest/subquest/gridania/SubFst005.cpp | 88 ++++++++++++++++++ .../quest/subquest/gridania/SubFst045.cpp | 90 +++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 src/scripts/quest/subquest/gridania/SubFst005.cpp create mode 100644 src/scripts/quest/subquest/gridania/SubFst045.cpp diff --git a/src/scripts/quest/subquest/gridania/SubFst005.cpp b/src/scripts/quest/subquest/gridania/SubFst005.cpp new file mode 100644 index 00000000..29fd7289 --- /dev/null +++ b/src/scripts/quest/subquest/gridania/SubFst005.cpp @@ -0,0 +1,88 @@ +#include +#include +#include +#include "Framework.h" + +using namespace Sapphire; + +// Quest Script: SubFst005_00028 +// Quest Name: To the Bannock +// Quest ID: 65564 +// Start NPC: 1000100 +// End NPC: 1000421 + +class SubFst005 : + public Sapphire::ScriptAPI::EventScript +{ +private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL + + enum Sequence : + uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; + + // Quest rewards + static constexpr auto RewardExpFactor = 200; + static constexpr auto RewardGil = 127; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1000100; + static constexpr auto Actor1 = 1000421; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor1 = 1; + +public: + SubFst005() : + Sapphire::ScriptAPI::EventScript( 65564 ) + { + }; + + ~SubFst005() + { + }; + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); + auto actor = pEventMgr->mapEventActorToRealActor( static_cast( actorId ) ); + + if ( actor == Actor0 ) + { + Scene00000( player ); + } + else if ( actor == Actor1 ) + { + Scene00001( player ); + } + } + +private: + + void Scene00000( Entity::Player& player ) + { + player.playScene( getId(), 0, 0, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if ( result.param2 == 1 ) + player.updateQuest( getId(), SeqFinish ); + } ); + } + + void Scene00001(Entity::Player& player) + { + player.playScene( getId(), 1, 0, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if ( result.param2 == 1 ) + { + if ( player.giveQuestRewards( getId(), 0 ) ) + player.finishQuest( getId() ); + } + } ); + } +}; diff --git a/src/scripts/quest/subquest/gridania/SubFst045.cpp b/src/scripts/quest/subquest/gridania/SubFst045.cpp new file mode 100644 index 00000000..69d2ab59 --- /dev/null +++ b/src/scripts/quest/subquest/gridania/SubFst045.cpp @@ -0,0 +1,90 @@ +#include +#include +#include +#include "Framework.h" + +using namespace Sapphire; + +// Quest Script: SubFst045_00201 +// Quest Name: Passing Muster +// Quest ID: 65737 +// Start NPC: 1000421 +// End NPC: 1000421 + +class SubFst045 : + public Sapphire::ScriptAPI::EventScript +{ +private: + // Basic quest information + // Quest vars / flags used + // GetQuestUI8AL + + enum Sequence : + uint8_t + { + Seq0 = 0, + SeqFinish = 255, + }; + + // Quest rewards + static constexpr auto RewardExpFactor = 200; + static constexpr auto RewardGil = 128; + + // Entities found in the script data of the quest + static constexpr auto Actor0 = 1000421; + static constexpr auto Seq0Actor0 = 0; + static constexpr auto Seq1Actor0 = 1; + +public: + SubFst045() : + Sapphire::ScriptAPI::EventScript( 65737 ) + { + }; + + ~SubFst045() + { + }; + + void onTalk( uint32_t eventId, Entity::Player& player, uint64_t actorId ) override + { + auto pEventMgr = m_framework->get< World::Manager::EventMgr >(); + auto actor = pEventMgr->mapEventActorToRealActor( static_cast( actorId ) ); + + if ( actor == Actor0 ) + { + if ( !player.hasQuest( getId() ) ) + { + Scene00000( player ); + } + else + { + Scene00001( player ); + } + } + } + +private: + + void Scene00000( Entity::Player& player ) + { + player.playScene( getId(), 0, 0, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if ( result.param2 == 1 ) + player.updateQuest( getId(), SeqFinish ); + } ); + } + + void Scene00001(Entity::Player& player) + { + player.playScene( getId(), 1, 0, + [&]( Entity::Player& player, const Event::SceneResult& result ) + { + if ( result.param2 == 1 ) + { + if ( player.giveQuestRewards( getId(), 0 ) ) + player.finishQuest( getId() ); + } + } ); + } +}; From 3b4d83429a6e188b93d052618ddfbda94dd02b2b Mon Sep 17 00:00:00 2001 From: Dantestyle Date: Sun, 30 Dec 2018 19:11:30 +0100 Subject: [PATCH 284/385] style --- src/scripts/quest/subquest/gridania/SubFst005.cpp | 2 +- src/scripts/quest/subquest/gridania/SubFst045.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/quest/subquest/gridania/SubFst005.cpp b/src/scripts/quest/subquest/gridania/SubFst005.cpp index 29fd7289..3466f924 100644 --- a/src/scripts/quest/subquest/gridania/SubFst005.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst005.cpp @@ -73,7 +73,7 @@ private: } ); } - void Scene00001(Entity::Player& player) + void Scene00001( Entity::Player& player ) { player.playScene( getId(), 1, 0, [&]( Entity::Player& player, const Event::SceneResult& result ) diff --git a/src/scripts/quest/subquest/gridania/SubFst045.cpp b/src/scripts/quest/subquest/gridania/SubFst045.cpp index 69d2ab59..b40ad24a 100644 --- a/src/scripts/quest/subquest/gridania/SubFst045.cpp +++ b/src/scripts/quest/subquest/gridania/SubFst045.cpp @@ -75,7 +75,7 @@ private: } ); } - void Scene00001(Entity::Player& player) + void Scene00001( Entity::Player& player ) { player.playScene( getId(), 1, 0, [&]( Entity::Player& player, const Event::SceneResult& result ) From e101c80fafd0af2cec68b9c7b7bb36d693c6dbfd Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 31 Dec 2018 18:39:43 +1100 Subject: [PATCH 285/385] drop x86 support on windows --- CMakeSettings.json | 16 ------- cmake/FindMySQL.cmake | 97 ------------------------------------------- 2 files changed, 113 deletions(-) diff --git a/CMakeSettings.json b/CMakeSettings.json index c623adf2..7a6006fe 100644 --- a/CMakeSettings.json +++ b/CMakeSettings.json @@ -1,22 +1,6 @@ { // See https://go.microsoft.com//fwlink//?linkid=834763 for more information about this file. "configurations": [ - { - "name": "x86-Debug", - "generator": "Visual Studio 15 2017", - "configurationType": "Debug", - "buildRoot": "${env.USERPROFILE}\\CMakeBuild\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "-DCMAKE_BUILD_TYPE=\"Debug\"", - "buildCommandArgs": "-m -v:minimal" - }, - { - "name": "x86-Release", - "generator": "Visual Studio 15 2017", - "configurationType": "Release", - "buildRoot": "${env.USERPROFILE}\\CMakeBuild\\${workspaceHash}\\build\\${name}", - "cmakeCommandArgs": "", - "buildCommandArgs": "-m -v:minimal" - }, { "name": "x64-Debug", "generator": "Visual Studio 15 2017 Win64", diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 5fd19dae..52f25ac7 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -64,12 +64,6 @@ if( UNIX ) endif( UNIX ) if( WIN32 ) - # read environment variables and change \ to / - SET(PROGRAM_FILES_32 $ENV{ProgramFiles}) - if (${PROGRAM_FILES_32}) - STRING(REPLACE "\\\\" "/" PROGRAM_FILES_32 ${PROGRAM_FILES_32}) - endif(${PROGRAM_FILES_32}) - SET(PROGRAM_FILES_64 $ENV{ProgramW6432}) if (${PROGRAM_FILES_64}) STRING(REPLACE "\\\\" "/" PROGRAM_FILES_64 ${PROGRAM_FILES_64}) @@ -86,33 +80,12 @@ find_path(MYSQL_INCLUDE_DIR /usr/local/include /usr/local/include/mysql /usr/local/mysql/include - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/include" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.6/include" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.5/include" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.1/include" - "${PROGRAM_FILES_32}/MySQL/include" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/include" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.6/include" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.5/include" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.1/include" "${PROGRAM_FILES_64}/MySQL/include" "C:/MySQL/include" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/include" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/include" "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/include" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.6/include" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.5/include" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.1/include" "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/include" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.6/include" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.5/include" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.1/include" "c:/msys/local/include" "$ENV{MYSQL_ROOT}/include" DOC @@ -142,49 +115,14 @@ if( WIN32 ) libmysql PATHS ${MYSQL_ADD_LIBRARIES_PATH} - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/lib" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.6/lib" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.5/lib" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.1/lib" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/lib/opt" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.6/lib/opt" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.5/lib/opt" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.1/lib/opt" - "${PROGRAM_FILES_32}/MySQL/lib" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.6/lib" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.5/lib" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.1/lib" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/lib/opt" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.6/lib/opt" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.5/lib/opt" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.1/lib/opt" "${PROGRAM_FILES_64}/MySQL/lib" "C:/MySQL/lib/debug" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/lib" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/lib" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/lib/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/lib/opt" "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/lib/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.6/lib/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.5/lib/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.1/lib/opt" "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/lib/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.6/lib/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.5/lib/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.1/lib/opt" "c:/msys/local/include" "$ENV{MYSQL_ROOT}/lib" DOC "Specify the location of the mysql library here." @@ -223,49 +161,14 @@ endif( UNIX ) if( WIN32 ) find_program(MYSQL_EXECUTABLE mysql PATHS - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/bin" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.6/bin" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.5/bin" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.1/bin" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.7/bin/opt" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.6/bin/opt" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.5/bin/opt" - "${PROGRAM_FILES_32}/MySQL/MySQL Server 5.1/bin/opt" - "${PROGRAM_FILES_32}/MySQL/bin" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.6/bin" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.5/bin" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.1/bin" "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.7/bin/opt" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.6/bin/opt" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.5/bin/opt" - "${PROGRAM_FILES_64}/MySQL/MySQL Server 5.1/bin/opt" "${PROGRAM_FILES_64}/MySQL/bin" "C:/MySQL/bin/debug" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/bin" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.6;Location]/bin/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.5;Location]/bin/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\MySQL AB\\MySQL Server 5.1;Location]/bin/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/bin" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.7;Location]/bin/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.6;Location]/bin/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.5;Location]/bin/opt" - "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\MySQL AB\\MySQL Server 5.1;Location]/bin/opt" "$ENV{ProgramFiles}/MySQL/MySQL Server 5.7/bin/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.6/bin/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.5/bin/opt" - "$ENV{ProgramFiles}/MySQL/MySQL Server 5.1/bin/opt" "$ENV{SystemDrive}/MySQL/MySQL Server 5.7/bin/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.6/bin/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.5/bin/opt" - "$ENV{SystemDrive}/MySQL/MySQL Server 5.1/bin/opt" "c:/msys/local/include" "$ENV{MYSQL_ROOT}/bin" DOC From b7fcf6080cd4d1a9260ebce8ebaa40a069a0f4bd Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 31 Dec 2018 21:39:43 +1100 Subject: [PATCH 286/385] fix issue where items couldn't be removed from interior storeroom --- src/world/Manager/HousingMgr.cpp | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 8badd385..20dca94d 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -1386,24 +1386,24 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p { auto& containers = getEstateInventory( terri.getLandIdent() ); - // validate the container id first - // we also need the idx of the container so we can get the slot offset - bool foundContainer = false; uint8_t containerIdx = 0; - for( auto cId : m_internalPlacedItemContainers ) + + if( isPlacedItemsInventory( static_cast< Common::InventoryType >( containerId ) ) ) { - if( containerId == cId ) + for( auto cId : m_internalPlacedItemContainers ) { - foundContainer = true; + if( containerId == cId ) + break; - break; + containerIdx++; } - - containerIdx++; } + else + containerIdx = -1; - if( !foundContainer ) - return false; + // its possible to remove an item from any container in basically all these remove functions + // eg, remove a permit and reuse it elsewhere + // I'm not going to bother fixing it for now, but worth noting for future reference auto needle = containers.find( containerId ); if( needle == containers.end() ) @@ -1457,8 +1457,11 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p } // despawn - auto arraySlot = ( containerIdx * 50 ) + slotId; - terri.removeHousingObject( arraySlot ); + if( containerIdx != -1 ) + { + auto arraySlot = ( containerIdx * 50 ) + slotId; + terri.removeHousingObject( arraySlot ); + } return true; } From a04d01be90903323aac5b8e6ee4c0b1c605fe811 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 31 Dec 2018 21:54:32 +1100 Subject: [PATCH 287/385] some housing cleanup and refactoring --- src/common/Common.h | 10 +++++----- src/world/Manager/HousingMgr.cpp | 16 ++++++++-------- src/world/Manager/HousingMgr.h | 4 ++-- src/world/Territory/HousingZone.cpp | 4 ++-- src/world/Territory/Land.cpp | 12 ++++++------ src/world/Territory/Land.h | 14 +++++++------- 6 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 9363426d..f986821a 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -866,13 +866,13 @@ namespace Sapphire::Common Mansion }; - enum HouseState : uint8_t + enum HouseStatus : uint8_t { none, - forSale, - sold, - privateHouse, - fcHouse, + HouseForSale, + HouseSold, + HousePrivateEstate, + HouseFreeCompanyEstate, }; enum HouseIconAdd : uint8_t diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 20dca94d..fd4ab7ef 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -179,8 +179,8 @@ void Sapphire::World::Manager::HousingMgr::initLandCache() entry.m_landId = res->getUInt( "LandId" ); entry.m_type = static_cast< Common::LandType >( res->getUInt( "Type" ) ); - entry.m_size = res->getUInt8( "Size" ); - entry.m_status = res->getUInt8( "Status" ); + entry.m_size = static_cast< Common::HouseSize >( res->getUInt8( "Size" ) ); + entry.m_status = static_cast< Common::HouseStatus >( res->getUInt8( "Status" ) ); entry.m_currentPrice = res->getUInt64( "LandPrice" ); entry.m_updateTime = res->getUInt64( "UpdateTime" ); entry.m_ownerId = res->getUInt64( "OwnerId" ); @@ -365,7 +365,7 @@ Sapphire::LandPurchaseResult Sapphire::World::Manager::HousingMgr::purchaseLand( if( !pLand ) return LandPurchaseResult::ERR_INTERNAL; - if( pLand->getState() != HouseState::forSale ) + if( pLand->getStatus() != HouseStatus::HouseForSale ) return LandPurchaseResult::ERR_NOT_AVAILABLE; if( gilAvailable < plotPrice ) @@ -388,7 +388,7 @@ Sapphire::LandPurchaseResult Sapphire::World::Manager::HousingMgr::purchaseLand( player.removeCurrency( CurrencyType::Gil, plotPrice ); pLand->setOwnerId( player.getId() ); - pLand->setState( HouseState::sold ); + pLand->setStatus( HouseStatus::HouseSold ); pLand->setLandType( Common::LandType::Private ); player.setLandFlags( LandFlagsSlot::Private, 0x00, pLand->getLandIdent() ); @@ -437,7 +437,7 @@ bool Sapphire::World::Manager::HousingMgr::relinquishLand( Entity::Player& playe pLand->setCurrentPrice( pLand->getMaxPrice() ); pLand->setOwnerId( 0 ); - pLand->setState( HouseState::forSale ); + pLand->setStatus( HouseStatus::HouseForSale ); pLand->setLandType( Common::LandType::none ); pLand->updateLandDb(); @@ -477,11 +477,11 @@ void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& pla auto& entry = wardInfoPacket->data().houseInfoEntry[ i ]; - // retail always sends the house price in this packet, even after the house has been sold + // retail always sends the house price in this packet, even after the house has been HouseSold // so I guess we do the same entry.housePrice = land->getCurrentPrice(); - if( land->getState() == Common::HouseState::forSale ) + if( land->getStatus() == Common::HouseStatus::HouseForSale ) continue; if( auto house = land->getHouse() ) @@ -682,7 +682,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl createHouse( house ); - pLand->setState( HouseState::privateHouse ); + pLand->setStatus( HouseStatus::HousePrivateEstate ); pLand->setLandType( LandType::Private ); hZone->sendLandUpdate( plotNum ); diff --git a/src/world/Manager/HousingMgr.h b/src/world/Manager/HousingMgr.h index deb6c099..6b25ce57 100644 --- a/src/world/Manager/HousingMgr.h +++ b/src/world/Manager/HousingMgr.h @@ -31,8 +31,8 @@ namespace Sapphire::World::Manager uint16_t m_landId; Common::LandType m_type; - uint8_t m_size; - uint8_t m_status; + Common::HouseSize m_size; + Common::HouseStatus m_status; uint64_t m_currentPrice; diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index 3814b471..9f79defa 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -220,7 +220,7 @@ void Sapphire::HousingZone::sendLandSet( Entity::Player& player ) auto& landData = landsetInitializePacket->data().land[ count ]; landData.plotSize = pLand->getSize(); - landData.houseState = pLand->getState(); + landData.houseState = pLand->getStatus(); landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); @@ -256,7 +256,7 @@ void Sapphire::HousingZone::sendLandUpdate( uint8_t landId ) auto& landData = landUpdatePacket->data().land; landData.plotSize = pLand->getSize(); - landData.houseState = pLand->getState(); + landData.houseState = pLand->getStatus(); landData.iconAddIcon = pLand->getSharing(); landData.fcId = pLand->getFcId(); landData.fcIcon = pLand->getFcIcon(); diff --git a/src/world/Territory/Land.cpp b/src/world/Territory/Land.cpp index 432b473b..28e63e8a 100644 --- a/src/world/Territory/Land.cpp +++ b/src/world/Territory/Land.cpp @@ -54,7 +54,7 @@ Sapphire::Land::Land( uint16_t territoryTypeId, uint8_t wardNum, uint8_t landId, Sapphire::Land::~Land() = default; -void Sapphire::Land::init( Common::LandType type, uint8_t size, uint8_t state, uint32_t currentPrice, +void Sapphire::Land::init( Common::LandType type, Common::HouseSize size, Common::HouseStatus state, uint32_t currentPrice, uint64_t ownerId, uint64_t houseId ) { m_type = type; @@ -84,12 +84,12 @@ uint32_t Sapphire::Land::getMaxPrice() const } //Primary State -void Sapphire::Land::setSize( uint8_t size ) +void Sapphire::Land::setSize( Common::HouseSize size ) { m_size = size; } -void Sapphire::Land::setState( uint8_t state ) +void Sapphire::Land::setStatus( Common::HouseStatus state ) { m_state = state; } @@ -104,12 +104,12 @@ void Sapphire::Land::setLandType( Common::LandType type ) m_type = type; } -uint8_t Sapphire::Land::getSize() const +Sapphire::Common::HouseSize Sapphire::Land::getSize() const { return m_size; } -uint8_t Sapphire::Land::getState() const +Sapphire::Common::HouseStatus Sapphire::Land::getStatus() const { return m_state; } @@ -227,7 +227,7 @@ void Sapphire::Land::updateLandDb() void Sapphire::Land::update( uint32_t currTime ) { - if( getState() == HouseState::forSale ) + if( getStatus() == HouseStatus::HouseForSale ) { if( m_nextDrop < currTime && m_minPrice < m_currentPrice ) { diff --git a/src/world/Territory/Land.h b/src/world/Territory/Land.h index f6af5f2a..8eecbb33 100644 --- a/src/world/Territory/Land.h +++ b/src/world/Territory/Land.h @@ -18,20 +18,20 @@ namespace Sapphire Land( uint16_t zoneId, uint8_t wardNum, uint8_t landId, uint32_t landSetId, Sapphire::Data::HousingLandSetPtr info, FrameworkPtr pFw ); virtual ~Land(); - void init( Common::LandType type, uint8_t size, uint8_t state, uint32_t currentPrice, uint64_t ownerId, uint64_t houseId ); + void init( Common::LandType type, Common::HouseSize size, Common::HouseStatus state, uint32_t currentPrice, uint64_t ownerId, uint64_t houseId ); using LandInventoryMap = std::unordered_map< uint16_t, ItemContainerPtr >; using InvMaxItemsPair = std::pair< uint16_t, uint16_t >; //Primary state - void setSize( uint8_t size ); - void setState( uint8_t state ); + void setSize( Common::HouseSize size ); + void setStatus( Common::HouseStatus state ); void setSharing( uint8_t state ); void setLandType( Common::LandType type ); //Gerneral - uint8_t getSize() const; - uint8_t getState() const; + Common::HouseSize getSize() const; + Common::HouseStatus getStatus() const; uint8_t getSharing() const; uint32_t getLandSetId() const; Common::LandType getLandType() const; @@ -71,8 +71,8 @@ namespace Sapphire Common::LandIdent m_landIdent; uint32_t m_landSetId; - uint8_t m_size; - uint8_t m_state; + Common::HouseSize m_size; + Common::HouseStatus m_state; Common::LandType m_type; uint8_t m_iconAddIcon; uint32_t m_fcId; // unclear, may be wrong From 1c890a43bf369563f35ebc97c3dc1920ea4837bf Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 31 Dec 2018 22:02:34 +1100 Subject: [PATCH 288/385] handle fc doors properly --- src/common/Common.h | 8 ++++---- src/world/Manager/HousingMgr.cpp | 12 ++++++------ .../Territory/Housing/HousingInteriorTerritory.cpp | 13 +++++++++---- src/world/Territory/Land.cpp | 2 +- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index f986821a..77d29367 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -869,10 +869,10 @@ namespace Sapphire::Common enum HouseStatus : uint8_t { none, - HouseForSale, - HouseSold, - HousePrivateEstate, - HouseFreeCompanyEstate, + ForSale, + Sold, + PrivateEstate, + FreeCompanyEstate, }; enum HouseIconAdd : uint8_t diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index fd4ab7ef..8e0c01a6 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -365,7 +365,7 @@ Sapphire::LandPurchaseResult Sapphire::World::Manager::HousingMgr::purchaseLand( if( !pLand ) return LandPurchaseResult::ERR_INTERNAL; - if( pLand->getStatus() != HouseStatus::HouseForSale ) + if( pLand->getStatus() != HouseStatus::ForSale ) return LandPurchaseResult::ERR_NOT_AVAILABLE; if( gilAvailable < plotPrice ) @@ -388,7 +388,7 @@ Sapphire::LandPurchaseResult Sapphire::World::Manager::HousingMgr::purchaseLand( player.removeCurrency( CurrencyType::Gil, plotPrice ); pLand->setOwnerId( player.getId() ); - pLand->setStatus( HouseStatus::HouseSold ); + pLand->setStatus( HouseStatus::Sold ); pLand->setLandType( Common::LandType::Private ); player.setLandFlags( LandFlagsSlot::Private, 0x00, pLand->getLandIdent() ); @@ -437,7 +437,7 @@ bool Sapphire::World::Manager::HousingMgr::relinquishLand( Entity::Player& playe pLand->setCurrentPrice( pLand->getMaxPrice() ); pLand->setOwnerId( 0 ); - pLand->setStatus( HouseStatus::HouseForSale ); + pLand->setStatus( HouseStatus::ForSale ); pLand->setLandType( Common::LandType::none ); pLand->updateLandDb(); @@ -477,11 +477,11 @@ void Sapphire::World::Manager::HousingMgr::sendWardLandInfo( Entity::Player& pla auto& entry = wardInfoPacket->data().houseInfoEntry[ i ]; - // retail always sends the house price in this packet, even after the house has been HouseSold + // retail always sends the house price in this packet, even after the house has been Sold // so I guess we do the same entry.housePrice = land->getCurrentPrice(); - if( land->getStatus() == Common::HouseStatus::HouseForSale ) + if( land->getStatus() == Common::HouseStatus::ForSale ) continue; if( auto house = land->getHouse() ) @@ -682,7 +682,7 @@ void Sapphire::World::Manager::HousingMgr::buildPresetEstate( Entity::Player& pl createHouse( house ); - pLand->setStatus( HouseStatus::HousePrivateEstate ); + pLand->setStatus( HouseStatus::PrivateEstate ); pLand->setLandType( LandType::Private ); hZone->sendLandUpdate( plotNum ); diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 63fb581e..6bef748b 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -76,14 +76,19 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone player.queuePacket( indoorInitPacket ); + bool isFcHouse = pLand->getStatus() == Common::HouseStatus::PrivateEstate; auto yardPacketTotal = static_cast< uint8_t >( 2 + pLand->getSize() ); for( uint8_t yardPacketNum = 0; yardPacketNum < yardPacketTotal; yardPacketNum++ ) { auto objectInitPacket = makeZonePacket< Server::FFXIVIpcHousingObjectInitialize >( player.getId() ); memcpy( &objectInitPacket->data().landIdent, &m_landIdent, sizeof( Common::LandIdent ) ); - // todo: change this when FC houses become a thing - objectInitPacket->data().u1 = 2; // 2 = actrl 0x400 will hide the fc door, otherwise it will stay there + + if( isFcHouse ) + objectInitPacket->data().u1 = 2; // 2 = actrl 0x400 will hide the fc door, otherwise it will stay there + else + objectInitPacket->data().u1 = 0; + objectInitPacket->data().u2 = 100; objectInitPacket->data().packetNum = yardPacketNum; objectInitPacket->data().packetTotal = yardPacketTotal; @@ -94,8 +99,8 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZone player.queuePacket( objectInitPacket ); } - // todo: if in fc house, don't send this - player.queuePacket( Server::makeActorControl143( player.getId(), Network::ActorControl::HideAdditionalChambersDoor ) ); + if( isFcHouse ) + player.queuePacket( Server::makeActorControl143( player.getId(), Network::ActorControl::HideAdditionalChambersDoor ) ); } void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onUpdate( uint32_t currTime ) diff --git a/src/world/Territory/Land.cpp b/src/world/Territory/Land.cpp index 28e63e8a..15411d24 100644 --- a/src/world/Territory/Land.cpp +++ b/src/world/Territory/Land.cpp @@ -227,7 +227,7 @@ void Sapphire::Land::updateLandDb() void Sapphire::Land::update( uint32_t currTime ) { - if( getStatus() == HouseStatus::HouseForSale ) + if( getStatus() == HouseStatus::ForSale ) { if( m_nextDrop < currTime && m_minPrice < m_currentPrice ) { From d421888a07cef6dc39669c4a3f5e408478c5b3aa Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 31 Dec 2018 22:45:39 +1100 Subject: [PATCH 289/385] fix storing items in the housing storerooms for real this time --- src/world/Manager/HousingMgr.cpp | 24 ++++++++++++++++-------- src/world/Manager/HousingMgr.h | 2 ++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 8e0c01a6..5fda5ef4 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -568,7 +568,7 @@ bool Sapphire::World::Manager::HousingMgr::initHouseModels( Entity::Player& play if( !player.findFirstItemWithId( presetCatalogId, foundItem ) ) return false; - auto item = player.dropInventoryItem( foundItem.first, foundItem.second ); + auto item = getHousingItemFromPlayer( player, foundItem.first, foundItem.second ); if( !item ) return false; @@ -1002,12 +1002,10 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity containerId == InventoryType::Bag2 || containerId == InventoryType::Bag3 ) { - auto tmpItem = player.dropInventoryItem( static_cast< Common::InventoryType >( containerId ), slotId ); - if( !tmpItem ) + item = getHousingItemFromPlayer( player, static_cast< Common::InventoryType >( containerId ), slotId ); + if( !item ) return; - item = Inventory::make_HousingItem( tmpItem->getUId(), tmpItem->getId(), framework() ); - // set params item->setPos( { Util::floatToUInt16( pos.x ), @@ -1074,7 +1072,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity if( freeSlot == -1 ) return; - auto item = player.dropInventoryItem( static_cast< Common::InventoryType >( containerId ), slotId ); + auto item = getHousingItemFromPlayer( player, static_cast< Common::InventoryType >( containerId ), slotId ); if( !item ) return; @@ -1097,7 +1095,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity continue; } - auto item = player.dropInventoryItem( static_cast< Common::InventoryType >( containerId ), slotId ); + auto item = getHousingItemFromPlayer( player, static_cast< Common::InventoryType >( containerId ), slotId ); if( !item ) return; @@ -1386,7 +1384,7 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p { auto& containers = getEstateInventory( terri.getLandIdent() ); - uint8_t containerIdx = 0; + int8_t containerIdx = 0; if( isPlacedItemsInventory( static_cast< Common::InventoryType >( containerId ) ) ) { @@ -1617,4 +1615,14 @@ bool Sapphire::World::Manager::HousingMgr::hasPermission( Sapphire::Entity::Play // todo: check perms here return false; +} + +Sapphire::Inventory::HousingItemPtr Sapphire::World::Manager::HousingMgr::getHousingItemFromPlayer( + Entity::Player& player, Common::InventoryType type, uint8_t slot ) +{ + auto tmpItem = player.dropInventoryItem( type, slot ); + if( !tmpItem ) + return nullptr; + + return Inventory::make_HousingItem( tmpItem->getUId(), tmpItem->getId(), framework() ); } \ No newline at end of file diff --git a/src/world/Manager/HousingMgr.h b/src/world/Manager/HousingMgr.h index 6b25ce57..8167efb9 100644 --- a/src/world/Manager/HousingMgr.h +++ b/src/world/Manager/HousingMgr.h @@ -185,6 +185,8 @@ namespace Sapphire::World::Manager private: + Inventory::HousingItemPtr getHousingItemFromPlayer( Entity::Player& player, Common::InventoryType type, uint8_t slot ); + ItemContainerPtr getFreeEstateInventorySlot( Common::LandIdent ident, Inventory::InventoryContainerPair& pair, Inventory::InventoryTypeList bagList ); From af7a7694339b50fc0d59ed90a6fb5f107eac9d2b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 31 Dec 2018 23:20:36 +1100 Subject: [PATCH 290/385] start of marketboard implementation --- src/common/Network/PacketDef/Ipcs.h | 2 +- .../Network/PacketDef/Zone/ClientZoneDef.h | 13 +++++++++++ src/world/Manager/MarketMgr.cpp | 19 ++++++++++++++++ src/world/Manager/MarketMgr.h | 22 +++++++++++++++++++ src/world/Manager/PlayerMgr.h | 7 +++++- src/world/Network/GameConnection.h | 2 ++ src/world/Network/Handlers/PacketHandlers.cpp | 13 +++++++++++ src/world/ServerMgr.cpp | 10 +++++++++ 8 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 src/world/Manager/MarketMgr.cpp create mode 100644 src/world/Manager/MarketMgr.h diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index ede6ed36..40855781 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -267,7 +267,7 @@ namespace Sapphire::Network::Packets MarketBoardRequestItemInformation = 0x00FE, // updated 4.4 MarketBoardRequestItemListings = 0x00FF, // updated 4.4 - SearchMarketboard = 0x0103, // updated 4.3 + SearchMarketboard = 0x0103, // updated 4.4 ReqExamineFcInfo = 0x010F, // updated 4.1 FcInfoReqHandler = 0x011A, // updated 4.2 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index e096fa8a..68b856b8 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -270,6 +270,19 @@ struct FFXIVIpcHousingUpdateObjectPosition : /* 001C */ uint32_t padding; }; +struct FFXIVIpcSearchMarketboard : + FFXIVIpcBasePacket< SearchMarketboard > +{ + /* 0000 */ uint32_t unk; + /* 0004 */ uint8_t unk2[2]; + /* 0006 */ uint8_t itemSearchCategory; + /* 0007 */ uint8_t shouldCheckClassJobId; // wat? seems only 1 there at least... + /* 0008 */ uint8_t maxEquipLevel; + /* 0009 */ uint8_t classJobId; + /* 000A */ char searchStr[40]; + /* 0032 */ uint16_t unk4[43]; +}; + } } } diff --git a/src/world/Manager/MarketMgr.cpp b/src/world/Manager/MarketMgr.cpp new file mode 100644 index 00000000..1769a6e8 --- /dev/null +++ b/src/world/Manager/MarketMgr.cpp @@ -0,0 +1,19 @@ +#include "MarketMgr.h" + +Sapphire::World::Manager::MarketMgr::MarketMgr( Sapphire::FrameworkPtr pFw ) : + BaseManager( pFw ) +{ + +} + +bool Sapphire::World::Manager::MarketMgr::init() +{ + return true; +} + +void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& player, + uint8_t itemSearchCategory, uint8_t maxEquipLevel, + uint8_t classJob ) +{ + +} \ No newline at end of file diff --git a/src/world/Manager/MarketMgr.h b/src/world/Manager/MarketMgr.h new file mode 100644 index 00000000..9c21c8ed --- /dev/null +++ b/src/world/Manager/MarketMgr.h @@ -0,0 +1,22 @@ +#ifndef SAPPHIRE_MARKETMGR_H +#define SAPPHIRE_MARKETMGR_H + +#include "ForwardsZone.h" +#include "BaseManager.h" + +namespace Sapphire::World::Manager +{ + class MarketMgr : public Manager::BaseManager + { + public: + explicit MarketMgr( FrameworkPtr pFw ); + + bool init(); + + void searchMarketboard( Entity::Player& player, uint8_t itemSearchCategory, uint8_t maxEquipLevel, uint8_t classJob ); + + }; +} + + +#endif //SAPPHIRE_MARKETMGR_H diff --git a/src/world/Manager/PlayerMgr.h b/src/world/Manager/PlayerMgr.h index 0b0cbd13..f7d08488 100644 --- a/src/world/Manager/PlayerMgr.h +++ b/src/world/Manager/PlayerMgr.h @@ -1,3 +1,6 @@ +#ifndef SAPPHIRE_PLAYERMGR_H +#define SAPPHIRE_PLAYERMGR_H + #include "ForwardsZone.h" #include "BaseManager.h" @@ -10,4 +13,6 @@ class PlayerMgr : public Manager::BaseManager void movePlayerToLandDestination( Sapphire::Entity::Player& player, uint32_t landId, uint16_t param = 0 ); }; -} \ No newline at end of file +} + +#endif // SAPPHIRE_PLAYERMGR_H \ No newline at end of file diff --git a/src/world/Network/GameConnection.h b/src/world/Network/GameConnection.h index dcdec9d1..c4984267 100644 --- a/src/world/Network/GameConnection.h +++ b/src/world/Network/GameConnection.h @@ -176,6 +176,8 @@ namespace Sapphire::Network DECLARE_HANDLER( reqMoveHousingItem ); + DECLARE_HANDLER( searchMarketboard ); + }; } diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index fa6543bf..580b0629 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -36,6 +36,7 @@ #include "Manager/DebugCommandMgr.h" #include "Manager/EventMgr.h" +#include "Manager/MarketMgr.h" #include "Action/Action.h" #include "Action/ActionTeleport.h" @@ -752,4 +753,16 @@ void Sapphire::Network::GameConnection::reqMoveHousingItem( FrameworkPtr pFw, housingMgr->reqMoveHousingItem( player, data.ident, data.slot, data.pos, data.rotation ); +} + +void Sapphire::Network::GameConnection::searchMarketboard( FrameworkPtr pFw, + const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) +{ + auto marketMgr = pFw->get< MarketMgr >(); + + const auto packet = ZoneChannelPacket< Client::FFXIVIpcSearchMarketboard >( inPacket ); + const auto& data = packet.data(); + + marketMgr->searchMarketboard( player, data.itemSearchCategory, data.maxEquipLevel, data.classJobId ); } \ No newline at end of file diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index cc89386a..316f6460 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -39,6 +39,7 @@ #include "Manager/InventoryMgr.h" #include "Manager/EventMgr.h" #include "Manager/ItemMgr.h" +#include "Manager/MarketMgr.h" using namespace Sapphire::World::Manager; @@ -160,6 +161,15 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) return; } + auto pMarketMgr = std::make_shared< Manager::MarketMgr >( framework() ); + framework()->set< Manager::MarketMgr >( pMarketMgr ); + + if( !pMarketMgr->init() ) + { + Logger::fatal( "Failed to setup market manager!" ); + return; + } + loadBNpcTemplates(); Network::HivePtr hive( new Network::Hive() ); From 589205d41eda20264581e0728c077895e2578da3 Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 31 Dec 2018 13:54:31 +0100 Subject: [PATCH 291/385] Moved cmake logic to root cmakelists --- cmake/compiler.cmake | 11 ++---- deps/datReader/CMakeLists.txt | 6 ---- deps/mysqlConnector/CMakeLists.txt | 6 ---- src/api/CMakeLists.txt | 3 -- src/common/CMakeLists.txt | 3 -- src/dbm/CMakeLists.txt | 3 -- src/lobby/CMakeLists.txt | 3 -- src/scripts/CMakeLists.txt | 3 -- src/tools/discovery_parser/CMakeLists.txt | 3 -- src/tools/event_object_parser/CMakeLists.txt | 3 -- src/tools/exd_common_gen/CMakeLists.txt | 3 -- src/tools/exd_struct_gen/CMakeLists.txt | 3 -- src/tools/exd_struct_test/CMakeLists.txt | 3 -- src/tools/mob_parse/CMakeLists.txt | 3 -- src/tools/pcb_reader/CMakeLists.txt | 3 -- src/tools/quest_parser/CMakeLists.txt | 3 -- src/world/Actor/SpawnGroup.h | 2 +- src/world/CMakeLists.txt | 3 -- src/world/ForwardsZone.h | 2 ++ src/world/Territory/Zone.cpp | 36 +++++++++++++++++--- src/world/Territory/Zone.h | 2 ++ 21 files changed, 40 insertions(+), 67 deletions(-) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 99bd6428..f8fa19b2 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -9,14 +9,9 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") - - if (MSVC_VERSION GREATER_EQUAL "1900") - include(CheckCXXCompilerFlag) - CHECK_CXX_COMPILER_FLAG("/std:c++latest" _cpp_latest_flag_supported) - if (_cpp_latest_flag_supported) - add_compile_options("/std:c++latest") - endif() - endif() + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS ON) if(CMAKE_BUILD_TYPE STREQUAL "Debug") # disabling SAFESEH diff --git a/deps/datReader/CMakeLists.txt b/deps/datReader/CMakeLists.txt index a8c7ec6c..70b469ba 100644 --- a/deps/datReader/CMakeLists.txt +++ b/deps/datReader/CMakeLists.txt @@ -10,12 +10,6 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_library( xivdat ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} ) -set_target_properties( xivdat PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON - ) - if (UNIX) target_link_libraries( xivdat PUBLIC dl ) target_link_libraries( xivdat PUBLIC z ) diff --git a/deps/mysqlConnector/CMakeLists.txt b/deps/mysqlConnector/CMakeLists.txt index 76f2f97f..1bff9537 100644 --- a/deps/mysqlConnector/CMakeLists.txt +++ b/deps/mysqlConnector/CMakeLists.txt @@ -9,12 +9,6 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_library( mysqlConnector ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} ) -set_target_properties( mysqlConnector PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON - ) - target_include_directories( mysqlConnector PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ) target_link_libraries( mysqlConnector PUBLIC mysql ) #cotire(mysqlConnector) diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt index baca5da6..a9eca8ca 100644 --- a/src/api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -8,9 +8,6 @@ file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) add_executable( api ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) set_target_properties( api PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index d8579e93..00f863c9 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -18,9 +18,6 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_library( common ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} ) set_target_properties( common PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" diff --git a/src/dbm/CMakeLists.txt b/src/dbm/CMakeLists.txt index f731b609..278cbd99 100644 --- a/src/dbm/CMakeLists.txt +++ b/src/dbm/CMakeLists.txt @@ -8,9 +8,6 @@ file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) add_executable( dbm ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) set_target_properties( dbm PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" diff --git a/src/lobby/CMakeLists.txt b/src/lobby/CMakeLists.txt index fc4e2067..48a9596c 100644 --- a/src/lobby/CMakeLists.txt +++ b/src/lobby/CMakeLists.txt @@ -10,9 +10,6 @@ add_executable( lobby ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) set_target_properties( lobby PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index 9d6f39f2..a049fc96 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -40,9 +40,6 @@ foreach(_scriptDir ${children}) if(MSVC) set_target_properties( "script_${_name}" PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON LIBRARY_OUTPUT_DIRECTORY_DEBUG "${SCRIPT_LIB_DIR}" LIBRARY_OUTPUT_DIRECTORY_RELEASE "${SCRIPT_LIB_DIR}" LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SCRIPT_LIB_DIR}" diff --git a/src/tools/discovery_parser/CMakeLists.txt b/src/tools/discovery_parser/CMakeLists.txt index e75e09b0..72d3f831 100644 --- a/src/tools/discovery_parser/CMakeLists.txt +++ b/src/tools/discovery_parser/CMakeLists.txt @@ -17,9 +17,6 @@ file(GLOB SERVER_SOURCE_FILES add_executable(discovery_parser ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(discovery_parser PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/event_object_parser/CMakeLists.txt b/src/tools/event_object_parser/CMakeLists.txt index b6e41fe7..153ec3ba 100644 --- a/src/tools/event_object_parser/CMakeLists.txt +++ b/src/tools/event_object_parser/CMakeLists.txt @@ -14,9 +14,6 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(event_object_parser ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(event_object_parser PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/exd_common_gen/CMakeLists.txt b/src/tools/exd_common_gen/CMakeLists.txt index 78f2714f..44f19de3 100644 --- a/src/tools/exd_common_gen/CMakeLists.txt +++ b/src/tools/exd_common_gen/CMakeLists.txt @@ -11,9 +11,6 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(exd_common_gen ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(exd_common_gen PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/exd_struct_gen/CMakeLists.txt b/src/tools/exd_struct_gen/CMakeLists.txt index e4fef2d0..c2a72377 100644 --- a/src/tools/exd_struct_gen/CMakeLists.txt +++ b/src/tools/exd_struct_gen/CMakeLists.txt @@ -14,9 +14,6 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(exd_struct_gen ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(exd_struct_gen PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/exd_struct_test/CMakeLists.txt b/src/tools/exd_struct_test/CMakeLists.txt index 2e89b09c..0f05b4e3 100644 --- a/src/tools/exd_struct_test/CMakeLists.txt +++ b/src/tools/exd_struct_test/CMakeLists.txt @@ -12,9 +12,6 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(exd_struct_test ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(exd_struct_test PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/mob_parse/CMakeLists.txt b/src/tools/mob_parse/CMakeLists.txt index 06e8f9e6..db59308f 100644 --- a/src/tools/mob_parse/CMakeLists.txt +++ b/src/tools/mob_parse/CMakeLists.txt @@ -12,9 +12,6 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(mob_parse ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(mob_parse PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/pcb_reader/CMakeLists.txt b/src/tools/pcb_reader/CMakeLists.txt index 7a330175..46eccf0f 100644 --- a/src/tools/pcb_reader/CMakeLists.txt +++ b/src/tools/pcb_reader/CMakeLists.txt @@ -12,9 +12,6 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(pcb_reader2 ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(pcb_reader2 PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/tools/quest_parser/CMakeLists.txt b/src/tools/quest_parser/CMakeLists.txt index 51609ba5..ccd4098f 100644 --- a/src/tools/quest_parser/CMakeLists.txt +++ b/src/tools/quest_parser/CMakeLists.txt @@ -20,9 +20,6 @@ file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(quest_parse ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) set_target_properties(quest_parse PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" diff --git a/src/world/Actor/SpawnGroup.h b/src/world/Actor/SpawnGroup.h index 6ba85a50..5f5fb95a 100644 --- a/src/world/Actor/SpawnGroup.h +++ b/src/world/Actor/SpawnGroup.h @@ -3,7 +3,7 @@ #include "ForwardsZone.h" -namespace Core::Entity +namespace Sapphire::Entity { class SpawnGroup diff --git a/src/world/CMakeLists.txt b/src/world/CMakeLists.txt index 98583cba..0542fc26 100644 --- a/src/world/CMakeLists.txt +++ b/src/world/CMakeLists.txt @@ -24,9 +24,6 @@ file( GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} add_executable( world ${SERVER_SOURCE_FILES} ) set_target_properties( world PROPERTIES - CXX_STANDARD 17 - CXX_STANDARD_REQUIRED ON - CXX_EXTENSIONS ON ENABLE_EXPORTS ON WINDOWS_EXPORT_ALL_SYMBOLS ON RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" diff --git a/src/world/ForwardsZone.h b/src/world/ForwardsZone.h index 6694111d..4437ac84 100644 --- a/src/world/ForwardsZone.h +++ b/src/world/ForwardsZone.h @@ -66,6 +66,8 @@ TYPE_FORWARD( Player ); TYPE_FORWARD( EventObject ); TYPE_FORWARD( BNpcTemplate ); TYPE_FORWARD( BNpc ); +TYPE_FORWARD( SpawnPoint ); +TYPE_FORWARD( SpawnGroup ); } namespace Event diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 699a1dfd..98cd1df5 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -24,6 +24,8 @@ #include "Actor/BNpc.h" #include "Actor/Player.h" #include "Actor/EventObject.h" +#include "Actor/SpawnGroup.h" +#include "Actor/SpawnPoint.h" #include "Network/GameConnection.h" @@ -116,7 +118,6 @@ bool Sapphire::Zone::init() // all good } - return true; } @@ -679,14 +680,14 @@ void Sapphire::Zone::onPlayerZoneIn( Entity::Player& player ) { Logger::debug( "Zone::onEnterTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + - +", Entity#" + std::to_string( player.getId() ) ); + + ", Entity#" + std::to_string( player.getId() ) ); } void Sapphire::Zone::onLeaveTerritory( Entity::Player& player ) { Logger::debug( "Zone::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + - +", Entity#" + std::to_string( player.getId() ) ); + + ", Entity#" + std::to_string( player.getId() ) ); } void Sapphire::Zone::onUpdate( uint32_t currTime ) @@ -757,4 +758,31 @@ Sapphire::Entity::EventObjectPtr Sapphire::Zone::registerEObj( const std::string Sapphire::Data::TerritoryTypePtr Sapphire::Zone::getTerritoryTypeInfo() const { return m_territoryTypeInfo; -} \ No newline at end of file +} + +bool Sapphire::Zone::loadSpawnGroups() +{ + auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); + auto res = pDb->query( "SELECT id, bNpcTemplateId, " + "level, maxHp " + "FROM spawnGroup " + "WHERE territoryTypeId = " + std::to_string( getTerritoryTypeId() ) + ";" ); + + while( res->next() ) + { + uint32_t id = res->getUInt( 1 ); + uint32_t templateId = res->getUInt( 2 ); + uint32_t level = res->getUInt( 3 ); + uint32_t maxHp = res->getUInt( 4 ); + + //Entity::SpawnGroup group; + + Logger::debug( std::to_string( id ) + " " + + std::to_string( templateId ) + " " + + std::to_string( level ) + " " + + std::to_string( maxHp ) ); + + } + + return false; +} diff --git a/src/world/Territory/Zone.h b/src/world/Territory/Zone.h index e504c899..812b7d8a 100644 --- a/src/world/Territory/Zone.h +++ b/src/world/Territory/Zone.h @@ -134,6 +134,8 @@ namespace Sapphire void loadWeatherRates(); + bool loadSpawnGroups(); + bool checkWeather(); //void updateBnpcs( int64_t tickCount ); From 959c2d4319f2c14a3f19daa3f4068515869102af Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 31 Dec 2018 17:30:45 +0100 Subject: [PATCH 292/385] Simplified some cmake logic --- CMakeLists.txt | 12 ++++--- cmake/compiler.cmake | 51 +++++++++++++++++------------- src/api/CMakeLists.txt | 8 ----- src/dbm/CMakeLists.txt | 8 +---- src/lobby/CMakeLists.txt | 8 ----- src/scripts/CMakeLists.txt | 1 - src/scripts/quest/ScriptLoader.cpp | 4 +++ src/world/CMakeLists.txt | 20 ++++++------ 8 files changed, 52 insertions(+), 60 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a53f793..a2a23030 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,13 +8,17 @@ set( EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin ) set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) set( EXECUTABLE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin ) -set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ) +set( CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + ${CMAKE_SOURCE_DIR}/cmake ) -########################################################################## -# Dependencies and compiler settings +###################################### +# Dependencies and compiler settings # +###################################### include( "cmake/mysql.cmake" ) include( "cmake/compiler.cmake" ) include( "cmake/cotire.cmake" ) + ############################## # Git # ############################## @@ -49,4 +53,4 @@ add_subdirectory( "src/tools/quest_parser" ) add_subdirectory( "src/tools/discovery_parser" ) add_subdirectory( "src/tools/mob_parse" ) add_subdirectory( "src/tools/pcb_reader" ) -add_subdirectory( "src/tools/event_object_parser" ) +add_subdirectory( "src/tools/event_object_parser" ) \ No newline at end of file diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index f8fa19b2..8d203ba7 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -1,36 +1,43 @@ -if(UNIX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -fPIC") -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32") +if( UNIX ) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -fPIC" ) else() - add_definitions(-D_WIN32_WINNT=0x601) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) - add_definitions(-DNOMINMAX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj") - set(CMAKE_CXX_STANDARD 17) - set(CMAKE_CXX_STANDARD_REQUIRED ON) - set(CMAKE_CXX_EXTENSIONS ON) + add_definitions( -D_WIN32_WINNT=0x601 ) + add_definitions( -D_CRT_SECURE_NO_WARNINGS ) + add_definitions( -DNOMINMAX ) + + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc" ) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP" ) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj" ) + set( CMAKE_CXX_STANDARD 17 ) + set( CMAKE_CXX_STANDARD_REQUIRED ON ) + set( CMAKE_CXX_EXTENSIONS ON ) - if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) + + set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) + + if( CMAKE_BUILD_TYPE STREQUAL "Debug" ) # disabling SAFESEH - message(STATUS "Disabling Safe Exception Handlers..") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO") + message( STATUS "Disabling Safe Exception Handlers.." ) + set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO" ) # edit and continue - message(STATUS "Enabling Edit and Continue..") - add_definitions(/Zi) + message( STATUS "Enabling Edit and Continue.." ) + add_definitions( /Zi ) # incremental linking - message(STATUS "Enabling Incremental Linking..") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL") + message( STATUS "Enabling Incremental Linking.." ) + set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL" ) # enable building with multiple processes - message(STATUS "Enabling Build with Multiple Processes..") - add_definitions(/MP) + message( STATUS "Enabling Build with Multiple Processes.." ) + add_definitions( /MP ) endif() endif() # force standalone asio -add_definitions( -DASIO_STANDALONE ) +add_definitions( -DASIO_STANDALONE ) \ No newline at end of file diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt index a9eca8ca..83279c18 100644 --- a/src/api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -7,14 +7,6 @@ file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) add_executable( api ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) -set_target_properties( api PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" -) - target_link_libraries( api common ) if( UNIX ) target_link_libraries( api mysqlclient stdc++fs ) diff --git a/src/dbm/CMakeLists.txt b/src/dbm/CMakeLists.txt index 278cbd99..eb6b7aa1 100644 --- a/src/dbm/CMakeLists.txt +++ b/src/dbm/CMakeLists.txt @@ -7,18 +7,12 @@ file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) add_executable( dbm ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) -set_target_properties( dbm PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" -) - target_include_directories( dbm PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../" ) + target_link_libraries( dbm PRIVATE mysqlConnector common xivdat ) if (UNIX) target_link_libraries( dbm PRIVATE stdc++fs ) diff --git a/src/lobby/CMakeLists.txt b/src/lobby/CMakeLists.txt index 48a9596c..ce70e468 100644 --- a/src/lobby/CMakeLists.txt +++ b/src/lobby/CMakeLists.txt @@ -8,14 +8,6 @@ file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) add_executable( lobby ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) -set_target_properties( lobby - PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" -) target_link_libraries( lobby PRIVATE common diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index a049fc96..710f957d 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -10,7 +10,6 @@ set(EXECUTABLE_OUTPUT_PATH "${SCRIPT_LIB_DIR}") set(LIBRARY_OUTPUT_PATH "${SCRIPT_LIB_DIR}") set(RUNTIME_OUTPUT_DIRECTORY "${SCRIPT_LIB_DIR}") - file(GLOB children "${CMAKE_CURRENT_SOURCE_DIR}/*" ) foreach(_scriptDir ${children}) get_filename_component(_name "${_scriptDir}" NAME_WE) diff --git a/src/scripts/quest/ScriptLoader.cpp b/src/scripts/quest/ScriptLoader.cpp index 2c05f339..d3bb8b6d 100644 --- a/src/scripts/quest/ScriptLoader.cpp +++ b/src/scripts/quest/ScriptLoader.cpp @@ -13,6 +13,7 @@ #include "subquest/gridania/SubFst002.cpp" #include "subquest/gridania/SubFst003.cpp" #include "subquest/gridania/SubFst004.cpp" +#include "subquest/gridania/SubFst005.cpp" #include "subquest/gridania/SubFst008.cpp" #include "subquest/gridania/SubFst009.cpp" #include "subquest/gridania/SubFst010.cpp" @@ -25,6 +26,7 @@ #include "subquest/gridania/SubFst029.cpp" #include "subquest/gridania/SubFst030.cpp" #include "subquest/gridania/SubFst041.cpp" +#include "subquest/gridania/SubFst045.cpp" #include "subquest/limsa/SubSea001.cpp" #include "subquest/uldah/SubWil000.cpp" #include "subquest/uldah/SubWil001.cpp" @@ -55,6 +57,7 @@ const Sapphire::ScriptAPI::ScriptObject* ptrs[] = static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst002 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst003 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst004 ), + static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst005 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst008 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst009 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst010 ), @@ -67,6 +70,7 @@ const Sapphire::ScriptAPI::ScriptObject* ptrs[] = static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst029 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst030 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst041 ), + static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubFst045 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubSea001 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubWil000 ), static_cast< Sapphire::ScriptAPI::ScriptObject* >( new SubWil001 ), diff --git a/src/world/CMakeLists.txt b/src/world/CMakeLists.txt index 0542fc26..3c223058 100644 --- a/src/world/CMakeLists.txt +++ b/src/world/CMakeLists.txt @@ -23,19 +23,19 @@ file( GLOB SERVER_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} add_executable( world ${SERVER_SOURCE_FILES} ) -set_target_properties( world PROPERTIES - ENABLE_EXPORTS ON - WINDOWS_EXPORT_ALL_SYMBOLS ON - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" +set_target_properties( world + PROPERTIES + ENABLE_EXPORTS ON + WINDOWS_EXPORT_ALL_SYMBOLS ON ) -target_link_libraries( world PUBLIC common ) -target_include_directories( world PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}" ) +target_link_libraries( world + PUBLIC + common ) +target_include_directories( world + PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}" ) if( UNIX ) From 50d1d9d4928de64e173f84795ad90838de477a01 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 1 Jan 2019 11:51:48 +1100 Subject: [PATCH 293/385] correctly send marketboard item list --- src/common/Network/PacketDef/Ipcs.h | 2 +- .../Network/PacketDef/Zone/ClientZoneDef.h | 20 +++- .../Network/PacketDef/Zone/ServerZoneDef.h | 5 +- src/world/Manager/MarketMgr.cpp | 106 +++++++++++++++++- src/world/Manager/MarketMgr.h | 35 +++++- src/world/Network/GameConnection.cpp | 4 + src/world/Network/GameConnection.h | 4 +- src/world/Network/Handlers/PacketHandlers.cpp | 20 +++- 8 files changed, 177 insertions(+), 19 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 40855781..c1875da3 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -266,8 +266,8 @@ namespace Sapphire::Network::Packets MarketBoardRequestItemInformation = 0x00FE, // updated 4.4 MarketBoardRequestItemListings = 0x00FF, // updated 4.4 + MarketBoardSearch = 0x0103, // updated 4.4 - SearchMarketboard = 0x0103, // updated 4.4 ReqExamineFcInfo = 0x010F, // updated 4.1 FcInfoReqHandler = 0x011A, // updated 4.2 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 68b856b8..e312d790 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -237,8 +237,9 @@ struct FFXIVIpcSetSharedEstateSettings : struct FFXIVIpcMarketBoardRequestItemListings : FFXIVIpcBasePacket< MarketBoardRequestItemListings > { - /* 0000 */ uint32_t itemCatalogId; - /* 0004 */ uint32_t padding; + /* 0000 */ uint16_t padding1; + /* 0002 */ uint16_t itemCatalogId; + /* 0004 */ uint32_t padding2; }; struct FFXIVIpcReqPlaceHousingItem : @@ -270,11 +271,11 @@ struct FFXIVIpcHousingUpdateObjectPosition : /* 001C */ uint32_t padding; }; -struct FFXIVIpcSearchMarketboard : - FFXIVIpcBasePacket< SearchMarketboard > +struct FFXIVIpcMarketBoardSearch : + FFXIVIpcBasePacket< MarketBoardSearch > { - /* 0000 */ uint32_t unk; - /* 0004 */ uint8_t unk2[2]; + /* 0000 */ uint32_t startIdx; + /* 0004 */ uint16_t requestId; /* 0006 */ uint8_t itemSearchCategory; /* 0007 */ uint8_t shouldCheckClassJobId; // wat? seems only 1 there at least... /* 0008 */ uint8_t maxEquipLevel; @@ -283,6 +284,13 @@ struct FFXIVIpcSearchMarketboard : /* 0032 */ uint16_t unk4[43]; }; +struct FFXIVIpcMarketBoardRequestItemInformation : + FFXIVIpcBasePacket< MarketBoardRequestItemInformation > +{ + /* 0000 */ uint32_t catalogId; + /* 0000 */ uint32_t requestId; +}; + } } } diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 63ea03ba..2c5a8d8e 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1847,13 +1847,14 @@ struct FFXIVIpcMarketBoardSearchResult : struct MarketBoardItem { uint32_t itemCatalogId; - uint32_t quantity; + uint16_t quantity; + uint16_t demand; } items[20]; uint32_t itemIndexEnd; uint32_t padding1; uint32_t itemIndexStart; - uint32_t padding2; + uint32_t requestId; }; struct FFFXIVIpcMarketBoardItemListingCount : diff --git a/src/world/Manager/MarketMgr.cpp b/src/world/Manager/MarketMgr.cpp index 1769a6e8..b850f1bc 100644 --- a/src/world/Manager/MarketMgr.cpp +++ b/src/world/Manager/MarketMgr.cpp @@ -1,5 +1,17 @@ #include "MarketMgr.h" +#include +#include +#include + +#include +#include +#include + +#include "Actor/Player.h" + +using namespace Sapphire::Network::Packets; + Sapphire::World::Manager::MarketMgr::MarketMgr( Sapphire::FrameworkPtr pFw ) : BaseManager( pFw ) { @@ -8,12 +20,98 @@ Sapphire::World::Manager::MarketMgr::MarketMgr( Sapphire::FrameworkPtr pFw ) : bool Sapphire::World::Manager::MarketMgr::init() { + Logger::info( "MarketMgr: warming up marketable item cache..." ); + + // build item cache + auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); + auto idList = exdData->getItemIdList(); + + for( auto id : idList ) + { + auto item = exdData->get< Sapphire::Data::Item >( id ); + if( !item ) + continue; + + if( item->isUntradable ) + continue; + + MarketableItem cacheEntry {}; + cacheEntry.catalogId = id; + cacheEntry.itemSearchCategory = item->itemSearchCategory; + cacheEntry.maxEquipLevel = item->levelEquip; + cacheEntry.name = item->name; + cacheEntry.classJob = item->classJobUse; + + m_marketItemCache.push_back( std::move( cacheEntry ) ); + } + + Logger::info( "MarketMgr: Cached " + std::to_string( m_marketItemCache.size() ) + " marketable items" ); + return true; } -void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& player, - uint8_t itemSearchCategory, uint8_t maxEquipLevel, - uint8_t classJob ) +void Sapphire::World::Manager::MarketMgr::requestItemListings( Sapphire::Entity::Player& player, uint32_t catalogId, + uint32_t requestId ) { - + auto countPkt = makeZonePacket< Server::FFFXIVIpcMarketBoardItemListingCount >( player.getId() ); + countPkt->data().quantity = 1; + countPkt->data().itemCatalogId = catalogId; +} + + +void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& player, uint8_t itemSearchCategory, + uint8_t maxEquipLevel, uint8_t classJob, + const std::string_view& searchStr, uint32_t requestId, + uint32_t startIdx ) +{ + ItemSearchResultList resultList; + findItems( searchStr, itemSearchCategory, maxEquipLevel, classJob, resultList ); + + auto numResults = resultList.size(); + + if( startIdx > numResults ) + return; + + auto endIdx = std::min< size_t >( startIdx + 20, numResults ); + auto size = endIdx - startIdx; + + auto resultPkt = makeZonePacket< Server::FFXIVIpcMarketBoardSearchResult >( player.getId() ); + resultPkt->data().itemIndexStart = startIdx; + resultPkt->data().requestId = requestId; + + for( auto i = 0; i < resultList.size(); i++ ) + { + auto& item = resultList.at( startIdx + i ); + auto& data = resultPkt->data().items[ i ]; + + data.itemCatalogId = item.catalogId; + data.quantity = item.quantity; + data.demand = 69; + } + + if( size < 20 ) + resultPkt->data().itemIndexEnd = 0; + else + resultPkt->data().itemIndexEnd = startIdx + 20; + + player.queuePacket( resultPkt ); +} + +void Sapphire::World::Manager::MarketMgr::findItems( const std::string_view& searchStr, uint8_t itemSearchCat, + uint8_t maxEquipLevel, uint8_t classJob, + Sapphire::World::Manager::MarketMgr::ItemSearchResultList& resultList ) +{ + for( const auto& item : m_marketItemCache ) + { + if( item.itemSearchCategory != itemSearchCat ) + continue; + + if( maxEquipLevel > 0 && item.maxEquipLevel > maxEquipLevel ) + continue; + + if( classJob > 0 && item.classJob != classJob ) + continue; + + resultList.push_back( { item.catalogId, 1 } ); + } } \ No newline at end of file diff --git a/src/world/Manager/MarketMgr.h b/src/world/Manager/MarketMgr.h index 9c21c8ed..311c1e28 100644 --- a/src/world/Manager/MarketMgr.h +++ b/src/world/Manager/MarketMgr.h @@ -4,6 +4,8 @@ #include "ForwardsZone.h" #include "BaseManager.h" +#include + namespace Sapphire::World::Manager { class MarketMgr : public Manager::BaseManager @@ -13,7 +15,38 @@ namespace Sapphire::World::Manager bool init(); - void searchMarketboard( Entity::Player& player, uint8_t itemSearchCategory, uint8_t maxEquipLevel, uint8_t classJob ); + void searchMarketboard( Entity::Player& player, uint8_t itemSearchCategory, + uint8_t maxEquipLevel, uint8_t classJob, + const std::string_view& searchStr, uint32_t requestId, + uint32_t startIdx ); + + void requestItemListings( Entity::Player& player, uint32_t catalogId, uint32_t requestId ); + + private: + struct ItemSearchResult + { + uint32_t catalogId; + uint16_t quantity; + }; + + struct MarketableItem + { + uint32_t catalogId; + uint8_t itemSearchCategory; + uint8_t maxEquipLevel; + uint8_t classJob; + std::string name; + }; + + using ItemSearchResultList = std::vector< ItemSearchResult >; + using MarketableItemCacheList = std::vector< MarketableItem >; + + MarketableItemCacheList m_marketItemCache; + + + + void findItems( const std::string_view& searchStr, uint8_t itemSearchCat, uint8_t maxEquipLevel, uint8_t classJob, + ItemSearchResultList& resultList ); }; } diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index 8761647a..de524b87 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -123,6 +123,10 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH setZoneHandler( ClientZoneIpcType::PerformNoteHandler, "PerformNoteHandler", &GameConnection::performNoteHandler ); + setZoneHandler( ClientZoneIpcType::MarketBoardSearch, "MarketBoardSearch", &GameConnection::marketBoardSearch ); + setZoneHandler( ClientZoneIpcType::MarketBoardRequestItemInformation, "MarketBoardRequestItemInformation", + &GameConnection::marketBoardRequestItemInfo ); + setChatHandler( ClientChatIpcType::TellReq, "TellReq", &GameConnection::tellHandler ); } diff --git a/src/world/Network/GameConnection.h b/src/world/Network/GameConnection.h index c4984267..65901843 100644 --- a/src/world/Network/GameConnection.h +++ b/src/world/Network/GameConnection.h @@ -176,7 +176,9 @@ namespace Sapphire::Network DECLARE_HANDLER( reqMoveHousingItem ); - DECLARE_HANDLER( searchMarketboard ); + DECLARE_HANDLER( marketBoardSearch ); + + DECLARE_HANDLER( marketBoardRequestItemInfo ); }; diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 580b0629..e08a566e 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -755,14 +755,26 @@ void Sapphire::Network::GameConnection::reqMoveHousingItem( FrameworkPtr pFw, } -void Sapphire::Network::GameConnection::searchMarketboard( FrameworkPtr pFw, - const Sapphire::Network::Packets::FFXIVARR_PACKET_RAW& inPacket, +void Sapphire::Network::GameConnection::marketBoardSearch( FrameworkPtr pFw, + const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { auto marketMgr = pFw->get< MarketMgr >(); - const auto packet = ZoneChannelPacket< Client::FFXIVIpcSearchMarketboard >( inPacket ); + const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardSearch >( inPacket ); const auto& data = packet.data(); - marketMgr->searchMarketboard( player, data.itemSearchCategory, data.maxEquipLevel, data.classJobId ); + std::string_view searchStr( data.searchStr ); + + marketMgr->searchMarketboard( player, data.itemSearchCategory, data.maxEquipLevel, data.classJobId, data.searchStr, + data.requestId, data.startIdx ); +} + +void Sapphire::Network::GameConnection::marketBoardRequestItemInfo( FrameworkPtr pFw, + const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) +{ + const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemInformation >( inPacket ); + + auto marketMgr = pFw->get< MarketMgr >(); } \ No newline at end of file From 717acba9cb3d16715cd58ba121ff3c3680024535 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 1 Jan 2019 14:19:44 +1100 Subject: [PATCH 294/385] fix oob error on market board result lists and correctly sort the items --- src/common/Network/PacketDef/Ipcs.h | 2 +- src/common/Network/PacketDef/Zone/ClientZoneDef.h | 4 ++-- src/world/Manager/MarketMgr.cpp | 10 +++++++++- src/world/Manager/MarketMgr.h | 1 + src/world/Network/GameConnection.cpp | 2 +- src/world/Network/Handlers/PacketHandlers.cpp | 2 +- 6 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index c1875da3..bdfc08fb 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -264,7 +264,7 @@ namespace Sapphire::Network::Packets LinkshellListHandler = 0x00F4, // updated 4.3 - MarketBoardRequestItemInformation = 0x00FE, // updated 4.4 + MarketBoardRequestItemListingInfo = 0x00FE, // updated 4.4 MarketBoardRequestItemListings = 0x00FF, // updated 4.4 MarketBoardSearch = 0x0103, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index e312d790..f4a057ad 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -284,8 +284,8 @@ struct FFXIVIpcMarketBoardSearch : /* 0032 */ uint16_t unk4[43]; }; -struct FFXIVIpcMarketBoardRequestItemInformation : - FFXIVIpcBasePacket< MarketBoardRequestItemInformation > +struct FFXIVIpcMarketBoardRequestItemListingInfo : + FFXIVIpcBasePacket< MarketBoardRequestItemListingInfo > { /* 0000 */ uint32_t catalogId; /* 0000 */ uint32_t requestId; diff --git a/src/world/Manager/MarketMgr.cpp b/src/world/Manager/MarketMgr.cpp index b850f1bc..e448ba16 100644 --- a/src/world/Manager/MarketMgr.cpp +++ b/src/world/Manager/MarketMgr.cpp @@ -10,6 +10,8 @@ #include "Actor/Player.h" +#include + using namespace Sapphire::Network::Packets; Sapphire::World::Manager::MarketMgr::MarketMgr( Sapphire::FrameworkPtr pFw ) : @@ -41,10 +43,16 @@ bool Sapphire::World::Manager::MarketMgr::init() cacheEntry.maxEquipLevel = item->levelEquip; cacheEntry.name = item->name; cacheEntry.classJob = item->classJobUse; + cacheEntry.itemLevel = item->levelItem; m_marketItemCache.push_back( std::move( cacheEntry ) ); } + std::sort( m_marketItemCache.begin(), m_marketItemCache.end(), []( const MarketableItem& a, const MarketableItem& b ) + { + return a.itemLevel > b.itemLevel; + } ); + Logger::info( "MarketMgr: Cached " + std::to_string( m_marketItemCache.size() ) + " marketable items" ); return true; @@ -79,7 +87,7 @@ void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& pla resultPkt->data().itemIndexStart = startIdx; resultPkt->data().requestId = requestId; - for( auto i = 0; i < resultList.size(); i++ ) + for( auto i = 0; i < size; i++ ) { auto& item = resultList.at( startIdx + i ); auto& data = resultPkt->data().items[ i ]; diff --git a/src/world/Manager/MarketMgr.h b/src/world/Manager/MarketMgr.h index 311c1e28..b50462a6 100644 --- a/src/world/Manager/MarketMgr.h +++ b/src/world/Manager/MarketMgr.h @@ -34,6 +34,7 @@ namespace Sapphire::World::Manager uint32_t catalogId; uint8_t itemSearchCategory; uint8_t maxEquipLevel; + uint16_t itemLevel; uint8_t classJob; std::string name; }; diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index de524b87..bb2f6697 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -124,7 +124,7 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH setZoneHandler( ClientZoneIpcType::PerformNoteHandler, "PerformNoteHandler", &GameConnection::performNoteHandler ); setZoneHandler( ClientZoneIpcType::MarketBoardSearch, "MarketBoardSearch", &GameConnection::marketBoardSearch ); - setZoneHandler( ClientZoneIpcType::MarketBoardRequestItemInformation, "MarketBoardRequestItemInformation", + setZoneHandler( ClientZoneIpcType::MarketBoardRequestItemListingInfo, "MarketBoardRequestItemListingInfo", &GameConnection::marketBoardRequestItemInfo ); setChatHandler( ClientChatIpcType::TellReq, "TellReq", &GameConnection::tellHandler ); diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index e08a566e..aa07a1d5 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -774,7 +774,7 @@ void Sapphire::Network::GameConnection::marketBoardRequestItemInfo( FrameworkPtr const Packets::FFXIVARR_PACKET_RAW& inPacket, Entity::Player& player ) { - const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemInformation >( inPacket ); + const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListingInfo >( inPacket ); auto marketMgr = pFw->get< MarketMgr >(); } \ No newline at end of file From cd19435876c87fbdcc1e00057b5faeb39ca1d03a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 1 Jan 2019 17:29:06 +1100 Subject: [PATCH 295/385] somewhat working marketboard implementation --- .../Network/PacketDef/Zone/ServerZoneDef.h | 10 +++--- src/world/Manager/MarketMgr.cpp | 36 +++++++++++++++++-- src/world/Manager/MarketMgr.h | 4 ++- src/world/Network/GameConnection.cpp | 2 ++ src/world/Network/GameConnection.h | 2 ++ src/world/Network/Handlers/PacketHandlers.cpp | 13 +++++++ 6 files changed, 58 insertions(+), 9 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 2c5a8d8e..18618ab9 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1860,11 +1860,11 @@ struct FFXIVIpcMarketBoardSearchResult : struct FFFXIVIpcMarketBoardItemListingCount : FFXIVIpcBasePacket< MarketBoardItemListingCount > { - uint32_t itemCatalogId; - uint32_t unknown1; // does some shit if nonzero - uint16_t unknown2; - uint16_t quantity; // high/low u8s read separately? - uint32_t padding3; + uint32_t itemCatalogId; + uint32_t unknown1; // does some shit if nonzero + uint16_t requestId; + uint16_t quantity; // high/low u8s read separately? + uint32_t unknown3; }; struct FFXIVIpcMarketBoardItemListingHistory : diff --git a/src/world/Manager/MarketMgr.cpp b/src/world/Manager/MarketMgr.cpp index e448ba16..e1a6d3bd 100644 --- a/src/world/Manager/MarketMgr.cpp +++ b/src/world/Manager/MarketMgr.cpp @@ -58,12 +58,37 @@ bool Sapphire::World::Manager::MarketMgr::init() return true; } -void Sapphire::World::Manager::MarketMgr::requestItemListings( Sapphire::Entity::Player& player, uint32_t catalogId, - uint32_t requestId ) +void Sapphire::World::Manager::MarketMgr::requestItemListingInfo( Sapphire::Entity::Player& player, uint32_t catalogId, + uint32_t requestId ) { auto countPkt = makeZonePacket< Server::FFFXIVIpcMarketBoardItemListingCount >( player.getId() ); - countPkt->data().quantity = 1; + countPkt->data().quantity = 1 << 8; countPkt->data().itemCatalogId = catalogId; + countPkt->data().requestId = requestId; + + player.queuePacket( countPkt ); + + auto historyPkt = makeZonePacket< Server::FFXIVIpcMarketBoardItemListingHistory >( player.getId() ); + historyPkt->data().itemCatalogId = catalogId; + historyPkt->data().itemCatalogId2 = catalogId; + + memset( &historyPkt->data().listing, 0x0, sizeof( Server::FFXIVIpcMarketBoardItemListingHistory::MarketListing ) * 20 ); + + std::string name = "fix game"; + + for( int i = 0; i < 10; ++i ) + { + auto& listing = historyPkt->data().listing[ i ]; + + listing.itemCatalogId = catalogId; + listing.quantity = i; + listing.purchaseTime = time( nullptr ); + listing.salePrice = 500; + + strcpy( listing.sellerName, name.c_str() ); + } + + player.queuePacket( historyPkt ); } @@ -105,6 +130,11 @@ void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& pla player.queuePacket( resultPkt ); } +void Sapphire::World::Manager::MarketMgr::requestItemListings( Sapphire::Entity::Player& player, uint16_t catalogId ) +{ + +} + void Sapphire::World::Manager::MarketMgr::findItems( const std::string_view& searchStr, uint8_t itemSearchCat, uint8_t maxEquipLevel, uint8_t classJob, Sapphire::World::Manager::MarketMgr::ItemSearchResultList& resultList ) diff --git a/src/world/Manager/MarketMgr.h b/src/world/Manager/MarketMgr.h index b50462a6..328c9c12 100644 --- a/src/world/Manager/MarketMgr.h +++ b/src/world/Manager/MarketMgr.h @@ -20,7 +20,9 @@ namespace Sapphire::World::Manager const std::string_view& searchStr, uint32_t requestId, uint32_t startIdx ); - void requestItemListings( Entity::Player& player, uint32_t catalogId, uint32_t requestId ); + void requestItemListingInfo( Entity::Player& player, uint32_t catalogId, uint32_t requestId ); + + void requestItemListings( Entity::Player& player, uint16_t catalogId ); private: struct ItemSearchResult diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index bb2f6697..57e336f4 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -126,6 +126,8 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH setZoneHandler( ClientZoneIpcType::MarketBoardSearch, "MarketBoardSearch", &GameConnection::marketBoardSearch ); setZoneHandler( ClientZoneIpcType::MarketBoardRequestItemListingInfo, "MarketBoardRequestItemListingInfo", &GameConnection::marketBoardRequestItemInfo ); + setZoneHandler( ClientZoneIpcType::MarketBoardRequestItemListings, "MarketBoardRequestItemListings", + &GameConnection::marketBoardRequestItemListings ); setChatHandler( ClientChatIpcType::TellReq, "TellReq", &GameConnection::tellHandler ); diff --git a/src/world/Network/GameConnection.h b/src/world/Network/GameConnection.h index 65901843..72c800b2 100644 --- a/src/world/Network/GameConnection.h +++ b/src/world/Network/GameConnection.h @@ -180,6 +180,8 @@ namespace Sapphire::Network DECLARE_HANDLER( marketBoardRequestItemInfo ); + DECLARE_HANDLER( marketBoardRequestItemListings ); + }; } diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index aa07a1d5..d737bf8a 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -777,4 +777,17 @@ void Sapphire::Network::GameConnection::marketBoardRequestItemInfo( FrameworkPtr const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListingInfo >( inPacket ); auto marketMgr = pFw->get< MarketMgr >(); + + marketMgr->requestItemListingInfo( player, packet.data().catalogId, packet.data().requestId ); +} + +void Sapphire::Network::GameConnection::marketBoardRequestItemListings( FrameworkPtr pFw, + const Packets::FFXIVARR_PACKET_RAW& inPacket, + Entity::Player& player ) +{ + const auto packet = ZoneChannelPacket< Client::FFXIVIpcMarketBoardRequestItemListings >( inPacket ); + + auto marketMgr = pFw->get< MarketMgr >(); + + marketMgr->requestItemListings( player, packet.data().itemCatalogId ); } \ No newline at end of file From 4673a8122e8351c0b8729353494b5bd4e0f4d1d1 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 1 Jan 2019 23:37:32 +1100 Subject: [PATCH 296/385] fix structs, disable market cache gen --- src/common/Network/PacketDef/Ipcs.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 10 +-- src/world/Manager/MarketMgr.cpp | 86 ++++++++++--------- 3 files changed, 51 insertions(+), 47 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index bdfc08fb..bca4b286 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -176,7 +176,7 @@ namespace Sapphire::Network::Packets DirectorVars = 0x01E1, // updated 4.4 - CFAvailableContents = 0x01FD, // updated 4.2 + CFAvailableContents = 0xF1FD, // updated 4.2 WeatherChange = 0x01FC, // updated 4.4 PlayerTitleList = 0x01FD, // updated 4.4 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 18618ab9..e1f3980e 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1876,14 +1876,14 @@ struct FFXIVIpcMarketBoardItemListingHistory : struct MarketListing { uint32_t salePrice; - time_t purchaseTime; + uint32_t purchaseTime; uint32_t quantity; - uint16_t unknown1; - uint8_t unknown2; + uint8_t isHq; + uint8_t padding; + uint8_t onMannequin; - char sellerName[32]; + char buyerName[33]; - uint8_t unknown3; uint32_t itemCatalogId; } listing[20]; }; diff --git a/src/world/Manager/MarketMgr.cpp b/src/world/Manager/MarketMgr.cpp index e1a6d3bd..d18d28e1 100644 --- a/src/world/Manager/MarketMgr.cpp +++ b/src/world/Manager/MarketMgr.cpp @@ -22,38 +22,41 @@ Sapphire::World::Manager::MarketMgr::MarketMgr( Sapphire::FrameworkPtr pFw ) : bool Sapphire::World::Manager::MarketMgr::init() { - Logger::info( "MarketMgr: warming up marketable item cache..." ); - - // build item cache - auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); - auto idList = exdData->getItemIdList(); - - for( auto id : idList ) - { - auto item = exdData->get< Sapphire::Data::Item >( id ); - if( !item ) - continue; - - if( item->isUntradable ) - continue; - - MarketableItem cacheEntry {}; - cacheEntry.catalogId = id; - cacheEntry.itemSearchCategory = item->itemSearchCategory; - cacheEntry.maxEquipLevel = item->levelEquip; - cacheEntry.name = item->name; - cacheEntry.classJob = item->classJobUse; - cacheEntry.itemLevel = item->levelItem; - - m_marketItemCache.push_back( std::move( cacheEntry ) ); - } - - std::sort( m_marketItemCache.begin(), m_marketItemCache.end(), []( const MarketableItem& a, const MarketableItem& b ) - { - return a.itemLevel > b.itemLevel; - } ); - - Logger::info( "MarketMgr: Cached " + std::to_string( m_marketItemCache.size() ) + " marketable items" ); +// Logger::info( "MarketMgr: warming up marketable item cache..." ); +// +// // build item cache +// auto exdData = framework()->get< Sapphire::Data::ExdDataGenerated >(); +// auto idList = exdData->getItemIdList(); +// +// for( auto id : idList ) +// { +// if( id > 10000 ) +// break; +// +// auto item = exdData->get< Sapphire::Data::Item >( id ); +// if( !item ) +// continue; +// +// if( item->isUntradable ) +// continue; +// +// MarketableItem cacheEntry {}; +// cacheEntry.catalogId = id; +// cacheEntry.itemSearchCategory = item->itemSearchCategory; +// cacheEntry.maxEquipLevel = item->levelEquip; +// cacheEntry.name = item->name; +// cacheEntry.classJob = item->classJobUse; +// cacheEntry.itemLevel = item->levelItem; +// +// m_marketItemCache.push_back( std::move( cacheEntry ) ); +// } +// +// std::sort( m_marketItemCache.begin(), m_marketItemCache.end(), []( const MarketableItem& a, const MarketableItem& b ) +// { +// return a.itemLevel > b.itemLevel; +// } ); +// +// Logger::info( "MarketMgr: Cached " + std::to_string( m_marketItemCache.size() ) + " marketable items" ); return true; } @@ -72,20 +75,21 @@ void Sapphire::World::Manager::MarketMgr::requestItemListingInfo( Sapphire::Enti historyPkt->data().itemCatalogId = catalogId; historyPkt->data().itemCatalogId2 = catalogId; - memset( &historyPkt->data().listing, 0x0, sizeof( Server::FFXIVIpcMarketBoardItemListingHistory::MarketListing ) * 20 ); + std::string name = "fix game pls se :((("; - std::string name = "fix game"; - - for( int i = 0; i < 10; ++i ) + for( int i = 0; i < 10; i++ ) { auto& listing = historyPkt->data().listing[ i ]; listing.itemCatalogId = catalogId; - listing.quantity = i; + listing.quantity = i + 1; listing.purchaseTime = time( nullptr ); - listing.salePrice = 500; + listing.salePrice = 69420420; + listing.isHq = 1; + listing.onMannequin = 1; - strcpy( listing.sellerName, name.c_str() ); + + strcpy( listing.buyerName, name.c_str() ); } player.queuePacket( historyPkt ); @@ -119,7 +123,7 @@ void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& pla data.itemCatalogId = item.catalogId; data.quantity = item.quantity; - data.demand = 69; + data.demand = 420; } if( size < 20 ) @@ -132,7 +136,7 @@ void Sapphire::World::Manager::MarketMgr::searchMarketboard( Entity::Player& pla void Sapphire::World::Manager::MarketMgr::requestItemListings( Sapphire::Entity::Player& player, uint16_t catalogId ) { - + } void Sapphire::World::Manager::MarketMgr::findItems( const std::string_view& searchStr, uint8_t itemSearchCat, From 551efcfe9a80367a873216c98c78ffe60eda2ed7 Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 2 Jan 2019 10:28:41 +0100 Subject: [PATCH 297/385] Slight cmake cleanup --- CMakeLists.txt | 16 ++++++++++++---- src/scripts/CMakeLists.txt | 4 ++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a2a23030..21fdc195 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,6 @@ set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin ) set( EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin ) set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) -set( EXECUTABLE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin ) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} @@ -29,23 +28,32 @@ configure_file( "${CMAKE_CURRENT_SOURCE_DIR}/src/common/Version.cpp.in" "${CMAKE_CURRENT_SOURCE_DIR}/src/common/Version.cpp" @ONLY ) ############################## -# Mysql # +# Mysql # ############################## find_package( MySQL ) -########################################################################## +############################## +# Dependencies # +############################## add_subdirectory( "deps/zlib" ) add_subdirectory( "deps/MySQL" ) add_subdirectory( "deps/datReader" ) add_subdirectory( "deps/mysqlConnector" ) add_subdirectory( "src/common" ) + +############################## +# Main Sapphire Components # +############################## add_subdirectory( "src/api" ) add_subdirectory( "src/lobby" ) add_subdirectory( "src/world" ) add_subdirectory( "src/dbm" ) add_subdirectory( "src/scripts" ) +############################## +# Tools # +############################## add_subdirectory( "src/tools/exd_common_gen" ) add_subdirectory( "src/tools/exd_struct_gen" ) add_subdirectory( "src/tools/exd_struct_test" ) @@ -53,4 +61,4 @@ add_subdirectory( "src/tools/quest_parser" ) add_subdirectory( "src/tools/discovery_parser" ) add_subdirectory( "src/tools/mob_parse" ) add_subdirectory( "src/tools/pcb_reader" ) -add_subdirectory( "src/tools/event_object_parser" ) \ No newline at end of file +add_subdirectory( "src/tools/event_object_parser" ) diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index 710f957d..a6949a5c 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -3,9 +3,9 @@ project(Script) file(GLOB SCRIPT_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h") -message("exec: ${EXECUTABLE_OUTPUT_DIRECTORY}") +message("exec: ${EXECUTABLE_OUTPUT_PATH}") -set(SCRIPT_LIB_DIR "${EXECUTABLE_OUTPUT_DIRECTORY}/compiledscripts/" ) +set(SCRIPT_LIB_DIR "${EXECUTABLE_OUTPUT_PATH}/compiledscripts/" ) set(EXECUTABLE_OUTPUT_PATH "${SCRIPT_LIB_DIR}") set(LIBRARY_OUTPUT_PATH "${SCRIPT_LIB_DIR}") set(RUNTIME_OUTPUT_DIRECTORY "${SCRIPT_LIB_DIR}") From 3ffcf4e1fa45f2139fdd1644b779edc5303e0990 Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 2 Jan 2019 11:23:39 +0100 Subject: [PATCH 298/385] Further cmake cleanup --- CMakeLists.txt | 5 ++--- src/api/CMakeLists.txt | 6 ------ src/common/CMakeLists.txt | 25 ++++++++----------------- src/lobby/CMakeLists.txt | 10 +--------- src/world/CMakeLists.txt | 7 +------ 5 files changed, 12 insertions(+), 41 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 21fdc195..bdbfa716 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,17 +39,16 @@ add_subdirectory( "deps/zlib" ) add_subdirectory( "deps/MySQL" ) add_subdirectory( "deps/datReader" ) add_subdirectory( "deps/mysqlConnector" ) -add_subdirectory( "src/common" ) - ############################## # Main Sapphire Components # ############################## +add_subdirectory( "src/common" ) add_subdirectory( "src/api" ) add_subdirectory( "src/lobby" ) add_subdirectory( "src/world" ) -add_subdirectory( "src/dbm" ) add_subdirectory( "src/scripts" ) +add_subdirectory( "src/dbm" ) ############################## # Tools # diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt index 83279c18..1b9ca308 100644 --- a/src/api/CMakeLists.txt +++ b/src/api/CMakeLists.txt @@ -8,9 +8,3 @@ file( GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*" ) add_executable( api ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) target_link_libraries( api common ) -if( UNIX ) - target_link_libraries( api mysqlclient stdc++fs ) - -else() - target_link_libraries( api mysql ) -endif() diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 00f863c9..a774e3cc 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -17,25 +17,16 @@ set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_library( common ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} ) -set_target_properties( common PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../../bin/" -) - -target_link_libraries( common PUBLIC xivdat ) - -target_link_libraries( common PUBLIC mysqlConnector ) +target_link_libraries( common + PUBLIC + xivdat + mysqlConnector + mysql ) if( UNIX ) - - target_link_libraries( common PUBLIC mysqlclient ) - target_link_libraries( common PUBLIC pthread ) - -else() - target_link_libraries( common + target_link_libraries( common PUBLIC - mysql ) + pthread + stdc++fs ) endif() target_include_directories( common diff --git a/src/lobby/CMakeLists.txt b/src/lobby/CMakeLists.txt index ce70e468..cba809cf 100644 --- a/src/lobby/CMakeLists.txt +++ b/src/lobby/CMakeLists.txt @@ -10,13 +10,5 @@ add_executable( lobby ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES} ) target_link_libraries( lobby PRIVATE - common - mysql ) -if( UNIX ) - target_link_libraries( lobby - PRIVATE - stdc++fs ) - -endif() - + common ) #cotire( lobby ) diff --git a/src/world/CMakeLists.txt b/src/world/CMakeLists.txt index 3c223058..7d25aae6 100644 --- a/src/world/CMakeLists.txt +++ b/src/world/CMakeLists.txt @@ -26,9 +26,7 @@ add_executable( world ${SERVER_SOURCE_FILES} ) set_target_properties( world PROPERTIES ENABLE_EXPORTS ON - WINDOWS_EXPORT_ALL_SYMBOLS ON -) - + WINDOWS_EXPORT_ALL_SYMBOLS ON ) target_link_libraries( world PUBLIC @@ -40,7 +38,4 @@ target_include_directories( world if( UNIX ) cotire( world ) - target_link_libraries( world PUBLIC stdc++fs ) -else() - target_link_libraries( world PUBLIC mysql ) endif() From 2ed9d84bd0965336b249a651fc201f66d2db3d6a Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 2 Jan 2019 15:09:59 +0100 Subject: [PATCH 299/385] True out of source build now possible. --- CMakeLists.txt | 10 ++- cmake/compiler.cmake | 12 ++-- config/config.ini | 58 ++++++++++++++++++ {bin/config => config}/config.ini.default | 0 {bin/sql => sql}/schema/inserts.sql | 0 {bin/sql => sql}/schema/schema.sql | 0 {bin/web => web}/PS4transitionally.html | 0 .../assets/bootstrap/css/bootstrap.min.css | 0 .../assets/bootstrap/js/bootstrap.min.js | 0 {bin/web => web}/assets/css/global.css | 0 {bin/web => web}/assets/css/styles.css | 0 {bin/web => web}/assets/img/background.png | Bin .../assets/img/fa-discord-icon.png | Bin {bin/web => web}/assets/img/github-icon.png | Bin .../assets/img/graffletopia-gears.png | Bin {bin/web => web}/assets/img/sapphire_logo.png | Bin .../assets/img/sapphire_logo_resize.png | Bin {bin/web => web}/assets/js/jquery.min.js | 0 {bin/web => web}/createUser.html | 0 {bin/web => web}/css/global.css | 0 {bin/web => web}/css/reset.css | 0 {bin/web => web}/headlines.xml | 0 {bin/web => web}/icon-01.png | Bin {bin/web => web}/index.html | 0 {bin/web => web}/login.html | 0 {bin/web => web}/news.xml | 0 26 files changed, 71 insertions(+), 9 deletions(-) create mode 100644 config/config.ini rename {bin/config => config}/config.ini.default (100%) rename {bin/sql => sql}/schema/inserts.sql (100%) rename {bin/sql => sql}/schema/schema.sql (100%) rename {bin/web => web}/PS4transitionally.html (100%) rename {bin/web => web}/assets/bootstrap/css/bootstrap.min.css (100%) rename {bin/web => web}/assets/bootstrap/js/bootstrap.min.js (100%) rename {bin/web => web}/assets/css/global.css (100%) rename {bin/web => web}/assets/css/styles.css (100%) rename {bin/web => web}/assets/img/background.png (100%) rename {bin/web => web}/assets/img/fa-discord-icon.png (100%) rename {bin/web => web}/assets/img/github-icon.png (100%) rename {bin/web => web}/assets/img/graffletopia-gears.png (100%) rename {bin/web => web}/assets/img/sapphire_logo.png (100%) rename {bin/web => web}/assets/img/sapphire_logo_resize.png (100%) rename {bin/web => web}/assets/js/jquery.min.js (100%) rename {bin/web => web}/createUser.html (100%) rename {bin/web => web}/css/global.css (100%) rename {bin/web => web}/css/reset.css (100%) rename {bin/web => web}/headlines.xml (100%) rename {bin/web => web}/icon-01.png (100%) rename {bin/web => web}/index.html (100%) rename {bin/web => web}/login.html (100%) rename {bin/web => web}/news.xml (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index bdbfa716..86f988c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,15 +2,19 @@ cmake_policy( SET CMP0014 NEW ) cmake_minimum_required( VERSION 3.0.2 ) project( Sapphire ) -set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin ) - -set( EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin ) +#set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin ) +set( EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ) +add_custom_target( copy_runtime_files ALL + COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/config ${CMAKE_BINARY_DIR}/bin/config + COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/sql ${CMAKE_BINARY_DIR}/bin/sql + COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/web ${CMAKE_BINARY_DIR}/bin/web ) + ###################################### # Dependencies and compiler settings # ###################################### diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 8d203ba7..da694d09 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -13,12 +13,12 @@ else() set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS ON ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin/" ) + set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) if( CMAKE_BUILD_TYPE STREQUAL "Debug" ) # disabling SAFESEH @@ -40,4 +40,4 @@ else() endif() # force standalone asio -add_definitions( -DASIO_STANDALONE ) \ No newline at end of file +add_definitions( -DASIO_STANDALONE ) diff --git a/config/config.ini b/config/config.ini new file mode 100644 index 00000000..66386e1d --- /dev/null +++ b/config/config.ini @@ -0,0 +1,58 @@ +[Database] +Host = 127.0.0.1 +Port = 3306 +Database = sapphire +Username = sapphire +Password = +SyncThreads = 2 +AsyncThreads = 2 + +[GlobalParameters] +ServerSecret = default +DataPath = /home/mordred/sqpack + +[GlobalNetwork] +; Values definining how Users and other servers will access - these have to be set to your public IP when running a public server +ZoneHost = 127.0.0.1 +ZonePort = 54992 + +LobbyHost = 127.0.0.1 +LobbyPort = 54994 + +RestHost = 127.0.0.1 +RestPort = 80 + +[Lobby] +WorldID = 67 +AllowNoSessionConnect = false +WorldName = Sapphire + +[LobbyNetwork] +ListenIp = 0.0.0.0 +ListenPort = 54994 + +[CharacterCreation] +DefaultGMRank = 255 + +[RestNetwork] +ListenIp = 0.0.0.0 +ListenPort = 80 + +[Scripts] +; where compiled script modules are located +Path = ./compiledscripts/ +; relative to Path, where we copy and load modules from +CachePath = ./cache/ +; whether we should detect changes to script modules and reload them +HotSwap = true + +[Network] +DisconnectTimeout = 20 + +[ZoneNetwork] +ListenIp = 0.0.0.0 +ListenPort = 54992 + +[General] +; Sent on login - each line must be shorter than 307 characters, split lines with ';' +MotD = Welcome to Sapphire!;This is a very good server;You can change these messages by editing General.MotD in config/zone.ini diff --git a/bin/config/config.ini.default b/config/config.ini.default similarity index 100% rename from bin/config/config.ini.default rename to config/config.ini.default diff --git a/bin/sql/schema/inserts.sql b/sql/schema/inserts.sql similarity index 100% rename from bin/sql/schema/inserts.sql rename to sql/schema/inserts.sql diff --git a/bin/sql/schema/schema.sql b/sql/schema/schema.sql similarity index 100% rename from bin/sql/schema/schema.sql rename to sql/schema/schema.sql diff --git a/bin/web/PS4transitionally.html b/web/PS4transitionally.html similarity index 100% rename from bin/web/PS4transitionally.html rename to web/PS4transitionally.html diff --git a/bin/web/assets/bootstrap/css/bootstrap.min.css b/web/assets/bootstrap/css/bootstrap.min.css similarity index 100% rename from bin/web/assets/bootstrap/css/bootstrap.min.css rename to web/assets/bootstrap/css/bootstrap.min.css diff --git a/bin/web/assets/bootstrap/js/bootstrap.min.js b/web/assets/bootstrap/js/bootstrap.min.js similarity index 100% rename from bin/web/assets/bootstrap/js/bootstrap.min.js rename to web/assets/bootstrap/js/bootstrap.min.js diff --git a/bin/web/assets/css/global.css b/web/assets/css/global.css similarity index 100% rename from bin/web/assets/css/global.css rename to web/assets/css/global.css diff --git a/bin/web/assets/css/styles.css b/web/assets/css/styles.css similarity index 100% rename from bin/web/assets/css/styles.css rename to web/assets/css/styles.css diff --git a/bin/web/assets/img/background.png b/web/assets/img/background.png similarity index 100% rename from bin/web/assets/img/background.png rename to web/assets/img/background.png diff --git a/bin/web/assets/img/fa-discord-icon.png b/web/assets/img/fa-discord-icon.png similarity index 100% rename from bin/web/assets/img/fa-discord-icon.png rename to web/assets/img/fa-discord-icon.png diff --git a/bin/web/assets/img/github-icon.png b/web/assets/img/github-icon.png similarity index 100% rename from bin/web/assets/img/github-icon.png rename to web/assets/img/github-icon.png diff --git a/bin/web/assets/img/graffletopia-gears.png b/web/assets/img/graffletopia-gears.png similarity index 100% rename from bin/web/assets/img/graffletopia-gears.png rename to web/assets/img/graffletopia-gears.png diff --git a/bin/web/assets/img/sapphire_logo.png b/web/assets/img/sapphire_logo.png similarity index 100% rename from bin/web/assets/img/sapphire_logo.png rename to web/assets/img/sapphire_logo.png diff --git a/bin/web/assets/img/sapphire_logo_resize.png b/web/assets/img/sapphire_logo_resize.png similarity index 100% rename from bin/web/assets/img/sapphire_logo_resize.png rename to web/assets/img/sapphire_logo_resize.png diff --git a/bin/web/assets/js/jquery.min.js b/web/assets/js/jquery.min.js similarity index 100% rename from bin/web/assets/js/jquery.min.js rename to web/assets/js/jquery.min.js diff --git a/bin/web/createUser.html b/web/createUser.html similarity index 100% rename from bin/web/createUser.html rename to web/createUser.html diff --git a/bin/web/css/global.css b/web/css/global.css similarity index 100% rename from bin/web/css/global.css rename to web/css/global.css diff --git a/bin/web/css/reset.css b/web/css/reset.css similarity index 100% rename from bin/web/css/reset.css rename to web/css/reset.css diff --git a/bin/web/headlines.xml b/web/headlines.xml similarity index 100% rename from bin/web/headlines.xml rename to web/headlines.xml diff --git a/bin/web/icon-01.png b/web/icon-01.png similarity index 100% rename from bin/web/icon-01.png rename to web/icon-01.png diff --git a/bin/web/index.html b/web/index.html similarity index 100% rename from bin/web/index.html rename to web/index.html diff --git a/bin/web/login.html b/web/login.html similarity index 100% rename from bin/web/login.html rename to web/login.html diff --git a/bin/web/news.xml b/web/news.xml similarity index 100% rename from bin/web/news.xml rename to web/news.xml From 4c7ddf1beb9d93d0df9c89bfe455be062e548ee7 Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 2 Jan 2019 15:22:06 +0100 Subject: [PATCH 300/385] Updated gitignore for moved config --- .gitignore | 4 ++-- config/config.ini | 58 ----------------------------------------------- 2 files changed, 2 insertions(+), 60 deletions(-) delete mode 100644 config/config.ini diff --git a/.gitignore b/.gitignore index cf25145f..e47aaa9a 100644 --- a/.gitignore +++ b/.gitignore @@ -141,5 +141,5 @@ doxygen/generated/ doxygen/*.tmp # ignore config directory contents except the default file -bin/config/*.ini -!bin/config/config.ini.default \ No newline at end of file +config/*.ini +!config/config.ini.default diff --git a/config/config.ini b/config/config.ini deleted file mode 100644 index 66386e1d..00000000 --- a/config/config.ini +++ /dev/null @@ -1,58 +0,0 @@ -[Database] -Host = 127.0.0.1 -Port = 3306 -Database = sapphire -Username = sapphire -Password = -SyncThreads = 2 -AsyncThreads = 2 - -[GlobalParameters] -ServerSecret = default -DataPath = /home/mordred/sqpack - -[GlobalNetwork] -; Values definining how Users and other servers will access - these have to be set to your public IP when running a public server -ZoneHost = 127.0.0.1 -ZonePort = 54992 - -LobbyHost = 127.0.0.1 -LobbyPort = 54994 - -RestHost = 127.0.0.1 -RestPort = 80 - -[Lobby] -WorldID = 67 -AllowNoSessionConnect = false -WorldName = Sapphire - -[LobbyNetwork] -ListenIp = 0.0.0.0 -ListenPort = 54994 - -[CharacterCreation] -DefaultGMRank = 255 - -[RestNetwork] -ListenIp = 0.0.0.0 -ListenPort = 80 - -[Scripts] -; where compiled script modules are located -Path = ./compiledscripts/ -; relative to Path, where we copy and load modules from -CachePath = ./cache/ -; whether we should detect changes to script modules and reload them -HotSwap = true - -[Network] -DisconnectTimeout = 20 - -[ZoneNetwork] -ListenIp = 0.0.0.0 -ListenPort = 54992 - -[General] -; Sent on login - each line must be shorter than 307 characters, split lines with ';' -MotD = Welcome to Sapphire!;This is a very good server;You can change these messages by editing General.MotD in config/zone.ini From 266aefaa625f2161ba9607cd0332505063db8169 Mon Sep 17 00:00:00 2001 From: mordred Date: Wed, 2 Jan 2019 15:28:24 +0100 Subject: [PATCH 301/385] Take windows build path out of compiler.cmake --- CMakeLists.txt | 8 ++++++++ cmake/compiler.cmake | 12 +----------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 86f988c5..ac5c583e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,14 @@ project( Sapphire ) set( EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) +if( WIN32 ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) +endif() + set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index da694d09..8bfaf4b2 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -7,19 +7,13 @@ else() add_definitions( -DNOMINMAX ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc" ) + message( STATUS "Enabling Build with Multiple Processes.." ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj" ) set( CMAKE_CXX_STANDARD 17 ) set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS ON ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - - set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - if( CMAKE_BUILD_TYPE STREQUAL "Debug" ) # disabling SAFESEH message( STATUS "Disabling Safe Exception Handlers.." ) @@ -32,10 +26,6 @@ else() # incremental linking message( STATUS "Enabling Incremental Linking.." ) set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL" ) - - # enable building with multiple processes - message( STATUS "Enabling Build with Multiple Processes.." ) - add_definitions( /MP ) endif() endif() From 303fc8c23626b0ff40d9860e7ede9ac9c42e05e2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Wed, 2 Jan 2019 23:40:34 +0100 Subject: [PATCH 302/385] Moved tools to oos build aswell --- CMakeLists.txt | 9 +------ src/tools/CMakeLists.txt | 27 ++++++++++++++++++++ src/tools/discovery_parser/CMakeLists.txt | 14 +++++----- src/tools/event_object_parser/CMakeLists.txt | 11 -------- src/tools/exd_common_gen/CMakeLists.txt | 10 -------- src/tools/exd_struct_gen/CMakeLists.txt | 13 ---------- src/tools/exd_struct_test/CMakeLists.txt | 11 -------- src/tools/mob_parse/CMakeLists.txt | 11 -------- src/tools/pcb_reader/CMakeLists.txt | 11 -------- src/tools/quest_parser/CMakeLists.txt | 19 -------------- src/world/Actor/SpawnGroup.cpp | 8 ++++++ src/world/Actor/SpawnGroup.h | 2 +- src/world/Territory/Zone.cpp | 1 + 13 files changed, 45 insertions(+), 102 deletions(-) create mode 100644 src/tools/CMakeLists.txt create mode 100644 src/world/Actor/SpawnGroup.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index ac5c583e..ab2d0119 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,11 +65,4 @@ add_subdirectory( "src/dbm" ) ############################## # Tools # ############################## -add_subdirectory( "src/tools/exd_common_gen" ) -add_subdirectory( "src/tools/exd_struct_gen" ) -add_subdirectory( "src/tools/exd_struct_test" ) -add_subdirectory( "src/tools/quest_parser" ) -add_subdirectory( "src/tools/discovery_parser" ) -add_subdirectory( "src/tools/mob_parse" ) -add_subdirectory( "src/tools/pcb_reader" ) -add_subdirectory( "src/tools/event_object_parser" ) +add_subdirectory( "src/tools" ) diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt new file mode 100644 index 00000000..06af4261 --- /dev/null +++ b/src/tools/CMakeLists.txt @@ -0,0 +1,27 @@ +cmake_policy( SET CMP0014 NEW ) +cmake_minimum_required( VERSION 3.0.2 ) +project( Sapphire ) + +#set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin ) +set( EXECUTABLE_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}/tools ) +set( LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH}/tools ) + +if( WIN32 ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG}/tools" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE}/tools" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO}/tools" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL}/tools" ) + set( VS_DEBUGGER_WORKING_DIRECTORY "${VS_DEBUGGER_WORKING_DIRECTORY}/tools" ) +endif() + +############################## +# Tools # +############################## +add_subdirectory( "exd_common_gen" ) +add_subdirectory( "exd_struct_gen" ) +add_subdirectory( "exd_struct_test" ) +add_subdirectory( "quest_parser" ) +add_subdirectory( "discovery_parser" ) +add_subdirectory( "mob_parse" ) +add_subdirectory( "pcb_reader" ) +add_subdirectory( "event_object_parser" ) diff --git a/src/tools/discovery_parser/CMakeLists.txt b/src/tools/discovery_parser/CMakeLists.txt index 72d3f831..d60766f3 100644 --- a/src/tools/discovery_parser/CMakeLists.txt +++ b/src/tools/discovery_parser/CMakeLists.txt @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_discovery_parser) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") +#set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/tools") file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*" @@ -16,12 +16,12 @@ file(GLOB SERVER_SOURCE_FILES #set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") add_executable(discovery_parser ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(discovery_parser PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) +#set_target_properties(discovery_parser PROPERTIES +# RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" +# RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" +# RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" +# RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" +#) if (UNIX) target_link_libraries (discovery_parser common xivdat pthread mysqlclient dl z stdc++fs) diff --git a/src/tools/event_object_parser/CMakeLists.txt b/src/tools/event_object_parser/CMakeLists.txt index 153ec3ba..2b18f34e 100644 --- a/src/tools/event_object_parser/CMakeLists.txt +++ b/src/tools/event_object_parser/CMakeLists.txt @@ -2,23 +2,12 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_event_object_parser) -set(SAPPHIRE_BOOST_VER 1.63.0) -set(SAPPHIRE_BOOST_FOLDER_NAME boost_1_63_0) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") - - file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") #set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") add_executable(event_object_parser ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(event_object_parser PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) if (UNIX) target_link_libraries (event_object_parser common xivdat pthread mysqlclient dl z stdc++fs) diff --git a/src/tools/exd_common_gen/CMakeLists.txt b/src/tools/exd_common_gen/CMakeLists.txt index 44f19de3..5ad726b2 100644 --- a/src/tools/exd_common_gen/CMakeLists.txt +++ b/src/tools/exd_common_gen/CMakeLists.txt @@ -2,21 +2,11 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_ExdCommonGen) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") - - file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") add_executable(exd_common_gen ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(exd_common_gen PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) - if (UNIX) target_link_libraries (exd_common_gen common xivdat pthread mysqlclient dl z stdc++fs) else() diff --git a/src/tools/exd_struct_gen/CMakeLists.txt b/src/tools/exd_struct_gen/CMakeLists.txt index c2a72377..348aa164 100644 --- a/src/tools/exd_struct_gen/CMakeLists.txt +++ b/src/tools/exd_struct_gen/CMakeLists.txt @@ -2,24 +2,11 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_ExdStructGen) -set(SAPPHIRE_BOOST_VER 1.63.0) -set(SAPPHIRE_BOOST_FOLDER_NAME boost_1_63_0) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") - - file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") -#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") add_executable(exd_struct_gen ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(exd_struct_gen PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) - if (UNIX) target_link_libraries (exd_struct_gen common xivdat pthread mysqlclient dl z stdc++fs) else() diff --git a/src/tools/exd_struct_test/CMakeLists.txt b/src/tools/exd_struct_test/CMakeLists.txt index 0f05b4e3..8ebb7bba 100644 --- a/src/tools/exd_struct_test/CMakeLists.txt +++ b/src/tools/exd_struct_test/CMakeLists.txt @@ -2,22 +2,11 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_ExdStructTest) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") - - file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") -#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") add_executable(exd_struct_test ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(exd_struct_test PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) - if (UNIX) target_link_libraries (exd_struct_test common xivdat pthread mysqlclient dl z stdc++fs ) else() diff --git a/src/tools/mob_parse/CMakeLists.txt b/src/tools/mob_parse/CMakeLists.txt index db59308f..cbae9ce3 100644 --- a/src/tools/mob_parse/CMakeLists.txt +++ b/src/tools/mob_parse/CMakeLists.txt @@ -2,22 +2,11 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_mob_parse) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") - - file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") -#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") add_executable(mob_parse ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(mob_parse PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) - if (UNIX) target_link_libraries (mob_parse common xivdat pthread mysqlclient dl z stdc++fs ) else() diff --git a/src/tools/pcb_reader/CMakeLists.txt b/src/tools/pcb_reader/CMakeLists.txt index 46eccf0f..0a51293b 100644 --- a/src/tools/pcb_reader/CMakeLists.txt +++ b/src/tools/pcb_reader/CMakeLists.txt @@ -2,22 +2,11 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_pcb_reader2) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") - - file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") -#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") add_executable(pcb_reader2 ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(pcb_reader2 PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) - if (UNIX) target_link_libraries (pcb_reader2 common xivdat pthread mysqlclient dl z stdc++fs ) else() diff --git a/src/tools/quest_parser/CMakeLists.txt b/src/tools/quest_parser/CMakeLists.txt index ccd4098f..252cee64 100644 --- a/src/tools/quest_parser/CMakeLists.txt +++ b/src/tools/quest_parser/CMakeLists.txt @@ -2,30 +2,11 @@ cmake_minimum_required(VERSION 2.6) cmake_policy(SET CMP0015 NEW) project(Tool_QuestParser) -set(SAPPHIRE_BOOST_VER 1.63.0) -set(SAPPHIRE_BOOST_FOLDER_NAME boost_1_63_0) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../bin/") - -include_directories("../../lib/ChaiScript-6.0.0/include/") - -include_directories("../../sapphire/datReader/") -include_directories("../../sapphire/") -include_directories("../") - file(GLOB SERVER_PUBLIC_INCLUDE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*") file(GLOB SERVER_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}*.c*") - -#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../bin/") add_executable(quest_parse ${SERVER_PUBLIC_INCLUDE_FILES} ${SERVER_SOURCE_FILES}) -set_target_properties(quest_parse PROPERTIES - RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" - RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_SOURCE_DIR}/../bin/" -) - if (UNIX) target_link_libraries (quest_parse common xivdat pthread mysqlclient dl z stdc++fs) else() diff --git a/src/world/Actor/SpawnGroup.cpp b/src/world/Actor/SpawnGroup.cpp new file mode 100644 index 00000000..a98a4b0d --- /dev/null +++ b/src/world/Actor/SpawnGroup.cpp @@ -0,0 +1,8 @@ +#include "ForwardsZone.h" +#include "SpawnGroup.h" + +Sapphire::Entity::SpawnGroup::SpawnGroup( uint32_t bNpcTemplateId, uint32_t level ) : + m_level( level ) +{ + +} diff --git a/src/world/Actor/SpawnGroup.h b/src/world/Actor/SpawnGroup.h index 5f5fb95a..16739ac2 100644 --- a/src/world/Actor/SpawnGroup.h +++ b/src/world/Actor/SpawnGroup.h @@ -17,7 +17,7 @@ namespace Sapphire::Entity std::vector< SpawnPointPtr > m_spawnPoints; public: - SpawnGroup(); + SpawnGroup( uint32_t bNpcTemplateId, uint32_t level ); }; diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index cae7a403..1c782dc7 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -76,6 +76,7 @@ Sapphire::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, m_territoryTypeInfo = pExdData->get< Sapphire::Data::TerritoryType >( territoryTypeId ); loadWeatherRates(); + loadSpawnGroups(); m_currentWeather = getNextWeather(); } From e32a2ca8f7d33665efb3ffe123e4d8bb90ed6bc9 Mon Sep 17 00:00:00 2001 From: mordred Date: Thu, 3 Jan 2019 09:13:56 +0100 Subject: [PATCH 303/385] Generate libs oos --- CMakeLists.txt | 1 + src/common/CMakeLists.txt | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ab2d0119..84342f44 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ project( Sapphire ) #set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin ) set( EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) +set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) if( WIN32 ) set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index a774e3cc..9eadc792 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -13,7 +13,6 @@ file(GLOB UTILS_SOURCE_FILES "${CMAKE_CURRENT_SOURCE_DIR}/Script/*.cpp" "${CMAKE_CURRENT_SOURCE_DIR}/Util/*.cpp") -set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} ) add_library( common ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} ) From c7993af00a1db1e07b1e0c3e6d450b9a9d79245b Mon Sep 17 00:00:00 2001 From: mordred Date: Thu, 3 Jan 2019 09:22:03 +0100 Subject: [PATCH 304/385] Also copy cand call sql_import for CI --- .appveyor.yml | 2 -- .travis.yml | 2 +- CMakeLists.txt | 3 ++- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 6a140060..70d4d921 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -24,8 +24,6 @@ before_build: - cmake --build . --target ALL_BUILD --config Release build_script: - - cd .. - cd bin - copy "C:\Program Files\MySQL\MySQL Server 5.7\lib\libmysql.dll" libmysql.dll - - cd .. - sh sql_import.sh diff --git a/.travis.yml b/.travis.yml index 8ca1bc43..375d4353 100644 --- a/.travis.yml +++ b/.travis.yml @@ -38,5 +38,5 @@ script: - mkdir -p build - cd build - cmake .. && make -j 3 - - cd .. + - cd bin - bash sql_import.sh diff --git a/CMakeLists.txt b/CMakeLists.txt index 84342f44..b3f220a9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,8 @@ set( CMAKE_MODULE_PATH add_custom_target( copy_runtime_files ALL COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/config ${CMAKE_BINARY_DIR}/bin/config COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/sql ${CMAKE_BINARY_DIR}/bin/sql - COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/web ${CMAKE_BINARY_DIR}/bin/web ) + COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/web ${CMAKE_BINARY_DIR}/bin/web + COMMAND cmake -E copy ${CMAKE_SOURCE_DIR}/sql_import.sh ${CMAKE_BINARY_DIR}/bin/sql_import.sh ) ###################################### # Dependencies and compiler settings # From a4b6608ce7877815ee98d77f18d7e0c5044c2464 Mon Sep 17 00:00:00 2001 From: mordred Date: Thu, 3 Jan 2019 09:53:37 +0100 Subject: [PATCH 305/385] More cmake cleanup --- CMakeLists.txt | 13 +------------ cmake/paths.cmake | 11 +++++++++++ src/scripts/CMakeLists.txt | 23 +++++++++++++---------- 3 files changed, 25 insertions(+), 22 deletions(-) create mode 100644 cmake/paths.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index b3f220a9..e2a55e40 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,18 +2,6 @@ cmake_policy( SET CMP0014 NEW ) cmake_minimum_required( VERSION 3.0.2 ) project( Sapphire ) -#set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin ) -set( EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) -set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) -set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) - -if( WIN32 ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) - set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) -endif() set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} @@ -28,6 +16,7 @@ add_custom_target( copy_runtime_files ALL ###################################### # Dependencies and compiler settings # ###################################### +include( "cmake/paths.cmake" ) include( "cmake/mysql.cmake" ) include( "cmake/compiler.cmake" ) include( "cmake/cotire.cmake" ) diff --git a/cmake/paths.cmake b/cmake/paths.cmake new file mode 100644 index 00000000..6a67f344 --- /dev/null +++ b/cmake/paths.cmake @@ -0,0 +1,11 @@ +set( EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) +set( LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin ) +set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} ) + +if( WIN32 ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) +endif() diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index a6949a5c..d5843a1a 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -10,6 +10,13 @@ set(EXECUTABLE_OUTPUT_PATH "${SCRIPT_LIB_DIR}") set(LIBRARY_OUTPUT_PATH "${SCRIPT_LIB_DIR}") set(RUNTIME_OUTPUT_DIRECTORY "${SCRIPT_LIB_DIR}") +if( WIN32 ) + set( LIBRARY_OUTPUT_DIRECTORY_DEBUG "${SCRIPT_LIB_DIR}" ) + set( LIBRARY_OUTPUT_DIRECTORY_RELEASE "${SCRIPT_LIB_DIR}" ) + set( LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SCRIPT_LIB_DIR}" ) + set( LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${SCRIPT_LIB_DIR}" ) +endif() + file(GLOB children "${CMAKE_CURRENT_SOURCE_DIR}/*" ) foreach(_scriptDir ${children}) get_filename_component(_name "${_scriptDir}" NAME_WE) @@ -34,18 +41,14 @@ foreach(_scriptDir ${children}) endif() endforeach() - add_library("script_${_name}" MODULE ${SCRIPT_BUILD_FILES} "${SCRIPT_INCLUDE_FILES}" "${_scriptDir}/ScriptLoader.cpp") + add_library( "script_${_name}" + MODULE + ${SCRIPT_BUILD_FILES} + "${SCRIPT_INCLUDE_FILES}" + "${_scriptDir}/ScriptLoader.cpp" ) + target_link_libraries( "script_${_name}" world ) - if(MSVC) - set_target_properties( "script_${_name}" PROPERTIES - LIBRARY_OUTPUT_DIRECTORY_DEBUG "${SCRIPT_LIB_DIR}" - LIBRARY_OUTPUT_DIRECTORY_RELEASE "${SCRIPT_LIB_DIR}" - LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SCRIPT_LIB_DIR}" - LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${SCRIPT_LIB_DIR}" - ) - endif() - target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/world/") target_include_directories("script_${_name}" PUBLIC "${CMAKE_SOURCE_DIR}/src/scripts") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}") target_include_directories("script_${_name}" PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/Scripts") From b9b10c40241e1201f6772d3a800e4204e562350f Mon Sep 17 00:00:00 2001 From: mordred Date: Thu, 3 Jan 2019 10:01:00 +0100 Subject: [PATCH 306/385] Added cmake comment --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e2a55e40..127d1ea7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,6 +7,9 @@ set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ) +##################################### +# Copy needed files to build-folder # +##################################### add_custom_target( copy_runtime_files ALL COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/config ${CMAKE_BINARY_DIR}/bin/config COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/sql ${CMAKE_BINARY_DIR}/bin/sql From c9468d8ad231f1b42230d7b7fdb08c5589b5687b Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 3 Jan 2019 21:32:44 +0100 Subject: [PATCH 307/385] Automatically copy libmysql.dll to bin folder --- CMakeLists.txt | 1 - cmake/FindMySQL.cmake | 6 ++++++ src/common/CMakeLists.txt | 8 +++----- src/tools/CMakeLists.txt | 1 - 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 127d1ea7..82d9129c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,6 @@ cmake_policy( SET CMP0014 NEW ) cmake_minimum_required( VERSION 3.0.2 ) project( Sapphire ) - set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake ) diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake index 5fd19dae..731d9fc1 100644 --- a/cmake/FindMySQL.cmake +++ b/cmake/FindMySQL.cmake @@ -189,6 +189,12 @@ if( WIN32 ) "$ENV{MYSQL_ROOT}/lib" DOC "Specify the location of the mysql library here." ) + + STRING( REGEX REPLACE "(.lib)$" ".dll" MYSQL_DLL ${MYSQL_LIBRARY} ) + + file(COPY ${MYSQL_DLL} + DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) + endif( WIN32 ) # On Windows you typically don't need to include any extra libraries diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 9eadc792..88ab338d 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -18,8 +18,8 @@ add_library( common ${UTILS_PUBLIC_INCLUDE_FILES} ${UTILS_SOURCE_FILES} ) target_link_libraries( common PUBLIC - xivdat - mysqlConnector + xivdat + mysqlConnector mysql ) if( UNIX ) target_link_libraries( common @@ -33,7 +33,5 @@ target_include_directories( common "${CMAKE_CURRENT_SOURCE_DIR}/" "${CMAKE_CURRENT_SOURCE_DIR}/../../deps/" "${CMAKE_CURRENT_SOURCE_DIR}/../../deps/asio/asio/include/" - "${CMAKE_CURRENT_SOURCE_DIR}/../../deps/spdlog/include/" - PRIVATE - "${CMAKE_CURRENT_SOURCE_DIR}/src/libraries/external/") + "${CMAKE_CURRENT_SOURCE_DIR}/../../deps/spdlog/include/" ) diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt index 06af4261..d7ae59e2 100644 --- a/src/tools/CMakeLists.txt +++ b/src/tools/CMakeLists.txt @@ -2,7 +2,6 @@ cmake_policy( SET CMP0014 NEW ) cmake_minimum_required( VERSION 3.0.2 ) project( Sapphire ) -#set( CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin ) set( EXECUTABLE_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}/tools ) set( LIBRARY_OUTPUT_PATH ${LIBRARY_OUTPUT_PATH}/tools ) From 19de2bf90982b7afac003712bd0168f555912360 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 3 Jan 2019 22:40:26 +0100 Subject: [PATCH 308/385] Automatically create log folder in cmake stage --- cmake/paths.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/paths.cmake b/cmake/paths.cmake index 6a67f344..93e6008b 100644 --- a/cmake/paths.cmake +++ b/cmake/paths.cmake @@ -9,3 +9,6 @@ if( WIN32 ) set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) set( VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin/" ) endif() + +# Create log folder +file( MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin/log ) From a4f54d2b318d44350428911b5687b5faba7af6b2 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Fri, 4 Jan 2019 05:12:06 +0100 Subject: [PATCH 309/385] "!add bnpc" no longer crashes world.exe if a non-existing bnpctemplate is inputted --- src/world/Manager/DebugCommandMgr.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 63b3d53a..e84fd649 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -429,8 +429,10 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& auto bNpcTemplate = serverZone->getBNpcTemplate( params ); if( !bNpcTemplate ) + { player.sendNotice( "Template " + params + " not found in cache!" ); - + return; + } auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, player.getPos().x, player.getPos().y, From 4e35fd2d911b419747974543dde60b9b02f63bdf Mon Sep 17 00:00:00 2001 From: mordred Date: Fri, 4 Jan 2019 08:32:47 +0100 Subject: [PATCH 310/385] Fixed a spawngroup related linux crash --- src/world/Territory/Zone.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 1c782dc7..9cc4d30f 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -763,9 +763,8 @@ Sapphire::Data::TerritoryTypePtr Sapphire::Zone::getTerritoryTypeInfo() const bool Sapphire::Zone::loadSpawnGroups() { auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT id, bNpcTemplateId, " - "level, maxHp " - "FROM spawnGroup " + auto res = pDb->query( "SELECT id, bNpcTemplateId, level, maxHp " + "FROM spawngroup " "WHERE territoryTypeId = " + std::to_string( getTerritoryTypeId() ) + ";" ); while( res->next() ) From 84d6175b2057eb1506a089d8dab142e0abf8d888 Mon Sep 17 00:00:00 2001 From: mordred Date: Fri, 4 Jan 2019 08:54:39 +0100 Subject: [PATCH 311/385] Moved spawngroup query to prepared stmt --- src/common/Database/ZoneDbConnection.cpp | 16 ++++++++++++++-- src/common/Database/ZoneDbConnection.h | 2 ++ src/world/Territory/Zone.cpp | 6 +++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index d708ecd9..d9a081d5 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -7,7 +7,7 @@ Sapphire::Db::ZoneDbConnection::ZoneDbConnection( ConnectionInfo& connInfo ) : } Sapphire::Db::ZoneDbConnection::ZoneDbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* q, - ConnectionInfo& connInfo ) : + ConnectionInfo& connInfo ) : DbConnection( q, connInfo ) { } @@ -175,7 +175,7 @@ void Sapphire::Db::ZoneDbConnection::doPrepareStatements() "INSERT INTO charaglobalitem ( CharacterId, ItemId, catalogId, stack, UPDATE_DATE ) VALUES ( ?, ?, ?, ?, NOW() );", CONNECTION_SYNC ); - /// BNPC TEMPLATES + /// ZONE QUERIES prepareStatement( ZONE_SEL_BNPCTEMPLATES, "SELECT Id, Name, bNPCBaseId, bNPCNameId, mainWeaponModel, " "secWeaponModel, aggressionMode, enemyType, pose, " @@ -183,6 +183,18 @@ void Sapphire::Db::ZoneDbConnection::doPrepareStatements() "FROM bnpctemplate WHERE 1;", CONNECTION_BOTH ); + prepareStatement( ZONE_SEL_SPAWNGROUPS, + "SELECT id, bNpcTemplateId, level, maxHp " + "FROM spawngroup " + "WHERE territoryTypeId = ?", + CONNECTION_BOTH ); + + prepareStatement( ZONE_SEL_SPAWNPOINTS, + "SELECT id, x, y, z, r " + "FROM spawnpoint " + "WHERE spawnGroupId = ?", + CONNECTION_BOTH ); + prepareStatement( CHARA_ITEMGLOBAL_UP, "UPDATE charaglobalitem SET stack = ?, durability = ?, stain = ? WHERE ItemId = ?;", CONNECTION_BOTH ); diff --git a/src/common/Database/ZoneDbConnection.h b/src/common/Database/ZoneDbConnection.h index fa2458e3..1c0fde7a 100644 --- a/src/common/Database/ZoneDbConnection.h +++ b/src/common/Database/ZoneDbConnection.h @@ -77,6 +77,8 @@ namespace Sapphire::Db CHARA_ITEMGLOBAL_DELETE, ZONE_SEL_BNPCTEMPLATES, + ZONE_SEL_SPAWNGROUPS, + ZONE_SEL_SPAWNPOINTS, LAND_INS, LAND_SEL, diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 9cc4d30f..1d1090a0 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -763,9 +763,9 @@ Sapphire::Data::TerritoryTypePtr Sapphire::Zone::getTerritoryTypeInfo() const bool Sapphire::Zone::loadSpawnGroups() { auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto res = pDb->query( "SELECT id, bNpcTemplateId, level, maxHp " - "FROM spawngroup " - "WHERE territoryTypeId = " + std::to_string( getTerritoryTypeId() ) + ";" ); + auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_SPAWNGROUPS ); + stmt->setUInt( 1, getTerritoryTypeId() ); + auto res = pDb->query( stmt ); while( res->next() ) { From c07d7e6f5d6f77962cc9a96544361e4baf04d392 Mon Sep 17 00:00:00 2001 From: mordred Date: Fri, 4 Jan 2019 10:17:21 +0100 Subject: [PATCH 312/385] Potential fix for VS build dir --- src/scripts/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/scripts/CMakeLists.txt b/src/scripts/CMakeLists.txt index d5843a1a..1c8362ba 100644 --- a/src/scripts/CMakeLists.txt +++ b/src/scripts/CMakeLists.txt @@ -11,10 +11,10 @@ set(LIBRARY_OUTPUT_PATH "${SCRIPT_LIB_DIR}") set(RUNTIME_OUTPUT_DIRECTORY "${SCRIPT_LIB_DIR}") if( WIN32 ) - set( LIBRARY_OUTPUT_DIRECTORY_DEBUG "${SCRIPT_LIB_DIR}" ) - set( LIBRARY_OUTPUT_DIRECTORY_RELEASE "${SCRIPT_LIB_DIR}" ) - set( LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SCRIPT_LIB_DIR}" ) - set( LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${SCRIPT_LIB_DIR}" ) + set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${SCRIPT_LIB_DIR}" ) + set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${SCRIPT_LIB_DIR}" ) + set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO "${SCRIPT_LIB_DIR}" ) + set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL "${SCRIPT_LIB_DIR}" ) endif() file(GLOB children "${CMAKE_CURRENT_SOURCE_DIR}/*" ) From ec340e2c3ca577c920387ad4b4e1bce267cd9b41 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 4 Jan 2019 20:46:57 +1100 Subject: [PATCH 313/385] ignore clion cmake build directories --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index e47aaa9a..be5cd80f 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,7 @@ src/tools/bin/generated/* # Build Directory build/ +cmake-build-*/ # Prerequisites *.d From 6ef140e87d05ca1f63366df48f87833343d27b90 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 4 Jan 2019 21:46:37 +1100 Subject: [PATCH 314/385] add logger message formatting --- src/common/Database/DbWorkerPool.cpp | 14 ++++----- src/common/Database/ZoneDbConnection.cpp | 4 +-- src/common/Logging/Logger.h | 39 ++++++++++++++++++++++++ src/tools/mob_parse/main.cpp | 9 +++--- src/world/ServerMgr.cpp | 8 ++--- 5 files changed, 55 insertions(+), 19 deletions(-) diff --git a/src/common/Database/DbWorkerPool.cpp b/src/common/Database/DbWorkerPool.cpp index 2b07acca..ff6d9e34 100644 --- a/src/common/Database/DbWorkerPool.cpp +++ b/src/common/Database/DbWorkerPool.cpp @@ -47,9 +47,8 @@ void Sapphire::Db::DbWorkerPool< T >::setConnectionInfo( const ConnectionInfo& i template< class T > uint32_t Sapphire::Db::DbWorkerPool< T >::open() { - Logger::info( "[DbPool] Opening DatabasePool " + getDatabaseName() + - " Asynchronous connections: " + std::to_string( m_asyncThreads ) + - " Synchronous connections: " + std::to_string( m_synchThreads ) ); + Logger::info( "[DbPool] Opening DatabasePool {0} Asynchronous connections: {1} Synchronous connections: {2}", + getDatabaseName(), m_asyncThreads, m_synchThreads ); uint32_t error = openConnections( IDX_ASYNC, m_asyncThreads ); @@ -60,9 +59,8 @@ uint32_t Sapphire::Db::DbWorkerPool< T >::open() if( !error ) { - Logger::info( "[DbPool] DatabasePool " + getDatabaseName() + " opened successfully. " + - std::to_string( ( m_connections[ IDX_SYNCH ].size() + m_connections[ IDX_ASYNC ].size() ) ) + - " total connections running." ); + Logger::info( "[DbPool] DatabasePool '{0}' opened successfully. {1} total connections running.", + getDatabaseName(), ( m_connections[ IDX_SYNCH ].size() + m_connections[ IDX_ASYNC ].size() ) ); } return error; @@ -71,10 +69,10 @@ uint32_t Sapphire::Db::DbWorkerPool< T >::open() template< class T > void Sapphire::Db::DbWorkerPool< T >::close() { - Logger::info( "[DbPool] Closing down DatabasePool " + getDatabaseName() ); + Logger::info( "[DbPool] Closing down DatabasePool {0}", getDatabaseName() ); m_connections[ IDX_ASYNC ].clear(); m_connections[ IDX_SYNCH ].clear(); - Logger::info( "[DbPool] All connections on DatabasePool " + getDatabaseName() + "closed." ); + Logger::info( "[DbPool] All connections on DatabasePool {0} closed.", getDatabaseName() ); } template< class T > diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index d9a081d5..aea74763 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -184,13 +184,13 @@ void Sapphire::Db::ZoneDbConnection::doPrepareStatements() CONNECTION_BOTH ); prepareStatement( ZONE_SEL_SPAWNGROUPS, - "SELECT id, bNpcTemplateId, level, maxHp " + "SELECT id, bNpcTemplateId, level, maxHp " "FROM spawngroup " "WHERE territoryTypeId = ?", CONNECTION_BOTH ); prepareStatement( ZONE_SEL_SPAWNPOINTS, - "SELECT id, x, y, z, r " + "SELECT id, x, y, z, r " "FROM spawnpoint " "WHERE spawnGroupId = ?", CONNECTION_BOTH ); diff --git a/src/common/Logging/Logger.h b/src/common/Logging/Logger.h index b716e319..3ed95035 100644 --- a/src/common/Logging/Logger.h +++ b/src/common/Logging/Logger.h @@ -3,6 +3,8 @@ #include +#include + namespace Sapphire { @@ -18,17 +20,54 @@ namespace Sapphire static void init( const std::string& logPath ); + // todo: this is a minor increase in build time because of fmtlib, but much less than including spdlog directly + static void error( const std::string& text ); + template< typename... Args > + static void error( const std::string& fmt, const Args&... args ) + { + error( fmt::format( fmt, args... ) ); + } static void warn( const std::string& text ); + template< typename... Args > + static void warn( const std::string& fmt, const Args&... args ) + { + warn( fmt::format( fmt, args... ) ); + } + static void info( const std::string& text ); + template< typename... Args > + static void info( const std::string& fmt, const Args&... args ) + { + info( fmt::format( fmt, args... ) ); + } + static void debug( const std::string& text ); + template< typename... Args > + static void debug( const std::string& fmt, const Args&... args ) + { + debug( fmt::format( fmt, args... ) ); + } + static void fatal( const std::string& text ); + template< typename... Args > + static void fatal( const std::string& fmt, const Args&... args ) + { + fatal( fmt::format( fmt, args... ) ); + } + static void trace( const std::string& text ); + template< typename... Args > + static void trace( const std::string& fmt, const Args&... args ) + { + trace( fmt::format( fmt, args... ) ); + } + }; diff --git a/src/tools/mob_parse/main.cpp b/src/tools/mob_parse/main.cpp index 07ce253a..7d25e2ee 100644 --- a/src/tools/mob_parse/main.cpp +++ b/src/tools/mob_parse/main.cpp @@ -259,8 +259,8 @@ int dumpSpawns() //auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( entry.first ); auto teri1 = g_exdData.get< Sapphire::Data::TerritoryType >( entry.first ); auto teriPlaceName = g_exdData.get< Sapphire::Data::PlaceName >( teri1->placeName ); - Logger::info( std::to_string( entry.first ) + " - " + teri1->name + " - " + teriPlaceName->name ); - Logger::info( "Mob Count: " + std::to_string( entry.second.size() ) ); + Logger::info( "{0} - {1} - {2}", entry.first, teri1->name, teriPlaceName->name ); + Logger::info( "Mob Count: {0}", entry.second.size() ); for( auto mob : entry.second ) { @@ -283,9 +283,8 @@ int dumpSpawns() for( auto mobName : lvlToPacket ) { auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mobName.second.at(0).bNPCName ); - Logger::info( "|--> " + nameStruct->singular + "(" + std::to_string( mobName.second.size() ) + ")" ); - - Logger::info( "|-> " + std::to_string( entry.first ) ); + Logger::info( "|--> {0}, ({1})", nameStruct->singular, mobName.second.size() ); + Logger::info( "|-> {0}", entry.first ); std::string name1 = delChar( nameStruct->singular, ' ' ); name1 = delChar( name1, '\'' ); diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 316f6460..316100af 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -65,11 +65,11 @@ bool Sapphire::World::ServerMgr::loadSettings( int32_t argc, char* argv[] ) { auto pConfig = framework()->get< Sapphire::ConfigMgr >(); - Logger::info( "Loading config " + m_configName ); + Logger::info( "Loading config {0}", m_configName ); if( !pConfig->loadConfig( m_configName ) ) { - Logger::fatal( "Error loading config " + m_configName ); + Logger::fatal( "Error loading config {0}", m_configName ); Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); return false; } @@ -103,7 +103,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) if( !pExdData->init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); - Logger::fatal( "DataPath: " + dataPath ); + Logger::fatal( "DataPath: {0}", dataPath ); return; } framework()->set< Data::ExdDataGenerated >( pExdData ); @@ -192,7 +192,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) framework()->set< Manager::EventMgr >( pEventMgr ); framework()->set< Manager::ItemMgr >( pItemMgr ); - Logger::info( "World server running on " + m_ip + ":" + std::to_string( m_port ) ); + Logger::info( "World server running on {0}:{1}", m_ip, m_port ); mainLoop(); From ca837de56f5b109787e42cd794af2a3534ba323a Mon Sep 17 00:00:00 2001 From: mordred Date: Fri, 4 Jan 2019 12:34:19 +0100 Subject: [PATCH 315/385] Converting logging calls --- src/tools/exd_struct_gen/main.cpp | 2 +- src/tools/exd_struct_test/main.cpp | 6 +++--- src/tools/mob_parse/main.cpp | 27 +++++++++++---------------- src/tools/quest_parser/main.cpp | 4 ++-- src/world/Actor/EventObject.cpp | 8 ++++---- src/world/Actor/Player.cpp | 8 +++----- src/world/Actor/PlayerEvent.cpp | 8 ++++---- src/world/Actor/PlayerSql.cpp | 6 +++--- src/world/ServerMgr.cpp | 12 ++++++------ src/world/Session.cpp | 2 +- 10 files changed, 38 insertions(+), 45 deletions(-) diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index a0581681..13a29feb 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -326,7 +326,7 @@ int main( int argc, char** argv ) Logger::init( "struct_gen" ); if( argc > 1 ) { - Logger::info( "using dat path: " + std::string( argv[ 1 ] ) ); + Logger::info( "using dat path: {0}", std::string( argv[ 1 ] ) ); datLocation = std::string( argv[ 1 ] ); } diff --git a/src/tools/exd_struct_test/main.cpp b/src/tools/exd_struct_test/main.cpp index 7dfede2b..3c74893f 100644 --- a/src/tools/exd_struct_test/main.cpp +++ b/src/tools/exd_struct_test/main.cpp @@ -44,13 +44,13 @@ int main() //for( auto id : idList ) { auto teri1 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 0 ); - Logger::info( "0 -> " + std::to_string( teri1->item ) ); + Logger::info( "0 -> {0}", teri1->item ); auto teri2 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 1 ); - Logger::info( "1 -> " + std::to_string( teri2->item ) ); + Logger::info( "1 -> {0} ", teri2->item ); auto teri3 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 2 ); - Logger::info( "2 -> " + std::to_string( teri3->item ) ); + Logger::info( "2 -> {0}", teri3->item ); } return 0; diff --git a/src/tools/mob_parse/main.cpp b/src/tools/mob_parse/main.cpp index 7d25e2ee..35bf8062 100644 --- a/src/tools/mob_parse/main.cpp +++ b/src/tools/mob_parse/main.cpp @@ -330,15 +330,10 @@ int dumpSpawns() std::string name = delChar( nameStruct->singular, ' ' ); name = delChar( name, '\'' ); - Logger::info( "|----> " + name + "_" + - std::to_string( instance.bNPCBase ) + " " + - std::to_string( instance.posX ) + ", " + - std::to_string( instance.posY ) + ", " + - std::to_string( instance.posZ ) + ", " + - std::to_string( instance.modelChara ) + ", " + - std::to_string( instance.gimmickId ) + ", " + - std::to_string( instance.level ) + ", " + - std::to_string( instance.hPMax ) ); + Logger::info( "|----> {0}_{1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}", + name, instance.bNPCBase, instance.posX, instance.posY, + instance.posZ, instance.modelChara, instance.gimmickId, + instance.level, instance.hPMax ); //Logger::info( "|----> " + name + " - " + std::to_string( instance.bNPCBase ) + ", " + std::to_string( instance.gimmickId ) ); output += "INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) " @@ -377,7 +372,7 @@ int dumpSpawns() } - Logger::info( "|--> Total SpawnGroups: " + std::to_string( spawngroups ) ); + Logger::info( "|--> Total SpawnGroups: {0}", spawngroups ); return 0; } @@ -474,8 +469,8 @@ int dumpTemplates() //auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( entry.first ); auto teri1 = g_exdData.get< Sapphire::Data::TerritoryType >( entry.first ); auto teriPlaceName = g_exdData.get< Sapphire::Data::PlaceName >( teri1->placeName ); - Logger::info( std::to_string( entry.first ) + " - " + teri1->name + " - " + teriPlaceName->name ); - Logger::info( "Mob Count: " + std::to_string( entry.second.size() ) ); + Logger::info( "{0} - {1} - {2}", entry.first, teri1->name, teriPlaceName->name ); + Logger::info( "Mob Count: {0}", entry.second.size() ); for( auto mob : entry.second ) { @@ -485,12 +480,12 @@ int dumpTemplates() //Logger::info( nameStruct->singular + " " + std::to_string( packet.bNPCBase ) ); } - Logger::info( "Unique Mobs: " + std::to_string( nameToPacketList.size() ) ); + Logger::info( "Unique Mobs: {0}", nameToPacketList.size() ); for( auto mobName : nameToPacketList ) { - auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mobName.second.at(0).bNPCName ); - Logger::info( "|--> " + nameStruct->singular + "(" + std::to_string( mobName.second.size() ) + ")" ); + auto nameStruct = g_exdData.get< Sapphire::Data::BNpcName >( mobName.second.at( 0 ).bNPCName ); + Logger::info( "|--> {0} ({1})", nameStruct->singular, mobName.second.size() ); auto instance = mobName.second.at(0); //for( FFXIVIpcNpcSpawn instance : mobName.second ) @@ -601,4 +596,4 @@ int main() dumpSpawns(); return 0; -} \ No newline at end of file +} diff --git a/src/tools/quest_parser/main.cpp b/src/tools/quest_parser/main.cpp index 73458949..7062273e 100644 --- a/src/tools/quest_parser/main.cpp +++ b/src/tools/quest_parser/main.cpp @@ -362,7 +362,7 @@ int main( int argc, char** argv ) uint32_t i = 0; for( const auto& row : rows ) { - Logger::info( "Generating " + std::to_string( row ) ); + Logger::info( "Generating {0}", row ); auto questInfo = g_exdDataGen.get< Sapphire::Data::Quest >( row ); if( questInfo->name.empty() || questInfo->id.empty() ) @@ -407,7 +407,7 @@ int main( int argc, char** argv ) "generated/" + questInfo->id + ".lua"; if( system( command.c_str() ) == -1 ) { - Logger::error( "Error executing java command:\n" + command + "\nerrno: " + std::strerror( errno ) ); + Logger::error( "Error executing java command:\n {0}\nerrno: {1}", command, std::strerror( errno ) ); return errno; } } diff --git a/src/world/Actor/EventObject.cpp b/src/world/Actor/EventObject.cpp index 94c0d9bc..8d7c921f 100644 --- a/src/world/Actor/EventObject.cpp +++ b/src/world/Actor/EventObject.cpp @@ -19,8 +19,8 @@ using namespace Sapphire::Network::Packets::Server; using namespace Sapphire::Network::ActorControl; Sapphire::Entity::EventObject::EventObject( uint32_t actorId, uint32_t objectId, uint32_t gimmickId, - uint8_t initialState, Common::FFXIVARR_POSITION3 pos, - float rotation, const std::string& givenName ) : + uint8_t initialState, Common::FFXIVARR_POSITION3 pos, + float rotation, const std::string& givenName ) : Sapphire::Entity::Actor( ObjKind::EventObj ), m_gimmickId( gimmickId ), m_state( initialState ), @@ -119,7 +119,7 @@ void Sapphire::Entity::EventObject::spawn( Sapphire::Entity::PlayerPtr pTarget ) if( !pTarget->isObjSpawnIndexValid( spawnIndex ) ) return; - Logger::debug( "Spawning EObj: id:" + std::to_string( getId() ) + " name:" + getName() ); + Logger::debug( "Spawning EObj: id#{0} name={1}", getId(), getName() ); auto eobjStatePacket = makeZonePacket< FFXIVIpcObjectSpawn >( getId(), pTarget->getId() ); eobjStatePacket->data().spawnIndex = spawnIndex; @@ -138,7 +138,7 @@ void Sapphire::Entity::EventObject::spawn( Sapphire::Entity::PlayerPtr pTarget ) void Sapphire::Entity::EventObject::despawn( Sapphire::Entity::PlayerPtr pTarget ) { - Logger::debug( "despawn eobj: " + std::to_string( getId() ) ); + Logger::debug( "despawn eobj#{0}", getId() ); pTarget->freeObjSpawnIndexForActorId( getId() ); } diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index 5696a8a0..ce9f478d 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -891,9 +891,7 @@ void Sapphire::Entity::Player::setLookAt( uint8_t index, uint8_t value ) // spawn this player for pTarget void Sapphire::Entity::Player::spawn( Entity::PlayerPtr pTarget ) { - Logger::debug( "[" + std::to_string( pTarget->getId() ) + "] Spawning " + - getName() + " for " + - pTarget->getName() ); + Logger::debug( "[{0}] Spawning {1} for {2}", pTarget->getId(), getName(), pTarget->getName() ); pTarget->queuePacket( std::make_shared< PlayerSpawnPacket >( *getAsPlayer(), *pTarget ) ); } @@ -902,7 +900,7 @@ void Sapphire::Entity::Player::spawn( Entity::PlayerPtr pTarget ) void Sapphire::Entity::Player::despawn( Entity::PlayerPtr pTarget ) { auto pPlayer = pTarget; - Logger::debug( "despawning " + getName() + " for " + pTarget->getName() ); + Logger::debug( "Despawning {0} for {1}", getName(), pTarget->getName() ); pPlayer->freePlayerSpawnId( getId() ); @@ -1869,4 +1867,4 @@ void Sapphire::Entity::Player::sendLandFlagsSlot( Common::LandFlagsSlot slot ) landFlags->data().flagSet = m_landFlags[ slot ]; queuePacket( landFlags ); -} \ No newline at end of file +} diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index e495768a..e243d2a2 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -75,7 +75,7 @@ void Sapphire::Entity::Player::directorPlayScene( uint32_t eventId, uint32_t sce auto pEvent = getEvent( eventId ); if( !pEvent ) { - Logger::error( "Could not find event " + std::to_string( eventId ) + ", event has not been started!" ); + Logger::error( "Could not find event #{0}, event has not been started!", eventId ); return; } @@ -159,7 +159,7 @@ Sapphire::Event::EventHandlerPtr Sapphire::Entity::Player::bootstrapSceneEvent( auto pEvent = getEvent( eventId ); if( !pEvent ) { - Logger::error( "Could not find event " + std::to_string( eventId ) + ", event has not been started!" ); + Logger::error( "Could not find event #{0}, event has not been started!", eventId ); return nullptr; } @@ -223,7 +223,7 @@ void Sapphire::Entity::Player::eventFinish( uint32_t eventId, uint32_t freePlaye if( !pEvent ) { - Logger::error( "Could not find event " + std::to_string( eventId ) + ", event has not been started!" ); + Logger::error( "Could not find event #{0}, event has not been started!", eventId ); return; } @@ -298,7 +298,7 @@ void Sapphire::Entity::Player::eventActionStart( uint32_t eventId, } else if( !pEvent ) { - Logger::error( "Could not find event " + std::to_string( eventId ) + ", event has not been started!" ); + Logger::error( "Could not find event #{0}, event has not been started!", eventId ); return; } diff --git a/src/world/Actor/PlayerSql.cpp b/src/world/Actor/PlayerSql.cpp index 3071f466..87ded6cb 100644 --- a/src/world/Actor/PlayerSql.cpp +++ b/src/world/Actor/PlayerSql.cpp @@ -107,8 +107,8 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession // see if a valid zone could be found for the character if( !pCurrZone ) { - Logger::error( "[" + char_id_str + "] Zone " + std::to_string( zoneId ) + " not found!" ); - Logger::error( "[" + char_id_str + "] Setting default zone instead" ); + Logger::error( "[{0}] Zone #{1} not found!", char_id_str, zoneId ); + Logger::error( "[{0}] Setting default zone instead", char_id_str ); // default to new gridania // TODO: should probably just abort and mark character as corrupt @@ -206,7 +206,7 @@ bool Sapphire::Entity::Player::load( uint32_t charId, World::SessionPtr pSession m_pCell = nullptr; if( !loadActiveQuests() || !loadClassData() || !loadSearchInfo() ) - Logger::error( "Player id " + char_id_str + " data corrupt!" ); + Logger::error( "Player #{0} data corrupt!", char_id_str ); m_maxHp = getMaxHp(); m_maxMp = getMaxMp(); diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 316100af..458d6aa2 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -273,7 +273,7 @@ void Sapphire::World::ServerMgr::mainLoop() it->second->close(); // if( it->second.unique() ) { - Logger::info( "[" + std::to_string( it->second->getId() ) + "] Session removal" ); + Logger::info( "[{0}] Session removal", it->second->getId() ); it = m_sessionMapById.erase( it ); removeSession( pPlayer->getName() ); continue; @@ -283,7 +283,7 @@ void Sapphire::World::ServerMgr::mainLoop() // remove sessions that simply timed out if( diff > 20 ) { - Logger::info( "[" + std::to_string( it->second->getId() ) + "] Session time out" ); + Logger::info( "[{0}] Session time out", it->second->getId() ); it->second->close(); // if( it->second.unique() ) @@ -312,18 +312,18 @@ bool Sapphire::World::ServerMgr::createSession( uint32_t sessionId ) if( it != m_sessionMapById.end() ) { - Logger::error( "[" + session_id_str + "] Error creating session" ); + Logger::error( "[{0}] Error creating session", session_id_str ); return false; } - Logger::info( "[" + session_id_str + "] Creating new session" ); + Logger::info( "[{0}] Creating new session", session_id_str ); std::shared_ptr< Session > newSession( new Session( sessionId, framework() ) ); m_sessionMapById[ sessionId ] = newSession; if( !newSession->loadPlayer() ) { - Logger::error( "[" + session_id_str + "] Error loading player " + session_id_str ); + Logger::error( "[{0}] Error loading player {0}", session_id_str ); return false; } @@ -437,7 +437,7 @@ void Sapphire::World::ServerMgr::loadBNpcTemplates() m_bNpcTemplateMap[ name ] = bnpcTemplate; } - Logger::debug( "BNpc Templates loaded: " + std::to_string( m_bNpcTemplateMap.size() ) ); + Logger::debug( "BNpc Templates loaded: {0}", m_bNpcTemplateMap.size() ); } diff --git a/src/world/Session.cpp b/src/world/Session.cpp index ee5ef5f7..14e87d48 100644 --- a/src/world/Session.cpp +++ b/src/world/Session.cpp @@ -151,7 +151,7 @@ void Sapphire::World::Session::startReplay( const std::string& path ) m_replayCache.push_back( std::tuple< uint64_t, std::string >( Util::getTimeMs() + ( std::get< 0 >( set ) - startTime ), std::get< 1 >( set ) ) ); - Logger::info( "Registering " + std::get< 1 >( set ) + " for " + std::to_string( std::get< 0 >( set ) - startTime ) ); + Logger::info( "Registering {0} for {1}", std::get< 1 >( set ), std::get< 0 >( set ) - startTime ); } getPlayer()->sendDebug( "Registered " + std::to_string( m_replayCache.size() ) + " sets for replay" ); From 2a205cc2db4487c273cff576abe43f5e5695295b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 4 Jan 2019 22:37:01 +1100 Subject: [PATCH 316/385] convert more log calls to format string --- src/api/main.cpp | 12 +++--- src/dbm/main.cpp | 4 +- src/lobby/ServerLobby.cpp | 6 +-- src/world/Inventory/ItemContainer.cpp | 6 +-- src/world/Manager/DebugCommandMgr.cpp | 10 ++--- src/world/Manager/HousingMgr.cpp | 14 +++---- src/world/Manager/TerritoryMgr.cpp | 38 +++++++++---------- src/world/Network/GameConnection.cpp | 32 ++++++---------- .../Network/Handlers/ClientTriggerHandler.cpp | 11 ++---- .../Network/Handlers/GMCommandHandlers.cpp | 13 +++---- .../Network/Handlers/InventoryHandler.cpp | 2 +- src/world/Network/Handlers/PacketHandlers.cpp | 4 +- src/world/Script/ScriptLoader.cpp | 10 ++--- src/world/Script/ScriptMgr.cpp | 12 +++--- .../Housing/HousingInteriorTerritory.cpp | 6 +-- src/world/Territory/HousingZone.cpp | 7 ++-- src/world/Territory/InstanceContent.cpp | 10 ++--- src/world/Territory/Zone.cpp | 14 ++----- 18 files changed, 90 insertions(+), 121 deletions(-) diff --git a/src/api/main.cpp b/src/api/main.cpp index f287fc08..467797a4 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -63,7 +63,7 @@ void reloadConfig() void print_request_info( shared_ptr< HttpServer::Request > request ) { - Logger::info( "Request from " + request->remote_endpoint_address + " (" + request->path + ")" ); + Logger::info( "Request from {0} ({1})", request->remote_endpoint_address, request->path ); } bool loadSettings( int32_t argc, char* argv[] ) @@ -72,7 +72,7 @@ bool loadSettings( int32_t argc, char* argv[] ) if( !m_pConfig->loadConfig( configPath ) ) { - Logger::fatal( "Error loading config " + configPath ); + Logger::fatal( "Error loading config {0}", configPath ); Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); return false; } @@ -134,7 +134,7 @@ bool loadSettings( int32_t argc, char* argv[] ) } catch( ... ) { - Logger::error( "Error parsing argument: " + arg + " " + "value: " + val + "\n" ); + Logger::error( "Error parsing argument: {0} value: {1}\n", arg, val ); Logger::error( "Usage: \n" ); } } @@ -144,7 +144,7 @@ bool loadSettings( int32_t argc, char* argv[] ) if( !g_exdDataGen.init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); - Logger::fatal( "DataPath: " + dataPath ); + Logger::fatal( "DataPath: {0}", dataPath ); return false; } @@ -167,7 +167,7 @@ bool loadSettings( int32_t argc, char* argv[] ) m_pConfig->getValue< std::string >( "RestNetwork", "ListenPort", "80" ) ) ); server.config.address = m_pConfig->getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ); - Logger::info( "Database: Connected to " + info.host + ":" + std::to_string( info.port ) ); + Logger::info( "Database: Connected to {0}:{1}", info.host, info.port ); return true; } @@ -767,7 +767,7 @@ int main( int argc, char* argv[] ) server.start(); } ); - Logger::info( "API server running on " + m_pConfig->getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ) + ":" + + Logger::info( "API server running on {0}:{1}", m_pConfig->getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ), m_pConfig->getValue< std::string >( "RestNetwork", "ListenPort", "80" ) ); //Wait for server to start so that the client can connect diff --git a/src/dbm/main.cpp b/src/dbm/main.cpp index b82dde0c..dacf13f5 100644 --- a/src/dbm/main.cpp +++ b/src/dbm/main.cpp @@ -180,11 +180,11 @@ int main( int32_t argc, char* argv[] ) } else { - Logger::fatal( "Not a valid mode: " + mode + " !" ); + Logger::fatal( "Not a valid mode: {0} !", mode ); return 1; } - Logger::info( "Launching in " + mode + " mode..." ); + Logger::info( "Launching in {0} mode...", mode ); if( !dbm.connect() ) { diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index c0ad8ebf..1efaf3d0 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -83,11 +83,11 @@ namespace Sapphire bool ServerLobby::loadSettings( int32_t argc, char* argv[] ) { - Logger::info( "Loading config " + m_configPath ); + Logger::info( "Loading config {0}", m_configPath ); if( !m_pConfig->loadConfig( m_configPath ) ) { - Logger::fatal( "Error loading config " + m_configPath ); + Logger::fatal( "Error loading config {0}", m_configPath ); Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); return false; } @@ -125,7 +125,7 @@ namespace Sapphire } catch( ... ) { - Logger::error( "Error parsing argument: " + arg + " " + "value: " + val + "\n" ); + Logger::error( "Error parsing argument: {0} value: {1}\n", arg, val ); Logger::error( "Usage: \n" ); } } diff --git a/src/world/Inventory/ItemContainer.cpp b/src/world/Inventory/ItemContainer.cpp index 490269c7..3dd41846 100644 --- a/src/world/Inventory/ItemContainer.cpp +++ b/src/world/Inventory/ItemContainer.cpp @@ -48,11 +48,11 @@ void Sapphire::ItemContainer::removeItem( uint16_t slotId, bool removeFromDb ) m_itemMap.erase( it ); - Logger::debug( "Dropped item from slot " + std::to_string( slotId ) ); + Logger::debug( "Dropped item from slot {0}", slotId ); } else { - Logger::debug( "Item could not be dropped from slot " + std::to_string( slotId ) ); + Logger::debug( "Item could not be dropped from slot {0}", slotId ); } } @@ -83,7 +83,7 @@ Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint16_t slotId ) if( ( slotId > m_size ) ) { - Logger::error( "Slot out of range " + std::to_string( slotId ) ); + Logger::error( "Slot out of range {0}", slotId ); return nullptr; } diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 63b3d53a..8d6d16e1 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -159,8 +159,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& if( command->getName().length() + 1 + pos + 1 < strlen( data ) ) params = std::string( data + command->getName().length() + 1 + pos + 1 ); - Logger::debug( "[" + std::to_string( player.getId() ) + "] " + - "subCommand " + subCommand + " params: " + params ); + Logger::debug( "[{0}] subCommand: {1} params: {1}", player.getId(), subCommand, params ); if( ( ( subCommand == "pos" ) || ( subCommand == "posr" ) ) && ( params != "" ) ) { @@ -533,9 +532,7 @@ void Sapphire::World::Manager::DebugCommandMgr::get( char* data, Entity::Player& if( command->getName().length() + 1 + pos + 1 < strlen( data ) ) params = std::string( data + command->getName().length() + 1 + pos + 1 ); - Logger::debug( "[" + std::to_string( player.getId() ) + "] " + - "subCommand " + subCommand + " params: " + params ); - + Logger::debug( "[{0}] subCommand: {1} params: {2}", player.getId(), subCommand, params ); if( ( subCommand == "pos" ) ) { @@ -708,8 +705,7 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play if( command->getName().length() + 1 + pos + 1 < strlen( data ) ) params = std::string( data + command->getName().length() + 1 + pos + 1 ); - Logger::debug( "[" + std::to_string( player.getId() ) + "] " + - "subCommand " + subCommand + " params: " + params ); + Logger::debug( "[{0}] subCommand: {1} params: {2}", player.getId(), subCommand, params ); if( subCommand == "unload" ) { diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 5fda5ef4..bf2ff370 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -94,12 +94,12 @@ bool Sapphire::World::Manager::HousingMgr::init() if( landSet.second.size() != 60 ) { - Logger::fatal( "LandSet " + std::to_string( landSet.first ) + " is missing land entries. Only have " + std::to_string( count ) + " land entries." ); + Logger::fatal( "LandSet {0} is missing land entries. Only have {1} land entries.", landSet.first, count ); return false; } } - Logger::info( "HousingMgr: Cached " + std::to_string( houseCount ) + " houses" ); + Logger::info( "HousingMgr: Cached {0} houses", houseCount ); ///// @@ -158,7 +158,7 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() itemCount++; } - Logger::debug( "HousingMgr: Loaded " + std::to_string( itemCount ) + " inventory items" ); + Logger::debug( "HousingMgr: Loaded {0} inventory items", itemCount ); return true; } @@ -217,8 +217,8 @@ void Sapphire::World::Manager::HousingMgr::initLandCache() break; default: // this should never ever happen, if it does the db is fucked - Logger::error( "HousingMgr: Plot " + std::to_string( entry.m_landId ) + " in landset " + std::to_string( entry.m_landSetId ) + - " has an invalid land size, defaulting to cottage." ); + Logger::error( "HousingMgr: Plot {0} in landset {1} has an invalid land size, defaulting to cottage.", + entry.m_landId, entry.m_landSetId ); entry.m_maxPlacedExternalItems = 20; entry.m_maxPlacedInternalItems = 200; break; @@ -913,7 +913,7 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr } else { - Logger::error( "Plot " + std::to_string( house->getLandIdent().landId ) + " has an invalid inventory configuration for outdoor appearance." ); + Logger::error( "Plot {0} has an invalid inventory configuration for outdoor appearance.", house->getLandIdent().landId ); } auto intContainer = containers.find( static_cast< uint16_t >( InventoryType::HousingInteriorAppearance ) ); @@ -927,7 +927,7 @@ void Sapphire::World::Manager::HousingMgr::updateHouseModels( Sapphire::HousePtr } else { - Logger::error( "Plot " + std::to_string( house->getLandIdent().landId ) + " has an invalid inventory configuration for indoor appearance." ); + Logger::error( "Plot {0} has an invalid inventory configuration for indoor appearance.", house->getLandIdent().landId ); } } diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 9e260c61..1c9ba245 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -162,12 +162,14 @@ bool Sapphire::World::Manager::TerritoryMgr::createDefaultTerritories() continue; uint32_t guid = getNextInstanceId(); - Logger::info( std::to_string( territoryTypeId ) + - "\t" + std::to_string( guid ) + - "\t" + std::to_string( territoryInfo->territoryIntendedUse ) + - "\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) + - "\t" + ( isPrivateTerritory( territoryTypeId ) ? "PRIVATE" : "PUBLIC" ) + - "\t" + pPlaceName->name ); + + Logger::info( "{0}\t{1}\t{2}\t{3:<10}\t{4}\t{5}", + territoryTypeId, + guid, + territoryInfo->territoryIntendedUse, + territoryInfo->name, + ( isPrivateTerritory( territoryTypeId ) ? "PRIVATE" : "PUBLIC" ), + pPlaceName->name ); auto pZone = make_Zone( territoryTypeId, guid, territoryInfo->name, pPlaceName->name, framework() ); pZone->init(); @@ -205,13 +207,14 @@ bool Sapphire::World::Manager::TerritoryMgr::createHousingTerritories() for( wardNum = 0; wardNum < wardMaxNum; wardNum++ ) { uint32_t guid = getNextInstanceId(); - Logger::info( std::to_string( territoryTypeId ) + - "\t" + std::to_string( guid ) + - "\t" + std::to_string( territoryInfo->territoryIntendedUse ) + - "\t" + ( territoryInfo->name.length() <= 4 ? territoryInfo->name + "\t" : territoryInfo->name ) + - "\t" + "HOUSING" + - "\t" + pPlaceName->name + - "#" + std::to_string( wardNum ) ); + + Logger::info( "{0}\t{1}\t{2}\t{3:<10}\tHOUSING\t{4}#{5}", + territoryTypeId, + guid, + territoryInfo->territoryIntendedUse, + territoryInfo->name, + pPlaceName->name, + wardNum ); auto pHousingZone = make_HousingZone( wardNum, territoryTypeId, guid, territoryInfo->name, pPlaceName->name, framework() ); @@ -246,8 +249,7 @@ Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createTerritoryInstanc if( !pTeri || !pPlaceName ) return nullptr; - Logger::debug( - "Starting instance for territory: " + std::to_string( territoryTypeId ) + " (" + pPlaceName->name + ")" ); + Logger::debug( "Starting instance for territory: {0} ({1})", territoryTypeId, pPlaceName->name ); auto pZone = make_Zone( territoryTypeId, getNextInstanceId(), pTeri->name, pPlaceName->name, framework() ); pZone->init(); @@ -280,8 +282,7 @@ Sapphire::ZonePtr Sapphire::World::Manager::TerritoryMgr::createInstanceContent( if( !pTeri || pInstanceContent->name.empty() ) return nullptr; - Logger::debug( "Starting instance for InstanceContent id: " + std::to_string( instanceContentId ) + - " (" + pInstanceContent->name + ")" ); + Logger::debug( "Starting instance for InstanceContent id: {0} ({1})", instanceContentId, pInstanceContent->name ); auto pZone = make_InstanceContent( pInstanceContent, pContentFinderCondition->territoryType, getNextInstanceId(), pTeri->name, pInstanceContent->name, instanceContentId, framework() ); @@ -471,8 +472,7 @@ void Sapphire::World::Manager::TerritoryMgr::updateTerritoryInstances( uint32_t // todo: make this timeout configurable, though should be pretty relaxed in any case if( diff > 60 ) { - Logger::info( "Removing HousingInteriorTerritory#" + - std::to_string( zone->getGuId() ) + " - has been inactive for 60 seconds" ); + Logger::info( "Removing HousingInteriorTerritory#{0} - has been inactive for 60 seconds", zone->getGuId() ); // remove zone from maps m_zoneSet.erase( zone ); diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index 57e336f4..8e70db70 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -141,7 +141,7 @@ void Sapphire::Network::GameConnection::OnAccept( const std::string& host, uint1 { GameConnectionPtr connection( new GameConnection( m_hive, m_pAcceptor, m_pFw ) ); m_pAcceptor->Accept( connection ); - Logger::info( "Connect from " + m_socket.remote_endpoint().address().to_string() ); + Logger::info( "Connect from {0}", m_socket.remote_endpoint().address().to_string() ); } @@ -196,7 +196,7 @@ void Sapphire::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) void Sapphire::Network::GameConnection::OnError( const asio::error_code& error ) { - Logger::debug( "GameConnection ERROR: " + error.message() ); + Logger::debug( "GameConnection ERROR: {0}", error.message() ); } void Sapphire::Network::GameConnection::queueInPacket( Sapphire::Network::Packets::FFXIVARR_PACKET_RAW inPacket ) @@ -214,25 +214,21 @@ void Sapphire::Network::GameConnection::handleZonePacket( Sapphire::Network::Pac uint16_t opcode = *reinterpret_cast< uint16_t* >( &pPacket.data[ 0x02 ] ); auto it = m_zoneHandlerMap.find( opcode ); - std::string sessionStr = "[" + std::to_string( m_pSession->getId() ) + "]"; - if( it != m_zoneHandlerMap.end() ) { auto itStr = m_zoneHandlerStrMap.find( opcode ); std::string name = itStr != m_zoneHandlerStrMap.end() ? itStr->second : "unknown"; // dont display packet notification if it is a ping or pos update, don't want the spam if( opcode != PingHandler && opcode != UpdatePositionHandler ) - Logger::debug( sessionStr + " Handling Zone IPC : " + name + "( " + - Util::intToHexString( static_cast< uint32_t >( opcode ), 4 ) + " )" ); + Logger::debug( "[{0}] Handling Zone IPC : {1} ( {2:X} )", m_pSession->getId(), name, opcode ); ( this->*( it->second ) )( m_pFw, pPacket, *m_pSession->getPlayer() ); } else { - Logger::debug( sessionStr + " Undefined Zone IPC : Unknown ( " + - Util::intToHexString( static_cast< uint32_t >( opcode ), 4 ) + " )" ); - Logger::debug( "Dump:\n" + Util::binaryToHexDump( const_cast< uint8_t* >( &pPacket.data[ 0 ] ), - pPacket.segHdr.size ) ); + Logger::debug( "[{0}] Undefined Zone IPC : Unknown ( {1:X} )", m_pSession->getId(), opcode ); + Logger::debug( "Dump: {0}", Util::binaryToHexDump( const_cast< uint8_t* >( &pPacket.data[ 0 ] ), + pPacket.segHdr.size ) ); } } @@ -241,23 +237,19 @@ void Sapphire::Network::GameConnection::handleChatPacket( Sapphire::Network::Pac uint16_t opcode = *reinterpret_cast< uint16_t* >( &pPacket.data[ 0x02 ] ); auto it = m_chatHandlerMap.find( opcode ); - std::string sessionStr = "[" + std::to_string( m_pSession->getId() ) + "]"; - if( it != m_chatHandlerMap.end() ) { auto itStr = m_chatHandlerStrMap.find( opcode ); std::string name = itStr != m_chatHandlerStrMap.end() ? itStr->second : "unknown"; // dont display packet notification if it is a ping or pos update, don't want the spam - Logger::debug( sessionStr + " Handling Chat IPC : " + name + "( " + - Util::intToHexString( static_cast< uint32_t >( opcode ), 4 ) + " )" ); + Logger::debug( "[{0}] Handling Chat IPC : {1} ( {2:X} )", m_pSession->getId(), name, opcode ); ( this->*( it->second ) )( m_pFw, pPacket, *m_pSession->getPlayer() ); } else { - Logger::debug( sessionStr + " Undefined Chat IPC : Unknown ( " + - Util::intToHexString( static_cast< uint32_t >( opcode ), 4 ) + " )" ); + Logger::debug( "[{0}] Undefined Chat IPC : Unknown ( {1:X} )", m_pSession->getId(), opcode ); } } @@ -413,7 +405,7 @@ void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network:: if( !session ) { - Logger::info( "[" + std::string( id ) + "] Session not registered, creating" ); + Logger::info( "[{0}] Session not registered, creating", id ); // return; if( !pServerZone->createSession( playerId ) ) { @@ -425,7 +417,7 @@ void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network:: //TODO: Catch more things in lobby and send real errors else if( !session->isValid() || ( session->getPlayer() && session->getPlayer()->getLastPing() != 0 ) ) { - Logger::error( "[" + std::string( id ) + "] Session INVALID, disconnecting" ); + Logger::error( "[{0}] Session INVALID, disconnecting", id ); Disconnect(); return; } @@ -445,7 +437,7 @@ void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network:: auto pe1 = std::make_shared< FFXIVRawPacket >( 0x02, 0x38, 0, 0 ); *( unsigned int* ) ( &pe1->data()[ 0 ] ) = playerId; sendSinglePacket( pe1 ); - Logger::info( "[" + std::string( id ) + "] Setting session for zone connection" ); + Logger::info( "[{0}] Setting session for zone connection", id ); session->setZoneConnection( pCon ); } // chat connection, assinging it to the session @@ -459,7 +451,7 @@ void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network:: *( unsigned short* ) ( &pe3->data()[ 2 ] ) = 0x02; sendSinglePacket( pe3 ); - Logger::info( "[" + std::string( id ) + "] Setting session for chat connection" ); + Logger::info( "[{0}] Setting session for chat connection", id ); session->setChatConnection( pCon ); } diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index d2752009..52d6032b 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -79,12 +79,8 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, const auto param4 = packet.data().param4; const auto param5 = packet.data().param5; - Logger::debug( "[" + std::to_string( m_pSession->getId() ) + "] Incoming action: " + - Util::intToHexString( static_cast< uint32_t >( commandId & 0xFFFF ), 4 ) + - "\nparam1: " + Util::intToHexString( static_cast< uint64_t >( param1 & 0xFFFFFFFFFFFFFFF ), 16 ) + - "\nparam2: " + Util::intToHexString( static_cast< uint32_t >( param2 & 0xFFFFFFFF ), 8 ) + - "\nparam3: " + Util::intToHexString( static_cast< uint64_t >( param3 & 0xFFFFFFFFFFFFFFF ), 16 ) - ); + Logger::debug( "[{0}] Incoming action: {1:#04X}\nparam1: {2:#016X}\nparam2: {3:#08X}\nparam3: {4:#016X}", + m_pSession->getId(), param1, param2, param3 ); //g_log.Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString()); @@ -494,8 +490,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, default: { - Logger::debug( "[" + std::to_string( m_pSession->getId() ) + "] Unhandled action: " + - Util::intToHexString( static_cast< uint32_t >( commandId & 0xFFFF ), 4 ) ); + Logger::debug( "[{0}] Unhandled action: {1:#04X}", m_pSession->getId(), commandId ); break; } } diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index 2cbb3543..980f3008 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -101,10 +101,9 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, const auto param4 = packet.data().param4; const auto target = packet.data().target; - Logger::debug( player.getName() + " used GM1 commandId: " + std::to_string( commandId ) + - ", params: " + std::to_string( param1 ) + ", " + - std::to_string( param2 ) + ", " + std::to_string( param3 ) + ", " + std::to_string( param4 ) + - ", target: " + std::to_string( target ) ); + Logger::info( "{0} used GM1 commandId: {1}, params: {2}, {3}, {4}, {5}, target: {6}", + player.getName(), commandId, + param1, param2, param3, param4, target ); Sapphire::Entity::ActorPtr targetActor; @@ -563,10 +562,8 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, const auto param4 = packet.data().param4; const auto target = std::string( packet.data().target ); - Logger::debug( player.getName() + " used GM2 commandId: " + std::to_string( commandId ) + - ", params: " + std::to_string( param1 ) + ", " + - std::to_string( param2 ) + ", " + std::to_string( param3 ) + ", " + std::to_string( param4 ) + - ", target: " + target ); + Logger::debug( "{0} used GM2 commandId: {1}, params: {2}, {3}, {4}, {5}, target: {6}", + player.getName(), commandId, param1, param2, param3, param4, target ); auto targetSession = pServerZone->getSession( target ); Sapphire::Entity::CharaPtr targetActor; diff --git a/src/world/Network/Handlers/InventoryHandler.cpp b/src/world/Network/Handlers/InventoryHandler.cpp index b4f2002f..ecaf1a29 100644 --- a/src/world/Network/Handlers/InventoryHandler.cpp +++ b/src/world/Network/Handlers/InventoryHandler.cpp @@ -42,7 +42,7 @@ void Sapphire::Network::GameConnection::inventoryModifyHandler( FrameworkPtr pFw ackPacket->data().type = 7; player.queuePacket( ackPacket ); - Logger::debug( "InventoryAction: " + std::to_string( action ) ); + Logger::debug( "InventoryAction: {0}", action ); // TODO: other inventory operations need to be implemented switch( action ) diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index d737bf8a..c87002b5 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -117,7 +117,7 @@ void Sapphire::Network::GameConnection::reqExamineSearchCommentHandler( Framewor auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x10 ] ); auto pSession = pFw->get< World::ServerMgr >()->getSession( targetId ); - Logger::debug( std::to_string( targetId ) ); + Logger::debug( "reqExamineSearchCommentHandler: {0}", targetId ); if( pSession ) { @@ -145,7 +145,7 @@ void Sapphire::Network::GameConnection::reqExamineFcInfo( FrameworkPtr pFw, auto targetId = *reinterpret_cast< const uint32_t* >( &inPacket.data[ 0x18 ] ); auto pSession = pFw->get< World::ServerMgr >()->getSession( targetId ); - Logger::debug( std::to_string( targetId ) ); + Logger::debug( "reqExamineFcInfo: {0}", targetId ); if( pSession ) { diff --git a/src/world/Script/ScriptLoader.cpp b/src/world/Script/ScriptLoader.cpp index 4f5e7d64..f670c05c 100644 --- a/src/world/Script/ScriptLoader.cpp +++ b/src/world/Script/ScriptLoader.cpp @@ -48,7 +48,7 @@ Sapphire::Scripting::ScriptInfo* Sapphire::Scripting::ScriptLoader::loadModule( if( isModuleLoaded( f.stem().string() ) ) { - Logger::error( "Unable to load module '" + f.stem().string() + "' as it is already loaded" ); + Logger::error( "Unable to load module '{0}' as it is already loaded", f.stem().string() ); return nullptr; } @@ -63,7 +63,7 @@ Sapphire::Scripting::ScriptInfo* Sapphire::Scripting::ScriptLoader::loadModule( } catch( const fs::filesystem_error& err ) { - Logger::error( "Error copying file to cache: " + err.code().message() ); + Logger::error( "Error copying file to cache: {0}", err.code().message() ); return nullptr; } @@ -77,12 +77,12 @@ Sapphire::Scripting::ScriptInfo* Sapphire::Scripting::ScriptLoader::loadModule( if( !handle ) { - Logger::error( "Failed to load module from: " + path ); + Logger::error( "Failed to load module from: {0}", path ); return nullptr; } - Logger::debug( "Loaded module '" + f.filename().string() ); + Logger::debug( "Loaded module: {0}", f.filename().string() ); auto info = new ScriptInfo; info->handle = handle; @@ -140,7 +140,7 @@ bool Sapphire::Scripting::ScriptLoader::unloadScript( ModuleHandle handle ) return true; } - Logger::error( "failed to unload module: " + info->library_name ); + Logger::error( "failed to unload module: {0}", info->library_name ); return false; } diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index 68b34b24..c3088cad 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -55,8 +55,7 @@ bool Sapphire::Scripting::ScriptMgr::init() if( !status ) { - Logger::error( std::string( __func__ ) + - ": failed to load scripts, the server will not function correctly without scripts loaded." ); + Logger::error( "ScriptMgr: failed to load scripts, the server will not function correctly without scripts loaded." ); return false; } @@ -73,8 +72,7 @@ bool Sapphire::Scripting::ScriptMgr::init() scriptsLoaded++; } - Logger::info( - "ScriptMgr: Loaded " + std::to_string( scriptsLoaded ) + "/" + std::to_string( scriptsFound ) + " modules" ); + Logger::info( "ScriptMgr: Loaded {0}/{1} modules", scriptsLoaded, scriptsFound ); watchDirectories(); @@ -104,13 +102,13 @@ void Sapphire::Scripting::ScriptMgr::watchDirectories() { if( m_nativeScriptMgr->isModuleLoaded( path.stem().string() ) ) { - Logger::debug( "Reloading changed script: " + path.stem().string() ); + Logger::debug( "Reloading changed script: {0}", path.stem().string() ); m_nativeScriptMgr->queueScriptReload( path.stem().string() ); } else { - Logger::debug( "Loading new script: " + path.stem().string() ); + Logger::debug( "Loading new script: {0}", path.stem().string() ); m_nativeScriptMgr->loadScript( path.string() ); } @@ -121,7 +119,7 @@ void Sapphire::Scripting::ScriptMgr::watchDirectories() bool Sapphire::Scripting::ScriptMgr::loadDir( const std::string& dirname, std::set< std::string >& files, const std::string& ext ) { - Logger::info( "ScriptMgr: loading scripts from " + dirname ); + Logger::info( "ScriptMgr: loading scripts from: {0}", dirname ); if( !fs::exists( dirname ) ) { diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 6bef748b..2ef529c8 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -54,9 +54,9 @@ bool Sapphire::World::Territory::Housing::HousingInteriorTerritory::init() void Sapphire::World::Territory::Housing::HousingInteriorTerritory::onPlayerZoneIn( Entity::Player& player ) { auto pHousingMgr = m_pFw->get< HousingMgr >(); - Logger::debug( - "HousingInteriorTerritory::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + - ", Entity#" + std::to_string( player.getId() ) ); + + Logger::debug( "HousingInteriorTerritory::onPlayerZoneIn: Zone#{0}|{1}, Entity#{2}", + getGuId(), getTerritoryTypeId(), player.getId() ); auto indoorInitPacket = makeZonePacket< Server::FFXIVIpcHousingIndoorInitialize >( player.getId() ); indoorInitPacket->data().u1 = 0; diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index 9f79defa..793f8c8a 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -121,7 +121,7 @@ bool Sapphire::HousingZone::init() auto landSetCache = landCache.find( m_landSetId ); if( landSetCache == landCache.end() ) { - Logger::fatal( "LandSet " + std::to_string( m_landSetId ) + " is missing from the land cache." ); + Logger::fatal( "LandSet {0} is missing from the land cache.", m_landSetId ); return false; } @@ -157,9 +157,8 @@ Sapphire::HousingZone::~HousingZone() = default; void Sapphire::HousingZone::onPlayerZoneIn( Entity::Player& player ) { - Logger::debug( - "HousingZone::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + - ", Entity#" + std::to_string( player.getId() ) ); + Logger::debug( "HousingZone::onPlayerZoneIn: Zone#{0}|{1}, Entity#{2}", + getGuId(), getTerritoryTypeId(), player.getId() ); auto isInSubdivision = isPlayerSubInstance( player ) ? true : false; diff --git a/src/world/Territory/InstanceContent.cpp b/src/world/Territory/InstanceContent.cpp index cf1dab3f..6d636219 100644 --- a/src/world/Territory/InstanceContent.cpp +++ b/src/world/Territory/InstanceContent.cpp @@ -72,9 +72,8 @@ Sapphire::Data::ExdDataGenerated::InstanceContentPtr Sapphire::InstanceContent:: void Sapphire::InstanceContent::onPlayerZoneIn( Entity::Player& player ) { - Logger::debug( "InstanceContent::onPlayerZoneIn: Zone#" + std::to_string( getGuId() ) + "|" - + std::to_string( getInstanceContentId() ) + - +", Entity#" + std::to_string( player.getId() ) ); + Logger::debug( "InstanceContent::onPlayerZoneIn: Zone#{0}|{1}, Entity#{2}", + getGuId(), getTerritoryTypeId(), player.getId() ); // mark player as "bound by duty" player.setStateFlag( PlayerStateFlag::BoundByDuty ); @@ -88,9 +87,8 @@ void Sapphire::InstanceContent::onPlayerZoneIn( Entity::Player& player ) void Sapphire::InstanceContent::onLeaveTerritory( Entity::Player& player ) { - Logger::debug( "InstanceContent::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" - + std::to_string( getInstanceContentId() ) + - +", Entity#" + std::to_string( player.getId() ) ); + Logger::debug( "InstanceContent::onLeaveTerritory: Zone#{0}|{1}, Entity#{2}", + getGuId(), getTerritoryTypeId(), player.getId() ); sendDirectorClear( player ); player.setDirectorInitialized( false ); diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 1d1090a0..154964f6 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -679,16 +679,12 @@ void Sapphire::Zone::updateInRangeSet( Entity::ActorPtr pActor, Cell* pCell ) void Sapphire::Zone::onPlayerZoneIn( Entity::Player& player ) { - Logger::debug( - "Zone::onEnterTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + - + ", Entity#" + std::to_string( player.getId() ) ); + Logger::debug( "Zone::onEnterTerritory: Zone#{0}|{1}, Entity#{2}", getGuId(), getTerritoryTypeId(), player.getId() ); } void Sapphire::Zone::onLeaveTerritory( Entity::Player& player ) { - Logger::debug( - "Zone::onLeaveTerritory: Zone#" + std::to_string( getGuId() ) + "|" + std::to_string( getTerritoryTypeId() ) + - + ", Entity#" + std::to_string( player.getId() ) ); + Logger::debug( "Zone::onLeaveTerritory: Zone#{0}|{1}, Entity#{2}", getGuId(), getTerritoryTypeId(), player.getId() ); } void Sapphire::Zone::onUpdate( uint32_t currTime ) @@ -776,10 +772,8 @@ bool Sapphire::Zone::loadSpawnGroups() //Entity::SpawnGroup group; - Logger::debug( std::to_string( id ) + " " + - std::to_string( templateId ) + " " + - std::to_string( level ) + " " + - std::to_string( maxHp ) ); + + Logger::debug( "id: {0}, template: {1}, level: {2}, maxHp: {3}", id, templateId, level, maxHp ); } From 4dc80de5f2be1ee7577dbac9dbdc10fc2b9a7ddd Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 4 Jan 2019 22:48:09 +1100 Subject: [PATCH 317/385] fix log calls not outputting hex as it used to --- src/world/Network/GameConnection.cpp | 10 +++++----- src/world/Network/Handlers/ClientTriggerHandler.cpp | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index 8e70db70..cbf470b8 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -220,14 +220,14 @@ void Sapphire::Network::GameConnection::handleZonePacket( Sapphire::Network::Pac std::string name = itStr != m_zoneHandlerStrMap.end() ? itStr->second : "unknown"; // dont display packet notification if it is a ping or pos update, don't want the spam if( opcode != PingHandler && opcode != UpdatePositionHandler ) - Logger::debug( "[{0}] Handling Zone IPC : {1} ( {2:X} )", m_pSession->getId(), name, opcode ); + Logger::debug( "[{0}] Handling Zone IPC : {1} ( {2:04X} )", m_pSession->getId(), name, opcode ); ( this->*( it->second ) )( m_pFw, pPacket, *m_pSession->getPlayer() ); } else { - Logger::debug( "[{0}] Undefined Zone IPC : Unknown ( {1:X} )", m_pSession->getId(), opcode ); - Logger::debug( "Dump: {0}", Util::binaryToHexDump( const_cast< uint8_t* >( &pPacket.data[ 0 ] ), + Logger::debug( "[{0}] Undefined Zone IPC : Unknown ( {1:04X} )", m_pSession->getId(), opcode ); + Logger::debug( "Dump:\n{0}", Util::binaryToHexDump( const_cast< uint8_t* >( &pPacket.data[ 0 ] ), pPacket.segHdr.size ) ); } } @@ -243,13 +243,13 @@ void Sapphire::Network::GameConnection::handleChatPacket( Sapphire::Network::Pac std::string name = itStr != m_chatHandlerStrMap.end() ? itStr->second : "unknown"; // dont display packet notification if it is a ping or pos update, don't want the spam - Logger::debug( "[{0}] Handling Chat IPC : {1} ( {2:X} )", m_pSession->getId(), name, opcode ); + Logger::debug( "[{0}] Handling Chat IPC : {1} ( {2:04X} )", m_pSession->getId(), name, opcode ); ( this->*( it->second ) )( m_pFw, pPacket, *m_pSession->getPlayer() ); } else { - Logger::debug( "[{0}] Undefined Chat IPC : Unknown ( {1:X} )", m_pSession->getId(), opcode ); + Logger::debug( "[{0}] Undefined Chat IPC : Unknown ( {1:04X} )", m_pSession->getId(), opcode ); } } diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index 52d6032b..278be951 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -79,8 +79,8 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, const auto param4 = packet.data().param4; const auto param5 = packet.data().param5; - Logger::debug( "[{0}] Incoming action: {1:#04X}\nparam1: {2:#016X}\nparam2: {3:#08X}\nparam3: {4:#016X}", - m_pSession->getId(), param1, param2, param3 ); + Logger::debug( "[{0}] Incoming action: {1:04X}\nparam1: {2:016X}\nparam2: {3:08X}\nparam3: {4:016x}", + m_pSession->getId(), commandId, param1, param2, param3 ); //g_log.Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString()); @@ -490,7 +490,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, default: { - Logger::debug( "[{0}] Unhandled action: {1:#04X}", m_pSession->getId(), commandId ); + Logger::debug( "[{0}] Unhandled action: {1:04X}", m_pSession->getId(), commandId ); break; } } From 646cf701cb87b6a8cb3e39809a36021202af6022 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 4 Jan 2019 22:59:09 +1100 Subject: [PATCH 318/385] fix blasphemous indentation --- src/world/Manager/TerritoryMgr.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 1c9ba245..9c3da5d0 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -164,12 +164,12 @@ bool Sapphire::World::Manager::TerritoryMgr::createDefaultTerritories() uint32_t guid = getNextInstanceId(); Logger::info( "{0}\t{1}\t{2}\t{3:<10}\t{4}\t{5}", - territoryTypeId, - guid, - territoryInfo->territoryIntendedUse, - territoryInfo->name, - ( isPrivateTerritory( territoryTypeId ) ? "PRIVATE" : "PUBLIC" ), - pPlaceName->name ); + territoryTypeId, + guid, + territoryInfo->territoryIntendedUse, + territoryInfo->name, + ( isPrivateTerritory( territoryTypeId ) ? "PRIVATE" : "PUBLIC" ), + pPlaceName->name ); auto pZone = make_Zone( territoryTypeId, guid, territoryInfo->name, pPlaceName->name, framework() ); pZone->init(); From bc783993f30b3f9208f3585a453b3eac08e79473 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Fri, 4 Jan 2019 13:30:14 +0100 Subject: [PATCH 319/385] Update DebugCommandMgr.cpp --- src/world/Manager/DebugCommandMgr.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index e84fd649..fb0abf7f 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -429,10 +429,10 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& auto bNpcTemplate = serverZone->getBNpcTemplate( params ); if( !bNpcTemplate ) - { + { player.sendNotice( "Template " + params + " not found in cache!" ); - return; - } + return; + } auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, player.getPos().x, player.getPos().y, @@ -1047,4 +1047,4 @@ void Sapphire::World::Manager::DebugCommandMgr::housing( char* data, Entity::Pla { player.sendDebug( "Unknown sub command." ); } -} \ No newline at end of file +} From 329ee051561a73490ce81d8024702dbaec4724c5 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Fri, 4 Jan 2019 13:47:03 +0100 Subject: [PATCH 320/385] Formatting --- src/world/Manager/DebugCommandMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index fb0abf7f..876557a9 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -430,7 +430,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& if( !bNpcTemplate ) { - player.sendNotice( "Template " + params + " not found in cache!" ); + player.sendNotice( "Template " + params + " not found in cache!" ); return; } auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, From a0277842476bd93ec7d86100421838a074368609 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Fri, 4 Jan 2019 13:50:57 +0100 Subject: [PATCH 321/385] =?UTF-8?q?Formatting=C2=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/world/Manager/DebugCommandMgr.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 876557a9..ef01f066 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -429,10 +429,10 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& auto bNpcTemplate = serverZone->getBNpcTemplate( params ); if( !bNpcTemplate ) - { + { player.sendNotice( "Template " + params + " not found in cache!" ); - return; - } + return; + } auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, player.getPos().x, player.getPos().y, From 37417800acc9ac465852d82be42195794069ad90 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Fri, 4 Jan 2019 13:57:29 +0100 Subject: [PATCH 322/385] Formatting... --- src/world/Manager/DebugCommandMgr.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index ef01f066..8095da7f 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -429,10 +429,10 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& auto bNpcTemplate = serverZone->getBNpcTemplate( params ); if( !bNpcTemplate ) - { - player.sendNotice( "Template " + params + " not found in cache!" ); - return; - } + { + player.sendNotice( "Template " + params + " not found in cache!" ); + return; + } auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, player.getPos().x, player.getPos().y, From 284ae1ee4124bb048282414ea8002b3402fdb560 Mon Sep 17 00:00:00 2001 From: mordred Date: Fri, 4 Jan 2019 14:29:31 +0100 Subject: [PATCH 323/385] Fix for double mysql find --- CMakeLists.txt | 2 +- cmake/mysql.cmake | 39 --------------------------------------- 2 files changed, 1 insertion(+), 40 deletions(-) delete mode 100644 cmake/mysql.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 82d9129c..e5dcb6b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ add_custom_target( copy_runtime_files ALL # Dependencies and compiler settings # ###################################### include( "cmake/paths.cmake" ) -include( "cmake/mysql.cmake" ) +#include( "cmake/mysql.cmake" ) include( "cmake/compiler.cmake" ) include( "cmake/cotire.cmake" ) diff --git a/cmake/mysql.cmake b/cmake/mysql.cmake deleted file mode 100644 index 77106bc9..00000000 --- a/cmake/mysql.cmake +++ /dev/null @@ -1,39 +0,0 @@ - -if(UNIX) - find_path(MYSQL_INCLUDE_DIR mysql.h - /usr/include/mysql - /usr/local/include/mysql - /opt/mysql/mysql/include - /opt/mysql/mysql/include/mysql - /opt/mysql/include - /opt/local/include/mysql5 - /usr/local/mysql/include - /usr/local/mysql/include/mysql - $ENV{ProgramFiles}/MySQL/*/include - $ENV{SystemDrive}/MySQL/*/include - ${LIBRARY_DIR}/external/MySQL/ - ) - - if(MYSQL_INCLUDE_DIR) - set(MYSQL_FOUND TRUE) - - include_directories(${MYSQL_INCLUDE_DIR}) - endif(MYSQL_INCLUDE_DIR) - - if(MYSQL_FOUND) - message(STATUS "MySQL include dir: ${MYSQL_INCLUDE_DIR}") - else(MYSQL_FOUND) - message(FATAL_ERROR "Could not find MySQL headers.") - endif(MYSQL_FOUND) -else() - include_directories("${LIBRARY_DIR}/external/MySQL/") - if(CMAKE_SIZEOF_VOID_P EQUAL 4) - # 32 bit link - link_directories(${LIBRARY_DIR}/external/MySQL/x86) - link_directories(${LIBRARY_DIR}/external/zlib/x86) - else() - # 64 bit link - link_directories(${LIBRARY_DIR}/external/MySQL/x64) - link_directories(${LIBRARY_DIR}/external/zlib/x64) - endif() -endif() From b0ab052bd4c9fd047ceb79e02210d1fb1f017d6e Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 5 Jan 2019 12:32:10 +0100 Subject: [PATCH 324/385] Changed sendDebug to use fmt aswell --- src/common/Logging/Logger.h | 24 +++++----- .../common/aethernet/HousingAethernet.cpp | 2 +- src/world/Actor/Chara.cpp | 14 +++--- src/world/Actor/Player.cpp | 7 +-- src/world/Actor/Player.h | 7 +++ src/world/Manager/DebugCommandMgr.cpp | 46 +++++++++---------- src/world/Network/GameConnection.cpp | 4 +- src/world/Network/Handlers/ActionHandler.cpp | 9 ++-- src/world/Network/Handlers/CFHandlers.cpp | 6 +-- .../Network/Handlers/ClientTriggerHandler.cpp | 5 +- src/world/Network/Handlers/EventHandlers.cpp | 45 ++++++------------ .../Network/Handlers/GMCommandHandlers.cpp | 2 +- src/world/Network/Handlers/PacketHandlers.cpp | 10 ++-- src/world/Script/ScriptMgr.cpp | 10 ++-- src/world/ServerMgr.cpp | 4 +- src/world/Session.cpp | 2 +- src/world/Territory/InstanceContent.cpp | 4 +- 17 files changed, 93 insertions(+), 108 deletions(-) diff --git a/src/common/Logging/Logger.h b/src/common/Logging/Logger.h index 3ed95035..5151eb1d 100644 --- a/src/common/Logging/Logger.h +++ b/src/common/Logging/Logger.h @@ -24,48 +24,48 @@ namespace Sapphire static void error( const std::string& text ); template< typename... Args > - static void error( const std::string& fmt, const Args&... args ) + static void error( const std::string& text, const Args&... args ) { - error( fmt::format( fmt, args... ) ); + error( fmt::format( text, args... ) ); } static void warn( const std::string& text ); template< typename... Args > - static void warn( const std::string& fmt, const Args&... args ) + static void warn( const std::string& text, const Args&... args ) { - warn( fmt::format( fmt, args... ) ); + warn( fmt::format( text, args... ) ); } static void info( const std::string& text ); template< typename... Args > - static void info( const std::string& fmt, const Args&... args ) + static void info( const std::string& text, const Args&... args ) { - info( fmt::format( fmt, args... ) ); + info( fmt::format( text, args... ) ); } static void debug( const std::string& text ); template< typename... Args > - static void debug( const std::string& fmt, const Args&... args ) + static void debug( const std::string& text, const Args&... args ) { - debug( fmt::format( fmt, args... ) ); + debug( fmt::format( text, args... ) ); } static void fatal( const std::string& text ); template< typename... Args > - static void fatal( const std::string& fmt, const Args&... args ) + static void fatal( const std::string& text, const Args&... args ) { - fatal( fmt::format( fmt, args... ) ); + fatal( fmt::format( text, args... ) ); } static void trace( const std::string& text ); template< typename... Args > - static void trace( const std::string& fmt, const Args&... args ) + static void trace( const std::string& text, const Args&... args ) { - trace( fmt::format( fmt, args... ) ); + trace( fmt::format( text, args... ) ); } diff --git a/src/scripts/common/aethernet/HousingAethernet.cpp b/src/scripts/common/aethernet/HousingAethernet.cpp index 012bf5ee..272065b8 100644 --- a/src/scripts/common/aethernet/HousingAethernet.cpp +++ b/src/scripts/common/aethernet/HousingAethernet.cpp @@ -36,7 +36,7 @@ public: if( player.getCurrentZone()->getTerritoryTypeId() != pHousingAethernet->territoryType ) return; - player.sendDebug( "got level entry: " + std::to_string( pHousingAethernet->level ) ); + player.sendDebug( "got level entry: {0}", pHousingAethernet->level ); } ); } }; \ No newline at end of file diff --git a/src/world/Actor/Chara.cpp b/src/world/Actor/Chara.cpp index 10e78b21..868cfe3b 100644 --- a/src/world/Actor/Chara.cpp +++ b/src/world/Actor/Chara.cpp @@ -432,8 +432,8 @@ void Sapphire::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionI auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); if( isPlayer() ) { - getAsPlayer()->sendDebug( std::to_string( target.getId() ) ); - getAsPlayer()->sendDebug( "Handle script skill type: " + std::to_string( type ) ); + getAsPlayer()->sendDebug( "{0}", target.getId() ); + getAsPlayer()->sendDebug( "Handle script skill type: {0}", type ); } auto actionInfoPtr = pExdData->get< Sapphire::Data::Action >( actionId ); @@ -495,10 +495,9 @@ void Sapphire::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionI if( isPlayer() ) { if( pHitActor->isPlayer() ) - getAsPlayer()->sendDebug( "AoE hit actor " + std::to_string( pHitActor->getId() ) + - " (" + pHitActor->getAsChara()->getName() + ")" ); + getAsPlayer()->sendDebug( "AoE hit actor#{0} ({1})", pHitActor->getId(), pHitActor->getAsChara()->getName() ); else - getAsPlayer()->sendDebug( "AoE hit actor " + std::to_string( pHitActor->getId() ) ); + getAsPlayer()->sendDebug( "AoE hit actor#{0}", pHitActor->getId() ); } } } @@ -546,10 +545,9 @@ void Sapphire::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionI if( isPlayer() ) { if( pHitActor->isPlayer() ) - getAsPlayer()->sendDebug( "AoE hit actor " + std::to_string( pHitActor->getId() ) + - " (" + pHitActor->getAsChara()->getName() + ")" ); + getAsPlayer()->sendDebug( "AoE hit actor#{0} ({1})", pHitActor->getId(), pHitActor->getAsChara()->getName() ); else - getAsPlayer()->sendDebug( "AoE hit actor " + std::to_string( pHitActor->getId() ) ); + getAsPlayer()->sendDebug( "AoE hit actor#{0}", pHitActor->getId() ); } } } diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index ce9f478d..c5f70e4b 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -362,9 +362,10 @@ void Sapphire::Entity::Player::teleport( uint16_t aetheryteId, uint8_t type ) rot = targetPos->getTargetRotation(); } - sendDebug( "Teleport: " + pExdData->get< Sapphire::Data::PlaceName >( data->placeName )->name + " " + - pExdData->get< Sapphire::Data::PlaceName >( data->aethernetName )->name + - "(" + std::to_string( data->territory ) + ")" ); + sendDebug( "Teleport: {0} {1} ({2})", + pExdData->get< Sapphire::Data::PlaceName >( data->placeName )->name, + pExdData->get< Sapphire::Data::PlaceName >( data->aethernetName )->name, + data->territory ); // TODO: this should be simplified and a type created in server_common/common.h. if( type == 1 ) // teleport diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 218b27f9..ce12545c 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -5,6 +5,7 @@ #include #include +#include #include "Chara.h" #include "Event/EventHandler.h" @@ -764,6 +765,12 @@ namespace Sapphire::Entity void sendDebug( const std::string& message ); + template< typename... Args > + void sendDebug( const std::string& message, const Args&... args ) + { + sendDebug( fmt::format( message, args... ) ); + } + void sendLogMessage( uint32_t messageId, uint32_t param2 = 0, uint32_t param3 = 0, uint32_t param4 = 0, uint32_t param5 = 0, uint32_t param6 = 0 ); bool isDirectorInitialized() const; diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 25cb092c..7685a327 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -131,7 +131,7 @@ void Sapphire::World::Manager::DebugCommandMgr::help( char* data, Entity::Player { if( player.getGmRank() >= cmd.second->m_gmLevel ) { - player.sendDebug( " - " + cmd.first + " - " + cmd.second->getHelpText() ); + player.sendDebug( " - {0} - {1}", cmd.first, cmd.second->getHelpText() ); } } } @@ -324,7 +324,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& if( !player.hasQuest( questId ) ) { - player.sendDebug( "Player doesn't have the quest with ID: " + std::to_string( questId ) ); + player.sendDebug( "Player doesn't have the quest with ID#: {0}", questId ); return; } if( questBit == 0 || questId == 0 ) @@ -679,9 +679,9 @@ Sapphire::World::Manager::DebugCommandMgr::serverInfo( char* data, Entity::Playe std::shared_ptr< DebugCommand > command ) { auto pServerZone = framework()->get< World::ServerMgr >(); - player.sendDebug( "SapphireZone " + Version::VERSION + "\nRev: " + Version::GIT_HASH ); + player.sendDebug( "SapphireZone {0} \nRev: {1}", Version::VERSION, Version::GIT_HASH ); player.sendDebug( "Compiled: " __DATE__ " " __TIME__ ); - player.sendDebug( "Sessions: " + std::to_string( pServerZone->getSessionCount() ) ); + player.sendDebug( "Sessions: {0}", pServerZone->getSessionCount() ); } void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Player& player, @@ -716,7 +716,7 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play else if( pScriptMgr->getNativeScriptHandler().unloadScript( params ) ) player.sendDebug( "Unloaded script successfully." ); else - player.sendDebug( "Failed to unload script: " + params ); + player.sendDebug( "Failed to unload script: {0}", params ); } else if( subCommand == "find" || subCommand == "f" ) { @@ -729,17 +729,16 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play if( !scripts.empty() ) { - player.sendDebug( "Found " + std::to_string( scripts.size() ) + " scripts" ); + player.sendDebug( "Found {0} scripts", scripts.size() ); for( auto it = scripts.begin(); it != scripts.end(); ++it ) { auto script = *it; - player.sendDebug( " - '" + script->library_name + - ", num scripts: " + std::to_string( script->scripts.size() ) ); + player.sendDebug( " - '{0}', num scripts: {1}", script->library_name, script->scripts.size() ); } } else - player.sendDebug( "No scripts found with search term: " + params ); + player.sendDebug( "No scripts found with search term: {0}", params ); } } else if( subCommand == "load" || subCommand == "l" ) @@ -749,9 +748,9 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play else { if( pScriptMgr->getNativeScriptHandler().loadScript( params ) ) - player.sendDebug( "Loaded '" + params + "' successfully" ); + player.sendDebug( "Loaded '{0}' successfully", params ); else - player.sendDebug( "Failed to load '" + params + "'" ); + player.sendDebug( "Failed to load '{0}'", params ); } } @@ -762,12 +761,12 @@ void Sapphire::World::Manager::DebugCommandMgr::script( char* data, Entity::Play else { pScriptMgr->getNativeScriptHandler().queueScriptReload( params ); - player.sendDebug( "Queued script reload for script: " + params ); + player.sendDebug( "Queued script reload for script: {0}", params ); } } else { - player.sendDebug( "Unknown script subcommand: " + subCommand ); + player.sendDebug( "Unknown script subcommand: {0}", subCommand ); } } @@ -801,10 +800,9 @@ Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& auto instance = pTeriMgr->createInstanceContent( instanceContentId ); if( instance ) - player.sendDebug( - "Created instance with id: " + std::to_string( instance->getGuId() ) + " -> " + instance->getName() ); + player.sendDebug( "Created instance with id#{0} -> {1}", instance->getGuId(), instance->getName() ); else - player.sendDebug( "Failed to create instance with id: " + std::to_string( instanceContentId ) ); + player.sendDebug( "Failed to create instance with id#{0}", instanceContentId ); } else if( subCommand == "bind" ) { @@ -821,7 +819,7 @@ Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& " -> " + pInstanceContent->getName() ); } else - player.sendDebug( "Unknown instance with id: " + std::to_string( instanceId ) ); + player.sendDebug( "Unknown instance with id#{0}", instanceId ); } else if( subCommand == "unbind" ) { @@ -831,7 +829,7 @@ Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& auto instance = pTeriMgr->getInstanceZonePtr( instanceId ); if( !instance ) { - player.sendDebug( "Unknown instance with id: " + std::to_string( instanceId ) ); + player.sendDebug( "Unknown instance with id#{0} ", instanceId ); return; } @@ -839,12 +837,10 @@ Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& if( pInstanceContent->isPlayerBound( player.getId() ) ) { pInstanceContent->unbindPlayer( player.getId() ); - player.sendDebug( - "Now unbound from instance with id: " + std::to_string( pInstanceContent->getGuId() ) + - " -> " + pInstanceContent->getName() ); + player.sendDebug( "Now unbound from instance with id#{0} -> {1}", pInstanceContent->getGuId(), pInstanceContent->getName() ); } else - player.sendDebug( "Player not bound to instance with id: " + std::to_string( instanceId ) ); + player.sendDebug( "Player not bound to instance with id#{0}", instanceId ); } else if( subCommand == "createzone" || subCommand == "crz" ) @@ -857,7 +853,7 @@ Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& player.sendDebug( "Created instance with id: " + std::to_string( instance->getGuId() ) + " -> " + instance->getName() ); else - player.sendDebug( "Failed to create instance with id: " + std::to_string( zoneId ) ); + player.sendDebug( "Failed to create instance with id#{0}", zoneId ); } else if( subCommand == "remove" || subCommand == "rm" ) { @@ -865,9 +861,9 @@ Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& sscanf( params.c_str(), "%d", &terriId ); if( pTeriMgr->removeTerritoryInstance( terriId ) ) - player.sendDebug( "Removed instance with id: " + std::to_string( terriId ) ); + player.sendDebug( "Removed instance with id#{0}", terriId ); else - player.sendDebug( "Failed to remove instance with id: " + std::to_string( terriId ) ); + player.sendDebug( "Failed to remove instance with id#{0}", terriId ); } else if( subCommand == "return" || subCommand == "ret" ) { diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index cbf470b8..0bacd53a 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -343,7 +343,7 @@ void Sapphire::Network::GameConnection::injectPacket( const std::string& packetp fp = fopen( packetpath.c_str(), "rb" ); if( fp == nullptr ) { - player.sendDebug( "Packet " + packetpath + " not found!" ); + player.sendDebug( "Packet {0} not found!", packetpath ); return; } @@ -353,7 +353,7 @@ void Sapphire::Network::GameConnection::injectPacket( const std::string& packetp rewind( fp ); if( fread( packet, sizeof( char ), size, fp ) != size ) { - player.sendDebug( "Packet " + packetpath + " did not read full size: " + std::to_string( size ) ); + player.sendDebug( "Packet {0} did not read full size: {1}", packetpath, size ); return; } fclose( fp ); diff --git a/src/world/Network/Handlers/ActionHandler.cpp b/src/world/Network/Handlers/ActionHandler.cpp index 2f572578..3ee00e6f 100644 --- a/src/world/Network/Handlers/ActionHandler.cpp +++ b/src/world/Network/Handlers/ActionHandler.cpp @@ -44,7 +44,7 @@ void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw, const auto useCount = packet.data().useCount; const auto targetId = packet.data().targetId; - player.sendDebug( "Skill type:" + std::to_string( type ) ); + player.sendDebug( "Skill type: {0}", type ); auto pExdData = pFw->get< Data::ExdDataGenerated >(); auto pScriptMgr = pFw->get< Scripting::ScriptMgr >(); @@ -57,9 +57,8 @@ void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw, { std::string actionIdStr = Util::intToHexString( action, 4 ); player.sendDebug( "---------------------------------------" ); - player.sendDebug( "ActionHandler ( " + actionIdStr + " | " + - pExdData->get< Sapphire::Data::Action >( action )->name + - " | " + std::to_string( targetId ) + " )" ); + player.sendDebug( "ActionHandler ( {0} | {1} | {2} )", + actionIdStr, pExdData->get< Sapphire::Data::Action >( action )->name, targetId ); player.queuePacket( makeActorControl142( player.getId(), ActorControlType::ActionStart, 0x01, action ) ); @@ -122,7 +121,7 @@ void Sapphire::Network::GameConnection::actionHandler( FrameworkPtr pFw, case Common::SkillType::MountSkill: - player.sendDebug( "Request mount " + std::to_string( action ) ); + player.sendDebug( "Request mount {0}", action ); auto pActionMount = Action::make_ActionMount( player.getAsPlayer(), action ); player.setCurrentAction( pActionMount ); diff --git a/src/world/Network/Handlers/CFHandlers.cpp b/src/world/Network/Handlers/CFHandlers.cpp index bc289634..1a87a371 100644 --- a/src/world/Network/Handlers/CFHandlers.cpp +++ b/src/world/Network/Handlers/CFHandlers.cpp @@ -56,7 +56,7 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( FrameworkPtr pFw, if( id == 0 ) break; - player.sendDebug( "got contentId: " + std::to_string( id ) ); + player.sendDebug( "got contentId#{0}", id ); selectedContent.push_back( id ); } @@ -65,7 +65,7 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( FrameworkPtr pFw, auto index = std::rand() % selectedContent.size(); auto contentId = selectedContent.at( index ); - player.sendDebug( "Duty register request for contentid: " + std::to_string( contentId ) ); + player.sendDebug( "Duty register request for contentid#{0}", contentId ); // let's cancel it because otherwise you can't register it again auto cfCancelPacket = makeZonePacket< FFXIVIpcCFNotify >( player.getId() ); @@ -84,7 +84,7 @@ void Sapphire::Network::GameConnection::cfRegisterDuty( FrameworkPtr pFw, auto pInstance = instance->getAsInstanceContent(); pInstance->bindPlayer( player.getId() ); - player.sendDebug( "Created instance with id: " + std::to_string( instance->getGuId() ) ); + player.sendDebug( "Created instance with id#", instance->getGuId() ); player.setInstance( instance ); } diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index 278be951..30c68fa5 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -482,9 +482,8 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, auto privateEstateAccess = ( param2 >> 16 & 0xFF ) == 1; auto unk = ( param2 >> 24 & 0xFF ) == 1; // todo: related to fc? or unused? - player.sendDebug( "can teleport: " + std::to_string( canTeleport ) + ", unk: " + std::to_string( unk1 ) + - ", privateEstateAccess: " + std::to_string( privateEstateAccess ) + - ", unk: " + std::to_string( unk ) ); + player.sendDebug( "can teleport: {0}, unk: {1}, privateEstateAccess: {2}, unk: {3}", + canTeleport, unk1, privateEstateAccess, unk ); break; } diff --git a/src/world/Network/Handlers/EventHandlers.cpp b/src/world/Network/Handlers/EventHandlers.cpp index b3124529..1dd0d060 100644 --- a/src/world/Network/Handlers/EventHandlers.cpp +++ b/src/world/Network/Handlers/EventHandlers.cpp @@ -48,15 +48,12 @@ void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw, std::string eventName = "onTalk"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Chara: " + - std::to_string( actorId ) + " -> " + - std::to_string( pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ) ) + - " \neventId: " + - std::to_string( eventId ) + - " (0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + ")" ); + player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X}", + actorId, pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), + eventId, eventId ); - player.sendDebug( "Calling: " + objName + "." + eventName ); + player.sendDebug( "Calling: {0}.{1}", objName, eventName ); player.eventStart( actorId, eventId, Event::EventHandler::Talk, 0, 0 ); if( auto instance = player.getCurrentInstance() ) @@ -93,14 +90,11 @@ void Sapphire::Network::GameConnection::eventHandlerEmote( FrameworkPtr pFw, std::string eventName = "onEmote"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Chara: " + - std::to_string( actorId ) + " -> " + - std::to_string( pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ) ) + - " \neventId: " + - std::to_string( eventId ) + - " (0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + ")" ); + player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X}", + actorId, pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), + eventId, eventId ); - player.sendDebug( "Calling: " + objName + "." + eventName ); + player.sendDebug( "Calling: {0}.{1}", objName, eventName ); player.eventStart( actorId, eventId, Event::EventHandler::Emote, 0, emoteId ); @@ -130,8 +124,7 @@ void Sapphire::Network::GameConnection::eventHandlerWithinRange( FrameworkPtr pF std::string eventName = "onWithinRange"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Calling: " + objName + "." + eventName + " - " + std::to_string( eventId ) + - " p1: " + std::to_string( param1 ) ); + player.sendDebug( "Calling: {0}.{1} - {2} p1: {3}", objName, eventName, eventId, param1 ); player.eventStart( player.getId(), eventId, Event::EventHandler::WithinRange, 1, param1 ); @@ -154,8 +147,7 @@ void Sapphire::Network::GameConnection::eventHandlerOutsideRange( FrameworkPtr p std::string eventName = "onOutsideRange"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Calling: " + objName + "." + eventName + " - " + std::to_string( eventId ) + - " p1: " + std::to_string( param1 ) ); + player.sendDebug( "Calling: {0}.{1} - {2} p1: {3}", objName, eventName, eventId, param1 ); player.eventStart( player.getId(), eventId, Event::EventHandler::WithinRange, 1, param1 ); @@ -181,7 +173,7 @@ void Sapphire::Network::GameConnection::eventHandlerEnterTerritory( FrameworkPtr std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Calling: " + objName + "." + eventName + " - " + std::to_string( eventId ) ); + player.sendDebug( "Calling: {0}.{1} - {2}", objName, eventName, eventId ); if( auto instance = player.getCurrentInstance() ) { @@ -213,13 +205,8 @@ void Sapphire::Network::GameConnection::eventHandlerReturn( FrameworkPtr pFw, std::string eventName = pEventMgr->getEventName( eventId ); - player.sendDebug( "eventId: " + - std::to_string( eventId ) + - " ( 0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + " ) " + - " scene: " + std::to_string( scene ) + - " p1: " + std::to_string( param1 ) + - " p2: " + std::to_string( param2 ) + - " p3: " + std::to_string( param3 ) ); + player.sendDebug( "eventId: {0} ({0:08X}) scene: {1}, p1: {2}, p2: {3}, p3: {4}", + eventId, scene, param1, param2, param3 ); auto pEvent = player.getEvent( eventId ); if( pEvent ) @@ -282,11 +269,9 @@ void Sapphire::Network::GameConnection::eventHandlerShop( FrameworkPtr pFw, std::string eventName = "onOpen"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "EventId: " + - std::to_string( eventId ) + - " (0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + ")" ); + player.sendDebug( "EventId: {0} ({0:08X}", eventId ); - player.sendDebug( "Calling: " + objName + "." + eventName ); + player.sendDebug( "Calling: {0}.{1}", objName, eventName ); player.eventStart( player.getId(), eventId, Event::EventHandler::UI, 0, packet.data().param ); pScriptMgr->onTalk( player, player.getId(), eventId ); diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index 980f3008..a31d5a74 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -427,7 +427,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, auto pTeriMgr = pFw->get< TerritoryMgr >(); if( auto instance = pTeriMgr->getInstanceZonePtr( param1 ) ) { - player.sendDebug( "Found instance: " + instance->getName() + ", id: " + std::to_string( param1 ) ); + player.sendDebug( "Found instance: {0}, id#{1}", instance->getName(), param1 ); // if the zone is an instanceContent instance, make sure the player is actually bound to it auto pInstance = instance->getAsInstanceContent(); diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index c87002b5..3875bef2 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -314,7 +314,7 @@ Sapphire::Network::GameConnection::reqEquipDisplayFlagsHandler( FrameworkPtr pFw { player.setEquipDisplayFlags( inPacket.data[ 0x10 ] ); - player.sendDebug( "EquipDisplayFlag CHANGE: " + std::to_string( player.getEquipDisplayFlags() ) ); + player.sendDebug( "EquipDisplayFlag CHANGE: {0}", player.getEquipDisplayFlags() ); } void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw, @@ -326,7 +326,7 @@ void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw, const auto packet = ZoneChannelPacket< Client::FFXIVIpcZoneLineHandler >( inPacket ); const auto zoneLineId = packet.data().zoneLineId; - player.sendDebug( "Walking ZoneLine " + std::to_string( zoneLineId ) ); + player.sendDebug( "Walking ZoneLine#{0}", zoneLineId ); auto pZone = player.getCurrentZone(); @@ -338,7 +338,7 @@ void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw, if( pLine != nullptr ) { - player.sendDebug( "ZoneLine " + std::to_string( zoneLineId ) + " found." ); + player.sendDebug( "ZoneLine #{0} found.", zoneLineId ); targetPos = pLine->getTargetPosition(); targetZone = pLine->getTargetZoneId(); rotation = pLine->getTargetRotation(); @@ -379,7 +379,7 @@ void Sapphire::Network::GameConnection::discoveryHandler( FrameworkPtr pFw, if( !pQR->next() ) { - player.sendDebug( "Discovery ref pos ID: " + std::to_string( positionRef ) + " not found. " ); + player.sendDebug( "Discovery ref pos id#{0} not found!", positionRef ); return; } @@ -388,7 +388,7 @@ void Sapphire::Network::GameConnection::discoveryHandler( FrameworkPtr pFw, discoveryPacket->data().map_part_id = pQR->getUInt( 3 ); player.queuePacket( discoveryPacket ); - player.sendDebug( "Discovery ref pos ID: " + std::to_string( positionRef ) ); + player.sendDebug( "Discovery ref pos id#{0}", positionRef ); player.discover( pQR->getUInt16( 2 ), pQR->getUInt16( 3 ) ); diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index c3088cad..408c51d9 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -261,7 +261,7 @@ bool Sapphire::Scripting::ScriptMgr::onEventItem( Entity::Player& player, uint32 std::string eventName = "onEventItem"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Calling: " + objName + "." + eventName + " - " + std::to_string( eventId ) ); + player.sendDebug( "Calling: {0}.{1} - {2}", objName, eventName, eventId ); auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId ); if( script ) @@ -295,7 +295,7 @@ bool Sapphire::Scripting::ScriptMgr::onMobKill( Entity::Player& player, uint16_t { std::string objName = pEventMgr->getEventName( 0x00010000 | questId ); - player.sendDebug( "Calling: " + objName + "." + eventName ); + player.sendDebug( "Calling: {0}.{1}", objName, eventName ); script->onNpcKill( nameId, player ); } @@ -320,7 +320,7 @@ bool Sapphire::Scripting::ScriptMgr::onStatusReceive( Entity::CharaPtr pActor, u if( script ) { if( pActor->isPlayer() ) - pActor->getAsPlayer()->sendDebug( "Calling status receive for statusid: " + std::to_string( effectId ) ); + pActor->getAsPlayer()->sendDebug( "Calling status receive for statusid#{0}", effectId ); script->onApply( *pActor ); return true; @@ -335,7 +335,7 @@ bool Sapphire::Scripting::ScriptMgr::onStatusTick( Entity::CharaPtr pChara, Sapp if( script ) { if( pChara->isPlayer() ) - pChara->getAsPlayer()->sendDebug( "Calling status tick for statusid: " + std::to_string( effect.getId() ) ); + pChara->getAsPlayer()->sendDebug( "Calling status tick for statusid#{0}", effect.getId() ); script->onTick( *pChara ); return true; @@ -350,7 +350,7 @@ bool Sapphire::Scripting::ScriptMgr::onStatusTimeOut( Entity::CharaPtr pChara, u if( script ) { if( pChara->isPlayer() ) - pChara->getAsPlayer()->sendDebug( "Calling status timeout for statusid: " + std::to_string( effectId ) ); + pChara->getAsPlayer()->sendDebug( "Calling status timeout for statusid#{0}", effectId ); script->onExpire( *pChara ); return true; diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 458d6aa2..70f452f4 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -217,8 +217,8 @@ void Sapphire::World::ServerMgr::printBanner() const { Logger::info( "===========================================================" ); Logger::info( "Sapphire Server Project " ); - Logger::info( "Version: " + Version::VERSION ); - Logger::info( "Git Hash: " + Version::GIT_HASH ); + Logger::info( "Version: {0}", Version::VERSION ); + Logger::info( "Git Hash: {0}", Version::GIT_HASH ); Logger::info( "Compiled: " __DATE__ " " __TIME__ ); Logger::info( "===========================================================" ); } diff --git a/src/world/Session.cpp b/src/world/Session.cpp index 14e87d48..682fdb45 100644 --- a/src/world/Session.cpp +++ b/src/world/Session.cpp @@ -154,7 +154,7 @@ void Sapphire::World::Session::startReplay( const std::string& path ) Logger::info( "Registering {0} for {1}", std::get< 1 >( set ), std::get< 0 >( set ) - startTime ); } - getPlayer()->sendDebug( "Registered " + std::to_string( m_replayCache.size() ) + " sets for replay" ); + getPlayer()->sendDebug( "Registered {0} sets for replay" ), m_replayCache.size(); m_isReplaying = true; } diff --git a/src/world/Territory/InstanceContent.cpp b/src/world/Territory/InstanceContent.cpp index 6d636219..6c9a2db6 100644 --- a/src/world/Territory/InstanceContent.cpp +++ b/src/world/Territory/InstanceContent.cpp @@ -375,8 +375,8 @@ void Sapphire::InstanceContent::onTalk( Sapphire::Entity::Player& player, uint32 if( auto onTalk = it->second->getOnTalkHandler() ) onTalk( player, it->second, getAsInstanceContent(), actorId ); else - player.sendDebug( "No onTalk handler found for interactable eobj with EObjID: " + - std::to_string( it->second->getObjectId() ) + ", eventId: " + std::to_string( eventId ) ); + player.sendDebug( "No onTalk handler found for interactable eobj with EObjID#{0}, eventId#{1} ", + it->second->getObjectId(), eventId ); } void From d41ac16eda772730f695091940aca3ac8a6ca32f Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Sat, 5 Jan 2019 14:50:16 +0100 Subject: [PATCH 325/385] Several GM Commands no longer crashes world.exe if used while a bnpc or an eobj is in range --- .../Network/Handlers/GMCommandHandlers.cpp | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index 2cbb3543..d2c07be3 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -143,9 +143,11 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, auto inRange = targetPlayer->getInRangeActors(); for( auto actor : inRange ) { - targetPlayer->despawn( actor->getAsPlayer() ); - targetPlayer->spawn( actor->getAsPlayer() ); - } + if( actor->isPlayer() ) + { + targetPlayer->despawn( actor->getAsPlayer() ); + targetPlayer->spawn( actor->getAsPlayer() ); + } break; } case GmCommand::Tribe: @@ -156,8 +158,11 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, auto inRange = targetPlayer->getInRangeActors(); for( auto actor : inRange ) { - targetPlayer->despawn( actor->getAsPlayer() ); - targetPlayer->spawn( actor->getAsPlayer() ); + if( actor->isPlayer() ) + { + targetPlayer->despawn( actor->getAsPlayer() ); + targetPlayer->spawn( actor->getAsPlayer() ); + } } break; } @@ -169,8 +174,11 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, auto inRange = targetActor->getInRangeActors(); for( auto actor : inRange ) { - targetPlayer->despawn( actor->getAsPlayer() ); - targetPlayer->spawn( actor->getAsPlayer() ); + if( actor->isPlayer() ) + { + targetPlayer->despawn( actor->getAsPlayer() ); + targetPlayer->spawn( actor->getAsPlayer() ); + } } break; } @@ -223,8 +231,11 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, for( auto actor : player.getInRangeActors() ) { - player.despawn( actor->getAsPlayer() ); - player.spawn( actor->getAsPlayer() ); + if( actor->isPlayer() ) + { + targetPlayer->despawn( actor->getAsPlayer() ); + targetPlayer->spawn( actor->getAsPlayer() ); + } } break; } From 24cbff7c7e0644bf911b223056db531c3d095d45 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 5 Jan 2019 14:53:42 +0100 Subject: [PATCH 326/385] Added fmt for sendNotice and sendUrgent, have not ported appearances yet --- src/world/Actor/Player.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index ce12545c..2009e219 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -760,8 +760,18 @@ namespace Sapphire::Entity uint8_t getSearchSelectClass() const; void sendNotice( const std::string& message ); + template< typename... Args > + void sendNotice( const std::string& message, const Args&... args ) + { + sendNotice( fmt::format( message, args... ) ); + } void sendUrgent( const std::string& message ); + template< typename... Args > + void sendUrgent( const std::string& message, const Args&... args ) + { + sendUrgent( fmt::format( message, args... ) ); + } void sendDebug( const std::string& message ); From 39da2d2bc92ab36cc2ed4ceefff2cff312e73106 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Sat, 5 Jan 2019 18:50:27 +0100 Subject: [PATCH 327/385] GM Call is now closer to retail behavior --- src/world/Network/Handlers/GMCommandHandlers.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index d2c07be3..3e135eb5 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -148,6 +148,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, targetPlayer->despawn( actor->getAsPlayer() ); targetPlayer->spawn( actor->getAsPlayer() ); } + } break; } case GmCommand::Tribe: @@ -640,9 +641,16 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, player.sendUrgent( "You are unable to call a player while bound to a battle instance." ); return; } - - targetPlayer->setInstance( player.getCurrentZone() ); - + targetPlayer->prepareZoning( player.getZoneId(), true, 1, 0 ); + if( targetPlayer->getCurrentInstance() ) + { + targetPlayer->exitInstance(); + } + if ( targetPlayer->getZoneId() != player.getZoneId() ) + { + targetPlayer->setZone( player.getZoneId() ); + } + targetPlayer->sendToInRangeSet( makeActorControl143( player.getId(), ZoneIn, 0, 0, 0, 0 ) ); targetPlayer->changePosition( player.getPos().x, player.getPos().y, player.getPos().z, player.getRot() ); player.sendNotice( "Calling " + targetPlayer->getName() ); break; From 572a6e12577f8c7e6b02952b448de2a860945926 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 6 Jan 2019 00:26:26 +0100 Subject: [PATCH 328/385] Updated sendNotice and sendUrgent calls --- src/world/Manager/DebugCommandMgr.cpp | 32 ++-- src/world/Network/Handlers/EventHandlers.cpp | 4 +- .../Network/Handlers/GMCommandHandlers.cpp | 149 +++++++++--------- src/world/Network/Handlers/PacketHandlers.cpp | 2 +- 4 files changed, 92 insertions(+), 95 deletions(-) diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 7685a327..b858a8a1 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -262,7 +262,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& sscanf( params.c_str(), "%" SCNu64, ×tamp ); player.setEorzeaTimeOffset( timestamp ); - player.sendNotice( "Eorzea time offset: " + std::to_string( timestamp ) ); + player.sendNotice( "Eorzea time offset: {0}", timestamp ); } else if( subCommand == "mount" ) { @@ -369,7 +369,7 @@ void Sapphire::World::Manager::DebugCommandMgr::set( char* data, Entity::Player& } else { - player.sendUrgent( subCommand + " is not a valid SET command." ); + player.sendUrgent( "{0} is not a valid SET command.", subCommand ); } } @@ -419,7 +419,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& sscanf( params.c_str(), "%u", &titleId ); player.addTitle( titleId ); - player.sendNotice( "Added title (ID: " + std::to_string( titleId ) + ")" ); + player.sendNotice( "Added title (id#{0})", titleId ); } else if( subCommand == "bnpc" ) { @@ -429,7 +429,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& if( !bNpcTemplate ) { - player.sendNotice( "Template " + params + " not found in cache!" ); + player.sendNotice( "Template {0} not found in cache!", params ); return; } auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, @@ -473,7 +473,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& sscanf( params.c_str(), "%x %x %x %x %x %x %x %x", &opcode, ¶m1, ¶m2, ¶m3, ¶m4, ¶m5, ¶m6, &playerId ); - player.sendNotice( "Injecting ACTOR_CONTROL " + std::to_string( opcode ) ); + player.sendNotice( "Injecting ACTOR_CONTROL {0}", opcode ); auto actorControl = makeZonePacket< FFXIVIpcActorControl143 >( playerId, player.getId() ); actorControl->data().category = opcode; @@ -506,7 +506,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& } else { - player.sendUrgent( subCommand + " is not a valid ADD command." ); + player.sendUrgent( "{0} is not a valid ADD command.", subCommand ); } @@ -541,17 +541,13 @@ void Sapphire::World::Manager::DebugCommandMgr::get( char* data, Entity::Player& int16_t map_id = pExdData->get< Sapphire::Data::TerritoryType >( player.getCurrentZone()->getTerritoryTypeId() )->map; - player.sendNotice( "Pos:\n" + - std::to_string( player.getPos().x ) + "\n" + - std::to_string( player.getPos().y ) + "\n" + - std::to_string( player.getPos().z ) + "\n" + - std::to_string( player.getRot() ) + "\nMapId: " + - std::to_string( map_id ) + "\nZoneID: " + - std::to_string( player.getCurrentZone()->getTerritoryTypeId() ) + "\n" ); + player.sendNotice( "Pos:\n {0}\n {1}\n {2}\n {3}\n MapId: {4}\n ZoneId:{5}", + player.getPos().x, player.getPos().y, player.getPos().z, + player.getRot(), map_id, player.getCurrentZone()->getTerritoryTypeId() ); } else { - player.sendUrgent( subCommand + " is not a valid GET command." ); + player.sendUrgent( "{0} is not a valid GET command.", subCommand ); } } @@ -621,7 +617,7 @@ void Sapphire::World::Manager::DebugCommandMgr::replay( char* data, Entity::Play } else { - player.sendUrgent( subCommand + " is not a valid replay command." ); + player.sendUrgent( "{0} is not a valid replay command.", subCommand ); } @@ -648,12 +644,12 @@ void Sapphire::World::Manager::DebugCommandMgr::nudge( char* data, Entity::Playe if( direction[ 0 ] == 'u' || direction[ 0 ] == '+' ) { pos.y += offset; - player.sendNotice( "nudge: Placing up " + std::to_string( offset ) + " yalms" ); + player.sendNotice( "nudge: Placing up {0} yalms", offset ); } else if( direction[ 0 ] == 'd' || direction[ 0 ] == '-' ) { pos.y -= offset; - player.sendNotice( "nudge: Placing down " + std::to_string( offset ) + " yalms" ); + player.sendNotice( "nudge: Placing down {0} yalms", offset ); } else @@ -661,7 +657,7 @@ void Sapphire::World::Manager::DebugCommandMgr::nudge( char* data, Entity::Playe float angle = player.getRot() + ( PI / 2 ); pos.x -= offset * cos( angle ); pos.z += offset * sin( angle ); - player.sendNotice( "nudge: Placing forward " + std::to_string( offset ) + " yalms" ); + player.sendNotice( "nudge: Placing forward {0} yalms", offset ); } if( offset != 0 ) { diff --git a/src/world/Network/Handlers/EventHandlers.cpp b/src/world/Network/Handlers/EventHandlers.cpp index 1dd0d060..85cfe10d 100644 --- a/src/world/Network/Handlers/EventHandlers.cpp +++ b/src/world/Network/Handlers/EventHandlers.cpp @@ -65,7 +65,7 @@ void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw, { auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); if( questInfo ) - player.sendUrgent( "Quest not implemented: " + questInfo->name + " (" + questInfo->id + ")" ); + player.sendUrgent( "Quest not implemented: {0} ({1})", questInfo->name, questInfo->id ); } player.checkEvent( eventId ); @@ -103,7 +103,7 @@ void Sapphire::Network::GameConnection::eventHandlerEmote( FrameworkPtr pFw, { auto questInfo = pExdData->get< Sapphire::Data::Quest >( eventId ); if( questInfo ) - player.sendUrgent( "Quest not implemented: " + questInfo->name ); + player.sendUrgent( "Quest not implemented: {0}", questInfo->name ); } player.checkEvent( eventId ); diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index a31d5a74..4690761a 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -131,13 +131,13 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, case GmCommand::Lv: { targetPlayer->setLevel( param1 ); - player.sendNotice( "Level for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Level for {0} was set to {1}", targetPlayer->getName(), param1 ); break; } case GmCommand::Race: { targetPlayer->setLookAt( CharaLook::Race, param1 ); - player.sendNotice( "Race for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Race for {0} was set to {1}", targetPlayer->getName(), param1 ); targetPlayer->spawn( targetPlayer ); auto inRange = targetPlayer->getInRangeActors(); for( auto actor : inRange ) @@ -150,7 +150,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, case GmCommand::Tribe: { targetPlayer->setLookAt( CharaLook::Tribe, param1 ); - player.sendNotice( "Tribe for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Tribe for {0} was set to ", targetPlayer->getName(), param1 ); targetPlayer->spawn( targetPlayer ); auto inRange = targetPlayer->getInRangeActors(); for( auto actor : inRange ) @@ -163,7 +163,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, case GmCommand::Sex: { targetPlayer->setLookAt( CharaLook::Gender, param1 ); - player.sendNotice( "Sex for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Sex for {0} was set to ", targetPlayer->getName(), param1 ); targetPlayer->spawn( targetPlayer ); auto inRange = targetActor->getInRangeActors(); for( auto actor : inRange ) @@ -176,14 +176,14 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, case GmCommand::Time: { player.setEorzeaTimeOffset( param2 ); - player.sendNotice( "Eorzea time offset: " + std::to_string( param2 ) ); + player.sendNotice( "Eorzea time offset: {0}", param2 ); break; } case GmCommand::Weather: { targetPlayer->getCurrentZone()->setWeatherOverride( static_cast< Common::Weather >( param1 ) ); - player.sendNotice( "Weather in Zone \"" + targetPlayer->getCurrentZone()->getName() + "\" of " + - targetPlayer->getName() + " set in range." ); + player.sendNotice( "Weather in Zone \"{0}\" of {1} set in range.", + targetPlayer->getCurrentZone()->getName(), targetPlayer->getName() ); break; } case GmCommand::Call: @@ -192,33 +192,41 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, targetPlayer->setZone( player.getZoneId() ); targetPlayer->changePosition( player.getPos().x, player.getPos().y, player.getPos().z, player.getRot() ); - player.sendNotice( "Calling " + targetPlayer->getName() ); + player.sendNotice( "Calling {0}", targetPlayer->getName() ); break; } case GmCommand::Inspect: { - player.sendNotice( "Name: " + targetPlayer->getName() + - "\nGil: " + std::to_string( targetPlayer->getCurrency( CurrencyType::Gil ) ) + - "\nZone: " + targetPlayer->getCurrentZone()->getName() + - "(" + std::to_string( targetPlayer->getZoneId() ) + ")" + - "\nClass: " + std::to_string( static_cast< uint8_t >( targetPlayer->getClass() ) ) + - "\nLevel: " + std::to_string( targetPlayer->getLevel() ) + - "\nExp: " + std::to_string( targetPlayer->getExp() ) + - "\nSearchMessage: " + targetPlayer->getSearchMessage() + - "\nPlayTime: " + std::to_string( targetPlayer->getPlayTime() ) ); + player.sendNotice( "Name: {0}" + "\nGil: {1}" + "\nZone: {2}" + "({3})" + "\nClass: {4}" + "\nLevel: {5}" + "\nExp: {6}" + "\nSearchMessage: {7}" + "\nPlayTime: {8}", + targetPlayer->getName(), + targetPlayer->getCurrency( CurrencyType::Gil ), + targetPlayer->getCurrentZone()->getName(), + targetPlayer->getZoneId(), + static_cast< uint8_t >( targetPlayer->getClass() ), + targetPlayer->getLevel(), + targetPlayer->getExp(), + targetPlayer->getSearchMessage(), + targetPlayer->getPlayTime() ); break; } case GmCommand::Speed: { targetPlayer->queuePacket( makeActorControl143( player.getId(), Flee, param1 ) ); - player.sendNotice( "Speed for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Speed for {0} was set to {1}", targetPlayer->getName(), param1 ); break; } case GmCommand::Invis: { player.setGmInvis( !player.getGmInvis() ); - player.sendNotice( "Invisibility flag for " + player.getName() + - " was toggled to " + std::to_string( !player.getGmInvis() ) ); + player.sendNotice( "Invisibility flag for {0} was toggled to {1}", player.getName(), !player.getGmInvis() ); for( auto actor : player.getInRangeActors() ) { @@ -230,7 +238,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, case GmCommand::Kill: { targetActor->getAsChara()->takeDamage( 9999999 ); - player.sendNotice( "Killed " + std::to_string( targetActor->getId() ) ); + player.sendNotice( "Killed {0}", targetActor->getId() ); break; } case GmCommand::Icon: @@ -250,31 +258,31 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, targetPlayer->sendToInRangeSet( makeActorControl142( player.getId(), SetStatusIcon, static_cast< uint8_t >( player.getOnlineStatus() ) ), true ); - player.sendNotice( "Icon for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Icon for {0} was set to {1}", targetPlayer->getName(), param1 ); break; } case GmCommand::Hp: { targetPlayer->setHp( param1 ); - player.sendNotice( "Hp for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Hp for {0} was set to {1}", targetPlayer->getName(), param1 ); break; } case GmCommand::Mp: { targetPlayer->setMp( param1 ); - player.sendNotice( "Mp for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Mp for {0} was set to {1}", targetPlayer->getName(), param1 ); break; } case GmCommand::Gp: { targetPlayer->setHp( param1 ); - player.sendNotice( "Gp for " + targetPlayer->getName() + " was set to " + std::to_string( param1 ) ); + player.sendNotice( "Gp for {0} was set to {1}", targetPlayer->getName(), param1 ); break; } case GmCommand::Exp: { targetPlayer->gainExp( param1 ); - player.sendNotice( std::to_string( param1 ) + " Exp was added to " + targetPlayer->getName() ); + player.sendNotice( "{0} Exp was added to {1}", param1, targetPlayer->getName() ); break; } case GmCommand::Inv: @@ -284,8 +292,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, else targetActor->getAsChara()->setInvincibilityType( Common::InvincibilityType::InvincibilityRefill ); - player.sendNotice( "Invincibility for " + targetPlayer->getName() + - " was switched." ); + player.sendNotice( "Invincibility for {0} was switched.", targetPlayer->getName() ); break; } case GmCommand::Orchestrion: @@ -297,14 +304,12 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, for( uint8_t i = 0; i < 255; i++ ) targetActor->getAsPlayer()->learnSong( i, 0 ); - player.sendNotice( "All Songs for " + targetPlayer->getName() + - " were turned on." ); + player.sendNotice( "All Songs for {0} were turned on.", targetPlayer->getName() ); } else { targetActor->getAsPlayer()->learnSong( param2, 0 ); - player.sendNotice( "Song " + std::to_string( param2 ) + " for " + targetPlayer->getName() + - " was turned on." ); + player.sendNotice( "Song {0} for {1} was turned on.", param2, targetPlayer->getName() ); } } @@ -326,13 +331,13 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, } if( !targetPlayer->addItem( param1, quantity ) ) - player.sendUrgent( "Item " + std::to_string( param1 ) + " could not be added to inventory." ); + player.sendUrgent( "Item #{0} could not be added to inventory.", param1 ); break; } case GmCommand::Gil: { targetPlayer->addCurrency( CurrencyType::Gil, param1 ); - player.sendNotice( "Added " + std::to_string( param1 ) + " Gil for " + targetPlayer->getName() ); + player.sendNotice( "Added {0} Gil for {1}", param1, targetPlayer->getName() ); break; } case GmCommand::Collect: @@ -341,14 +346,12 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, if( gil < param1 ) { - player.sendUrgent( "Player does not have enough Gil(" + std::to_string( gil ) + ")" ); + player.sendUrgent( "Player does not have enough Gil({0})", gil ); } else { targetPlayer->removeCurrency( CurrencyType::Gil, param1 ); - player.sendNotice( "Removed " + std::to_string( param1 ) + - " Gil from " + targetPlayer->getName() + - "(" + std::to_string( gil ) + " before)" ); + player.sendNotice( "Removed {0} Gil from {1} ({2} before)", param1, targetPlayer->getName(), gil ); } break; } @@ -380,17 +383,14 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, case GmCommand::GC: { targetPlayer->setGc( param1 ); - player.sendNotice( "GC for " + targetPlayer->getName() + - " was set to " + std::to_string( targetPlayer->getGc() ) ); + player.sendNotice( "GC for {0} was set to {1}", targetPlayer->getName(), targetPlayer->getGc() ); break; } case GmCommand::GCRank: { targetPlayer->setGcRankAt( targetPlayer->getGc() - 1, param1 ); - player.sendNotice( "GC Rank for " + targetPlayer->getName() + - " for GC " + std::to_string( targetPlayer->getGc() ) + - " was set to " + - std::to_string( targetPlayer->getGcRankArray()[ targetPlayer->getGc() - 1 ] ) ); + player.sendNotice( "GC Rank for {0} for GC {1} was set to {2}", targetPlayer->getName(), targetPlayer->getGc(), + targetPlayer->getGcRankArray()[ targetPlayer->getGc() - 1 ] ); break; } case GmCommand::Aetheryte: @@ -402,14 +402,12 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, for( uint8_t i = 0; i < 255; i++ ) targetActor->getAsPlayer()->registerAetheryte( i ); - player.sendNotice( "All Aetherytes for " + targetPlayer->getName() + - " were turned on." ); + player.sendNotice( "All Aetherytes for {0} were turned on.", targetPlayer->getName() ); } else { targetActor->getAsPlayer()->registerAetheryte( param2 ); - player.sendNotice( "Aetheryte " + std::to_string( param2 ) + " for " + targetPlayer->getName() + - " was turned on." ); + player.sendNotice( "Aetheryte {0} for {1} was turned on.", param2, targetPlayer->getName() ); } } @@ -419,7 +417,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, { player.queuePacket( std::make_shared< ActorControlPacket143 >( player.getId(), ActorControlType::ToggleWireframeRendering ) ); - player.sendNotice( "Wireframe Rendering for " + player.getName() + " was toggled" ); + player.sendNotice( "Wireframe Rendering for {0} was toggled", player.getName() ); break; } case GmCommand::Teri: @@ -435,9 +433,8 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, // pInstance will be nullptr if you're accessing a normal zone via its allocated instance id rather than its zoneid if( pInstance && !pInstance->isPlayerBound( player.getId() ) ) { - player.sendUrgent( "Not able to join instance: " + std::to_string( param1 ) ); - player.sendUrgent( - "Player not bound! ( run !instance bind first ) " + std::to_string( param1 ) ); + player.sendUrgent( "Not able to join instance#{0}", param1 ); + player.sendUrgent( "Player not bound! ( run !instance bind first ) {0}", param1 ); break; } @@ -445,20 +442,20 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, } else if( !pTeriMgr->isValidTerritory( param1 ) ) { - player.sendUrgent( "Invalid zone " + std::to_string( param1 ) ); + player.sendUrgent( "Invalid zone {0}", param1 ); } else { auto pZone = pTeriMgr->getZoneByTerritoryTypeId( param1 ); if( !pZone ) { - player.sendUrgent( "No zone instance found for " + std::to_string( param1 ) ); + player.sendUrgent( "No zone instance found for {0}", param1 ); break; } if( !pTeriMgr->isDefaultTerritory( param1 ) ) { - player.sendUrgent( pZone->getName() + " is an instanced area - instance ID required to zone in." ); + player.sendUrgent( "{0} is an instanced area - instance ID required to zone in.", pZone->getName() ); break; } @@ -497,8 +494,7 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, targetPlayer->performZoning( param1, targetPlayer->getPos(), 0 ); } - player.sendNotice( targetPlayer->getName() + " was warped to zone " + - std::to_string( param1 ) + " (" + pZone->getName() + ")" ); + player.sendNotice( "{0} was warped to zone {1}", targetPlayer->getName(), param1, pZone->getName() ); } break; } @@ -507,22 +503,27 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, // todo: this doesn't kill their session straight away, should do this properly but its good for when you get stuck for now targetPlayer->setMarkedForRemoval(); - player.sendNotice( "Kicked " + targetPlayer->getName() ); + player.sendNotice( "Kicked {0}", targetPlayer->getName() ); break; } case GmCommand::TeriInfo: { auto pCurrentZone = player.getCurrentZone(); - player.sendNotice( "ZoneId: " + std::to_string( player.getZoneId() ) + - "\nName: " + pCurrentZone->getName() + - "\nInternalName: " + pCurrentZone->getInternalName() + - "\nGuId: " + std::to_string( pCurrentZone->getGuId() ) + - "\nPopCount: " + std::to_string( pCurrentZone->getPopCount() ) + - "\nCurrentWeather: " + - std::to_string( static_cast< uint8_t >( pCurrentZone->getCurrentWeather() ) ) + - "\nNextWeather: " + - std::to_string( static_cast< uint8_t >( pCurrentZone->getNextWeather() ) ) ); + player.sendNotice( "ZoneId: {0}" + "\nName: {1}" + "\nInternalName: {2}" + "\nGuId: {3}" + "\nPopCount: {4}" + "\nCurrentWeather: {5}" + "\nNextWeather: {6}", + player.getZoneId(), + pCurrentZone->getName(), + pCurrentZone->getInternalName(), + pCurrentZone->getGuId(), + pCurrentZone->getPopCount(), + static_cast< uint8_t >( pCurrentZone->getCurrentWeather() ), + static_cast< uint8_t >( pCurrentZone->getNextWeather() ) ); break; } case GmCommand::Jump: @@ -533,12 +534,12 @@ void Sapphire::Network::GameConnection::gm1Handler( FrameworkPtr pFw, player.changePosition( targetActor->getPos().x, targetActor->getPos().y, targetActor->getPos().z, targetActor->getRot() ); - player.sendNotice( "Jumping to " + targetPlayer->getName() + " in range." ); + player.sendNotice( "Jumping to {0} in range.", targetPlayer->getName() ); break; } default: - player.sendUrgent( "GM1 Command not implemented: " + std::to_string( commandId ) ); + player.sendUrgent( "GM1 Command not implemented: {0}", commandId ); break; } @@ -580,7 +581,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, } else { - player.sendUrgent( "Player " + target + " not found on this server." ); + player.sendUrgent( "Player {0} not found on this server.", target ); return; } } @@ -604,7 +605,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, targetPlayer->sendToInRangeSet( makeActorControl142( player.getId(), SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) ), true ); - player.sendNotice( "Raised " + targetPlayer->getName() ); + player.sendNotice( "Raised {0}", targetPlayer->getName() ); break; } case GmCommand::Jump: @@ -615,7 +616,7 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, } player.changePosition( targetActor->getPos().x, targetActor->getPos().y, targetActor->getPos().z, targetActor->getRot() ); - player.sendNotice( "Jumping to " + targetPlayer->getName() ); + player.sendNotice( "Jumping to {0}", targetPlayer->getName() ); break; } case GmCommand::Call: @@ -630,11 +631,11 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, targetPlayer->setInstance( player.getCurrentZone() ); targetPlayer->changePosition( player.getPos().x, player.getPos().y, player.getPos().z, player.getRot() ); - player.sendNotice( "Calling " + targetPlayer->getName() ); + player.sendNotice( "Calling {0}", targetPlayer->getName() ); break; } default: - player.sendUrgent( "GM2 Command not implemented: " + std::to_string( commandId ) ); + player.sendUrgent( "GM2 Command not implemented: {0}", commandId ); break; } diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 3875bef2..17278588 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -353,7 +353,7 @@ void Sapphire::Network::GameConnection::zoneLineHandler( FrameworkPtr pFw, else { // No zoneline found, revert to last zone - player.sendUrgent( "ZoneLine " + std::to_string( zoneLineId ) + " not found." ); + player.sendUrgent( "ZoneLine {0} not found.", zoneLineId ); targetPos.x = 0; targetPos.y = 0; targetPos.z = 0; From 32bfdefbc0cc1dd316d29ea51438cddc2f364862 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Sun, 6 Jan 2019 01:47:07 +0100 Subject: [PATCH 329/385] GM Jumping no longer crashes the server if used across instances, and works like GM Call --- src/world/Network/Handlers/GMCommandHandlers.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index 3e135eb5..4e6e7f8e 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -624,12 +624,26 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, } case GmCommand::Jump: { + player.prepareZoning( targetPlayer->getZoneId(), true, 1, 0 ); + if( player.getCurrentInstance() ) + { + player.exitInstance(); + } + if( targetPlayer->getCurrentInstance() && player.getCurrentInstance() != targetPlayer->getCurrentInstance() ) + { + auto instance = targetPlayer->getCurrentInstance(); + auto pInstanceContent = instance->getAsInstanceContent(); + // Not sure if GMs actually get bound to an instance they jump to on retail. It's mostly here to avoid a crash for now. + pInstanceContent->bindPlayer( player.getId() ); + player.setInstance( targetPlayer->getCurrentInstance() ); + } if( targetPlayer->getZoneId() != player.getZoneId() ) { player.setZone( targetPlayer->getZoneId() ); } player.changePosition( targetActor->getPos().x, targetActor->getPos().y, targetActor->getPos().z, targetActor->getRot() ); + player.sendZoneInPackets( 0x00, 0x00, 0, 0, false ); player.sendNotice( "Jumping to " + targetPlayer->getName() ); break; } @@ -650,8 +664,8 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, { targetPlayer->setZone( player.getZoneId() ); } - targetPlayer->sendToInRangeSet( makeActorControl143( player.getId(), ZoneIn, 0, 0, 0, 0 ) ); targetPlayer->changePosition( player.getPos().x, player.getPos().y, player.getPos().z, player.getRot() ); + targetPlayer->sendZoneInPackets( 0x00, 0x00, 0, 0, false ); player.sendNotice( "Calling " + targetPlayer->getName() ); break; } From 15e206430ac24acfd218a79fc54a0c381fe4d034 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Sun, 6 Jan 2019 02:03:33 +0100 Subject: [PATCH 330/385] Sending a /tell while acting as a GM will send a GM Tell GM Call was also fixed 3 commits ago, now works on players within instances --- src/common/Network/PacketDef/Chat/ServerChatDef.h | 2 +- src/world/Network/Handlers/PacketHandlers.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/common/Network/PacketDef/Chat/ServerChatDef.h b/src/common/Network/PacketDef/Chat/ServerChatDef.h index e2ebe0ba..955c9bf6 100644 --- a/src/common/Network/PacketDef/Chat/ServerChatDef.h +++ b/src/common/Network/PacketDef/Chat/ServerChatDef.h @@ -21,7 +21,7 @@ struct FFXIVIpcTell : uint16_t u2b; uint8_t preName; uint8_t u3a; - uint8_t u3b; //Setting this to 1 seems to mark the tell as a GM tell (More research needed) + uint8_t u3b; //Setting this to 1 marks the tell as a GM tell char receipientName[32]; char msg[1031]; }; diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index d737bf8a..91933295 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -656,6 +656,10 @@ void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw, //tellPacket.data().u1 = 0x92CD7337; //tellPacket.data().u2a = 0x2E; //tellPacket.data().u2b = 0x40; + if( player.isActingAsGm() ) + { + tellPacket->data().u3b = 0x01; + } pTargetPlayer->queueChatPacket( tellPacket ); } From 12c053cdda90023f3464f15672b0bc66eb152e98 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Sun, 6 Jan 2019 04:48:24 +0100 Subject: [PATCH 331/385] Changed 'u3b' to 'isGm' and made it a bool --- src/common/Network/PacketDef/Chat/ServerChatDef.h | 2 +- src/world/Network/Handlers/PacketHandlers.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Chat/ServerChatDef.h b/src/common/Network/PacketDef/Chat/ServerChatDef.h index 955c9bf6..bbec5794 100644 --- a/src/common/Network/PacketDef/Chat/ServerChatDef.h +++ b/src/common/Network/PacketDef/Chat/ServerChatDef.h @@ -21,7 +21,7 @@ struct FFXIVIpcTell : uint16_t u2b; uint8_t preName; uint8_t u3a; - uint8_t u3b; //Setting this to 1 marks the tell as a GM tell + bool isGm; char receipientName[32]; char msg[1031]; }; diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 7034d89a..7e79b963 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -658,7 +658,7 @@ void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw, //tellPacket.data().u2b = 0x40; if( player.isActingAsGm() ) { - tellPacket->data().u3b = 0x01; + tellPacket->data().isGm = true; } pTargetPlayer->queueChatPacket( tellPacket ); From fc9330893969d08ddf66c9b8b09a6883af12bb02 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 6 Jan 2019 17:38:34 +1100 Subject: [PATCH 332/385] potential fix for missing cmake command under some configurations --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e5dcb6b0..a1e8b0d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,10 +10,10 @@ set( CMAKE_MODULE_PATH # Copy needed files to build-folder # ##################################### add_custom_target( copy_runtime_files ALL - COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/config ${CMAKE_BINARY_DIR}/bin/config - COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/sql ${CMAKE_BINARY_DIR}/bin/sql - COMMAND cmake -E copy_directory ${CMAKE_SOURCE_DIR}/web ${CMAKE_BINARY_DIR}/bin/web - COMMAND cmake -E copy ${CMAKE_SOURCE_DIR}/sql_import.sh ${CMAKE_BINARY_DIR}/bin/sql_import.sh ) + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/config ${CMAKE_BINARY_DIR}/bin/config + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/sql ${CMAKE_BINARY_DIR}/bin/sql + COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_SOURCE_DIR}/web ${CMAKE_BINARY_DIR}/bin/web + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/sql_import.sh ${CMAKE_BINARY_DIR}/bin/sql_import.sh ) ###################################### # Dependencies and compiler settings # From 3349ccce42f828d24f7a4b3607a464d848436325 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sun, 6 Jan 2019 23:39:30 +1100 Subject: [PATCH 333/385] initial move of all config items to a object --- src/common/Config/ConfigDef.h | 96 +++++++++++++++++++++++++++++++++ src/common/Config/ConfigMgr.cpp | 67 +++++++++++++++++++++++ src/common/Config/ConfigMgr.h | 9 +++- src/world/ServerMgr.cpp | 14 ++--- 4 files changed, 178 insertions(+), 8 deletions(-) create mode 100644 src/common/Config/ConfigDef.h diff --git a/src/common/Config/ConfigDef.h b/src/common/Config/ConfigDef.h new file mode 100644 index 00000000..16c8cfb6 --- /dev/null +++ b/src/common/Config/ConfigDef.h @@ -0,0 +1,96 @@ +#ifndef SAPPHIRE_CONFIGDEF_H +#define SAPPHIRE_CONFIGDEF_H + +namespace Sapphire::Common +{ + struct Configuration + { + struct Database + { + std::string host; + uint16_t port; + std::string database; + std::string username; + std::string password; + uint8_t syncThreads; + uint8_t asyncThreads; + + } database; + + struct GlobalParameters + { + std::string serverSecret; + std::string dataPath; + } globalParameters; + + struct GlobalNetwork + { + std::string zoneHost; + uint16_t zonePort; + + std::string lobbyHost; + uint16_t lobbyPort; + + std::string restHost; + uint16_t restPort; + } globalNetwork; + + struct Lobby + { + uint16_t worldID; + bool allowNoSessionConnect; + std::string worldName; + } lobby; + + struct LobbyNetwork + { + std::string listenIp; + uint16_t listenPort; + } lobbyNetwork; + + struct CharacterCreation + { + uint8_t defaultGMRank; + } characterCreation; + + struct RestNetwork + { + std::string listenIP; + uint16_t listenPort; + } restNetwork; + + struct Scripts + { + std::string path; + std::string cachePath; + bool hotSwap; + } scripts; + + struct Network + { + Network() : + disconnectTimeout( 20 ) + {} + + uint16_t disconnectTimeout; + } network; + + struct ZoneNetwork + { + std::string listenIp; + uint16_t listenPort; + } zoneNetwork; + + struct General + { + std::string motd; + } general; + + struct Housing + { + std::string defaultEstateName; + } housing; + }; +} + +#endif //SAPPHIRE_CONFIGDEF_H diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index b1e975f2..4d551425 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -26,6 +26,8 @@ bool Sapphire::ConfigMgr::loadConfig( const std::string& configName ) if( m_pInih->ParseError() < 0 ) return false; + initConfigData(); + return true; } @@ -44,3 +46,68 @@ bool Sapphire::ConfigMgr::copyDefaultConfig( const std::string& configName ) return true; } + +void Sapphire::ConfigMgr::initConfigData() +{ + m_pConfig = std::make_shared< Common::Configuration >(); + + // database + m_pConfig->database.host = getValue< std::string >( "Database", "Host", "127.0.0.1" ); + m_pConfig->database.port = getValue< uint16_t >( "Database", "Port", 3306 ); + m_pConfig->database.database = getValue< std::string >( "Database", "Database", "sapphire" ); + m_pConfig->database.username = getValue< std::string >( "Database", "Username", "sapphire" ); + m_pConfig->database.password = getValue< std::string >( "Database", "Password", "" ); + m_pConfig->database.syncThreads = getValue< uint8_t >( "Database", "SyncThreads", 2 ); + m_pConfig->database.asyncThreads = getValue< uint8_t >( "Database", "AsyncThreads", 2 ); + + // global parameters + m_pConfig->globalParameters.dataPath = getValue< std::string >( "GlobalParameters", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); + m_pConfig->globalParameters.serverSecret = getValue< std::string >( "GlobalParameters", "ServerSecret", "default" ); + + // global network + m_pConfig->globalNetwork.zoneHost = getValue< std::string >( "GlobalNetwork", "ZoneHost", "127.0.0.1" ); + m_pConfig->globalNetwork.zonePort = getValue< uint16_t >( "GlobalNetwork", "ZonePort", 54992 ); + m_pConfig->globalNetwork.lobbyHost = getValue< std::string >( "GlobalNetwork", "LobbyHost", "127.0.0.1" ); + m_pConfig->globalNetwork.lobbyPort = getValue< uint16_t >( "GlobalNetwork", "LobbyPort", 54994 ); + m_pConfig->globalNetwork.restHost = getValue< std::string >( "GlobalNetwork", "RestHost", "127.0.0.1" ); + m_pConfig->globalNetwork.restPort = getValue< uint16_t >( "GlobalNetwork", "RestPort", 80 ); + + // lobby + m_pConfig->lobby.worldID = getValue< uint16_t >( "Lobby", "WorldID", 67 ); + m_pConfig->lobby.allowNoSessionConnect = getValue< bool >( "Lobby", "AllowNoSessionConnect", false ); + m_pConfig->lobby.worldName = getValue< std::string >( "Lobby", "WorldName", "Sapphire" ); + + // lobby network + m_pConfig->lobbyNetwork.listenIp = getValue< std::string >( "LobbyNetwork", "ListenIp", "0.0.0.0" ); + m_pConfig->lobbyNetwork.listenPort = getValue< uint16_t >( "LobbyNetwork", "ListenPort", 54994 ); + + // character creation + m_pConfig->characterCreation.defaultGMRank = getValue< uint8_t >( "CharacterCreation", "DefaultGMRank", 255 ); + + // rest network + m_pConfig->restNetwork.listenIP = getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ); + m_pConfig->restNetwork.listenPort = getValue< uint16_t >( "RestNetwork", "ListenPort", 80 ); + + // scripts + m_pConfig->scripts.hotSwap = getValue( "Scripts", "HotSwap", true ); + m_pConfig->scripts.path = getValue< std::string >( "Scripts", "Path", "./compiledscripts/" ); + m_pConfig->scripts.cachePath = getValue< std::string >( "Scripts", "CachePath", "./cache/" ); + + // network + m_pConfig->network.disconnectTimeout = getValue< uint16_t >( "Network", "DisconnectTimeout", 20 ); + + // zone network + m_pConfig->zoneNetwork.listenIp = getValue< std::string >( "ZoneNetwork", "ListenIp", "0.0.0.0" ); + m_pConfig->zoneNetwork.listenPort = getValue< uint16_t >( "ZoneNetwork", "ListenPort", 54992 ); + + // general + m_pConfig->general.motd = getValue< std::string >( "General", "MotD", "" ); + + // housing + m_pConfig->housing.defaultEstateName = getValue< std::string >( "Housing", "DefaultEstateName", "Estate #{}" ); +} + +Sapphire::ConfigMgr::ConfigurationPtr Sapphire::ConfigMgr::getConfig() +{ + return m_pConfig; +} \ No newline at end of file diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index cf3109e6..7a7b41ba 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -6,6 +6,7 @@ #include #include #include +#include "ConfigDef.h" namespace Sapphire { @@ -13,9 +14,10 @@ namespace Sapphire { public: ConfigMgr() = default; - ~ConfigMgr() = default; + using ConfigurationPtr = std::shared_ptr< Common::Configuration >; + bool loadConfig( const std::string& configName ); template struct always_false : std::false_type {}; @@ -56,11 +58,16 @@ namespace Sapphire //m_propTree.put( name, defaultValue ); } + ConfigurationPtr getConfig(); + private: bool copyDefaultConfig( const std::string& configName ); + void initConfigData(); std::unique_ptr< INIReader > m_pInih; + ConfigurationPtr m_pConfig; + const std::string m_globalConfigFile = "global.ini"; const std::string m_configFolderRoot = "./config/"; const std::string m_configDefaultSuffix = ".default"; diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 70f452f4..202c0a83 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -109,13 +109,13 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) framework()->set< Data::ExdDataGenerated >( pExdData ); Sapphire::Db::ConnectionInfo info; - info.password = pConfig->getValue< std::string >( "Database", "Password", "" ); - info.host = pConfig->getValue< std::string >( "Database", "Host", "127.0.0.1" ); - info.database = pConfig->getValue< std::string >( "Database", "Database", "sapphire" ); - info.port = pConfig->getValue< uint16_t >( "Database", "Port", 3306 ); - info.user = pConfig->getValue< std::string >( "Database", "Username", "root" ); - info.syncThreads = pConfig->getValue< uint8_t >( "Database", "SyncThreads", 2 ); - info.asyncThreads = pConfig->getValue< uint8_t >( "Database", "AsyncThreads", 2 ); + info.password = pConfig->getConfig()->database.password; + info.host = pConfig->getConfig()->database.host; + info.database = pConfig->getConfig()->database.database; + info.port = pConfig->getConfig()->database.port; + info.user = pConfig->getConfig()->database.username; + info.syncThreads = pConfig->getConfig()->database.syncThreads; + info.asyncThreads = pConfig->getConfig()->database.asyncThreads; auto pDb = std::make_shared< Db::DbWorkerPool< Db::ZoneDbConnection > >(); Sapphire::Db::DbLoader loader; From 092b34311485b60b95038a3cfd1bb850b44b700f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 00:03:48 +1100 Subject: [PATCH 334/385] move all the old config calls to the new config object --- src/api/main.cpp | 55 ++++++++++++++-------------- src/lobby/GameConnection.cpp | 34 +++++++---------- src/lobby/ServerLobby.cpp | 23 ++++++------ src/world/Actor/PlayerEvent.cpp | 2 +- src/world/Script/NativeScriptMgr.cpp | 2 +- src/world/Script/ScriptMgr.cpp | 7 ++-- src/world/ServerMgr.cpp | 6 +-- 7 files changed, 60 insertions(+), 69 deletions(-) diff --git a/src/api/main.cpp b/src/api/main.cpp index 467797a4..ee2d7edd 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -77,6 +77,8 @@ bool loadSettings( int32_t argc, char* argv[] ) return false; } + auto pConfig = m_pConfig->getConfig(); + std::vector< std::string > args( argv + 1, argv + argc ); for( size_t i = 0; i + 1 < args.size(); i += 2 ) { @@ -140,7 +142,7 @@ bool loadSettings( int32_t argc, char* argv[] ) } Logger::info( "Setting up generated EXD data" ); - auto dataPath = m_pConfig->getValue< std::string >( "GlobalParameters", "DataPath", "" ); + auto dataPath = m_pConfig->getConfig()->globalParameters.dataPath; if( !g_exdDataGen.init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); @@ -151,21 +153,20 @@ bool loadSettings( int32_t argc, char* argv[] ) Sapphire::Db::DbLoader loader; Sapphire::Db::ConnectionInfo info; - info.password = m_pConfig->getValue< std::string >( "Database", "Password", "" ); - info.host = m_pConfig->getValue< std::string >( "Database", "Host", "127.0.0.1" ); - info.database = m_pConfig->getValue< std::string >( "Database", "Database", "sapphire" ); - info.port = m_pConfig->getValue< uint16_t >( "Database", "Port", 3306 ); - info.user = m_pConfig->getValue< std::string >( "Database", "Username", "root" ); - info.syncThreads = m_pConfig->getValue< uint8_t >( "Database", "SyncThreads", 2 ); - info.asyncThreads = m_pConfig->getValue< uint8_t >( "Database", "AsyncThreads", 2 ); + info.password = pConfig->database.password; + info.host = pConfig->database.host; + info.database = pConfig->database.database; + info.port = pConfig->database.port; + info.user = pConfig->database.username; + info.syncThreads = pConfig->database.syncThreads; + info.asyncThreads = pConfig->database.asyncThreads; loader.addDb( g_charaDb, info ); if( !loader.initDbs() ) return false; - server.config.port = static_cast< uint16_t >( std::stoul( - m_pConfig->getValue< std::string >( "RestNetwork", "ListenPort", "80" ) ) ); - server.config.address = m_pConfig->getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ); + server.config.port = pConfig->restNetwork.listenPort; + server.config.address = pConfig->restNetwork.listenIP; Logger::info( "Database: Connected to {0}:{1}", info.host, info.port ); @@ -267,9 +268,9 @@ void createAccount( shared_ptr< HttpServer::Response > response, shared_ptr< Htt // todo: construct proper json object here std::string json_string = "{\"sId\":\"" + sId + "\", \"lobbyHost\":\"" + - m_pConfig->getValue< std::string >( "GlobalNetwork", "LobbyHost" ) + + m_pConfig->getConfig()->globalNetwork.lobbyHost + "\", \"frontierHost\":\"" + - m_pConfig->getValue< std::string >( "GlobalNetwork", "RestHost" ) + "\"}"; + m_pConfig->getConfig()->globalNetwork.restHost + "\"}"; *response << buildHttpResponse( 200, json_string, JSON ); } else @@ -300,9 +301,9 @@ void login( shared_ptr< HttpServer::Response > response, shared_ptr< HttpServer: // todo: build proper json object and stringify it std::string json_string = "{\"sId\":\"" + sId + "\", \"lobbyHost\":\"" + - m_pConfig->getValue< std::string >( "GlobalNetwork", "LobbyHost" ) + + m_pConfig->getConfig()->globalNetwork.lobbyHost + "\", \"frontierHost\":\"" + - m_pConfig->getValue< std::string >( "GlobalNetwork", "RestHost" ) + "\"}"; + m_pConfig->getConfig()->globalNetwork.restHost + "\"}"; *response << buildHttpResponse( 200, json_string, JSON ); } else @@ -332,7 +333,7 @@ void deleteCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H int32_t accountId = g_sapphireAPI.checkSession( sId ); - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -372,15 +373,15 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H if( result != -1 ) { - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); } else { - int32_t charId = g_sapphireAPI.createCharacter( result, name, finalJson, m_pConfig->getValue< uint8_t >( - "CharacterCreation", "DefaultGMRank", 255 ) ); + int32_t charId = g_sapphireAPI.createCharacter( result, name, finalJson, + m_pConfig->getConfig()->characterCreation.defaultGMRank ); std::string json_string = "{\"result\":\"" + std::to_string( charId ) + "\"}"; *response << buildHttpResponse( 200, json_string, JSON ); @@ -413,7 +414,7 @@ void insertSession( shared_ptr< HttpServer::Response > response, shared_ptr< Htt std::string secret = json["secret"]; // reloadConfig(); - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -445,7 +446,7 @@ void checkNameTaken( shared_ptr< HttpServer::Response > response, shared_ptr< Ht // reloadConfig(); - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -482,7 +483,7 @@ void checkSession( shared_ptr< HttpServer::Response > response, shared_ptr< Http if( result != -1 ) { - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -521,7 +522,7 @@ void getNextCharId( shared_ptr< HttpServer::Response > response, shared_ptr< Htt // reloadConfig(); - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -552,7 +553,7 @@ void getNextContentId( shared_ptr< HttpServer::Response > response, shared_ptr< // reloadConfig(); - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -587,7 +588,7 @@ void getCharacterList( shared_ptr< HttpServer::Response > response, shared_ptr< if( result != -1 ) { - if( m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ) != secret ) + if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -767,8 +768,8 @@ int main( int argc, char* argv[] ) server.start(); } ); - Logger::info( "API server running on {0}:{1}", m_pConfig->getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ), - m_pConfig->getValue< std::string >( "RestNetwork", "ListenPort", "80" ) ); + auto& cfg = m_pConfig->getConfig()->restNetwork; + Logger::info( "API server running on {0}:{1}", cfg.listenIP, cfg.listenPort ); //Wait for server to start so that the client can connect this_thread::sleep_for( chrono::seconds( 1 ) ); diff --git a/src/lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp index 206c06a9..1ad9ebf3 100644 --- a/src/lobby/GameConnection.cpp +++ b/src/lobby/GameConnection.cpp @@ -128,11 +128,10 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet serverListPacket->data().seq = 1; serverListPacket->data().offset = 0; serverListPacket->data().numServers = 1; - serverListPacket->data().server[ 0 ].id = g_serverLobby.getConfig()->getValue< uint16_t >( "Lobby", "WorldID", 1 ); + serverListPacket->data().server[ 0 ].id = g_serverLobby.getConfig()->getConfig()->lobby.worldID; serverListPacket->data().server[ 0 ].index = 0; serverListPacket->data().final = 1; - strcpy( serverListPacket->data().server[ 0 ].name, - g_serverLobby.getConfig()->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ).c_str() ); + strcpy( serverListPacket->data().server[ 0 ].name, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); pRP.addPacket( serverListPacket ); auto retainerListPacket = makeLobbyPacket< FFXIVIpcRetainerList >( tmpId ); @@ -162,15 +161,13 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet auto& charEntry = charList[ charIndex ]; details.uniqueId = std::get< 1 >( charEntry ); details.contentId = std::get< 2 >( charEntry ); - details.serverId = g_serverLobby.getConfig()->getValue< uint16_t >( "Lobby", "WorldID", 1 ); - details.serverId1 = g_serverLobby.getConfig()->getValue< uint16_t >( "Lobby", "WorldID", 1 ); + details.serverId = g_serverLobby.getConfig()->getConfig()->lobby.worldID; + details.serverId1 = g_serverLobby.getConfig()->getConfig()->lobby.worldID; details.index = charIndex; strcpy( details.charDetailJson, std::get< 3 >( charEntry ).c_str() ); strcpy( details.nameChara, std::get< 0 >( charEntry ).c_str() ); - strcpy( details.nameServer, - g_serverLobby.getConfig()->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ).c_str() ); - strcpy( details.nameServer1, - g_serverLobby.getConfig()->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ).c_str() ); + strcpy( details.nameServer, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); + strcpy( details.nameServer1, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); charListPacket->data().charaDetails[ j ] = details; @@ -236,9 +233,8 @@ void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, auto enterWorldPacket = makeLobbyPacket< FFXIVIpcEnterWorld >( tmpId ); enterWorldPacket->data().contentId = lookupId; enterWorldPacket->data().seq = sequence; - strcpy( enterWorldPacket->data().host, - g_serverLobby.getConfig()->getValue< std::string >( "GlobalNetwork", "ZoneHost" ).c_str() ); - enterWorldPacket->data().port = g_serverLobby.getConfig()->getValue< uint16_t >( "GlobalNetwork", "ZonePort" ); + strcpy( enterWorldPacket->data().host, g_serverLobby.getConfig()->getConfig()->globalNetwork.zoneHost.c_str() ); + enterWorldPacket->data().port = g_serverLobby.getConfig()->getConfig()->globalNetwork.zonePort; enterWorldPacket->data().charId = logInCharId; memcpy( enterWorldPacket->data().sid, m_pSession->getSessionId(), 66 ); pRP.addPacket( enterWorldPacket ); @@ -249,7 +245,7 @@ bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_ { LobbySessionPtr pSession = g_serverLobby.getSession( ( char* ) &packet.data[ 0 ] + 0x20 ); - if( g_serverLobby.getConfig()->getValue< bool >( "Lobby", "AllowNoSessionConnect" ) && pSession == nullptr ) + if( g_serverLobby.getConfig()->getConfig()->lobby.allowNoSessionConnect && pSession == nullptr ) { auto session = make_LobbySession(); session->setAccountID( 0 ); @@ -316,8 +312,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& auto charCreatePacket = makeLobbyPacket< FFXIVIpcCharCreate >( tmpId ); charCreatePacket->data().content_id = newContentId; strcpy( charCreatePacket->data().name, name.c_str() ); - strcpy( charCreatePacket->data().world, - g_serverLobby.getConfig()->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ).c_str() ); + strcpy( charCreatePacket->data().world, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); charCreatePacket->data().type = 1; charCreatePacket->data().seq = sequence; charCreatePacket->data().unknown = 1; @@ -340,10 +335,8 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& auto charCreatePacket = makeLobbyPacket< FFXIVIpcCharCreate >( tmpId ); charCreatePacket->data().content_id = newContentId; strcpy( charCreatePacket->data().name, name.c_str() ); - strcpy( charCreatePacket->data().world, - g_serverLobby.getConfig()->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ).c_str() ); - strcpy( charCreatePacket->data().world2, - g_serverLobby.getConfig()->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ).c_str() ); + strcpy( charCreatePacket->data().world, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); + strcpy( charCreatePacket->data().world2, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); charCreatePacket->data().type = 2; charCreatePacket->data().seq = sequence; charCreatePacket->data().unknown = 1; @@ -371,8 +364,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& //charCreatePacket->data().content_id = deletePlayer.getContentId(); charCreatePacket->data().content_id = 0; strcpy( charCreatePacket->data().name, name.c_str() ); - strcpy( charCreatePacket->data().world, - g_serverLobby.getConfig()->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ).c_str() ); + strcpy( charCreatePacket->data().world, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); charCreatePacket->data().type = 4; charCreatePacket->data().seq = sequence; charCreatePacket->data().unknown = 1; diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index 1efaf3d0..1d83609a 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -67,9 +67,7 @@ namespace Sapphire Network::HivePtr hive( new Network::Hive() ); Network::addServerToHive< Network::GameConnection >( m_ip, m_port, hive, pFw ); - Logger::info( - "Lobby server running on " + m_pConfig->getValue< std::string >( "LobbyNetwork", "ListenIp", "0.0.0.0" ) + ":" + - m_pConfig->getValue< std::string >( "LobbyNetwork", "ListenPort", "80" ) ); + Logger::info( "Lobby server running on {0}:{1}", m_ip, m_port ); std::vector< std::thread > threadGroup; @@ -108,19 +106,19 @@ namespace Sapphire if( arg == "ip" ) { // todo: ip addr in config - m_pConfig->setValue< std::string >( "LobbyNetwork.ListenIp", val ); + m_pConfig->getConfig()->lobbyNetwork.listenIp = val; } else if( arg == "p" || arg == "port" ) { - m_pConfig->setValue< std::string >( "LobbyNetwork.LobbyPort", val ); + m_pConfig->getConfig()->lobbyNetwork.listenPort = std::stoi( val ); } else if( arg == "worldip" || arg == "worldip" ) { - m_pConfig->setValue< std::string >( "GlobalNetwork.ZoneHost", val ); + m_pConfig->getConfig()->globalNetwork.zoneHost = val; } else if( arg == "worldport" ) { - m_pConfig->setValue< std::string >( "GlobalNetwork.ZonePort", val ); + m_pConfig->getConfig()->globalNetwork.zonePort = std::stoi( val ); } } catch( ... ) @@ -130,12 +128,13 @@ namespace Sapphire } } - m_port = m_pConfig->getValue< uint16_t >( "LobbyNetwork", "ListenPort", 54994 ); - m_ip = m_pConfig->getValue< std::string >( "LobbyNetwork", "ListenIp", "0.0.0.0" ); + m_port = m_pConfig->getConfig()->lobbyNetwork.listenPort; + m_ip = m_pConfig->getConfig()->lobbyNetwork.listenIp; - g_restConnector.restHost = m_pConfig->getValue< std::string >( "GlobalNetwork", "RestHost" ) + ":" + - m_pConfig->getValue< std::string >( "GlobalNetwork", "RestPort" ); - g_restConnector.serverSecret = m_pConfig->getValue< std::string >( "GlobalParameters", "ServerSecret" ); + + g_restConnector.restHost = m_pConfig->getConfig()->globalNetwork.restHost + ":" + + std::to_string( m_pConfig->getConfig()->globalNetwork.restPort ); + g_restConnector.serverSecret = m_pConfig->getConfig()->globalParameters.serverSecret; return true; } diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index e243d2a2..cd32d132 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -327,7 +327,7 @@ void Sapphire::Entity::Player::eventItemActionStart( uint32_t eventId, void Sapphire::Entity::Player::onLogin() { auto pConfig = m_pFw->get< ConfigMgr >(); - auto motd = pConfig->getValue< std::string >( "General", "MotD", "" ); + auto motd = pConfig->getConfig()->general.motd; std::istringstream ss( motd ); std::string msg; diff --git a/src/world/Script/NativeScriptMgr.cpp b/src/world/Script/NativeScriptMgr.cpp index 6f2f6169..69126c75 100644 --- a/src/world/Script/NativeScriptMgr.cpp +++ b/src/world/Script/NativeScriptMgr.cpp @@ -125,7 +125,7 @@ namespace Sapphire::Scripting World::Manager::BaseManager( pFw ) { auto pConfig = framework()->get< ConfigMgr >(); - m_loader.setCachePath( pConfig->getValue< std::string >( "Scripts", "CachePath", "./cache/" ) ); + m_loader.setCachePath( pConfig->getConfig()->scripts.cachePath ); } diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index 408c51d9..f92f5cb1 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -50,8 +50,7 @@ bool Sapphire::Scripting::ScriptMgr::init() std::set< std::string > files; auto pConfig = framework()->get< ConfigMgr >(); - auto status = loadDir( pConfig->getValue< std::string >( "Scripts", "Path", "./compiledscripts/" ), - files, m_nativeScriptMgr->getModuleExtension() ); + auto status = loadDir( pConfig->getConfig()->scripts.path, files, m_nativeScriptMgr->getModuleExtension() ); if( !status ) { @@ -82,11 +81,11 @@ bool Sapphire::Scripting::ScriptMgr::init() void Sapphire::Scripting::ScriptMgr::watchDirectories() { auto pConfig = framework()->get< ConfigMgr >(); - auto shouldWatch = pConfig->getValue< bool >( "Scripts", "HotSwap", true ); + auto shouldWatch = pConfig->getConfig()->scripts.hotSwap; if( !shouldWatch ) return; - Watchdog::watchMany( pConfig->getValue< std::string >( "Scripts", "Path", "./compiledscripts/" ) + "*" + + Watchdog::watchMany( pConfig->getConfig()->scripts.path + "*" + m_nativeScriptMgr->getModuleExtension(), [ this ]( const std::vector< ci::fs::path >& paths ) { diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 202c0a83..4f3047f2 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -74,8 +74,8 @@ bool Sapphire::World::ServerMgr::loadSettings( int32_t argc, char* argv[] ) return false; } - m_port = pConfig->getValue< uint16_t >( "ZoneNetwork", "ListenPort", 54992 ); - m_ip = pConfig->getValue< std::string >( "ZoneNetwork", "ListenIp", "0.0.0.0" ); + m_port = pConfig->getConfig()->zoneNetwork.listenPort; + m_ip = pConfig->getConfig()->zoneNetwork.listenIp; return true; } @@ -99,7 +99,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) Logger::info( "Setting up generated EXD data" ); auto pExdData = std::make_shared< Data::ExdDataGenerated >(); - auto dataPath = pConfig->getValue< std::string >( "GlobalParameters", "DataPath", "" ); + auto dataPath = pConfig->getConfig()->globalParameters.dataPath; if( !pExdData->init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); From 73f261927b7e3ce6c443c82cccbd37ec57cf426c Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Sun, 6 Jan 2019 16:25:51 +0100 Subject: [PATCH 335/385] More GM Call/Jump fixes --- .../Network/Handlers/GMCommandHandlers.cpp | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/world/Network/Handlers/GMCommandHandlers.cpp b/src/world/Network/Handlers/GMCommandHandlers.cpp index 3c5e8965..8291d24d 100644 --- a/src/world/Network/Handlers/GMCommandHandlers.cpp +++ b/src/world/Network/Handlers/GMCommandHandlers.cpp @@ -627,17 +627,16 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, { player.exitInstance(); } - if( targetPlayer->getCurrentInstance() && player.getCurrentInstance() != targetPlayer->getCurrentInstance() ) + if( targetPlayer->getCurrentZone()->getGuId() != player.getCurrentZone()->getGuId() ) { - auto instance = targetPlayer->getCurrentInstance(); - auto pInstanceContent = instance->getAsInstanceContent(); - // Not sure if GMs actually get bound to an instance they jump to on retail. It's mostly here to avoid a crash for now. - pInstanceContent->bindPlayer( player.getId() ); - player.setInstance( targetPlayer->getCurrentInstance() ); - } - if( targetPlayer->getZoneId() != player.getZoneId() ) - { - player.setZone( targetPlayer->getZoneId() ); + // Checks if the target player is in an InstanceContent to avoid binding to a Zone or PublicContent + if( targetPlayer->getCurrentInstance() ) + { + auto pInstanceContent = targetPlayer->getCurrentInstance()->getAsInstanceContent(); + // Not sure if GMs actually get bound to an instance they jump to on retail. It's mostly here to avoid a crash for now + pInstanceContent->bindPlayer( player.getId() ); + } + player.setInstance( targetPlayer->getCurrentZone()->getGuId() ); } player.changePosition( targetActor->getPos().x, targetActor->getPos().y, targetActor->getPos().z, targetActor->getRot() ); @@ -658,9 +657,9 @@ void Sapphire::Network::GameConnection::gm2Handler( FrameworkPtr pFw, { targetPlayer->exitInstance(); } - if ( targetPlayer->getZoneId() != player.getZoneId() ) + if( targetPlayer->getCurrentZone()->getGuId() != player.getCurrentZone()->getGuId() ) { - targetPlayer->setZone( player.getZoneId() ); + targetPlayer->setInstance( player.getCurrentZone()->getGuId() ); } targetPlayer->changePosition( player.getPos().x, player.getPos().y, player.getPos().z, player.getRot() ); targetPlayer->sendZoneInPackets( 0x00, 0x00, 0, 0, false ); From 880ea0a3363cd6e7d8e65c26bf5e960522452c98 Mon Sep 17 00:00:00 2001 From: JeidoUran Date: Sun, 6 Jan 2019 16:32:06 +0100 Subject: [PATCH 336/385] Added prepareZoning research + fixed typo --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 +- src/world/Actor/Player.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index e1f3980e..84ce832d 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1439,7 +1439,7 @@ struct FFXIVIpcPrepareZoning : uint8_t fadeOut; uint8_t param7; uint8_t fadeOutTime; - uint8_t unknown; + uint8_t unknown; // this changes whether or not the destination zone's name displays during the loading screen. Seems to always be 9 (=hidden) when going to an instance and certain zones, 0 otherwise. uint16_t padding; }; diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 2009e219..bdfbadc8 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -534,7 +534,7 @@ namespace Sapphire::Entity void teleportQuery( uint16_t aetheryteId, FrameworkPtr pFw ); /*! prepares zoning / fades out the screen */ - void prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadoutTime = 0, uint16_t animation = 0 ); + void prepareZoning( uint16_t targetZone, bool fadeOut, uint8_t fadeOutTime = 0, uint16_t animation = 0 ); /*! get player's title list (available titles) */ uint8_t* getTitleList(); From c1a3fa591592da2b41db8b5a8d840c5e09630533 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 6 Jan 2019 23:34:19 +0100 Subject: [PATCH 337/385] Extended schema for spawnpoints --- cmake/compiler.cmake | 2 ++ sql/schema/schema.sql | 1 + src/common/Config/ConfigMgr.h | 26 +++++++++---------- src/common/Database/DbConnection.cpp | 4 +-- src/common/Database/ZoneDbConnection.cpp | 2 +- src/tools/mob_parse/main.cpp | 5 ++-- src/world/Actor/SpawnGroup.cpp | 32 ++++++++++++++++++++++-- src/world/Actor/SpawnGroup.h | 15 +++++++++-- src/world/Actor/SpawnPoint.cpp | 4 ++- src/world/Actor/SpawnPoint.h | 1 + src/world/Territory/Zone.cpp | 27 +++++++++++++++++--- src/world/Territory/Zone.h | 2 ++ 12 files changed, 95 insertions(+), 26 deletions(-) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 8bfaf4b2..0a755ce3 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -10,6 +10,8 @@ else() message( STATUS "Enabling Build with Multiple Processes.." ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj" ) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4834" ) + set( CMAKE_CXX_STANDARD 17 ) set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_EXTENSIONS ON ) diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql index 902064cb..18208d6e 100644 --- a/sql/schema/schema.sql +++ b/sql/schema/schema.sql @@ -34,6 +34,7 @@ CREATE TABLE `spawnpoint` ( `y` float NOT NULL, `z` float NOT NULL, `r` float NOT NULL, + `gimmickId` int(11) NOT NULL, PRIMARY KEY (`id`), KEY `spawngroupidx` (`spawnGroupId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index cf3109e6..09586261 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -18,35 +18,35 @@ namespace Sapphire bool loadConfig( const std::string& configName ); - template struct always_false : std::false_type {}; + template< class T > struct always_false : std::false_type {}; template< class T > T getValue( const std::string& section, const std::string& name, T defaultValue = T() ) { - if constexpr (std::is_same_v) + if constexpr ( std::is_same_v< T, uint32_t > ) return m_pInih->GetInteger( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, int32_t > ) return m_pInih->GetInteger( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, uint16_t > ) return m_pInih->GetInteger( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, int16_t > ) return m_pInih->GetInteger( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, uint8_t > ) return m_pInih->GetInteger( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, int8_t > ) return m_pInih->GetInteger( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, long > ) return m_pInih->GetInteger( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, double > ) return m_pInih->GetReal( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, float > ) return m_pInih->GetReal( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, std::string > ) return m_pInih->Get( section, name, defaultValue ); - else if constexpr (std::is_same_v) + else if constexpr ( std::is_same_v< T, bool > ) return m_pInih->GetBoolean( section, name, defaultValue ); else - static_assert(always_false::value, "non-exhaustive getter!"); + static_assert( always_false< T >::value, "non-exhaustive getter!" ); } template< class T > diff --git a/src/common/Database/DbConnection.cpp b/src/common/Database/DbConnection.cpp index eeb301a0..de9efbc5 100644 --- a/src/common/Database/DbConnection.cpp +++ b/src/common/Database/DbConnection.cpp @@ -144,10 +144,10 @@ Sapphire::Db::DbConnection::query( std::shared_ptr< Sapphire::Db::PreparedStatem if( !stmt ) return nullptr; - if( !ping() ) + if( !ping() ) //this does not work right and results in too many connections { // naivly reconnect and hope for the best - open(); + //open(); lockIfReady(); if( !prepareStatements() ) return nullptr; diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index aea74763..13f6a885 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -190,7 +190,7 @@ void Sapphire::Db::ZoneDbConnection::doPrepareStatements() CONNECTION_BOTH ); prepareStatement( ZONE_SEL_SPAWNPOINTS, - "SELECT id, x, y, z, r " + "SELECT id, x, y, z, r, gimmickId " "FROM spawnpoint " "WHERE spawnGroupId = ?", CONNECTION_BOTH ); diff --git a/src/tools/mob_parse/main.cpp b/src/tools/mob_parse/main.cpp index 35bf8062..f2ecf5d0 100644 --- a/src/tools/mob_parse/main.cpp +++ b/src/tools/mob_parse/main.cpp @@ -336,12 +336,13 @@ int dumpSpawns() instance.level, instance.hPMax ); //Logger::info( "|----> " + name + " - " + std::to_string( instance.bNPCBase ) + ", " + std::to_string( instance.gimmickId ) ); - output += "INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) " + output += "INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) " " VALUES ( @last_id_spawngroup, " + std::to_string( instance.posX ) + ", " + std::to_string( instance.posY ) + ", " + std::to_string( instance.posZ ) + ", " + - std::to_string( 0 ) + " ); "; + std::to_string( 0 ) + ", " + + std::to_string( instance.gimmickId ) + " ); "; //Logger::info( output ); diff --git a/src/world/Actor/SpawnGroup.cpp b/src/world/Actor/SpawnGroup.cpp index a98a4b0d..f7ab38c5 100644 --- a/src/world/Actor/SpawnGroup.cpp +++ b/src/world/Actor/SpawnGroup.cpp @@ -1,8 +1,36 @@ #include "ForwardsZone.h" #include "SpawnGroup.h" -Sapphire::Entity::SpawnGroup::SpawnGroup( uint32_t bNpcTemplateId, uint32_t level ) : - m_level( level ) +Sapphire::Entity::SpawnGroup::SpawnGroup( uint32_t id, uint32_t bNpcTemplateId, uint32_t level, uint32_t maxHp ) : + m_id( id ), + m_bNpcTemplateId( bNpcTemplateId ), + m_level( level ), + m_maxHp( maxHp ) { } + +uint32_t Sapphire::Entity::SpawnGroup::getId() const +{ + return m_id; +} + +uint32_t Sapphire::Entity::SpawnGroup::getTemplateId() const +{ + return m_bNpcTemplateId; +} + +uint32_t Sapphire::Entity::SpawnGroup::getLevelId() const +{ + return m_level; +} + +uint32_t Sapphire::Entity::SpawnGroup::getMaxHp() const +{ + return m_maxHp; +} + +Sapphire::Entity::SpawnGroup::SpawnPointList& Sapphire::Entity::SpawnGroup::getSpawnPointList() +{ + return m_spawnPoints; +} \ No newline at end of file diff --git a/src/world/Actor/SpawnGroup.h b/src/world/Actor/SpawnGroup.h index 16739ac2..dd7d566b 100644 --- a/src/world/Actor/SpawnGroup.h +++ b/src/world/Actor/SpawnGroup.h @@ -11,13 +11,24 @@ namespace Sapphire::Entity private: BNpcTemplatePtr m_bNpcTemplate; + uint32_t m_id; + uint32_t m_bNpcTemplateId; uint32_t m_level; - uint32_t m_spawnCount; + uint32_t m_maxHp; std::vector< SpawnPointPtr > m_spawnPoints; public: - SpawnGroup( uint32_t bNpcTemplateId, uint32_t level ); + using SpawnPointList = std::vector< SpawnPointPtr >; + SpawnGroup( uint32_t id, uint32_t bNpcTemplateId, uint32_t level, uint32_t maxHp ); + + uint32_t getId() const; + uint32_t getTemplateId() const; + uint32_t getLevelId() const; + uint32_t getMaxHp() const; + + SpawnPointList& getSpawnPointList(); + }; diff --git a/src/world/Actor/SpawnPoint.cpp b/src/world/Actor/SpawnPoint.cpp index de98f2cc..d4a05b62 100644 --- a/src/world/Actor/SpawnPoint.cpp +++ b/src/world/Actor/SpawnPoint.cpp @@ -11,7 +11,9 @@ Sapphire::Entity::SpawnPoint::SpawnPoint( float x, float y, float z, float rot, m_posY( y ), m_posZ( z ), m_rotation( rot ), - m_gimmickId( gimmickId ) + m_gimmickId( gimmickId ), + m_lastSpawn( 0 ), + m_timeOfDeath( 0 ) { } diff --git a/src/world/Actor/SpawnPoint.h b/src/world/Actor/SpawnPoint.h index 032add2d..e99709ab 100644 --- a/src/world/Actor/SpawnPoint.h +++ b/src/world/Actor/SpawnPoint.h @@ -16,6 +16,7 @@ namespace Sapphire::Entity uint32_t m_gimmickId; uint32_t m_lastSpawn; + uint32_t m_timeOfDeath; BNpcPtr m_pLinkedBnpc; public: diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 154964f6..14d745e8 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -770,12 +770,33 @@ bool Sapphire::Zone::loadSpawnGroups() uint32_t level = res->getUInt( 3 ); uint32_t maxHp = res->getUInt( 4 ); - //Entity::SpawnGroup group; - + m_spawnGroups.emplace_back( id, templateId, level, maxHp ); Logger::debug( "id: {0}, template: {1}, level: {2}, maxHp: {3}", id, templateId, level, maxHp ); - } + res.reset(); + stmt.reset(); + + stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_SPAWNPOINTS ); + for( auto& group : m_spawnGroups ) + { + stmt->setUInt( 1, group.getId() ); + auto res = pDb->query( stmt ); + + while( res->next() ) + { + uint32_t id = res->getUInt( 1 ); + float x = res->getFloat( 2 ); + float y = res->getFloat( 3 ); + float z = res->getFloat( 4 ); + float r = res->getFloat( 5 ); + uint32_t gimmickId = res->getUInt( 6 ); + + group.getSpawnPointList().push_back( std::make_shared< Entity::SpawnPoint >( x, y, z, r, gimmickId ) ); + + Logger::debug( "id: {0}, x: {1}, y: {2}, z: {3}, gimmickId: {4}", id, x, y, z, gimmickId ); + } + } return false; } diff --git a/src/world/Territory/Zone.h b/src/world/Territory/Zone.h index 812b7d8a..0ca2a750 100644 --- a/src/world/Territory/Zone.h +++ b/src/world/Territory/Zone.h @@ -59,6 +59,8 @@ namespace Sapphire uint32_t m_nextEObjId; FrameworkPtr m_pFw; + std::vector< Entity::SpawnGroup > m_spawnGroups; + public: Zone(); From 3521ae7c8dde13032e46c8bf3ff87cb65fe758ec Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 22:11:52 +1100 Subject: [PATCH 338/385] shift a lot of config around --- config/api.ini.default | 3 ++ config/config.ini.default | 62 -------------------------- config/global.ini.default | 24 ++++++++++ config/lobby.ini.default | 8 ++++ config/world.ini.default | 20 +++++++++ src/common/Config/ConfigDef.h | 79 ++++++++++++++++----------------- src/common/Config/ConfigMgr.cpp | 60 ++++++++++++++++--------- src/common/Config/ConfigMgr.h | 1 + 8 files changed, 134 insertions(+), 123 deletions(-) create mode 100644 config/api.ini.default delete mode 100644 config/config.ini.default create mode 100644 config/global.ini.default create mode 100644 config/lobby.ini.default create mode 100644 config/world.ini.default diff --git a/config/api.ini.default b/config/api.ini.default new file mode 100644 index 00000000..25cacbb0 --- /dev/null +++ b/config/api.ini.default @@ -0,0 +1,3 @@ +[Network] +ListenIp = 0.0.0.0 +ListenPort = 80 \ No newline at end of file diff --git a/config/config.ini.default b/config/config.ini.default deleted file mode 100644 index cacd9115..00000000 --- a/config/config.ini.default +++ /dev/null @@ -1,62 +0,0 @@ -[Database] -Host = 127.0.0.1 -Port = 3306 -Database = sapphire -Username = sapphire -Password = -SyncThreads = 2 -AsyncThreads = 2 - -[GlobalParameters] -ServerSecret = default -DataPath = C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack - -[GlobalNetwork] -; Values definining how Users and other servers will access - these have to be set to your public IP when running a public server -ZoneHost = 127.0.0.1 -ZonePort = 54992 - -LobbyHost = 127.0.0.1 -LobbyPort = 54994 - -RestHost = 127.0.0.1 -RestPort = 80 - -[Lobby] -WorldID = 67 -AllowNoSessionConnect = false -WorldName = Sapphire - -[LobbyNetwork] -ListenIp = 0.0.0.0 -ListenPort = 54994 - -[CharacterCreation] -DefaultGMRank = 255 - -[RestNetwork] -ListenIp = 0.0.0.0 -ListenPort = 80 - -[Scripts] -; where compiled script modules are located -Path = ./compiledscripts/ -; relative to Path, where we copy and load modules from -CachePath = ./cache/ -; whether we should detect changes to script modules and reload them -HotSwap = true - -[Network] -DisconnectTimeout = 20 - -[ZoneNetwork] -ListenIp = 0.0.0.0 -ListenPort = 54992 - -[General] -; Sent on login - each line must be shorter than 307 characters, split lines with ';' -MotD = Welcome to Sapphire!;This is a very good server;You can change these messages by editing General.MotD in config/config.ini - -[Housing] -; Set the default estate name. %i will be replaced with the plot number -DefaultEstateName = Estate #%i \ No newline at end of file diff --git a/config/global.ini.default b/config/global.ini.default new file mode 100644 index 00000000..5d6b36fb --- /dev/null +++ b/config/global.ini.default @@ -0,0 +1,24 @@ +[Database] +Host = 127.0.0.1 +Port = 3306 +Database = sapphire +Username = sapphire +Password = +SyncThreads = 2 +AsyncThreads = 2 + +[Parameters] +ServerSecret = default +DataPath = C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack +WorldID = 67 + +[Network] +; Values definining how Users and other servers will access - these have to be set to your public IP when running a public server +ZoneHost = 127.0.0.1 +ZonePort = 54992 + +LobbyHost = 127.0.0.1 +LobbyPort = 54994 + +RestHost = 127.0.0.1 +RestPort = 80 \ No newline at end of file diff --git a/config/lobby.ini.default b/config/lobby.ini.default new file mode 100644 index 00000000..9420d8e9 --- /dev/null +++ b/config/lobby.ini.default @@ -0,0 +1,8 @@ +[Lobby] +AllowNoSessionConnect = false +WorldName = Sapphire +DefaultGMRank = 255 + +[Network] +ListenIp = 0.0.0.0 +ListenPort = 54994 \ No newline at end of file diff --git a/config/world.ini.default b/config/world.ini.default new file mode 100644 index 00000000..0fd35e32 --- /dev/null +++ b/config/world.ini.default @@ -0,0 +1,20 @@ +[Scripts] +; where compiled script modules are located +Path = ./compiledscripts/ +; relative to Path, where we copy and load modules from +CachePath = ./cache/ +; whether we should detect changes to script modules and reload them +HotSwap = true + +[Network] +ListenIp = 0.0.0.0 +ListenPort = 54992 +DisconnectTimeout = 20 + +[General] +; Sent on login - each line must be shorter than 307 characters, split lines with ';' +MotD = Welcome to Sapphire!;This is a very good server;You can change these messages by editing General.MotD in config/config.ini + +[Housing] +; Set the default estate name. {0} will be replaced with the plot number +DefaultEstateName = Estate ${0} \ No newline at end of file diff --git a/src/common/Config/ConfigDef.h b/src/common/Config/ConfigDef.h index 16c8cfb6..ee9f3496 100644 --- a/src/common/Config/ConfigDef.h +++ b/src/common/Config/ConfigDef.h @@ -1,9 +1,9 @@ #ifndef SAPPHIRE_CONFIGDEF_H #define SAPPHIRE_CONFIGDEF_H -namespace Sapphire::Common +namespace Sapphire::Common::Config { - struct Configuration + struct GlobalConfig { struct Database { @@ -14,16 +14,16 @@ namespace Sapphire::Common std::string password; uint8_t syncThreads; uint8_t asyncThreads; - } database; - struct GlobalParameters + struct Parameters { std::string serverSecret; std::string dataPath; - } globalParameters; + uint16_t worldID; + } parameters; - struct GlobalNetwork + struct Network { std::string zoneHost; uint16_t zonePort; @@ -33,31 +33,26 @@ namespace Sapphire::Common std::string restHost; uint16_t restPort; - } globalNetwork; + } network; + }; - struct Lobby - { - uint16_t worldID; - bool allowNoSessionConnect; - std::string worldName; - } lobby; - struct LobbyNetwork + struct WorldConfig + { + GlobalConfig global; + + struct Network { std::string listenIp; uint16_t listenPort; - } lobbyNetwork; - struct CharacterCreation - { - uint8_t defaultGMRank; - } characterCreation; + uint16_t disconnectTimeout; + } network; - struct RestNetwork + struct Housing { - std::string listenIP; - uint16_t listenPort; - } restNetwork; + std::string defaultEstateName; + } housing; struct Scripts { @@ -66,30 +61,34 @@ namespace Sapphire::Common bool hotSwap; } scripts; + std::string motd; + }; + + struct LobbyConfig + { + GlobalConfig global; + struct Network - { - Network() : - disconnectTimeout( 20 ) - {} - - uint16_t disconnectTimeout; - } network; - - struct ZoneNetwork { std::string listenIp; uint16_t listenPort; - } zoneNetwork; + } network; - struct General - { - std::string motd; - } general; + bool allowNoSessionConnect; + std::string worldName; - struct Housing + uint8_t defaultGMRank; + }; + + struct ApiConfig + { + GlobalConfig global; + + struct Network { - std::string defaultEstateName; - } housing; + std::string listenIP; + uint16_t listenPort; + } network; }; } diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index 4d551425..fd820327 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -31,6 +31,45 @@ bool Sapphire::ConfigMgr::loadConfig( const std::string& configName ) return true; } +bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config, const string& configName ) +{ + auto configFile = fs::path( fs::path( m_configFolderRoot ) / configName ); + + if( !fs::exists( configFile ) ) + { + copyDefaultConfig( configName ); + return false; + } + + m_pInih = std::make_unique< INIReader >( configFile.string() ); + if( m_pInih->ParseError() < 0 ) + return false; + + // database + config.database.host = getValue< std::string >( "Database", "Host", "127.0.0.1" ); + config.database.port = getValue< uint16_t >( "Database", "Port", 3306 ); + config.database.database = getValue< std::string >( "Database", "Database", "sapphire" ); + config.database.username = getValue< std::string >( "Database", "Username", "sapphire" ); + config.database.password = getValue< std::string >( "Database", "Password", "" ); + config.database.syncThreads = getValue< uint8_t >( "Database", "SyncThreads", 2 ); + config.database.asyncThreads = getValue< uint8_t >( "Database", "AsyncThreads", 2 ); + + // params + config.parameters.dataPath = getValue< std::string >( "Parameters", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); + config.parameters.serverSecret = getValue< std::string >( "Parameters", "ServerSecret", "default" ); + config.parameters.worldID = getValue< uint16_t >( "Parameters", "WorldID", 67 ); + + // network + config.network.zoneHost = getValue< std::string >( "Network", "ZoneHost", "127.0.0.1" ); + config.network.zonePort = getValue< uint16_t >( "Network", "ZonePort", 54992 ); + config.network.lobbyHost = getValue< std::string >( "Network", "LobbyHost", "127.0.0.1" ); + config.network.lobbyPort = getValue< uint16_t >( "Network", "LobbyPort", 54994 ); + config.network.restHost = getValue< std::string >( "Network", "RestHost", "127.0.0.1" ); + config.network.restPort = getValue< uint16_t >( "Network", "RestPort", 80 ); + + return true; +} + bool Sapphire::ConfigMgr::copyDefaultConfig( const std::string& configName ) { fs::path configPath( m_configFolderRoot ); @@ -51,27 +90,6 @@ void Sapphire::ConfigMgr::initConfigData() { m_pConfig = std::make_shared< Common::Configuration >(); - // database - m_pConfig->database.host = getValue< std::string >( "Database", "Host", "127.0.0.1" ); - m_pConfig->database.port = getValue< uint16_t >( "Database", "Port", 3306 ); - m_pConfig->database.database = getValue< std::string >( "Database", "Database", "sapphire" ); - m_pConfig->database.username = getValue< std::string >( "Database", "Username", "sapphire" ); - m_pConfig->database.password = getValue< std::string >( "Database", "Password", "" ); - m_pConfig->database.syncThreads = getValue< uint8_t >( "Database", "SyncThreads", 2 ); - m_pConfig->database.asyncThreads = getValue< uint8_t >( "Database", "AsyncThreads", 2 ); - - // global parameters - m_pConfig->globalParameters.dataPath = getValue< std::string >( "GlobalParameters", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); - m_pConfig->globalParameters.serverSecret = getValue< std::string >( "GlobalParameters", "ServerSecret", "default" ); - - // global network - m_pConfig->globalNetwork.zoneHost = getValue< std::string >( "GlobalNetwork", "ZoneHost", "127.0.0.1" ); - m_pConfig->globalNetwork.zonePort = getValue< uint16_t >( "GlobalNetwork", "ZonePort", 54992 ); - m_pConfig->globalNetwork.lobbyHost = getValue< std::string >( "GlobalNetwork", "LobbyHost", "127.0.0.1" ); - m_pConfig->globalNetwork.lobbyPort = getValue< uint16_t >( "GlobalNetwork", "LobbyPort", 54994 ); - m_pConfig->globalNetwork.restHost = getValue< std::string >( "GlobalNetwork", "RestHost", "127.0.0.1" ); - m_pConfig->globalNetwork.restPort = getValue< uint16_t >( "GlobalNetwork", "RestPort", 80 ); - // lobby m_pConfig->lobby.worldID = getValue< uint16_t >( "Lobby", "WorldID", 67 ); m_pConfig->lobby.allowNoSessionConnect = getValue< bool >( "Lobby", "AllowNoSessionConnect", false ); diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index 7a7b41ba..bcae72b7 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -19,6 +19,7 @@ namespace Sapphire using ConfigurationPtr = std::shared_ptr< Common::Configuration >; bool loadConfig( const std::string& configName ); + bool loadGlobalConfig( Common::Config::GlobalConfig& config, const string& configName = "config.ini" ); template struct always_false : std::false_type {}; From 03df0b242c502d6aa877884c9667b714a93896ea Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 23:00:09 +1100 Subject: [PATCH 339/385] lobby works again with new config stuff --- config/global.ini.default | 1 + config/lobby.ini.default | 1 - src/api/main.cpp | 118 +++++++++++---------------- src/common/Config/ConfigDef.h | 4 +- src/common/Config/ConfigMgr.cpp | 54 ++++-------- src/common/Config/ConfigMgr.h | 8 +- src/lobby/GameConnection.cpp | 26 +++--- src/lobby/ServerLobby.cpp | 45 +++++++--- src/lobby/ServerLobby.h | 5 +- src/lobby/mainLobbyServer.cpp | 2 +- src/world/Actor/PlayerEvent.cpp | 5 +- src/world/Script/NativeScriptMgr.cpp | 6 +- src/world/Script/ScriptMgr.cpp | 11 ++- src/world/ServerMgr.cpp | 55 ++++++++++--- src/world/ServerMgr.h | 7 ++ src/world/mainGameServer.cpp | 2 +- 16 files changed, 181 insertions(+), 169 deletions(-) diff --git a/config/global.ini.default b/config/global.ini.default index 5d6b36fb..46cd4747 100644 --- a/config/global.ini.default +++ b/config/global.ini.default @@ -11,6 +11,7 @@ AsyncThreads = 2 ServerSecret = default DataPath = C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack WorldID = 67 +DefaultGMRank = 255 [Network] ; Values definining how Users and other servers will access - these have to be set to your public IP when running a public server diff --git a/config/lobby.ini.default b/config/lobby.ini.default index 9420d8e9..4d88ee63 100644 --- a/config/lobby.ini.default +++ b/config/lobby.ini.default @@ -1,7 +1,6 @@ [Lobby] AllowNoSessionConnect = false WorldName = Sapphire -DefaultGMRank = 255 [Network] ListenIp = 0.0.0.0 diff --git a/src/api/main.cpp b/src/api/main.cpp index ee2d7edd..8c0ae020 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -51,14 +51,36 @@ void default_resource_send( const HttpServer& server, const shared_ptr< HttpServ auto m_pConfig = std::make_shared< Sapphire::ConfigMgr >(); HttpServer server; -std::string configPath( "config.ini" ); +std::string configPath( "api.ini" ); +Sapphire::Common::Config::ApiConfig m_config; void reloadConfig() { m_pConfig = std::make_shared< Sapphire::ConfigMgr >(); + bool failedLoad = false; + + // load global cfg first + if( !m_pConfig->loadGlobalConfig( m_config.global ) ) + { + Logger::fatal( "Error loading config global.ini" ); + failedLoad = true; + } + if( !m_pConfig->loadConfig( configPath ) ) - throw "Error loading config "; + { + Logger::fatal( "Error loading config {0}", configPath ); + failedLoad = true; + } + + if( failedLoad ) + { + throw "Error loading config"; + } + + // setup api config + m_config.network.listenPort = m_pConfig->getValue< uint16_t >( "Network", "ListenPort", 80 ); + m_config.network.listenIP = m_pConfig->getValue< std::string >( "Network", "ListenIp", "0.0.0.0" ); } void print_request_info( shared_ptr< HttpServer::Request > request ) @@ -77,8 +99,6 @@ bool loadSettings( int32_t argc, char* argv[] ) return false; } - auto pConfig = m_pConfig->getConfig(); - std::vector< std::string > args( argv + 1, argv + argc ); for( size_t i = 0; i + 1 < args.size(); i += 2 ) { @@ -93,46 +113,7 @@ bool loadSettings( int32_t argc, char* argv[] ) // trim '-' from start of arg arg = arg.erase( 0, arg.find_first_not_of( '-' ) ); - if( arg == "ip" ) - { - m_pConfig->setValue< std::string >( "RestNetwork.ListenIp", val ); - } - else if( arg == "p" || arg == "port" ) - { - m_pConfig->setValue< std::string >( "RestNetwork.ListenPort", val ); - } - else if( arg == "exdpath" || arg == "datapath" ) - { - m_pConfig->setValue< std::string >( "GlobalParameters.DataPath", val ); - } - else if( arg == "h" || arg == "dbhost" ) - { - m_pConfig->setValue< std::string >( "Database.Host", val ); - } - else if( arg == "dbport" ) - { - m_pConfig->setValue< std::string >( "Database.Port", val ); - } - else if( arg == "u" || arg == "user" || arg == "dbuser" ) - { - m_pConfig->setValue< std::string >( "Database.Username", val ); - } - else if( arg == "pass" || arg == "dbpass" ) - { - m_pConfig->setValue< std::string >( "Database.Password", val ); - } - else if( arg == "d" || arg == "db" || arg == "database" ) - { - m_pConfig->setValue< std::string >( "Database.Database", val ); - } - else if( arg == "lobbyip" || arg == "lobbyhost" ) - { - m_pConfig->setValue< std::string >( "GlobalNetwork.LobbyHost", val ); - } - else if( arg == "lobbyport" ) - { - m_pConfig->setValue< std::string >( "GlobalNetwork.LobbyPort", val ); - } + } catch( ... ) { @@ -142,7 +123,7 @@ bool loadSettings( int32_t argc, char* argv[] ) } Logger::info( "Setting up generated EXD data" ); - auto dataPath = m_pConfig->getConfig()->globalParameters.dataPath; + auto dataPath = m_config.global.parameters.dataPath; if( !g_exdDataGen.init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); @@ -153,20 +134,20 @@ bool loadSettings( int32_t argc, char* argv[] ) Sapphire::Db::DbLoader loader; Sapphire::Db::ConnectionInfo info; - info.password = pConfig->database.password; - info.host = pConfig->database.host; - info.database = pConfig->database.database; - info.port = pConfig->database.port; - info.user = pConfig->database.username; - info.syncThreads = pConfig->database.syncThreads; - info.asyncThreads = pConfig->database.asyncThreads; + info.password = m_config.global.database.password; + info.host = m_config.global.database.host; + info.database = m_config.global.database.database; + info.port = m_config.global.database.port; + info.user = m_config.global.database.username; + info.syncThreads = m_config.global.database.syncThreads; + info.asyncThreads = m_config.global.database.asyncThreads; loader.addDb( g_charaDb, info ); if( !loader.initDbs() ) return false; - server.config.port = pConfig->restNetwork.listenPort; - server.config.address = pConfig->restNetwork.listenIP; + server.config.port = m_config.network.listenPort; + server.config.address = m_config.network.listenIP; Logger::info( "Database: Connected to {0}:{1}", info.host, info.port ); @@ -268,9 +249,9 @@ void createAccount( shared_ptr< HttpServer::Response > response, shared_ptr< Htt // todo: construct proper json object here std::string json_string = "{\"sId\":\"" + sId + "\", \"lobbyHost\":\"" + - m_pConfig->getConfig()->globalNetwork.lobbyHost + + m_config.global.network.lobbyHost + "\", \"frontierHost\":\"" + - m_pConfig->getConfig()->globalNetwork.restHost + "\"}"; + m_config.global.network.restHost + "\"}"; *response << buildHttpResponse( 200, json_string, JSON ); } else @@ -301,9 +282,9 @@ void login( shared_ptr< HttpServer::Response > response, shared_ptr< HttpServer: // todo: build proper json object and stringify it std::string json_string = "{\"sId\":\"" + sId + "\", \"lobbyHost\":\"" + - m_pConfig->getConfig()->globalNetwork.lobbyHost + + m_config.global.network.lobbyHost + "\", \"frontierHost\":\"" + - m_pConfig->getConfig()->globalNetwork.restHost + "\"}"; + m_config.global.network.restHost + "\"}"; *response << buildHttpResponse( 200, json_string, JSON ); } else @@ -333,7 +314,7 @@ void deleteCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H int32_t accountId = g_sapphireAPI.checkSession( sId ); - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -373,7 +354,7 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H if( result != -1 ) { - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -381,7 +362,7 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H else { int32_t charId = g_sapphireAPI.createCharacter( result, name, finalJson, - m_pConfig->getConfig()->characterCreation.defaultGMRank ); + m_config.global.parameters.defaultGMRank ); std::string json_string = "{\"result\":\"" + std::to_string( charId ) + "\"}"; *response << buildHttpResponse( 200, json_string, JSON ); @@ -414,7 +395,7 @@ void insertSession( shared_ptr< HttpServer::Response > response, shared_ptr< Htt std::string secret = json["secret"]; // reloadConfig(); - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -446,7 +427,7 @@ void checkNameTaken( shared_ptr< HttpServer::Response > response, shared_ptr< Ht // reloadConfig(); - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -483,7 +464,7 @@ void checkSession( shared_ptr< HttpServer::Response > response, shared_ptr< Http if( result != -1 ) { - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -522,7 +503,7 @@ void getNextCharId( shared_ptr< HttpServer::Response > response, shared_ptr< Htt // reloadConfig(); - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -553,7 +534,7 @@ void getNextContentId( shared_ptr< HttpServer::Response > response, shared_ptr< // reloadConfig(); - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -588,7 +569,7 @@ void getCharacterList( shared_ptr< HttpServer::Response > response, shared_ptr< if( result != -1 ) { - if( m_pConfig->getConfig()->globalParameters.serverSecret != secret ) + if( m_config.global.parameters.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -768,8 +749,7 @@ int main( int argc, char* argv[] ) server.start(); } ); - auto& cfg = m_pConfig->getConfig()->restNetwork; - Logger::info( "API server running on {0}:{1}", cfg.listenIP, cfg.listenPort ); + Logger::info( "API server running on {0}:{1}", m_config.network.listenIP, m_config.network.listenPort ); //Wait for server to start so that the client can connect this_thread::sleep_for( chrono::seconds( 1 ) ); diff --git a/src/common/Config/ConfigDef.h b/src/common/Config/ConfigDef.h index ee9f3496..ac4f3952 100644 --- a/src/common/Config/ConfigDef.h +++ b/src/common/Config/ConfigDef.h @@ -21,6 +21,8 @@ namespace Sapphire::Common::Config std::string serverSecret; std::string dataPath; uint16_t worldID; + + uint8_t defaultGMRank; } parameters; struct Network @@ -76,8 +78,6 @@ namespace Sapphire::Common::Config bool allowNoSessionConnect; std::string worldName; - - uint8_t defaultGMRank; }; struct ApiConfig diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index fd820327..222c4a85 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -58,6 +58,7 @@ bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config config.parameters.dataPath = getValue< std::string >( "Parameters", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); config.parameters.serverSecret = getValue< std::string >( "Parameters", "ServerSecret", "default" ); config.parameters.worldID = getValue< uint16_t >( "Parameters", "WorldID", 67 ); + config.parameters.defaultGMRank = getValue< uint8_t >( "Parameters", "DefaultGMRank", 255 ); // network config.network.zoneHost = getValue< std::string >( "Network", "ZoneHost", "127.0.0.1" ); @@ -88,44 +89,19 @@ bool Sapphire::ConfigMgr::copyDefaultConfig( const std::string& configName ) void Sapphire::ConfigMgr::initConfigData() { - m_pConfig = std::make_shared< Common::Configuration >(); - // lobby - m_pConfig->lobby.worldID = getValue< uint16_t >( "Lobby", "WorldID", 67 ); - m_pConfig->lobby.allowNoSessionConnect = getValue< bool >( "Lobby", "AllowNoSessionConnect", false ); - m_pConfig->lobby.worldName = getValue< std::string >( "Lobby", "WorldName", "Sapphire" ); - - // lobby network - m_pConfig->lobbyNetwork.listenIp = getValue< std::string >( "LobbyNetwork", "ListenIp", "0.0.0.0" ); - m_pConfig->lobbyNetwork.listenPort = getValue< uint16_t >( "LobbyNetwork", "ListenPort", 54994 ); - - // character creation - m_pConfig->characterCreation.defaultGMRank = getValue< uint8_t >( "CharacterCreation", "DefaultGMRank", 255 ); - - // rest network - m_pConfig->restNetwork.listenIP = getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ); - m_pConfig->restNetwork.listenPort = getValue< uint16_t >( "RestNetwork", "ListenPort", 80 ); - - // scripts - m_pConfig->scripts.hotSwap = getValue( "Scripts", "HotSwap", true ); - m_pConfig->scripts.path = getValue< std::string >( "Scripts", "Path", "./compiledscripts/" ); - m_pConfig->scripts.cachePath = getValue< std::string >( "Scripts", "CachePath", "./cache/" ); - - // network - m_pConfig->network.disconnectTimeout = getValue< uint16_t >( "Network", "DisconnectTimeout", 20 ); - - // zone network - m_pConfig->zoneNetwork.listenIp = getValue< std::string >( "ZoneNetwork", "ListenIp", "0.0.0.0" ); - m_pConfig->zoneNetwork.listenPort = getValue< uint16_t >( "ZoneNetwork", "ListenPort", 54992 ); - - // general - m_pConfig->general.motd = getValue< std::string >( "General", "MotD", "" ); - - // housing - m_pConfig->housing.defaultEstateName = getValue< std::string >( "Housing", "DefaultEstateName", "Estate #{}" ); -} - -Sapphire::ConfigMgr::ConfigurationPtr Sapphire::ConfigMgr::getConfig() -{ - return m_pConfig; +// m_pConfig->lobby.worldID = getValue< uint16_t >( "Lobby", "WorldID", 67 ); +// m_pConfig->lobby.allowNoSessionConnect = getValue< bool >( "Lobby", "AllowNoSessionConnect", false ); +// m_pConfig->lobby.worldName = getValue< std::string >( "Lobby", "WorldName", "Sapphire" ); +// +// // lobby network +// m_pConfig->lobbyNetwork.listenIp = getValue< std::string >( "LobbyNetwork", "ListenIp", "0.0.0.0" ); +// m_pConfig->lobbyNetwork.listenPort = getValue< uint16_t >( "LobbyNetwork", "ListenPort", 54994 ); +// +// // character creation +// m_pConfig->characterCreation.defaultGMRank = getValue< uint8_t >( "CharacterCreation", "DefaultGMRank", 255 ); +// +// // rest network +// m_pConfig->restNetwork.listenIP = getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ); +// m_pConfig->restNetwork.listenPort = getValue< uint16_t >( "RestNetwork", "ListenPort", 80 ); } \ No newline at end of file diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index bcae72b7..91dab976 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -16,10 +16,8 @@ namespace Sapphire ConfigMgr() = default; ~ConfigMgr() = default; - using ConfigurationPtr = std::shared_ptr< Common::Configuration >; - bool loadConfig( const std::string& configName ); - bool loadGlobalConfig( Common::Config::GlobalConfig& config, const string& configName = "config.ini" ); + bool loadGlobalConfig( Common::Config::GlobalConfig& config, const string& configName = "global.ini" ); template struct always_false : std::false_type {}; @@ -59,16 +57,12 @@ namespace Sapphire //m_propTree.put( name, defaultValue ); } - ConfigurationPtr getConfig(); - private: bool copyDefaultConfig( const std::string& configName ); void initConfigData(); std::unique_ptr< INIReader > m_pInih; - ConfigurationPtr m_pConfig; - const std::string m_globalConfigFile = "global.ini"; const std::string m_configFolderRoot = "./config/"; const std::string m_configDefaultSuffix = ".default"; diff --git a/src/lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp index 1ad9ebf3..f5e5180e 100644 --- a/src/lobby/GameConnection.cpp +++ b/src/lobby/GameConnection.cpp @@ -128,10 +128,10 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet serverListPacket->data().seq = 1; serverListPacket->data().offset = 0; serverListPacket->data().numServers = 1; - serverListPacket->data().server[ 0 ].id = g_serverLobby.getConfig()->getConfig()->lobby.worldID; + serverListPacket->data().server[ 0 ].id = g_serverLobby.getConfig().global.parameters.worldID; serverListPacket->data().server[ 0 ].index = 0; serverListPacket->data().final = 1; - strcpy( serverListPacket->data().server[ 0 ].name, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); + strcpy( serverListPacket->data().server[ 0 ].name, g_serverLobby.getConfig().worldName.c_str() ); pRP.addPacket( serverListPacket ); auto retainerListPacket = makeLobbyPacket< FFXIVIpcRetainerList >( tmpId ); @@ -161,13 +161,13 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet auto& charEntry = charList[ charIndex ]; details.uniqueId = std::get< 1 >( charEntry ); details.contentId = std::get< 2 >( charEntry ); - details.serverId = g_serverLobby.getConfig()->getConfig()->lobby.worldID; - details.serverId1 = g_serverLobby.getConfig()->getConfig()->lobby.worldID; + details.serverId = g_serverLobby.getConfig().global.parameters.worldID; + details.serverId1 = g_serverLobby.getConfig().global.parameters.worldID; details.index = charIndex; strcpy( details.charDetailJson, std::get< 3 >( charEntry ).c_str() ); strcpy( details.nameChara, std::get< 0 >( charEntry ).c_str() ); - strcpy( details.nameServer, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); - strcpy( details.nameServer1, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); + strcpy( details.nameServer, g_serverLobby.getConfig().worldName.c_str() ); + strcpy( details.nameServer1, g_serverLobby.getConfig().worldName.c_str() ); charListPacket->data().charaDetails[ j ] = details; @@ -233,8 +233,8 @@ void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, auto enterWorldPacket = makeLobbyPacket< FFXIVIpcEnterWorld >( tmpId ); enterWorldPacket->data().contentId = lookupId; enterWorldPacket->data().seq = sequence; - strcpy( enterWorldPacket->data().host, g_serverLobby.getConfig()->getConfig()->globalNetwork.zoneHost.c_str() ); - enterWorldPacket->data().port = g_serverLobby.getConfig()->getConfig()->globalNetwork.zonePort; + strcpy( enterWorldPacket->data().host, g_serverLobby.getConfig().global.network.zoneHost.c_str() ); + enterWorldPacket->data().port = g_serverLobby.getConfig().global.network.zonePort; enterWorldPacket->data().charId = logInCharId; memcpy( enterWorldPacket->data().sid, m_pSession->getSessionId(), 66 ); pRP.addPacket( enterWorldPacket ); @@ -245,7 +245,7 @@ bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_ { LobbySessionPtr pSession = g_serverLobby.getSession( ( char* ) &packet.data[ 0 ] + 0x20 ); - if( g_serverLobby.getConfig()->getConfig()->lobby.allowNoSessionConnect && pSession == nullptr ) + if( g_serverLobby.getConfig().allowNoSessionConnect && pSession == nullptr ) { auto session = make_LobbySession(); session->setAccountID( 0 ); @@ -312,7 +312,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& auto charCreatePacket = makeLobbyPacket< FFXIVIpcCharCreate >( tmpId ); charCreatePacket->data().content_id = newContentId; strcpy( charCreatePacket->data().name, name.c_str() ); - strcpy( charCreatePacket->data().world, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); + strcpy( charCreatePacket->data().world, g_serverLobby.getConfig().worldName.c_str() ); charCreatePacket->data().type = 1; charCreatePacket->data().seq = sequence; charCreatePacket->data().unknown = 1; @@ -335,8 +335,8 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& auto charCreatePacket = makeLobbyPacket< FFXIVIpcCharCreate >( tmpId ); charCreatePacket->data().content_id = newContentId; strcpy( charCreatePacket->data().name, name.c_str() ); - strcpy( charCreatePacket->data().world, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); - strcpy( charCreatePacket->data().world2, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); + strcpy( charCreatePacket->data().world, g_serverLobby.getConfig().worldName.c_str() ); + strcpy( charCreatePacket->data().world2, g_serverLobby.getConfig().worldName.c_str() ); charCreatePacket->data().type = 2; charCreatePacket->data().seq = sequence; charCreatePacket->data().unknown = 1; @@ -364,7 +364,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& //charCreatePacket->data().content_id = deletePlayer.getContentId(); charCreatePacket->data().content_id = 0; strcpy( charCreatePacket->data().name, name.c_str() ); - strcpy( charCreatePacket->data().world, g_serverLobby.getConfig()->getConfig()->lobby.worldName.c_str() ); + strcpy( charCreatePacket->data().world, g_serverLobby.getConfig().worldName.c_str() ); charCreatePacket->data().type = 4; charCreatePacket->data().seq = sequence; charCreatePacket->data().unknown = 1; diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index 1d83609a..7d09dcbe 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -41,9 +41,9 @@ namespace Sapphire return g_restConnector.getSession( sessionId ); } - ConfigMgrPtr ServerLobby::getConfig() const + Sapphire::Common::Config::LobbyConfig& ServerLobby::getConfig() { - return m_pConfig; + return m_config; } void ServerLobby::run( int32_t argc, char* argv[] ) @@ -83,12 +83,33 @@ namespace Sapphire { Logger::info( "Loading config {0}", m_configPath ); + bool failedLoad = false; + if( !m_pConfig->loadGlobalConfig( m_config.global, "global.ini" ) ) + { + Logger::fatal( "Error loading config global.ini, copying default..." ); + failedLoad = true; + } + if( !m_pConfig->loadConfig( m_configPath ) ) { Logger::fatal( "Error loading config {0}", m_configPath ); - Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); + failedLoad = true; + } + + if( failedLoad ) + { + Logger::fatal( "If this is the first time starting the server, " + "we've copied the default configs for your editing pleasure." ); return false; } + + // load lobby config + m_config.allowNoSessionConnect = m_pConfig->getValue< bool >( "Lobby", "AllowNoSessionConnect", false ); + m_config.worldName = m_pConfig->getValue< std::string >( "Lobby", "WorldName", "Sapphire" ); + + m_config.network.listenIp = m_pConfig->getValue< std::string >( "Network", "ListenIp", "0.0.0.0" ); + m_config.network.listenPort = m_pConfig->getValue< uint16_t >( "Network", "ListenPort", 54994 ); + std::vector< std::string > args( argv + 1, argv + argc ); for( size_t i = 0; i + 1 < args.size(); i += 2 ) { @@ -106,19 +127,19 @@ namespace Sapphire if( arg == "ip" ) { // todo: ip addr in config - m_pConfig->getConfig()->lobbyNetwork.listenIp = val; + m_config.network.listenIp = val; } else if( arg == "p" || arg == "port" ) { - m_pConfig->getConfig()->lobbyNetwork.listenPort = std::stoi( val ); + m_config.network.listenPort = std::stoi( val ); } else if( arg == "worldip" || arg == "worldip" ) { - m_pConfig->getConfig()->globalNetwork.zoneHost = val; + m_config.global.network.zoneHost = val; } else if( arg == "worldport" ) { - m_pConfig->getConfig()->globalNetwork.zonePort = std::stoi( val ); + m_config.global.network.zonePort = std::stoi( val ); } } catch( ... ) @@ -128,13 +149,13 @@ namespace Sapphire } } - m_port = m_pConfig->getConfig()->lobbyNetwork.listenPort; - m_ip = m_pConfig->getConfig()->lobbyNetwork.listenIp; + m_port = m_config.network.listenPort; + m_ip = m_config.network.listenIp; - g_restConnector.restHost = m_pConfig->getConfig()->globalNetwork.restHost + ":" + - std::to_string( m_pConfig->getConfig()->globalNetwork.restPort ); - g_restConnector.serverSecret = m_pConfig->getConfig()->globalParameters.serverSecret; + g_restConnector.restHost = m_config.global.network.restHost + ":" + + std::to_string( m_config.global.network.restPort ); + g_restConnector.serverSecret = m_config.global.parameters.serverSecret; return true; } diff --git a/src/lobby/ServerLobby.h b/src/lobby/ServerLobby.h index e0907682..8e101bfb 100644 --- a/src/lobby/ServerLobby.h +++ b/src/lobby/ServerLobby.h @@ -4,6 +4,7 @@ #include #include +#include #include "Forwards.h" const std::string LOBBY_VERSION = "0.0.5"; @@ -44,12 +45,14 @@ namespace Sapphire m_sessionMap[ std::string( sessionId ) ] = pSession; } - std::shared_ptr< ConfigMgr > getConfig() const; + Sapphire::Common::Config::LobbyConfig& getConfig(); LobbySessionPtr getSession( char* sessionId ); uint32_t m_numConnections; + Sapphire::Common::Config::LobbyConfig m_config; + }; } diff --git a/src/lobby/mainLobbyServer.cpp b/src/lobby/mainLobbyServer.cpp index 2ef742e4..54e1f9ff 100644 --- a/src/lobby/mainLobbyServer.cpp +++ b/src/lobby/mainLobbyServer.cpp @@ -1,6 +1,6 @@ #include "ServerLobby.h" -Sapphire::ServerLobby g_serverLobby( "config.ini" ); +Sapphire::ServerLobby g_serverLobby( "lobby.ini" ); int main( int32_t argc, char* argv[] ) { diff --git a/src/world/Actor/PlayerEvent.cpp b/src/world/Actor/PlayerEvent.cpp index cd32d132..089cc5c0 100644 --- a/src/world/Actor/PlayerEvent.cpp +++ b/src/world/Actor/PlayerEvent.cpp @@ -1,7 +1,6 @@ #include #include #include -#include #include "Network/GameConnection.h" #include "Network/PacketWrappers/ActorControlPacket142.h" @@ -326,8 +325,8 @@ void Sapphire::Entity::Player::eventItemActionStart( uint32_t eventId, void Sapphire::Entity::Player::onLogin() { - auto pConfig = m_pFw->get< ConfigMgr >(); - auto motd = pConfig->getConfig()->general.motd; + auto pServerMgr = m_pFw->get< Sapphire::World::ServerMgr >(); + auto motd = pServerMgr->getConfig().motd; std::istringstream ss( motd ); std::string msg; diff --git a/src/world/Script/NativeScriptMgr.cpp b/src/world/Script/NativeScriptMgr.cpp index 69126c75..2cf8fa37 100644 --- a/src/world/Script/NativeScriptMgr.cpp +++ b/src/world/Script/NativeScriptMgr.cpp @@ -1,7 +1,7 @@ #include "NativeScriptMgr.h" #include -#include +#include "ServerMgr.h" #include "Framework.h" @@ -124,8 +124,8 @@ namespace Sapphire::Scripting NativeScriptMgr::NativeScriptMgr( FrameworkPtr pFw ) : World::Manager::BaseManager( pFw ) { - auto pConfig = framework()->get< ConfigMgr >(); - m_loader.setCachePath( pConfig->getConfig()->scripts.cachePath ); + auto pServerMgr = framework()->get< Sapphire::World::ServerMgr >(); + m_loader.setCachePath( pServerMgr->getConfig().scripts.cachePath ); } diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index f92f5cb1..13702363 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -1,6 +1,5 @@ #include #include -#include #include @@ -48,9 +47,9 @@ void Sapphire::Scripting::ScriptMgr::update() bool Sapphire::Scripting::ScriptMgr::init() { std::set< std::string > files; - auto pConfig = framework()->get< ConfigMgr >(); + auto pServerMgr = framework()->get< World::ServerMgr >(); - auto status = loadDir( pConfig->getConfig()->scripts.path, files, m_nativeScriptMgr->getModuleExtension() ); + auto status = loadDir( pServerMgr->getConfig().scripts.path, files, m_nativeScriptMgr->getModuleExtension() ); if( !status ) { @@ -80,12 +79,12 @@ bool Sapphire::Scripting::ScriptMgr::init() void Sapphire::Scripting::ScriptMgr::watchDirectories() { - auto pConfig = framework()->get< ConfigMgr >(); - auto shouldWatch = pConfig->getConfig()->scripts.hotSwap; + auto pServerMgr = framework()->get< World::ServerMgr >(); + auto shouldWatch = pServerMgr->getConfig().scripts.hotSwap; if( !shouldWatch ) return; - Watchdog::watchMany( pConfig->getConfig()->scripts.path + "*" + + Watchdog::watchMany( pServerMgr->getConfig().scripts.path + "*" + m_nativeScriptMgr->getModuleExtension(), [ this ]( const std::vector< ci::fs::path >& paths ) { diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 4f3047f2..0ad9295e 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -67,15 +67,43 @@ bool Sapphire::World::ServerMgr::loadSettings( int32_t argc, char* argv[] ) Logger::info( "Loading config {0}", m_configName ); + bool failedLoad = false; + + // load global cfg first + if( !pConfig->loadGlobalConfig( m_config.global ) ) + { + Logger::fatal( "Error loading config global.ini, copying default..." ); + failedLoad = true; + } + if( !pConfig->loadConfig( m_configName ) ) { Logger::fatal( "Error loading config {0}", m_configName ); - Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); + failedLoad = true; + } + + if( failedLoad ) + { + Logger::fatal( "If this is the first time starting the server, " + "we've copied the default configs for your editing pleasure." ); return false; } - m_port = pConfig->getConfig()->zoneNetwork.listenPort; - m_ip = pConfig->getConfig()->zoneNetwork.listenIp; + // load world specific config + m_config.scripts.hotSwap = pConfig->getValue( "Scripts", "HotSwap", true ); + m_config.scripts.path = pConfig->getValue< std::string >( "Scripts", "Path", "./compiledscripts/" ); + m_config.scripts.cachePath = pConfig->getValue< std::string >( "Scripts", "CachePath", "./cache/" ); + + m_config.network.disconnectTimeout = pConfig->getValue< uint16_t >( "Network", "DisconnectTimeout", 20 ); + m_config.network.listenIp = pConfig->getValue< std::string >( "Network", "ListenIp", "0.0.0.0" ); + m_config.network.listenPort = pConfig->getValue< uint16_t >( "Network", "ListenPort", 54992 ); + + m_config.motd = pConfig->getValue< std::string >( "General", "MotD", "" ); + + m_config.housing.defaultEstateName = pConfig->getValue< std::string >( "Housing", "DefaultEstateName", "Estate #{}" ); + + m_port = m_config.network.listenPort; + m_ip = m_config.network.listenIp; return true; } @@ -99,7 +127,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) Logger::info( "Setting up generated EXD data" ); auto pExdData = std::make_shared< Data::ExdDataGenerated >(); - auto dataPath = pConfig->getConfig()->globalParameters.dataPath; + auto dataPath = m_config.global.parameters.dataPath; if( !pExdData->init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); @@ -109,13 +137,13 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) framework()->set< Data::ExdDataGenerated >( pExdData ); Sapphire::Db::ConnectionInfo info; - info.password = pConfig->getConfig()->database.password; - info.host = pConfig->getConfig()->database.host; - info.database = pConfig->getConfig()->database.database; - info.port = pConfig->getConfig()->database.port; - info.user = pConfig->getConfig()->database.username; - info.syncThreads = pConfig->getConfig()->database.syncThreads; - info.asyncThreads = pConfig->getConfig()->database.asyncThreads; + info.password = m_config.global.database.password; + info.host = m_config.global.database.host; + info.database = m_config.global.database.database; + info.port = m_config.global.database.port; + info.user = m_config.global.database.username; + info.syncThreads = m_config.global.database.syncThreads; + info.asyncThreads = m_config.global.database.asyncThreads; auto pDb = std::make_shared< Db::DbWorkerPool< Db::ZoneDbConnection > >(); Sapphire::Db::DbLoader loader; @@ -461,3 +489,8 @@ Sapphire::Entity::BNpcTemplatePtr Sapphire::World::ServerMgr::getBNpcTemplate( u return nullptr; } + +Sapphire::Common::Config::WorldConfig& Sapphire::World::ServerMgr::getConfig() +{ + return m_config; +} diff --git a/src/world/ServerMgr.h b/src/world/ServerMgr.h index a18e0c45..fa3cf5ea 100644 --- a/src/world/ServerMgr.h +++ b/src/world/ServerMgr.h @@ -7,6 +7,7 @@ #include #include "ForwardsZone.h" #include "Manager/BaseManager.h" +#include namespace Sapphire::World { @@ -18,6 +19,8 @@ namespace Sapphire::World ~ServerMgr() override; + using WorldConfigPtr = std::shared_ptr< Sapphire::Common::Config::WorldConfig >; + void run( int32_t argc, char* argv[] ); bool createSession( uint32_t sessionId ); @@ -48,6 +51,8 @@ namespace Sapphire::World std::string getPlayerNameFromDb( uint32_t playerId, bool forceDbLoad = false ); void updatePlayerName( uint32_t playerId, const std::string& playerNewName ); + Sapphire::Common::Config::WorldConfig& getConfig(); + private: uint16_t m_port; std::string m_ip; @@ -59,6 +64,8 @@ namespace Sapphire::World std::mutex m_sessionMutex; + Sapphire::Common::Config::WorldConfig m_config; + std::map< uint32_t, SessionPtr > m_sessionMapById; std::map< std::string, SessionPtr > m_sessionMapByName; std::map< uint32_t, std::string > m_playerNameMapById; diff --git a/src/world/mainGameServer.cpp b/src/world/mainGameServer.cpp index a39f068b..a0dcddac 100644 --- a/src/world/mainGameServer.cpp +++ b/src/world/mainGameServer.cpp @@ -9,7 +9,7 @@ using namespace Sapphire::World; int main( int32_t argc, char* argv[] ) { auto pFramework = Sapphire::make_Framework(); - auto pServer = std::make_shared< ServerMgr >( "config.ini", pFramework ); + auto pServer = std::make_shared< ServerMgr >( "world.ini", pFramework ); pFramework->set< ServerMgr >( pServer ); pServer->run( argc, argv ); return 0; From bf0324cfea6e8d30f47dc3d6f2a72f2ccee2d014 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 23:08:43 +1100 Subject: [PATCH 340/385] everything should be working again... --- src/api/main.cpp | 25 ++++++++++--------------- src/common/Config/ConfigMgr.cpp | 2 +- src/common/Config/ConfigMgr.h | 2 +- src/world/ServerMgr.cpp | 2 +- 4 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/api/main.cpp b/src/api/main.cpp index 8c0ae020..23580484 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -49,25 +49,26 @@ void default_resource_send( const HttpServer& server, const shared_ptr< HttpServ const shared_ptr< ifstream >& ifs ); -auto m_pConfig = std::make_shared< Sapphire::ConfigMgr >(); HttpServer server; std::string configPath( "api.ini" ); Sapphire::Common::Config::ApiConfig m_config; void reloadConfig() { - m_pConfig = std::make_shared< Sapphire::ConfigMgr >(); + auto pConfig = std::make_shared< Sapphire::ConfigMgr >(); + + Logger::info( "Loading config " + configPath ); bool failedLoad = false; // load global cfg first - if( !m_pConfig->loadGlobalConfig( m_config.global ) ) + if( !pConfig->loadGlobalConfig( m_config.global ) ) { Logger::fatal( "Error loading config global.ini" ); failedLoad = true; } - if( !m_pConfig->loadConfig( configPath ) ) + if( !pConfig->loadConfig( configPath ) ) { Logger::fatal( "Error loading config {0}", configPath ); failedLoad = true; @@ -75,12 +76,13 @@ void reloadConfig() if( failedLoad ) { + Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); throw "Error loading config"; } // setup api config - m_config.network.listenPort = m_pConfig->getValue< uint16_t >( "Network", "ListenPort", 80 ); - m_config.network.listenIP = m_pConfig->getValue< std::string >( "Network", "ListenIp", "0.0.0.0" ); + m_config.network.listenPort = pConfig->getValue< uint16_t >( "Network", "ListenPort", 80 ); + m_config.network.listenIP = pConfig->getValue< std::string >( "Network", "ListenIp", "0.0.0.0" ); } void print_request_info( shared_ptr< HttpServer::Request > request ) @@ -90,14 +92,7 @@ void print_request_info( shared_ptr< HttpServer::Request > request ) bool loadSettings( int32_t argc, char* argv[] ) { - Logger::info( "Loading config " + configPath ); - - if( !m_pConfig->loadConfig( configPath ) ) - { - Logger::fatal( "Error loading config {0}", configPath ); - Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); - return false; - } + reloadConfig(); std::vector< std::string > args( argv + 1, argv + argc ); for( size_t i = 0; i + 1 < args.size(); i += 2 ) @@ -126,7 +121,7 @@ bool loadSettings( int32_t argc, char* argv[] ) auto dataPath = m_config.global.parameters.dataPath; if( !g_exdDataGen.init( dataPath ) ) { - Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); + Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in global.ini" ); Logger::fatal( "DataPath: {0}", dataPath ); return false; } diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index 222c4a85..aa5ddc9a 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -31,7 +31,7 @@ bool Sapphire::ConfigMgr::loadConfig( const std::string& configName ) return true; } -bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config, const string& configName ) +bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config, const std::string& configName ) { auto configFile = fs::path( fs::path( m_configFolderRoot ) / configName ); diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index 91dab976..edcc3567 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -17,7 +17,7 @@ namespace Sapphire ~ConfigMgr() = default; bool loadConfig( const std::string& configName ); - bool loadGlobalConfig( Common::Config::GlobalConfig& config, const string& configName = "global.ini" ); + bool loadGlobalConfig( Common::Config::GlobalConfig& config, const std::string& configName = "global.ini" ); template struct always_false : std::false_type {}; diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 0ad9295e..a5e74e29 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -130,7 +130,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) auto dataPath = m_config.global.parameters.dataPath; if( !pExdData->init( dataPath ) ) { - Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in config.ini" ); + Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in global.ini" ); Logger::fatal( "DataPath: {0}", dataPath ); return; } From eb56f5fda2ddde78a23042bd6b0bb73eaa6ef59c Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 23:16:01 +1100 Subject: [PATCH 341/385] cleanup db connection config --- src/api/main.cpp | 15 +++------------ src/common/Config/ConfigDef.h | 13 +++---------- src/common/Config/ConfigMgr.cpp | 2 +- src/common/Database/DbCommon.h | 18 ++++++++++++++++++ src/common/Database/DbConnection.h | 12 +----------- src/world/ServerMgr.cpp | 11 +---------- 6 files changed, 27 insertions(+), 44 deletions(-) create mode 100644 src/common/Database/DbCommon.h diff --git a/src/api/main.cpp b/src/api/main.cpp index 23580484..372cad9f 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -76,7 +76,7 @@ void reloadConfig() if( failedLoad ) { - Logger::fatal( "If this is the first time starting the server, we've copied the default one for your editing pleasure." ); + Logger::fatal( "If this is the first time starting the server, we've copied the default configs for your editing pleasure." ); throw "Error loading config"; } @@ -128,23 +128,14 @@ bool loadSettings( int32_t argc, char* argv[] ) Sapphire::Db::DbLoader loader; - Sapphire::Db::ConnectionInfo info; - info.password = m_config.global.database.password; - info.host = m_config.global.database.host; - info.database = m_config.global.database.database; - info.port = m_config.global.database.port; - info.user = m_config.global.database.username; - info.syncThreads = m_config.global.database.syncThreads; - info.asyncThreads = m_config.global.database.asyncThreads; - - loader.addDb( g_charaDb, info ); + loader.addDb( g_charaDb, m_config.global.database ); if( !loader.initDbs() ) return false; server.config.port = m_config.network.listenPort; server.config.address = m_config.network.listenIP; - Logger::info( "Database: Connected to {0}:{1}", info.host, info.port ); + Logger::info( "Database: Connected to {0}:{1}", m_config.global.database.host, m_config.global.database.port ); return true; } diff --git a/src/common/Config/ConfigDef.h b/src/common/Config/ConfigDef.h index ac4f3952..2fcc8251 100644 --- a/src/common/Config/ConfigDef.h +++ b/src/common/Config/ConfigDef.h @@ -1,20 +1,13 @@ #ifndef SAPPHIRE_CONFIGDEF_H #define SAPPHIRE_CONFIGDEF_H +#include + namespace Sapphire::Common::Config { struct GlobalConfig { - struct Database - { - std::string host; - uint16_t port; - std::string database; - std::string username; - std::string password; - uint8_t syncThreads; - uint8_t asyncThreads; - } database; + Sapphire::Db::ConnectionInfo database; struct Parameters { diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index aa5ddc9a..e42e04bb 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -49,7 +49,7 @@ bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config config.database.host = getValue< std::string >( "Database", "Host", "127.0.0.1" ); config.database.port = getValue< uint16_t >( "Database", "Port", 3306 ); config.database.database = getValue< std::string >( "Database", "Database", "sapphire" ); - config.database.username = getValue< std::string >( "Database", "Username", "sapphire" ); + config.database.user = getValue< std::string >( "Database", "Username", "sapphire" ); config.database.password = getValue< std::string >( "Database", "Password", "" ); config.database.syncThreads = getValue< uint8_t >( "Database", "SyncThreads", 2 ); config.database.asyncThreads = getValue< uint8_t >( "Database", "AsyncThreads", 2 ); diff --git a/src/common/Database/DbCommon.h b/src/common/Database/DbCommon.h new file mode 100644 index 00000000..89d537b6 --- /dev/null +++ b/src/common/Database/DbCommon.h @@ -0,0 +1,18 @@ +#ifndef SAPPHIRE_DBCOMMON_H +#define SAPPHIRE_DBCOMMON_H + +namespace Sapphire::Db +{ + struct ConnectionInfo + { + std::string user; + std::string password; + std::string database; + std::string host; + uint16_t port; + uint8_t syncThreads; + uint8_t asyncThreads; + }; +} + +#endif //SAPPHIRE_DBCOMMON_H diff --git a/src/common/Database/DbConnection.h b/src/common/Database/DbConnection.h index 05bfd793..a31a531d 100644 --- a/src/common/Database/DbConnection.h +++ b/src/common/Database/DbConnection.h @@ -7,6 +7,7 @@ #include #include #include "Util/LockedWaitQueue.h" +#include "DbCommon.h" namespace Mysql { @@ -31,17 +32,6 @@ namespace Sapphire::Db CONNECTION_BOTH = CONNECTION_ASYNC | CONNECTION_SYNC }; - struct ConnectionInfo - { - std::string user; - std::string password; - std::string database; - std::string host; - uint16_t port; - uint8_t syncThreads; - uint8_t asyncThreads; - }; - using PreparedStatementMap = std::map< uint32_t, std::pair< std::string, ConnectionFlags > >; class DbConnection : diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index a5e74e29..5014dc08 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -136,18 +136,9 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) } framework()->set< Data::ExdDataGenerated >( pExdData ); - Sapphire::Db::ConnectionInfo info; - info.password = m_config.global.database.password; - info.host = m_config.global.database.host; - info.database = m_config.global.database.database; - info.port = m_config.global.database.port; - info.user = m_config.global.database.username; - info.syncThreads = m_config.global.database.syncThreads; - info.asyncThreads = m_config.global.database.asyncThreads; - auto pDb = std::make_shared< Db::DbWorkerPool< Db::ZoneDbConnection > >(); Sapphire::Db::DbLoader loader; - loader.addDb( *pDb, info ); + loader.addDb( *pDb, m_config.global.database ); if( !loader.initDbs() ) { Logger::fatal( "Database not initialized properly!" ); From 047d0328e083767cf6ecabd5db147055e5f5473b Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 23:20:50 +1100 Subject: [PATCH 342/385] remove old shit --- src/common/Config/ConfigMgr.cpp | 19 ------------------- src/common/Config/ConfigMgr.h | 1 - 2 files changed, 20 deletions(-) diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index e42e04bb..d236f9dd 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -85,23 +85,4 @@ bool Sapphire::ConfigMgr::copyDefaultConfig( const std::string& configName ) fs::copy_file( configPath.string() + m_configDefaultSuffix, configPath ); return true; -} - -void Sapphire::ConfigMgr::initConfigData() -{ - // lobby -// m_pConfig->lobby.worldID = getValue< uint16_t >( "Lobby", "WorldID", 67 ); -// m_pConfig->lobby.allowNoSessionConnect = getValue< bool >( "Lobby", "AllowNoSessionConnect", false ); -// m_pConfig->lobby.worldName = getValue< std::string >( "Lobby", "WorldName", "Sapphire" ); -// -// // lobby network -// m_pConfig->lobbyNetwork.listenIp = getValue< std::string >( "LobbyNetwork", "ListenIp", "0.0.0.0" ); -// m_pConfig->lobbyNetwork.listenPort = getValue< uint16_t >( "LobbyNetwork", "ListenPort", 54994 ); -// -// // character creation -// m_pConfig->characterCreation.defaultGMRank = getValue< uint8_t >( "CharacterCreation", "DefaultGMRank", 255 ); -// -// // rest network -// m_pConfig->restNetwork.listenIP = getValue< std::string >( "RestNetwork", "ListenIp", "0.0.0.0" ); -// m_pConfig->restNetwork.listenPort = getValue< uint16_t >( "RestNetwork", "ListenPort", 80 ); } \ No newline at end of file diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index edcc3567..265cff46 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -59,7 +59,6 @@ namespace Sapphire private: bool copyDefaultConfig( const std::string& configName ); - void initConfigData(); std::unique_ptr< INIReader > m_pInih; From 35def4d4f2c86bc2af807000ac13675493689e15 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 23:26:34 +1100 Subject: [PATCH 343/385] refactor parameters to general, fix build error --- config/global.ini.default | 2 +- src/api/main.cpp | 20 ++++++++++---------- src/common/Config/ConfigDef.h | 4 ++-- src/common/Config/ConfigMgr.cpp | 10 ++++------ src/lobby/GameConnection.cpp | 6 +++--- src/lobby/ServerLobby.cpp | 2 +- src/world/ServerMgr.cpp | 2 +- 7 files changed, 22 insertions(+), 24 deletions(-) diff --git a/config/global.ini.default b/config/global.ini.default index 46cd4747..87c3b4cc 100644 --- a/config/global.ini.default +++ b/config/global.ini.default @@ -7,7 +7,7 @@ Password = SyncThreads = 2 AsyncThreads = 2 -[Parameters] +[General] ServerSecret = default DataPath = C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack WorldID = 67 diff --git a/src/api/main.cpp b/src/api/main.cpp index 372cad9f..5fd967a0 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -118,7 +118,7 @@ bool loadSettings( int32_t argc, char* argv[] ) } Logger::info( "Setting up generated EXD data" ); - auto dataPath = m_config.global.parameters.dataPath; + auto dataPath = m_config.global.general.dataPath; if( !g_exdDataGen.init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in global.ini" ); @@ -300,7 +300,7 @@ void deleteCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H int32_t accountId = g_sapphireAPI.checkSession( sId ); - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -340,7 +340,7 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H if( result != -1 ) { - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -348,7 +348,7 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H else { int32_t charId = g_sapphireAPI.createCharacter( result, name, finalJson, - m_config.global.parameters.defaultGMRank ); + m_config.global.general.defaultGMRank ); std::string json_string = "{\"result\":\"" + std::to_string( charId ) + "\"}"; *response << buildHttpResponse( 200, json_string, JSON ); @@ -381,7 +381,7 @@ void insertSession( shared_ptr< HttpServer::Response > response, shared_ptr< Htt std::string secret = json["secret"]; // reloadConfig(); - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -413,7 +413,7 @@ void checkNameTaken( shared_ptr< HttpServer::Response > response, shared_ptr< Ht // reloadConfig(); - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -450,7 +450,7 @@ void checkSession( shared_ptr< HttpServer::Response > response, shared_ptr< Http if( result != -1 ) { - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -489,7 +489,7 @@ void getNextCharId( shared_ptr< HttpServer::Response > response, shared_ptr< Htt // reloadConfig(); - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -520,7 +520,7 @@ void getNextContentId( shared_ptr< HttpServer::Response > response, shared_ptr< // reloadConfig(); - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); @@ -555,7 +555,7 @@ void getCharacterList( shared_ptr< HttpServer::Response > response, shared_ptr< if( result != -1 ) { - if( m_config.global.parameters.serverSecret != secret ) + if( m_config.global.general.serverSecret != secret ) { std::string json_string = "{\"result\":\"invalid_secret\"}"; *response << buildHttpResponse( 403, json_string, JSON ); diff --git a/src/common/Config/ConfigDef.h b/src/common/Config/ConfigDef.h index 2fcc8251..a6a111b8 100644 --- a/src/common/Config/ConfigDef.h +++ b/src/common/Config/ConfigDef.h @@ -9,14 +9,14 @@ namespace Sapphire::Common::Config { Sapphire::Db::ConnectionInfo database; - struct Parameters + struct General { std::string serverSecret; std::string dataPath; uint16_t worldID; uint8_t defaultGMRank; - } parameters; + } general; struct Network { diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index d236f9dd..fe5cee56 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -26,8 +26,6 @@ bool Sapphire::ConfigMgr::loadConfig( const std::string& configName ) if( m_pInih->ParseError() < 0 ) return false; - initConfigData(); - return true; } @@ -55,10 +53,10 @@ bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config config.database.asyncThreads = getValue< uint8_t >( "Database", "AsyncThreads", 2 ); // params - config.parameters.dataPath = getValue< std::string >( "Parameters", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); - config.parameters.serverSecret = getValue< std::string >( "Parameters", "ServerSecret", "default" ); - config.parameters.worldID = getValue< uint16_t >( "Parameters", "WorldID", 67 ); - config.parameters.defaultGMRank = getValue< uint8_t >( "Parameters", "DefaultGMRank", 255 ); + config.general.dataPath = getValue< std::string >( "Parameters", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); + config.general.serverSecret = getValue< std::string >( "Parameters", "ServerSecret", "default" ); + config.general.worldID = getValue< uint16_t >( "Parameters", "WorldID", 67 ); + config.general.defaultGMRank = getValue< uint8_t >( "Parameters", "DefaultGMRank", 255 ); // network config.network.zoneHost = getValue< std::string >( "Network", "ZoneHost", "127.0.0.1" ); diff --git a/src/lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp index f5e5180e..6b17b453 100644 --- a/src/lobby/GameConnection.cpp +++ b/src/lobby/GameConnection.cpp @@ -128,7 +128,7 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet serverListPacket->data().seq = 1; serverListPacket->data().offset = 0; serverListPacket->data().numServers = 1; - serverListPacket->data().server[ 0 ].id = g_serverLobby.getConfig().global.parameters.worldID; + serverListPacket->data().server[ 0 ].id = g_serverLobby.getConfig().global.general.worldID; serverListPacket->data().server[ 0 ].index = 0; serverListPacket->data().final = 1; strcpy( serverListPacket->data().server[ 0 ].name, g_serverLobby.getConfig().worldName.c_str() ); @@ -161,8 +161,8 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet auto& charEntry = charList[ charIndex ]; details.uniqueId = std::get< 1 >( charEntry ); details.contentId = std::get< 2 >( charEntry ); - details.serverId = g_serverLobby.getConfig().global.parameters.worldID; - details.serverId1 = g_serverLobby.getConfig().global.parameters.worldID; + details.serverId = g_serverLobby.getConfig().global.general.worldID; + details.serverId1 = g_serverLobby.getConfig().global.general.worldID; details.index = charIndex; strcpy( details.charDetailJson, std::get< 3 >( charEntry ).c_str() ); strcpy( details.nameChara, std::get< 0 >( charEntry ).c_str() ); diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index 7d09dcbe..d1530dcf 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -155,7 +155,7 @@ namespace Sapphire g_restConnector.restHost = m_config.global.network.restHost + ":" + std::to_string( m_config.global.network.restPort ); - g_restConnector.serverSecret = m_config.global.parameters.serverSecret; + g_restConnector.serverSecret = m_config.global.general.serverSecret; return true; } diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index 5014dc08..d675859a 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -127,7 +127,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) Logger::info( "Setting up generated EXD data" ); auto pExdData = std::make_shared< Data::ExdDataGenerated >(); - auto dataPath = m_config.global.parameters.dataPath; + auto dataPath = m_config.global.general.dataPath; if( !pExdData->init( dataPath ) ) { Logger::fatal( "Error setting up generated EXD data. Make sure that DataPath is set correctly in global.ini" ); From 2776ecd6d40de9e20b844200af2a4aa2bd961691 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 7 Jan 2019 23:31:04 +1100 Subject: [PATCH 344/385] update ini reading to use 'general' instead of 'parameters' --- src/common/Config/ConfigMgr.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index fe5cee56..a1ad914b 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -53,10 +53,10 @@ bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config config.database.asyncThreads = getValue< uint8_t >( "Database", "AsyncThreads", 2 ); // params - config.general.dataPath = getValue< std::string >( "Parameters", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); - config.general.serverSecret = getValue< std::string >( "Parameters", "ServerSecret", "default" ); - config.general.worldID = getValue< uint16_t >( "Parameters", "WorldID", 67 ); - config.general.defaultGMRank = getValue< uint8_t >( "Parameters", "DefaultGMRank", 255 ); + config.general.dataPath = getValue< std::string >( "General", "DataPath", "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); + config.general.serverSecret = getValue< std::string >( "General", "ServerSecret", "default" ); + config.general.worldID = getValue< uint16_t >( "General", "WorldID", 67 ); + config.general.defaultGMRank = getValue< uint8_t >( "General", "DefaultGMRank", 255 ); // network config.network.zoneHost = getValue< std::string >( "Network", "ZoneHost", "127.0.0.1" ); From 47d18182c0427cda9309235b4e73cbafc2b85ce5 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 8 Jan 2019 18:08:51 +1100 Subject: [PATCH 345/385] manually merge in some exd changes and some 4.5 opcodes --- src/common/Exd/ExdDataGenerated.cpp | 32 ++++++++++++++--------------- src/common/Network/PacketDef/Ipcs.h | 20 +++++++++--------- src/tools/exd_struct_test/main.cpp | 22 +++++++------------- 3 files changed, 33 insertions(+), 41 deletions(-) diff --git a/src/common/Exd/ExdDataGenerated.cpp b/src/common/Exd/ExdDataGenerated.cpp index a20ba512..2b78bd94 100644 --- a/src/common/Exd/ExdDataGenerated.cpp +++ b/src/common/Exd/ExdDataGenerated.cpp @@ -1034,14 +1034,14 @@ Sapphire::Data::ClassJob::ClassJob( uint32_t row_id, Sapphire::Data::ExdDataGene classJobParent = exdData->getField< uint8_t >( row, 26 ); nameEnglish = exdData->getField< std::string >( row, 27 ); itemStartingWeapon = exdData->getField< int32_t >( row, 28 ); - limitBreak1 = exdData->getField< uint16_t >( row, 33 ); - limitBreak2 = exdData->getField< uint16_t >( row, 34 ); - limitBreak3 = exdData->getField< uint16_t >( row, 35 ); - itemSoulCrystal = exdData->getField< uint32_t >( row, 37 ); - unlockQuest = exdData->getField< uint32_t >( row, 38 ); - relicQuest = exdData->getField< uint32_t >( row, 39 ); - prerequisite = exdData->getField< uint32_t >( row, 40 ); - startingLevel = exdData->getField< uint8_t >( row, 41 ); + limitBreak1 = exdData->getField< uint16_t >( row, 34 ); + limitBreak2 = exdData->getField< uint16_t >( row, 35 ); + limitBreak3 = exdData->getField< uint16_t >( row, 36 ); + itemSoulCrystal = exdData->getField< uint32_t >( row, 38 ); + unlockQuest = exdData->getField< uint32_t >( row, 39 ); + relicQuest = exdData->getField< uint32_t >( row, 40 ); + prerequisite = exdData->getField< uint32_t >( row, 41 ); + startingLevel = exdData->getField< uint8_t >( row, 42 ); } Sapphire::Data::ClassJobCategory::ClassJobCategory( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -1273,10 +1273,10 @@ Sapphire::Data::ContentFinderCondition::ContentFinderCondition( uint32_t row_id, allowReplacement = exdData->getField< bool >( row, 20 ); highEndDuty = exdData->getField< bool >( row, 26 ); dutyRecorderAllowed = exdData->getField< bool >( row, 30 ); - name = exdData->getField< std::string >( row, 32 ); - contentType = exdData->getField< uint8_t >( row, 33 ); - transient = exdData->getField< uint8_t >( row, 34 ); - image = exdData->getField< uint32_t >( row, 37 ); + name = exdData->getField< std::string >( row, 34 ); + contentType = exdData->getField< uint8_t >( row, 35 ); + transient = exdData->getField< uint8_t >( row, 36 ); + image = exdData->getField< uint32_t >( row, 39 ); } Sapphire::Data::ContentFinderConditionTransient::ContentFinderConditionTransient( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3164,7 +3164,7 @@ Sapphire::Data::InstanceContent::InstanceContent( uint32_t row_id, Sapphire::Dat instanceClearExp = exdData->getField< uint32_t >( row, 46 ); instanceContentBuff = exdData->getField< int32_t >( row, 51 ); reqInstance = exdData->getField< uint32_t >( row, 52 ); - partyCondition = exdData->getField< uint8_t >( row, 55 ); + partyCondition = exdData->getField< uint8_t >( row, 54 ); } Sapphire::Data::InstanceContentBuff::InstanceContentBuff( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -3240,7 +3240,7 @@ Sapphire::Data::Item::Item( uint32_t row_id, Sapphire::Data::ExdDataGenerated* e materiaSlotCount = exdData->getField< uint8_t >( row, 84 ); isAdvancedMeldingPermitted = exdData->getField< bool >( row, 85 ); isPvP = exdData->getField< bool >( row, 86 ); - isGlamourous = exdData->getField< bool >( row, 87 ); + isGlamourous = exdData->getField< bool >( row, 88 ); } Sapphire::Data::ItemAction::ItemAction( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) @@ -4065,8 +4065,8 @@ Sapphire::Data::PublicContent::PublicContent( uint32_t row_id, Sapphire::Data::E name = exdData->getField< std::string >( row, 3 ); textDataStart = exdData->getField< uint32_t >( row, 4 ); textDataEnd = exdData->getField< uint32_t >( row, 5 ); - contentFinderCondition = exdData->getField< uint16_t >( row, 7 ); - additionalData = exdData->getField< uint16_t >( row, 8 ); + contentFinderCondition = exdData->getField< uint16_t >( row, 8 ); + additionalData = exdData->getField< uint16_t >( row, 9 ); } Sapphire::Data::PublicContentCutscene::PublicContentCutscene( uint32_t row_id, Sapphire::Data::ExdDataGenerated* exdData ) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index bca4b286..6fd20d74 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -60,8 +60,8 @@ namespace Sapphire::Network::Packets /////////////////////////////////////////////////// ChatBanned = 0x006B, - Playtime = 0x006C, // updated 4.4 - Logout = 0x0077, // updated 4.4 + Playtime = 0x006C, // updated 4.5 + Logout = 0x0077, // updated 4.5 CFNotify = 0x0078, CFMemberStatus = 0x0079, CFDutyInfo = 0x007A, @@ -73,11 +73,11 @@ namespace Sapphire::Network::Packets SocialRequestResponse = 0x00BB, // updated 4.1 CancelAllianceForming = 0x00C6, // updated 4.2 - Chat = 0x00F4, // updated 4.4 - SocialList = 0x00FB, // updated 4.4 + Chat = 0x00F7, // updated 4.5? + SocialList = 0x0103, // updated 4.5 - UpdateSearchInfo = 0x00FE, // updated 4.4 - InitSearchInfo = 0x00FF, // updated 4.4 + UpdateSearchInfo = 0x0106, // updated 4.5 + InitSearchInfo = 0x0107, // updated 4.4 ExamineSearchComment = 0x0102, // updated 4.1 ServerNotice = 0x0104, // updated 4.4 @@ -117,7 +117,7 @@ namespace Sapphire::Network::Packets GCAffiliation = 0x015D, // updated 4.4 - PlayerSpawn = 0x016D, // updated 4.4 + PlayerSpawn = 0x0175, // updated 4.5 NpcSpawn = 0x016E, // updated 4.4 ActorMove = 0x0170, // updated 4.4 ActorSetPos = 0x0172, // updated 4.4 @@ -133,7 +133,7 @@ namespace Sapphire::Network::Packets UpdateClassInfo = 0x017B, // updated 4.4 SilentSetClassJob = 0x017C, // updated 4.4 - seems to be the case, not sure if it's actually used for anything - InitUI = 0x017D, // updated 4.4 + InitUI = 0x0185, // updated 4.5 PlayerStats = 0x017E, // updated 4.4 ActorOwner = 0x017F, // updated 4.4 ? PlayerStateFlags = 0x0180, // updated 4.4 @@ -251,7 +251,7 @@ namespace Sapphire::Network::Packets SocialReqSendHandler = 0x00AE, // updated 4.1 CreateCrossWorldLS = 0x00AF, // updated 4.3 - ChatHandler = 0x00D3, // updated 4.3 + ChatHandler = 0x00D7, // updated 4.5 SocialListHandler = 0x00DB, // updated 4.3 ReqSearchInfoHandler = 0x00E0, // updated 4.3 @@ -290,7 +290,7 @@ namespace Sapphire::Network::Packets GMCommand1 = 0x0138, // updated 4.4 GMCommand2 = 0x0139, // updated 4.4 - UpdatePositionHandler = 0x013B, // updated 4.4 was 144 + UpdatePositionHandler = 0x013F, // updated 4.5 UpdatePositionInstance = 0x0183, // updated 4.3 InventoryModifyHandler = 0x0142, // updated 4.4 diff --git a/src/tools/exd_struct_test/main.cpp b/src/tools/exd_struct_test/main.cpp index 3c74893f..21c07566 100644 --- a/src/tools/exd_struct_test/main.cpp +++ b/src/tools/exd_struct_test/main.cpp @@ -21,7 +21,7 @@ Sapphire::Data::ExdDataGenerated g_exdData; using namespace Sapphire; //const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); -const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); +const std::string datLocation( "/mnt/c/Program Files (x86)/Steam/steamapps/common/FINAL FANTASY XIV Online/game/sqpack" ); int main() @@ -36,22 +36,14 @@ int main() return 0; } - - //Logger::info( "getting id list " ); - //auto idList = g_exdData.getGilShopIdList(); - - //Logger::info( "getting id list done" ); - //for( auto id : idList ) + auto gld = g_exdData.get< Sapphire::Data::ClassJob >( 1 ); + if( gld ) { - auto teri1 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 0 ); - Logger::info( "0 -> {0}", teri1->item ); - - auto teri2 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 1 ); - Logger::info( "1 -> {0} ", teri2->item ); - - auto teri3 = g_exdData.get< Sapphire::Data::GilShopItem >( 262440, 2 ); - Logger::info( "2 -> {0}", teri3->item ); + Logger::info( "got {0}", gld->name ); } + else + Logger::warn( "failed to get classjob {}", 1 ); + return 0; } From b4a972c514d14fc1d803100bae6d62a616972a46 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 8 Jan 2019 19:36:22 +1100 Subject: [PATCH 346/385] probably working server opcodes for 4.5 --- src/common/Network/PacketDef/Ipcs.h | 182 ++++++++++++++-------------- 1 file changed, 91 insertions(+), 91 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 6fd20d74..6a4d84f1 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -80,150 +80,150 @@ namespace Sapphire::Network::Packets InitSearchInfo = 0x0107, // updated 4.4 ExamineSearchComment = 0x0102, // updated 4.1 - ServerNotice = 0x0104, // updated 4.4 - SetOnlineStatus = 0x0105, // updated 4.4 + ServerNotice = 0x010C, // updated 4.5 + SetOnlineStatus = 0x010D, // updated 4.5 - CountdownInitiate = 0x010C, // updated 4.4 - CountdownCancel = 0x010D, // updated 4.4 + CountdownInitiate = 0x0114, // updated 4.5 + CountdownCancel = 0x0115, // updated 4.5 - BlackList = 0x0110, // updated 4.4 + BlackList = 0x0118, // updated 4.5 LogMessage = 0x00D0, - LinkshellList = 0x0117, // updated 4.4 + LinkshellList = 0x011F, // updated 4.5 - MailDeleteRequest = 0x0118, // updated 4.4 - ReqMoogleMailList = 0x0119, // updated 4.4 - ReqMoogleMailLetter = 0x011A, // updated 4.4 - MailLetterNotification = 0x011B, // updated 4.4 + MailDeleteRequest = 0x0120, // updated 4.5 + ReqMoogleMailList = 0x0121, // updated 4.5 + ReqMoogleMailLetter = 0x0122, // updated 4.5 + MailLetterNotification = 0x0123, // updated 4.5 - MarketBoardItemListingCount = 0x011C, // updated 4.4 - MarketBoardItemListing = 0x011D, // updated 4.4 - MarketBoardItemListingHistory = 0x0121, // updated 4.4 - MarketBoardSearchResult = 0x0125, // updated 4.4 + MarketBoardItemListingCount = 0x0125, // updated 4.5 + MarketBoardItemListing = 0x0126, // updated 4.5 + MarketBoardItemListingHistory = 0x012A, // updated 4.5 + MarketBoardSearchResult = 0x0139, // updated 4.5 - CharaFreeCompanyTag = 0x0127, // updated 4.4 - FreeCompanyBoardMsg = 0x0128, // updated 4.4 - FreeCompanyInfo = 0x0129, // updated 4.4 - ExamineFreeCompanyInfo = 0x013A, // updated 4.1 + CharaFreeCompanyTag = 0x013B, // updated 4.5 + FreeCompanyBoardMsg = 0x013C, // updated 4.5 + FreeCompanyInfo = 0x013D, // updated 4.5 + ExamineFreeCompanyInfo = 0x013E, // updated 4.5 - StatusEffectList = 0x0149, // updated 4.4 - Effect = 0x014C, // updated 4.4 - AoeEffect8 = 0x014F, // updated 4.4 - AoeEffect16 = 0x0150, // updated 4.4 - AoeEffect24 = 0x0151, // updated 4.4 - AoeEffect32 = 0x0152, // updated 4.4 - PersistantEffect = 0x0153, // updated 4.4 + StatusEffectList = 0x0151, // updated 4.5 + Effect = 0x0154, // updated 4.5 + AoeEffect8 = 0x0157, // updated 4.5 + AoeEffect16 = 0x0158, // updated 4.5 + AoeEffect24 = 0x0159, // updated 4.5 + AoeEffect32 = 0x015A, // updated 4.5 + PersistantEffect = 0x015B, // updated 4.5 - GCAffiliation = 0x015D, // updated 4.4 + GCAffiliation = 0x0165, // updated 4.5 PlayerSpawn = 0x0175, // updated 4.5 - NpcSpawn = 0x016E, // updated 4.4 - ActorMove = 0x0170, // updated 4.4 - ActorSetPos = 0x0172, // updated 4.4 + NpcSpawn = 0x0176, // updated 4.5 + ActorMove = 0x0178, // updated 4.5 + ActorSetPos = 0x017A, // updated 4.5 - ActorCast = 0x0174, // updated 4.4 + ActorCast = 0x017C, // updated 4.5 - PartyList = 0x0176, // updated 4.4 - HateList = 0x0177, // updated 4.4 + PartyList = 0x017E, // updated 4.5 + HateList = 0x017F, // updated 4.5 - ObjectSpawn = 0x0179, // updated 4.4 - ObjectDespawn = 0x017A, // updated 4.4 + ObjectSpawn = 0x0181, // updated 4.5 + ObjectDespawn = 0x0182, // updated 4.5 - UpdateClassInfo = 0x017B, // updated 4.4 - SilentSetClassJob = 0x017C, // updated 4.4 - seems to be the case, not sure if it's actually used for anything + UpdateClassInfo = 0x0183, // updated 4.5 + SilentSetClassJob = 0x0184, // updated 4.5 - seems to be the case, not sure if it's actually used for anything InitUI = 0x0185, // updated 4.5 - PlayerStats = 0x017E, // updated 4.4 - ActorOwner = 0x017F, // updated 4.4 ? - PlayerStateFlags = 0x0180, // updated 4.4 - PlayerClassInfo = 0x0181, // updated 4.4 - ModelEquip = 0x0182, // updated 4.4 - Examine = 0x0183, // updated 4.4 - CharaNameReq = 0x0185, // updated 4.4 + PlayerStats = 0x0186, // updated 4.5 + ActorOwner = 0x0187, // updated 4.5 + PlayerStateFlags = 0x0188, // updated 4.5 + PlayerClassInfo = 0x0189, // updated 4.5 + ModelEquip = 0x018A, // updated 4.5 + Examine = 0x018B, // updated 4.5 + CharaNameReq = 0x018D, // updated 4.5 SetLevelSync = 0x0186, // not updated for 4.4, not sure what it is anymore - ItemInfo = 0x018C, // updated 4.4 - ContainerInfo = 0x018D, // updated 4.4 - InventoryTransactionFinish = 0x018E, // updated 4.4 - InventoryTransaction = 0x018F, // updated 4.4 - CurrencyCrystalInfo = 0x0190, // updated 4.4 - InventoryActionAck = 0x0193, // updated 4.4 - UpdateInventorySlot = 0x0194, // updated 4.4 + ItemInfo = 0x0196, // updated 4.5 + ContainerInfo = 0x0197, // updated 4.5 + InventoryTransactionFinish = 0x0198, // updated 4.5 + InventoryTransaction = 0x0199, // updated 4.5 + CurrencyCrystalInfo = 0x019B, // updated 4.5 + InventoryActionAck = 0x019D, // updated 4.5 + UpdateInventorySlot = 0x019E, // updated 4.5 - EventPlay = 0x01A2, // updated 4.4 - EventOpenGilShop = 0x01A9, // updated 4.4 - DirectorPlayScene = 0x01A6, // updated 4.4 + EventPlay = 0x01AB, // updated 4.5 + DirectorPlayScene = 0x01AF, // updated 4.5 + EventOpenGilShop = 0x01B2, // updated 4.5 - EventStart = 0x01AB, // updated 4.4 - EventFinish = 0x01AC, // updated 4.4 + EventStart = 0x01B4, // updated 4.5 + EventFinish = 0x01B5, // updated 4.5 EventLinkshell = 0x1169, - QuestActiveList = 0x01BF, // updated 4.4 - QuestUpdate = 0x01C0, // updated 4.4 - QuestCompleteList = 0x01C1, // updated 4.4 + QuestActiveList = 0x01C8, // updated 4.5 + QuestUpdate = 0x01C9, // updated 4.5 + QuestCompleteList = 0x01CA, // updated 4.5 - QuestFinish = 0x01C2, // updated 4.4 - MSQTrackerComplete = 0x01C3, // updated 4.4 - MSQTrackerProgress = 0x01C4, // updated 4.4 + QuestFinish = 0x01CB, // updated 4.5 + MSQTrackerComplete = 0x01CC, // updated 4.5 + MSQTrackerProgress = 0x01CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 - QuestMessage = 0x01CA, // updated 4.4 + QuestMessage = 0x01D3, // updated 4.5 - QuestTracker = 0x01CF, // updated 4.4 + QuestTracker = 0x01D8, // updated 4.5 - Mount = 0x01DF, // updated 4.4 + Mount = 0x01E8, // updated 4.5 - DirectorVars = 0x01E1, // updated 4.4 + DirectorVars = 0x01EA, // updated 4.5 CFAvailableContents = 0xF1FD, // updated 4.2 - WeatherChange = 0x01FC, // updated 4.4 - PlayerTitleList = 0x01FD, // updated 4.4 - Discovery = 0x01FE, // updated 4.4 + WeatherChange = 0x0205, // updated 4.5 + PlayerTitleList = 0x0206, // updated 4.5? + Discovery = 0x0207, // updated 4.5? - EorzeaTimeOffset = 0x0200, // updated 4.4 + EorzeaTimeOffset = 0x0209, // updated 4.5 - EquipDisplayFlags = 0x020C, // updated 4.4 + EquipDisplayFlags = 0x0215, // updated 4.5 /// Housing ////////////////////////////////////// - LandSetInitialize = 0x0220, // updated 4.4 - LandUpdate = 0x0221, // updated 4.4 - YardObjectSpawn = 0x0222, // updated 4.4 - HousingIndoorInitialize = 0x0223, - LandPriceUpdate = 0x0224, // updated 4.4 - LandInfoSign = 0x0225, // updated 4.4 - LandRename = 0x0226, // updated 4.4 - HousingEstateGreeting = 0x0227, // updated 4.4 - HousingUpdateLandFlagsSlot = 0x0228, // updated 4.4 - HousingLandFlags = 0x0229, // updated 4.4 - HousingShowEstateGuestAccess = 0x022A, // updated 4.4 + LandSetInitialize = 0x0229, // updated 4.5 + LandUpdate = 0x022A, // updated 4.5 + YardObjectSpawn = 0x022B, // updated 4.5 + HousingIndoorInitialize = 0x022C, // updated 4.5 + LandPriceUpdate = 0x022D, // updated 4.5 + LandInfoSign = 0x022E, // updated 4.5 + LandRename = 0x022F, // updated 4.5 + HousingEstateGreeting = 0x0230, // updated 4.5 + HousingUpdateLandFlagsSlot = 0x0231, // updated 4.5 + HousingLandFlags = 0x0232, // updated 4.5 + HousingShowEstateGuestAccess = 0x0233, // updated 4.5 - HousingObjectInitialize = 0x022C, // updated 4.4 - HousingInternalObjectSpawn = 0x22D, // updated 4.4 + HousingObjectInitialize = 0x0235, // updated 4.45 + HousingInternalObjectSpawn = 0x236, // updated 4.5 - HousingWardInfo = 0x022F, // updated 4.4 - HousingObjectMove = 0x0230, // updated 4.4 + HousingWardInfo = 0x0238, // updated 4.5 + HousingObjectMove = 0x0239, // updated 4.5 - SharedEstateSettingsResponse = 0x023C, // updated 4.4 + SharedEstateSettingsResponse = 0x0245, // updated 4.5 - LandUpdateHouseName = 0x024D, // updated 4.4 + LandUpdateHouseName = 0x0257, // updated 4.5 - LandSetMap = 0x0251, // updated 4.4 + LandSetMap = 0x025B, // updated 4.5 ////////////////////////////////////////////////// DuelChallenge = 0x0277, // 4.2; this is responsible for opening the ui PerformNote = 0x0286, // updated 4.3 - PrepareZoning = 0x028F, // updated 4.4 + PrepareZoning = 0x0299, // updated 4.5 ActorGauge = 0x0292, // updated 4.3 // Unknown IPC types that still need to be sent // TODO: figure all these out properly - IPCTYPE_UNK_320 = 0x0249, // updated 4.4 - IPCTYPE_UNK_322 = 0x024B, // updated 4.4 + IPCTYPE_UNK_320 = 0x0253, // updated 4.5 + IPCTYPE_UNK_322 = 0x0255, // updated 4.5 }; From 32d55eff725876dfa2602834d2ae3d541729d49f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 8 Jan 2019 20:36:31 +1100 Subject: [PATCH 347/385] attempt at fixing client opcodes --- src/common/Network/PacketDef/Ipcs.h | 44 ++++++++++++++--------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 6a4d84f1..5bf703bd 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -166,7 +166,7 @@ namespace Sapphire::Network::Packets QuestFinish = 0x01CB, // updated 4.5 MSQTrackerComplete = 0x01CC, // updated 4.5 - MSQTrackerProgress = 0x01CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 + MSQTrackerProgress = 0xF1CD, // updated 4.5 ? this actually looks like the two opcodes have been combined, see #474 QuestMessage = 0x01D3, // updated 4.5 @@ -253,22 +253,22 @@ namespace Sapphire::Network::Packets ChatHandler = 0x00D7, // updated 4.5 - SocialListHandler = 0x00DB, // updated 4.3 - ReqSearchInfoHandler = 0x00E0, // updated 4.3 - ReqExamineSearchCommentHandler = 0x00E1, // updated 4.1 + SocialListHandler = 0x00DF, // updated 4.3 + ReqSearchInfoHandler = 0x00E4, // updated 4.3 + ReqExamineSearchCommentHandler = 0x00E5, // updated 4.1 - SetSearchInfoHandler = 0x00DE, // updated 4.3 + SetSearchInfoHandler = 0x00E2, // updated 4.3 - BlackListHandler = 0x00EC, // updated 4.3 - PlayerSearchHandler = 0x00E2, // updated 4.2 + BlackListHandler = 0x00F0, // updated 4.3 + PlayerSearchHandler = 0x00E6, // updated 4.2 - LinkshellListHandler = 0x00F4, // updated 4.3 + LinkshellListHandler = 0x00F8, // updated 4.4 - MarketBoardRequestItemListingInfo = 0x00FE, // updated 4.4 - MarketBoardRequestItemListings = 0x00FF, // updated 4.4 - MarketBoardSearch = 0x0103, // updated 4.4 + MarketBoardRequestItemListingInfo = 0x0102, // updated 4.4 + MarketBoardRequestItemListings = 0x0103, // updated 4.4 + MarketBoardSearch = 0x0107, // updated 4.4 - ReqExamineFcInfo = 0x010F, // updated 4.1 + ReqExamineFcInfo = 0x0113, // updated 4.1 FcInfoReqHandler = 0x011A, // updated 4.2 @@ -276,19 +276,19 @@ namespace Sapphire::Network::Packets ReqJoinNoviceNetwork = 0x0129, // updated 4.2 - ReqCountdownInitiate = 0x012F, // updated 4.4 - ReqCountdownCancel = 0x0130, // updated 4.4 - ClearWaymarks = 0x0131, // updated 4.4 + ReqCountdownInitiate = 0x0133, // updated 4.4 + ReqCountdownCancel = 0x0134, // updated 4.4 + ClearWaymarks = 0x0135, // updated 4.4 - ZoneLineHandler = 0x0133, // updated 4.4 - ClientTrigger = 0x0134, // updated 4.4 was 13D in 4.3 - DiscoveryHandler = 0x0135, // updated 4.4 + ZoneLineHandler = 0x0137, // updated 4.4 + ClientTrigger = 0x0138, // updated 4.4 was 13D in 4.3 + DiscoveryHandler = 0x0139, // updated 4.4 - AddWaymark = 0x013F, // updated 4.3 + AddWaymark = 0x0143, // updated 4.3 - SkillHandler = 0x0137, // updated 4.4 - GMCommand1 = 0x0138, // updated 4.4 - GMCommand2 = 0x0139, // updated 4.4 + SkillHandler = 0x013B, // updated 4.4 + GMCommand1 = 0x013B, // updated 4.4 + GMCommand2 = 0x013C, // updated 4.4 UpdatePositionHandler = 0x013F, // updated 4.5 UpdatePositionInstance = 0x0183, // updated 4.3 From 9f146f1bde787bb384cb5b380699716ead8220aa Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 8 Jan 2019 21:49:31 +1100 Subject: [PATCH 348/385] fix initzone packet size/structure --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index e1f3980e..d3900e27 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -759,7 +759,9 @@ struct FFXIVIpcInitZone : FFXIVIpcBasePacket< InitZone > uint32_t unknown9; uint32_t unknown10; uint32_t unknown11; + uint32_t unknown12[4]; Common::FFXIVARR_POSITION3 pos; + uint32_t unknown13; }; From 76ea5d8a270910e36ee01c555dbe8f429330cc9a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 8 Jan 2019 22:37:29 +1100 Subject: [PATCH 349/385] fix spawnpoint schema causing inserts to fail --- sql/schema/schema.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql index 18208d6e..26be0e43 100644 --- a/sql/schema/schema.sql +++ b/sql/schema/schema.sql @@ -34,7 +34,7 @@ CREATE TABLE `spawnpoint` ( `y` float NOT NULL, `z` float NOT NULL, `r` float NOT NULL, - `gimmickId` int(11) NOT NULL, + `gimmickId` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `spawngroupidx` (`spawnGroupId`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; From bddea6418929518281922e123a592dd54a277e5f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 8 Jan 2019 22:50:16 +1100 Subject: [PATCH 350/385] update client opcode update comments --- src/common/Network/PacketDef/Ipcs.h | 36 ++++++++++++++--------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 5bf703bd..472f565d 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -253,20 +253,20 @@ namespace Sapphire::Network::Packets ChatHandler = 0x00D7, // updated 4.5 - SocialListHandler = 0x00DF, // updated 4.3 - ReqSearchInfoHandler = 0x00E4, // updated 4.3 - ReqExamineSearchCommentHandler = 0x00E5, // updated 4.1 + SocialListHandler = 0x00DF, // updated 4.5 + ReqSearchInfoHandler = 0x00E4, // updated 4.5 + ReqExamineSearchCommentHandler = 0x00E5, // updated 4.5 SetSearchInfoHandler = 0x00E2, // updated 4.3 - BlackListHandler = 0x00F0, // updated 4.3 - PlayerSearchHandler = 0x00E6, // updated 4.2 + BlackListHandler = 0x00F0, // updated 4.5 + PlayerSearchHandler = 0x00E6, // updated 4.5 - LinkshellListHandler = 0x00F8, // updated 4.4 + LinkshellListHandler = 0x00F8, // updated 4.5 - MarketBoardRequestItemListingInfo = 0x0102, // updated 4.4 - MarketBoardRequestItemListings = 0x0103, // updated 4.4 - MarketBoardSearch = 0x0107, // updated 4.4 + MarketBoardRequestItemListingInfo = 0x0102, // updated 4.5 + MarketBoardRequestItemListings = 0x0103, // updated 4.5 + MarketBoardSearch = 0x0107, // updated 4.5 ReqExamineFcInfo = 0x0113, // updated 4.1 @@ -276,19 +276,19 @@ namespace Sapphire::Network::Packets ReqJoinNoviceNetwork = 0x0129, // updated 4.2 - ReqCountdownInitiate = 0x0133, // updated 4.4 - ReqCountdownCancel = 0x0134, // updated 4.4 - ClearWaymarks = 0x0135, // updated 4.4 + ReqCountdownInitiate = 0x0133, // updated 4.5 + ReqCountdownCancel = 0x0134, // updated 4.5 + ClearWaymarks = 0x0135, // updated 4.5 - ZoneLineHandler = 0x0137, // updated 4.4 - ClientTrigger = 0x0138, // updated 4.4 was 13D in 4.3 - DiscoveryHandler = 0x0139, // updated 4.4 + ZoneLineHandler = 0x0137, // updated 4.5 + ClientTrigger = 0x0138, // updated 4.5 + DiscoveryHandler = 0x0139, // updated 4.5 AddWaymark = 0x0143, // updated 4.3 - SkillHandler = 0x013B, // updated 4.4 - GMCommand1 = 0x013B, // updated 4.4 - GMCommand2 = 0x013C, // updated 4.4 + SkillHandler = 0x013B, // updated 4.5 + GMCommand1 = 0x013B, // updated 4.5 + GMCommand2 = 0x013C, // updated 4.5 UpdatePositionHandler = 0x013F, // updated 4.5 UpdatePositionInstance = 0x0183, // updated 4.3 From da67f6cae8d99df34c1e5b8312d4707a16db28cd Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 8 Jan 2019 17:08:48 +0100 Subject: [PATCH 351/385] Very rudementary spawn implementation and db fix --- sql/schema/inserts.sql | 1062 +++++++++++++------------ src/world/Actor/BNpc.cpp | 8 +- src/world/Actor/BNpc.h | 2 +- src/world/Actor/SpawnGroup.cpp | 2 +- src/world/Actor/SpawnGroup.h | 2 +- src/world/Actor/SpawnPoint.cpp | 10 + src/world/Actor/SpawnPoint.h | 3 + src/world/Manager/DebugCommandMgr.cpp | 2 +- src/world/ServerMgr.cpp | 5 +- src/world/Territory/Zone.cpp | 38 +- src/world/Territory/Zone.h | 1 + 11 files changed, 603 insertions(+), 532 deletions(-) diff --git a/sql/schema/inserts.sql b/sql/schema/inserts.sql index 4ebaea9d..8134e107 100644 --- a/sql/schema/inserts.sql +++ b/sql/schema/inserts.sql @@ -1,219 +1,240 @@ INSERT INTO `accounts` (`account_id`, `account_name`, `account_pass`, `account_created`, `account_status`) VALUES (1, 'Admin', 'Admin', 0, 2); - - -INSERT INTO `bnpctemplate` (`Id`, `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES -(1, 'littleladybug_49', 49, 49, 0, 0, 1, 4, 4, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(2, 'beecloud_57', 57, 395, 0, 0, 1, 4, 4, 60, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(3, 'watersprite_59', 59, 56, 0, 0, 1, 4, 4, 385, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(4, 'tinymandragora_118', 118, 405, 0, 0, 1, 4, 4, 297, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(5, 'wildjackal_138', 138, 399, 0, 0, 2, 4, 4, 160, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(6, 'woundedaurochs_323', 323, 358, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(7, 'megalocrab_326', 326, 561, 0, 0, 1, 4, 4, 148, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(8, 'lostlamb_338', 338, 392, 0, 0, 1, 4, 4, 287, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(9, 'pukhatchling_341', 341, 401, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(10, 'bogy_342', 342, 404, 0, 0, 1, 4, 4, 264, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(11, 'wharfrat_347', 347, 417, 0, 0, 1, 4, 4, 24, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(12, 'groundedpirate_348', 348, 421, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(13, 'groundedraider_349', 349, 418, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(14, 'CaptainPetyrPigeontoe_350', 350, 419, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100014b010304016b3b2b000001023b83000200006400320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(15, 'pugil_383', 383, 640, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(16, 'wespe_385', 385, 641, 0, 0, 1, 4, 4, 359, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(17, 'goblingambler_769', 769, 3099, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(18, 'strikingdummy_901', 901, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(19, 'mosslessgoobbue_1447', 1447, 354, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(20, 'SkogsFru_3184', 3184, 2928, 0, 0, 1, 4, 0, 57, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(21, 'galago_5', 5, 408, 0, 0, 1, 4, 4, 31, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(22, 'nestingbuzzard_12', 12, 299, 0, 0, 1, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(23, 'cavebat_38', 38, 364, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(24, 'windsprite_133', 133, 115, 0, 0, 1, 4, 4, 383, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(25, 'lightningsprite_135', 135, 117, 0, 0, 1, 4, 4, 384, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(26, 'Morabymole_205', 205, 409, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(27, 'firefly_306', 306, 129, 0, 0, 1, 4, 4, 78, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(28, 'rivertoad_313', 313, 349, 0, 0, 1, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(29, 'aurelia_324', 324, 563, 0, 0, 1, 4, 4, 279, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(30, 'wilddodo_339', 339, 393, 0, 0, 1, 4, 4, 173, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(31, 'packrat_351', 351, 1101, 0, 0, 2, 4, 4, 26, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(32, 'koboldpotman_751', 751, 378, 4297588937, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(33, 'kobolddustman_752', 752, 368, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(34, 'koboldsupplicant_754', 754, 372, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), -(35, 'Qiqirneggdigger_771', 771, 350, 0, 0, 2, 4, 4, 14, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(36, 'Cepheus_855', 855, 1058, 0, 0, 2, 4, 4, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(37, 'Barbastelle_3185', 3185, 2929, 0, 0, 1, 4, 0, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(38, 'grassraptor_2', 2, 411, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(39, 'gigantoad_26', 26, 26, 0, 0, 2, 4, 4, 126, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(40, '2ndCohorthoplomachus_55', 55, 1821, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(41, '2ndCohortlaquearius_61', 61, 1822, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(42, '2ndCohorteques_62', 62, 1823, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(43, '2ndCohortsecutor_63', 63, 1824, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(44, '2ndCohortsignifer_64', 64, 1825, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(45, 'junglecoeurl_117', 117, 352, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(46, 'dungmidgeswarm_136', 136, 396, 0, 0, 1, 4, 4, 58, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(47, 'giantpelican_178', 178, 366, 0, 0, 2, 4, 4, 154, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(48, '2ndCohortvanguard_201', 201, 1826, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(49, 'Bloodshorebell_312', 312, 361, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(50, 'apkallu_314', 314, 341, 0, 0, 1, 4, 4, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(51, 'goobbue_320', 320, 353, 0, 0, 1, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(52, 'mildewedgoobbue_321', 321, 355, 0, 0, 2, 4, 4, 198, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(53, 'largebuffalo_322', 322, 1313, 0, 0, 2, 4, 4, 138, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(54, 'snipper_325', 325, 560, 0, 0, 2, 4, 4, 149, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(55, 'koboldpatrolman_328', 328, 379, 8592556233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(56, 'koboldpitman_329', 329, 369, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(57, 'koboldmissionary_331', 331, 373, 4295951237, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), -(58, 'corkbulb_384', 384, 684, 0, 0, 1, 4, 4, 358, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(59, 'colibri_386', 386, 639, 0, 0, 2, 4, 4, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(60, 'BloodyMary_3186', 3186, 2930, 0, 0, 1, 4, 0, 190, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(61, 'arborbuzzard_12', 12, 13, 0, 0, 2, 4, 4, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(62, 'deadmansmoan_20', 20, 1854, 25772425417, 0, 2, 4, 4, 17, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(63, 'roseling_22', 22, 400, 0, 0, 1, 4, 4, 48, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(64, 'duskbat_38', 38, 363, 0, 0, 1, 4, 4, 98, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(65, 'plasmoid_46', 46, 46, 0, 0, 1, 4, 4, 80, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(66, 'axolotl_139', 139, 1831, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(67, 'Rothlytpelican_181', 181, 1181, 0, 0, 2, 4, 4, 157, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(68, 'sewermole_205', 205, 410, 0, 0, 1, 4, 4, 282, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(69, 'hedgemole_206', 206, 403, 0, 0, 1, 4, 4, 283, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(70, 'seawasp_312', 312, 360, 0, 0, 2, 4, 4, 280, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(71, 'fatdodo_340', 340, 394, 0, 0, 1, 4, 4, 174, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(72, 'pukhatchling_341', 341, 402, 0, 0, 1, 4, 4, 130, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(73, 'Rhotanobuccaneer_348', 348, 420, 4297654473, 8590262373, 2, 4, 4, 0, 0, 0x0100013201050601623b32000001013b83010102004b004b0001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(74, 'Rhotanobuccaneer_349', 349, 420, 8591966609, 0, 2, 4, 4, 0, 0, 0x0100013201040c01300305000001010304040302004b00320001, 0x170032000a000512000001000a000100080059000000000000000000000000000000000000000000), -(75, 'preyingmantis_396', 396, 1852, 0, 0, 2, 4, 4, 376, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(76, 'killermantis_397', 397, 644, 0, 0, 2, 4, 4, 374, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(77, 'lammergeyer_403', 403, 1853, 0, 0, 2, 4, 4, 41, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(78, 'shelfscaleSahagin_765', 765, 386, 4295688693, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(79, 'shelfclawSahagin_766', 766, 384, 0, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(80, 'Sapsashelfspine_767', 767, 1829, 4295688693, 4295426149, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000), -(81, 'shoaltoothSahagin_768', 768, 2526, 51539673889, 0, 2, 4, 4, 9, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020002000000000000000000000000000000000000000000000000000000000000000000), -(82, 'goblinhunter_769', 769, 225, 4297588937, 0, 1, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(83, 'shelfscaleReaver_773', 773, 347, 17182949577, 12885033061, 2, 4, 4, 0, 0, 0x05000132090101011a0101000001000100000000003200321045, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000), -(84, 'shelfclawReaver_774', 774, 345, 21474967853, 21474967903, 2, 4, 4, 0, 0, 0x0500013209020901ab15040000010115830300020064004b1045, 0x1700660008000d000800480008003f00080064000000000000000000000000000000000000000000), -(85, 'shelfeyeReaver_776', 776, 559, 30064902745, 4295033530, 2, 4, 4, 0, 0, 0x0500013209010c01149203000001029202020202006400321445, 0x170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000), -(86, 'Sapsaelbst_2832', 2832, 2527, 0, 0, 2, 4, 4, 182, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(87, 'whelkballista_2835', 2835, 2530, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(88, 'freshwhelkballista_2836', 2836, 2531, 0, 0, 1, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(89, 'reinforcedwhelkballista_2837', 2837, 2532, 0, 0, 2, 4, 2, 679, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(90, 'DarkHelmet_3187', 3187, 2931, 0, 0, 1, 4, 0, 722, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(91, 'coeurlpup_28', 28, 28, 0, 0, 2, 4, 4, 69, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(92, 'bumblebeetle_36', 36, 296, 0, 0, 1, 4, 4, 56, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(93, 'salamander_139', 139, 391, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(94, 'forestyarzon_159', 159, 381, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(95, 'wildwolf_303', 303, 1180, 0, 0, 2, 4, 4, 159, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(96, 'koboldpickman_329', 329, 370, 4295033233, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(97, 'koboldsidesman_330', 330, 376, 4295033533, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000), -(98, 'MamoolJabreeder_343', 343, 414, 4295033033, 4295426149, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(99, 'MamoolJaexecutioner_344', 344, 413, 4295033233, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(100, 'MamoolJainfiltrator_345', 345, 416, 4295033333, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000010001000000000000000000000000000000000000000000000000000000000000000000), -(101, 'MamoolJasophist_346', 346, 415, 51539673889, 0, 2, 4, 4, 10, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000020001000000000000000000000000000000000000000000000000000000000000000000), -(102, 'stoneshell_382', 382, 638, 0, 0, 1, 4, 4, 355, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(103, 'mudpugil_383', 383, 642, 0, 0, 1, 4, 4, 356, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(104, 'uragnite_389', 389, 643, 0, 0, 1, 4, 4, 364, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(105, 'Myradrosh_3188', 3188, 2932, 0, 0, 1, 4, 0, 360, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(106, '3rdCohorthoplomachus_55', 55, 53, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(107, '3rdCohortlaquearius_61', 61, 58, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(108, '3rdCohorteques_62', 62, 59, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(109, '3rdCohortsecutor_63', 63, 60, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(110, '3rdCohortsignifer_64', 64, 61, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(111, 'earthsprite_131', 131, 113, 0, 0, 1, 4, 4, 386, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(112, 'basilisk_173', 173, 304, 0, 0, 2, 4, 4, 135, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(113, 'ahriman_183', 183, 242, 0, 0, 2, 4, 4, 168, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(114, 'quartzdoblyn_188', 188, 275, 0, 0, 1, 4, 4, 177, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(115, 'magitekvanguard_200', 200, 269, 0, 0, 2, 4, 4, 213, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(116, 'grenade_327', 327, 270, 0, 0, 2, 4, 4, 101, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(117, 'FlameSergeantDalvag_3183', 3183, 2927, 0, 0, 1, 4, 0, 717, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000040001000000000000000000000000000000000000000000000000000000000000000000), -(118, 'antelopestag_4', 4, 4, 0, 0, 1, 4, 4, 62, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(119, 'ked_8', 8, 8, 0, 0, 2, 4, 4, 54, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(120, 'midlandcondor_13', 13, 566, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(121, 'wildhog_16', 16, 15, 0, 0, 2, 4, 4, 45, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(122, 'kedtrap_23', 23, 23, 0, 0, 2, 4, 4, 49, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(123, 'treant_24', 24, 24, 0, 0, 2, 4, 4, 104, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(124, 'adamantoise_34', 34, 34, 0, 0, 1, 4, 4, 94, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(125, 'hoverflyswarm_41', 41, 168, 0, 0, 1, 4, 4, 59, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(126, 'will-o-the-wisp_45', 45, 45, 0, 0, 1, 4, 4, 79, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(127, 'goblinthug_52', 52, 50, 8592556233, 0, 2, 4, 4, 6, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(128, 'Coeurlclawpoacher_79', 79, 140, 38654902773, 0, 2, 4, 4, 0, 0, 0x0401013208030201150c05000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), -(129, 'Coeurlclawhunter_81', 81, 139, 17179935321, 4295033530, 2, 4, 4, 0, 0, 0x04010132080301014a0c1e000000000c00000000003201000000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), -(130, 'Redbellylookout_84', 84, 52, 21474902217, 8590393445, 2, 4, 4, 0, 0, 0x02000132040102013a8a06000000028a02000302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), -(131, 'Redbellylarcener_86', 86, 172, 12885033261, 12885033311, 2, 4, 4, 0, 0, 0x0200013204010701224e06000000024e01020302003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), -(132, 'Redbellysharpeye_87', 87, 83, 8590131801, 4295033530, 2, 4, 4, 0, 0, 0x0200013204030401282605000000022685010102003201320000, 0x0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000), -(133, 'lesserkalong_130', 130, 112, 0, 0, 1, 4, 4, 99, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(134, 'deepvoiddeathmouse_143', 143, 170, 0, 0, 1, 4, 4, 27, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(135, 'riveryarzon_159', 159, 226, 0, 0, 2, 4, 4, 76, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(136, 'bigmouthorobon_302', 302, 235, 0, 0, 1, 4, 4, 270, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(137, 'stroper_304', 304, 238, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(138, 'revenant_305', 305, 236, 0, 0, 2, 4, 4, 265, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(139, 'Coeurlclawcutter_311', 311, 169, 17182556361, 17180328037, 2, 4, 4, 0, 0, 0x040101320801060189241e000000032403040301003201320000, 0x130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000), -(140, 'nix_27', 27, 27, 0, 0, 2, 4, 4, 127, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(141, '5thCohorthoplomachus_55', 55, 1809, 17180065993, 12885295205, 2, 4, 4, 0, 0, 0x0100013201020401110505000000030580040101001900320000, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(142, '5thCohortlaquearius_61', 61, 1810, 12884967825, 0, 2, 4, 4, 0, 0, 0x0100013201010201aa9206000000029202000302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(143, '5thCohorteques_62', 62, 1811, 12885230069, 0, 2, 4, 4, 0, 0, 0x02000132030203013c9236000000019201050300003201320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(144, '5thCohortsecutor_63', 63, 1812, 21475033389, 21475033439, 2, 4, 4, 0, 0, 0x0100013201010701984706000000024701020302003200320007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(145, '5thCohortsignifer_64', 64, 1813, 30064837609, 0, 2, 4, 4, 0, 0, 0x0100013201050301113b27000000043b850103000032004b0007, 0x0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000), -(146, 'mudpuppy_139', 139, 645, 0, 0, 2, 4, 4, 151, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(147, 'morbol_140', 140, 237, 0, 0, 2, 4, 4, 145, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(148, '5thCohortvanguard_201', 201, 1814, 0, 0, 2, 4, 4, 214, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(149, 'hippogryph_645', 645, 789, 0, 0, 2, 4, 4, 134, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(150, 'hapalit_647', 647, 793, 0, 0, 2, 4, 4, 188, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(151, 'gigasshramana_727', 727, 647, 4295040839, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), -(152, 'gigasbonze_728', 728, 646, 4295106370, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), -(153, 'gigassozu_729', 729, 648, 4295040844, 0, 2, 10, 4, 13, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000070001000000000000000000000000000000000000000000000000000000000000000000), -(154, 'lakecobra_777', 777, 1851, 0, 0, 2, 4, 4, 235, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(155, 'LeechKing_3191', 3191, 2935, 0, 0, 1, 4, 0, 600, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(156, 'blackbat_1037', 1037, 38, 0, 0, 3, 4, 2, 98, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(157, 'caveaurelia_1038', 1038, 1210, 0, 0, 3, 4, 2, 279, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(158, 'foper_7439', 7439, 5674, 0, 0, 2, 4, 4, 1906, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(159, 'spinner_7442', 7442, 5677, 0, 0, 2, 4, 4, 1542, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(160, 'velociraptor_2', 2, 412, 0, 0, 2, 4, 4, 96, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(161, 'ringtail_6', 6, 407, 0, 0, 1, 4, 4, 32, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(162, 'highlandcondor_13', 13, 398, 0, 0, 2, 4, 4, 40, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(163, 'basaltgolem_30', 30, 365, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(164, 'pteroc_65', 65, 62, 0, 0, 1, 4, 4, 131, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(165, 'coeurl_117', 117, 106, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(166, 'syntheticdoblyn_189', 189, 1836, 0, 0, 2, 4, 4, 178, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(167, 'UGhamaroroundsman_755', 755, 1832, 17182490825, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000100010001000000000000000000000000000000000000000000000000000000000000000000), -(168, 'UGhamaroquarryman_756', 756, 1833, 8590000529, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000200010002000000000000000000000000000000000000000000000000000000000000000000), -(169, 'elitebedesman_757', 757, 2521, 30064837309, 0, 2, 8, 2, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000400010004000000000000000000000000000000000000000000000000000000000000000000), -(170, 'koboldpriest_758', 758, 371, 30065755013, 0, 2, 8, 4, 5, 0, 0x0000000000000000000000000000000000000000000000000000, 0x01000300010003000000000000000000000000000000000000000000000000000000000000000000), -(171, 'youngcoeurl_2269', 2269, 2192, 0, 0, 2, 4, 4, 65, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(172, 'bombincubator_2833', 2833, 2528, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(173, 'prototypebombincubator_2834', 2834, 2529, 0, 0, 1, 4, 2, 678, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(174, 'UGhamarogolem_2838', 2838, 2522, 0, 0, 2, 4, 4, 81, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(175, 'Vuokho_3189', 3189, 2933, 0, 0, 1, 4, 0, 39, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(176, 'strikingdummy_8016', 8016, 541, 0, 0, 1, 4, 0, 480, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(177, 'cocoon_6358', 6358, 6275, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(178, 'Shinryu_6531', 6531, 5640, 0, 0, 3, 4, 0, 1893, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(179, 'tail_6930', 6930, 5789, 0, 0, 3, 4, 0, 1926, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(180, 'cocoon_6931', 6931, 6275, 0, 0, 3, 4, 0, 2007, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(181, 'ginryu_6932', 6932, 6272, 0, 0, 3, 4, 0, 1891, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(182, '(仮)鎖_6933', 6933, 6279, 0, 0, 3, 4, 0, 2054, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(183, 'icicle_6934', 6934, 6278, 0, 0, 3, 4, 0, 764, 393224, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(184, 'eyeofthestorm_6935', 6935, 6277, 0, 0, 3, 4, 0, 1453, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(185, 'hakkinryu_7299', 7299, 6273, 0, 0, 3, 4, 0, 1985, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(186, 'massivecocoon_7302', 7302, 6276, 0, 0, 3, 4, 0, 2008, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(187, 'saitaisui_6358', 6358, 7206, 0, 0, 1, 4, 0, 480, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(188, 'Otengu_8662', 8662, 7200, 4295827266, 0, 3, 4, 0, 2187, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(189, 'tenguember_8663', 8663, 7201, 0, 0, 3, 4, 0, 2281, 262155, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(190, 'Daidarabotchi_8664', 8664, 7202, 0, 0, 3, 4, 0, 2217, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(191, 'QitianDasheng_8665', 8665, 7203, 0, 0, 3, 4, 0, 2211, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(192, 'shadowofthesage_8666', 8666, 7204, 0, 0, 3, 4, 0, 2211, 262187, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(193, 'saitaisui_8737', 8737, 7206, 4295302988, 0, 3, 4, 3, 2218, 8, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(194, 'geomantickiyofusa_8738', 8738, 7207, 4295434050, 0, 3, 4, 1, 1813, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(195, 'geomanticapa_8739', 8739, 7208, 0, 0, 3, 4, 3, 1867, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(196, 'torrent_8740', 8740, 7209, 0, 0, 3, 4, 3, 1202, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(197, 'geomanticdhara_8741', 8741, 7210, 0, 0, 3, 4, 3, 1819, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(198, 'geomanticanila_8742', 8742, 7211, 0, 0, 3, 4, 4, 1923, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(199, '_8743', 8743, 108, 0, 0, 1, 4, 0, 1453, 262152, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(200, 'riverunkiu_8744', 8744, 7212, 0, 0, 3, 4, 2, 1719, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(201, 'jinmenju_8745', 8745, 7213, 0, 0, 3, 4, 0, 1281, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(202, 'riverhikagiri_8746', 8746, 7214, 0, 0, 3, 4, 3, 572, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(203, 'riverray_8747', 8747, 7215, 0, 0, 3, 4, 0, 1346, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(204, 'riverscorpion_8748', 8748, 7216, 0, 0, 3, 4, 2, 1057, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(205, 'dragonhornbill_8749', 8749, 7217, 0, 0, 3, 4, 2, 1944, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(206, 'dragonbifang_8750', 8750, 7218, 0, 0, 3, 4, 2, 953, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(207, 'whitebaboon_8751', 8751, 7219, 0, 0, 3, 4, 2, 2270, 262144, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(208, 'dragonweasel_8752', 8752, 7220, 0, 0, 3, 4, 3, 1948, 0, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(209, 'servantofthesage_8754', 8754, 7205, 0, 0, 3, 4, 0, 2270, 262147, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000), -(210, 'saitaisui_8780', 8780, 7206, 4295302988, 0, 1, 4, 0, 2218, 12, 0x0000000000000000000000000000000000000000000000000000, 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "littleladybug_49", 49, 49, 0, 0, 1, 4, 4, 57, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "beecloud_57", 57, 395, 0, 0, 1, 4, 4, 60, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "tinymandragora_118", 118, 405, 0, 0, 1, 4, 4, 297, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildjackal_138", 138, 399, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "woundedaurochs_323", 323, 358, 0, 0, 2, 4, 4, 138, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "megalocrab_326", 326, 561, 0, 0, 1, 4, 4, 148, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lostlamb_338", 338, 392, 0, 0, 1, 4, 4, 287, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pukhatchling_341", 341, 401, 0, 0, 1, 4, 4, 130, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bogy_342", 342, 404, 0, 0, 1, 4, 4, 264, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wharfrat_347", 347, 417, 0, 0, 1, 4, 4, 24, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "groundedpirate_348", 348, 421, 4297654473, 8590262373, 2, 4, 4, 0, 0, UNHEX( '0100013201050601623b32000001013b83010102004b004b0001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "groundedraider_349", 349, 418, 8591966609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201040c01300305000001010304040302004b00320001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "CaptainPetyrPigeontoe_350", 350, 419, 8591966609, 0, 2, 4, 4, 0, 0, UNHEX( '0100014b010304016b3b2b000001023b83000200006400320001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pugil_383", 383, 640, 0, 0, 1, 4, 4, 356, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wespe_385", 385, 641, 0, 0, 1, 4, 4, 359, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblingambler_769", 769, 3099, 4297588937, 0, 1, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "strikingdummy_901", 901, 541, 0, 0, 1, 4, 0, 480, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mosslessgoobbue_1447", 1447, 354, 0, 0, 1, 4, 4, 198, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "SkogsFru_3184", 3184, 2928, 0, 0, 1, 4, 0, 57, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "galago_5", 5, 408, 0, 0, 1, 4, 4, 31, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "nestingbuzzard_12", 12, 299, 0, 0, 1, 4, 4, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cavebat_38", 38, 364, 0, 0, 1, 4, 4, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "littleladybug_49", 49, 49, 0, 0, 1, 4, 4, 57, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "tinymandragora_118", 118, 405, 0, 0, 1, 4, 4, 297, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "windsprite_133", 133, 115, 0, 0, 1, 4, 4, 383, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildjackal_138", 138, 399, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Morabymole_205", 205, 409, 0, 0, 1, 4, 4, 282, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "firefly_306", 306, 129, 0, 0, 1, 4, 4, 78, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "rivertoad_313", 313, 349, 0, 0, 1, 4, 4, 126, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "aurelia_324", 324, 563, 0, 0, 1, 4, 4, 279, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "megalocrab_326", 326, 561, 0, 0, 1, 4, 4, 148, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wilddodo_339", 339, 393, 0, 0, 1, 4, 4, 173, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wharfrat_347", 347, 417, 0, 0, 1, 4, 4, 24, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "packrat_351", 351, 1101, 0, 0, 2, 4, 4, 26, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpotman_751", 751, 378, 4297588937, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "kobolddustman_752", 752, 368, 4295033233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldsupplicant_754", 754, 372, 4295951237, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000300010003000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirneggdigger_771", 771, 350, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Cepheus_855", 855, 1058, 0, 0, 2, 4, 4, 279, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mosslessgoobbue_1447", 1447, 354, 0, 0, 1, 4, 4, 198, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Barbastelle_3185", 3185, 2929, 0, 0, 1, 4, 0, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "grassraptor_2", 2, 411, 0, 0, 2, 4, 4, 96, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigantoad_26", 26, 26, 0, 0, 2, 4, 4, 126, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohorthoplomachus_55", 55, 1821, 17180065993, 12885295205, 2, 4, 4, 0, 0, UNHEX( '0100013201020401110505000000030580040101001900320000'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohortlaquearius_61", 61, 1822, 12884967825, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201010201aa9206000000029202000302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohorteques_62", 62, 1823, 12885230069, 0, 2, 4, 4, 0, 0, UNHEX( '02000132030203013c9236000000019201050300003201320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohortsecutor_63", 63, 1824, 21475033389, 21475033439, 2, 4, 4, 0, 0, UNHEX( '0100013201010701984706000000024701020302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohortsignifer_64", 64, 1825, 30064837609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201050301113b27000000043b850103000032004b0007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "junglecoeurl_117", 117, 352, 0, 0, 2, 4, 4, 65, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "windsprite_133", 133, 115, 0, 0, 1, 4, 4, 383, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dungmidgeswarm_136", 136, 396, 0, 0, 1, 4, 4, 58, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "giantpelican_178", 178, 366, 0, 0, 2, 4, 4, 154, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohortvanguard_201", 201, 1826, 0, 0, 2, 4, 4, 214, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Bloodshorebell_312", 312, 361, 0, 0, 2, 4, 4, 280, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "apkallu_314", 314, 341, 0, 0, 1, 4, 4, 190, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goobbue_320", 320, 353, 0, 0, 1, 4, 4, 198, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mildewedgoobbue_321", 321, 355, 0, 0, 2, 4, 4, 198, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "largebuffalo_322", 322, 1313, 0, 0, 2, 4, 4, 138, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "snipper_325", 325, 560, 0, 0, 2, 4, 4, 149, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpatrolman_328", 328, 379, 8592556233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpitman_329", 329, 369, 4295033233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldmissionary_331", 331, 373, 4295951237, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000300010003000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "corkbulb_384", 384, 684, 0, 0, 1, 4, 4, 358, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "colibri_386", 386, 639, 0, 0, 2, 4, 4, 360, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "BloodyMary_3186", 3186, 2930, 0, 0, 1, 4, 0, 190, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "arborbuzzard_12", 12, 13, 0, 0, 2, 4, 4, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "deadmansmoan_20", 20, 1854, 25772425417, 0, 2, 4, 4, 17, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "roseling_22", 22, 400, 0, 0, 1, 4, 4, 48, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "duskbat_38", 38, 363, 0, 0, 1, 4, 4, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "plasmoid_46", 46, 46, 0, 0, 1, 4, 4, 80, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildjackal_138", 138, 399, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "axolotl_139", 139, 1831, 0, 0, 2, 4, 4, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Rothlytpelican_181", 181, 1181, 0, 0, 2, 4, 4, 157, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sewermole_205", 205, 410, 0, 0, 1, 4, 4, 282, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hedgemole_206", 206, 403, 0, 0, 1, 4, 4, 283, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "firefly_306", 306, 129, 0, 0, 1, 4, 4, 78, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "seawasp_312", 312, 360, 0, 0, 2, 4, 4, 280, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "fatdodo_340", 340, 394, 0, 0, 1, 4, 4, 174, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pukhatchling_341", 341, 402, 0, 0, 1, 4, 4, 130, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Rhotanobuccaneer_348", 348, 420, 4297654473, 8590262373, 2, 4, 4, 0, 0, UNHEX( '0100013201050601623b32000001013b83010102004b004b0001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Rhotanobuccaneer_349", 349, 420, 8591966609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201040c01300305000001010304040302004b00320001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "preyingmantis_396", 396, 1852, 0, 0, 2, 4, 4, 376, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "killermantis_397", 397, 644, 0, 0, 2, 4, 4, 374, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lammergeyer_403", 403, 1853, 0, 0, 2, 4, 4, 41, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfscaleSahagin_765", 765, 386, 4295688693, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfclawSahagin_766", 766, 384, 0, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Sapsashelfspine_767", 767, 1829, 4295688693, 4295426149, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000020001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shoaltoothSahagin_768", 768, 2526, 51539673889, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000020002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblinhunter_769", 769, 225, 4297588937, 0, 1, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfscaleReaver_773", 773, 347, 17182949577, 12885033061, 2, 4, 4, 0, 0, UNHEX( '05000132090101011a0101000001000100000000003200321045'), UNHEX( '170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfclawReaver_774", 774, 345, 21474967853, 21474967903, 2, 4, 4, 0, 0, UNHEX( '0500013209020901ab15040000010115830300020064004b1045'), UNHEX( '1700660008000d000800480008003f00080064000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfeyeReaver_776", 776, 559, 30064902745, 4295033530, 2, 4, 4, 0, 0, UNHEX( '0500013209010c01149203000001029202020202006400321445'), UNHEX( '170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Sapsaelbst_2832", 2832, 2527, 0, 0, 2, 4, 4, 182, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "whelkballista_2835", 2835, 2530, 0, 0, 1, 4, 2, 679, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "freshwhelkballista_2836", 2836, 2531, 0, 0, 1, 4, 2, 679, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "reinforcedwhelkballista_2837", 2837, 2532, 0, 0, 2, 4, 2, 679, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "DarkHelmet_3187", 3187, 2931, 0, 0, 1, 4, 0, 722, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "coeurlpup_28", 28, 28, 0, 0, 2, 4, 4, 69, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bumblebeetle_36", 36, 296, 0, 0, 1, 4, 4, 56, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "salamander_139", 139, 391, 0, 0, 2, 4, 4, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "forestyarzon_159", 159, 381, 0, 0, 2, 4, 4, 76, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildwolf_303", 303, 1180, 0, 0, 2, 4, 4, 159, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpatrolman_328", 328, 379, 8592556233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpickman_329", 329, 370, 4295033233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldsidesman_330", 330, 376, 4295033533, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000400010004000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "MamoolJabreeder_343", 343, 414, 4295033033, 4295426149, 2, 4, 4, 10, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "MamoolJaexecutioner_344", 344, 413, 4295033233, 0, 2, 4, 4, 10, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "MamoolJainfiltrator_345", 345, 416, 4295033333, 0, 2, 4, 4, 10, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "MamoolJasophist_346", 346, 415, 51539673889, 0, 2, 4, 4, 10, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000020001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "stoneshell_382", 382, 638, 0, 0, 1, 4, 4, 355, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mudpugil_383", 383, 642, 0, 0, 1, 4, 4, 356, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "uragnite_389", 389, 643, 0, 0, 1, 4, 4, 364, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Myradrosh_3188", 3188, 2932, 0, 0, 1, 4, 0, 360, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohorthoplomachus_55", 55, 53, 17180065993, 12885295205, 2, 4, 4, 0, 0, UNHEX( '0100013201020401110505000000030580040101001900320000'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohortlaquearius_61", 61, 58, 12884967825, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201010201aa9206000000029202000302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohorteques_62", 62, 59, 12885230069, 0, 2, 4, 4, 0, 0, UNHEX( '02000132030203013c9236000000019201050300003201320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohortsecutor_63", 63, 60, 21475033389, 21475033439, 2, 4, 4, 0, 0, UNHEX( '0100013201010701984706000000024701020302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohortsignifer_64", 64, 61, 30064837609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201050301113b27000000043b850103000032004b0007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "earthsprite_131", 131, 113, 0, 0, 1, 4, 4, 386, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "basilisk_173", 173, 304, 0, 0, 2, 4, 4, 135, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ahriman_183", 183, 242, 0, 0, 2, 4, 4, 168, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "quartzdoblyn_188", 188, 275, 0, 0, 1, 4, 4, 177, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "magitekvanguard_200", 200, 269, 0, 0, 2, 4, 4, 213, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "grenade_327", 327, 270, 0, 0, 2, 4, 4, 101, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "FlameSergeantDalvag_3183", 3183, 2927, 0, 0, 1, 4, 0, 717, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000040001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "antelopestag_4", 4, 4, 0, 0, 1, 4, 4, 62, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ked_8", 8, 8, 0, 0, 2, 4, 4, 54, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "midlandcondor_13", 13, 566, 0, 0, 2, 4, 4, 40, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildhog_16", 16, 15, 0, 0, 2, 4, 4, 45, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "kedtrap_23", 23, 23, 0, 0, 2, 4, 4, 49, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "treant_24", 24, 24, 0, 0, 2, 4, 4, 104, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "adamantoise_34", 34, 34, 0, 0, 1, 4, 4, 94, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hoverflyswarm_41", 41, 168, 0, 0, 1, 4, 4, 59, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "will-o-the-wisp_45", 45, 45, 0, 0, 1, 4, 4, 79, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblinthug_52", 52, 50, 8592556233, 0, 2, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Coeurlclawpoacher_79", 79, 140, 38654902773, 0, 2, 4, 4, 0, 0, UNHEX( '0401013208030201150c05000000000c00000000003201000000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Coeurlclawhunter_81", 81, 139, 17179935321, 4295033530, 2, 4, 4, 0, 0, UNHEX( '04010132080301014a0c1e000000000c00000000003201000000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Redbellylookout_84", 84, 52, 21474902217, 8590393445, 2, 4, 4, 0, 0, UNHEX( '02000132040102013a8a06000000028a02000302003201320000'), UNHEX( '0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Redbellylarcener_86", 86, 172, 12885033261, 12885033311, 2, 4, 4, 0, 0, UNHEX( '0200013204010701224e06000000024e01020302003201320000'), UNHEX( '0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Redbellysharpeye_87", 87, 83, 8590131801, 4295033530, 2, 4, 4, 0, 0, UNHEX( '0200013204030401282605000000022685010102003201320000'), UNHEX( '0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lesserkalong_130", 130, 112, 0, 0, 1, 4, 4, 99, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "windsprite_133", 133, 115, 0, 0, 1, 4, 4, 383, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "deepvoiddeathmouse_143", 143, 170, 0, 0, 1, 4, 4, 27, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "riveryarzon_159", 159, 226, 0, 0, 2, 4, 4, 76, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bigmouthorobon_302", 302, 235, 0, 0, 1, 4, 4, 270, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "stroper_304", 304, 238, 0, 0, 2, 4, 4, 145, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "revenant_305", 305, 236, 0, 0, 2, 4, 4, 265, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Coeurlclawcutter_311", 311, 169, 17182556361, 17180328037, 2, 4, 4, 0, 0, UNHEX( '040101320801060189241e000000032403040301003201320000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "nix_27", 27, 27, 0, 0, 2, 4, 4, 127, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohorthoplomachus_55", 55, 1809, 17180065993, 12885295205, 2, 4, 4, 0, 0, UNHEX( '0100013201020401110505000000030580040101001900320000'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortlaquearius_61", 61, 1810, 12884967825, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201010201aa9206000000029202000302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohorteques_62", 62, 1811, 12885230069, 0, 2, 4, 4, 0, 0, UNHEX( '02000132030203013c9236000000019201050300003201320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortsecutor_63", 63, 1812, 21475033389, 21475033439, 2, 4, 4, 0, 0, UNHEX( '0100013201010701984706000000024701020302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortsignifer_64", 64, 1813, 30064837609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201050301113b27000000043b850103000032004b0007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mudpuppy_139", 139, 645, 0, 0, 2, 4, 4, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "morbol_140", 140, 237, 0, 0, 2, 4, 4, 145, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortvanguard_201", 201, 1814, 0, 0, 2, 4, 4, 214, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hippogryph_645", 645, 789, 0, 0, 2, 4, 4, 134, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hapalit_647", 647, 793, 0, 0, 2, 4, 4, 188, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigasshramana_727", 727, 647, 4295040839, 0, 2, 10, 4, 13, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000070001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigasbonze_728", 728, 646, 4295106370, 0, 2, 10, 4, 13, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000070001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigassozu_729", 729, 648, 4295040844, 0, 2, 10, 4, 13, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000070001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lakecobra_777", 777, 1851, 0, 0, 2, 4, 4, 235, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "LeechKing_3191", 3191, 2935, 0, 0, 1, 4, 0, 600, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildjackal_138", 138, 399, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Morabymole_205", 205, 409, 0, 0, 1, 4, 4, 282, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "megalocrab_326", 326, 561, 0, 0, 1, 4, 4, 148, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirneggdigger_771", 771, 350, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "blackbat_1037", 1037, 38, 0, 0, 3, 4, 2, 98, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "caveaurelia_1038", 1038, 1210, 0, 0, 3, 4, 2, 279, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "foper_7439", 7439, 5674, 0, 0, 2, 4, 4, 1906, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "spinner_7442", 7442, 5677, 0, 0, 2, 4, 4, 1542, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "velociraptor_2", 2, 412, 0, 0, 2, 4, 4, 96, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ringtail_6", 6, 407, 0, 0, 1, 4, 4, 32, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "highlandcondor_13", 13, 398, 0, 0, 2, 4, 4, 40, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "basaltgolem_30", 30, 365, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "plasmoid_46", 46, 46, 0, 0, 1, 4, 4, 80, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pteroc_65", 65, 62, 0, 0, 1, 4, 4, 131, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "coeurl_117", 117, 106, 0, 0, 2, 4, 4, 65, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "syntheticdoblyn_189", 189, 1836, 0, 0, 2, 4, 4, 178, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "grenade_327", 327, 270, 0, 0, 2, 4, 4, 101, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "UGhamaroroundsman_755", 755, 1832, 17182490825, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "UGhamaroquarryman_756", 756, 1833, 8590000529, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "elitebedesman_757", 757, 2521, 30064837309, 0, 2, 8, 2, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000400010004000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpriest_758", 758, 371, 30065755013, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000300010003000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "youngcoeurl_2269", 2269, 2192, 0, 0, 2, 4, 4, 65, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bombincubator_2833", 2833, 2528, 0, 0, 1, 4, 2, 678, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "prototypebombincubator_2834", 2834, 2529, 0, 0, 1, 4, 2, 678, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "UGhamarogolem_2838", 2838, 2522, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Vuokho_3189", 3189, 2933, 0, 0, 1, 4, 0, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "strikingdummy_8016", 8016, 541, 0, 0, 1, 4, 0, 480, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cocoon_6358", 6358, 6275, 0, 0, 1, 4, 0, 480, 262152, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Shinryu_6531", 6531, 5640, 0, 0, 3, 4, 0, 1893, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "tail_6930", 6930, 5789, 0, 0, 3, 4, 0, 1926, 262187, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cocoon_6931", 6931, 6275, 0, 0, 3, 4, 0, 2007, 262187, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ginryu_6932", 6932, 6272, 0, 0, 3, 4, 0, 1891, 262187, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "(仮)鎖_6933", 6933, 6279, 0, 0, 3, 4, 0, 2054, 262152, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "icicle_6934", 6934, 6278, 0, 0, 3, 4, 0, 764, 393224, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "eyeofthestorm_6935", 6935, 6277, 0, 0, 3, 4, 0, 1453, 262155, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hakkinryu_7299", 7299, 6273, 0, 0, 3, 4, 0, 1985, 262187, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "massivecocoon_7302", 7302, 6276, 0, 0, 3, 4, 0, 2008, 262187, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "saitaisui_6358", 6358, 7206, 0, 0, 1, 4, 0, 480, 262152, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Otengu_8662", 8662, 7200, 4295827266, 0, 3, 4, 0, 2187, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "tenguember_8663", 8663, 7201, 0, 0, 3, 4, 0, 2281, 262155, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Daidarabotchi_8664", 8664, 7202, 0, 0, 3, 4, 0, 2217, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "QitianDasheng_8665", 8665, 7203, 0, 0, 3, 4, 0, 2211, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shadowofthesage_8666", 8666, 7204, 0, 0, 3, 4, 0, 2211, 262187, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "saitaisui_8737", 8737, 7206, 4295302988, 0, 3, 4, 3, 2218, 8, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "geomantickiyofusa_8738", 8738, 7207, 4295434050, 0, 3, 4, 1, 1813, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "geomanticapa_8739", 8739, 7208, 0, 0, 3, 4, 3, 1867, 262147, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "torrent_8740", 8740, 7209, 0, 0, 3, 4, 3, 1202, 262147, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "geomanticdhara_8741", 8741, 7210, 0, 0, 3, 4, 3, 1819, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "geomanticanila_8742", 8742, 7211, 0, 0, 3, 4, 4, 1923, 262147, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "_8743", 8743, 108, 0, 0, 1, 4, 0, 1453, 262152, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "riverunkiu_8744", 8744, 7212, 0, 0, 3, 4, 2, 1719, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "jinmenju_8745", 8745, 7213, 0, 0, 3, 4, 0, 1281, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "riverhikagiri_8746", 8746, 7214, 0, 0, 3, 4, 3, 572, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "riverray_8747", 8747, 7215, 0, 0, 3, 4, 0, 1346, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "riverscorpion_8748", 8748, 7216, 0, 0, 3, 4, 2, 1057, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dragonhornbill_8749", 8749, 7217, 0, 0, 3, 4, 2, 1944, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dragonbifang_8750", 8750, 7218, 0, 0, 3, 4, 2, 953, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "whitebaboon_8751", 8751, 7219, 0, 0, 3, 4, 2, 2270, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dragonweasel_8752", 8752, 7220, 0, 0, 3, 4, 3, 1948, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "servantofthesage_8754", 8754, 7205, 0, 0, 3, 4, 0, 2270, 262147, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "saitaisui_8780", 8780, 7206, 4295302988, 0, 1, 4, 0, 2218, 12, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT INTO `discoveryinfo` (`id`, `map_id`, `discover_id`) VALUES @@ -9184,312 +9205,311 @@ INSERT INTO `zonepositions` (`id`, `target_zone_id`, `pos_x`, `pos_y`, `pos_z`, (6906489, 635, -82.295, 0, 8.925, 1.77, 2), (6906492, 635, 100.312, 2.731, -113.366, -0.481, 2); - INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -345.388947, 29.566580, -435.753174, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -326.154724, 22.296928, -401.389435, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -244.302933, 12.706744, -305.015015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -302.352875, 13.372667, -300.373566, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.955841, 14.688709, -320.949066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -298.585846, 18.829691, -359.511688, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -275.675323, 22.961006, -380.670990, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -287.137817, 23.382748, -389.604645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.550751, 14.436340, -352.420563, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -246.839096, 15.333442, -347.116882, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -238.478638, 15.116598, -356.427399, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -298.493927, 21.773628, -406.852844, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -269.881897, 14.504688, -322.676117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -272.379456, 14.096419, -318.399017, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -271.760620, 23.480957, -387.760803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -313.823639, 13.033344, -301.501678, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.390060, 14.245410, -457.364075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.925201, 11.680475, -450.890533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.758735, 14.201798, -461.258636, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -20.628424, 11.938938, -439.977692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.013916, 12.245436, -411.487366, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.313797, 12.305261, -314.432495, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.436157, 13.084026, -319.166626, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -198.334290, 12.714041, -360.448151, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.388519, 22.400616, -441.069214, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.498245, 23.399185, -446.166595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.239288, 15.520851, -399.813934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -151.488739, 14.084651, -391.802826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -176.903427, 17.061604, -407.286926, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -200.076279, 24.850960, -447.242645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -216.500504, 27.365400, -473.241180, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'CaptainPetyrPigeontoe_350' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.328251, 51.480759, -227.008499, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -202.810013, 25.391012, -460.873047, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -235.964523, 25.110031, -467.975067, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -199.158157, 14.872395, -396.241333, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -356.450928, 33.451496, -540.853455, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -320.785858, 33.649094, -583.676697, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -287.356537, 30.274841, -561.919373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -249.511169, 25.519537, -483.387787, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -325.360657, 27.810431, -472.799927, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -325.478394, 27.690218, -475.958923, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -335.211273, 36.900539, -595.765808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -318.070435, 36.132381, -591.977966, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -284.451721, 22.047026, -437.852325, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -324.255280, 27.436514, -526.413879, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -370.006042, 35.231163, -487.073334, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -373.264984, 35.985336, -488.961395, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -367.792694, 36.009693, -495.739410, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.364128, 44.093685, 107.553200, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.268539, 46.724518, 136.338364, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.707085, 46.311752, 136.568741, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -358.018402, 33.117115, -563.082275, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.515167, 26.205408, -541.412598, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.101288, 25.391624, -533.395813, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -337.221771, 29.686281, -470.199615, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -250.047440, 31.206146, -576.813782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -248.136444, 33.524559, -595.852356, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -257.733032, 33.874985, -597.828491, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -218.360413, 33.645500, -505.330078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.525543, 31.869547, -509.008240, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.430328, 32.272133, -539.706909, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.613434, 24.118813, -380.878967, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.744934, 23.897331, -381.954956, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -360.261383, 13.775493, -317.929474, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -348.834808, 17.254112, -347.665527, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -361.815643, 16.845871, -349.862549, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -355.717438, 17.858700, -352.803070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -377.243317, 26.654594, -393.651733, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -269.175659, 33.564983, -589.111572, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -207.435623, 32.362934, -565.767761, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -376.526489, 13.896859, -324.553253, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -243.008102, 30.253586, -570.609436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -242.243301, 27.613777, -521.215027, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -420.094330, 12.597722, -311.434753, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -421.849731, 12.510590, -311.934723, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -366.167694, 12.091236, -306.270905, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -58.299580, 55.042175, -257.084961, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.795578, 51.582069, -32.362301, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -28.510176, 47.169777, 7.795540, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.551537, 29.851358, 189.738098, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.262884, 29.407082, 179.518234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.720869, 29.053928, 181.304443, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 4.495502, 30.380665, 172.407364, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.329781, 43.955208, 155.005188, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.518013, 42.989105, 118.780502, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -68.166626, 43.007225, 107.905563, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -61.092205, 43.629402, 111.378723, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.234561, 24.291334, 201.717117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.773578, 23.680052, 196.653931, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.779884, 44.791718, 145.633957, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.749100, 44.637295, 143.545715, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -20.238331, 45.256756, 96.337936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.197205, 44.597931, 113.161217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -17.754864, 45.153427, 99.784790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.992736, 45.949394, 79.764458, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 38.424831, 44.679016, 151.940872, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -1.866279, 24.183924, 198.192154, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.086426, 45.106491, 148.815216, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.979847, 44.280872, 158.869125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.076588, 43.842724, 141.637619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 6.916911, 43.823296, 109.991936, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 8.591410, 27.638182, 213.702469, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.038459, 28.971394, 177.228210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -78.871887, 43.941578, 147.002197, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.422501, 44.440933, 100.524612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.934925, 34.461262, 183.119568, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.059912, 34.235126, 188.966934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.693619, 44.330345, 106.495529, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.875931, 44.091866, 155.132431, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 226.015106, 103.203697, -193.008301, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 253.558899, 105.985802, -214.094299, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 249.144104, 105.712402, -208.740204, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 244.738297, 105.634201, -204.802994, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.339401, 103.033401, -192.118607, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.287445, 48.774925, 60.049950, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 136.677322, 48.342552, 79.262779, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 133.528473, 48.270821, 77.847992, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.654846, 46.787323, 109.788803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 160.743423, 47.474777, 108.471367, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 158.584122, 47.480267, 108.689880, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 130.970322, 46.841934, 109.707222, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 137.913269, 46.945381, 111.036270, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.688782, 48.229084, 67.383591, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 97.552887, 47.999767, 67.711365, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 103.503937, 48.141754, 69.153397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 97.344719, 46.694866, 81.742561, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 87.444679, 46.425037, 120.738876, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 90.658997, 46.397110, 122.156570, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.095657, 46.443115, 117.044342, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 67.960510, 47.640308, 52.202122, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.655762, 47.580715, 63.141129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.554558, 44.667294, 102.201637, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.965904, 44.615826, 98.036583, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 136.463654, 48.419487, 76.549248, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 40.421417, 47.941963, 59.158360, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 108.089668, 46.433601, 104.064827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 107.238647, 46.415787, 105.150032, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.160904, 48.173183, 50.316780, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.956974, 44.704605, 99.881027, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.549736, 57.190449, 214.553436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 108.525253, 56.042690, 209.422760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.051403, 62.446442, 282.129425, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.944962, 61.911633, 276.713409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 70.922646, 56.992622, 225.424026, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.078773, 56.885986, 223.856781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.744236, 57.267506, 242.963562, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.297165, 51.641514, 183.525055, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.394539, 50.344387, 210.498703, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 40.321896, 51.855530, 215.426514, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.232063, 50.115326, 176.923965, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.856224, 50.262341, 179.783936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.554813, 50.278587, 197.175262, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.076126, 51.404095, 181.327026, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 106.336151, 46.542542, 146.037781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.529419, 46.496357, 146.864578, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.411922, 47.397476, 188.868851, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 55.938103, 48.382042, 192.162201, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.970428, 46.898621, 171.290314, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 93.714684, 60.832500, 257.380402, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.119259, 49.030884, 202.622604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 92.332085, 57.267738, 222.708633, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 108.338364, 46.940929, 155.956055, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.729538, 47.873699, 181.971664, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.173416, 47.911686, 182.943954, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 164.362442, 54.497883, 210.910156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 186.164612, 61.510574, 211.963135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 185.987930, 56.263233, 187.923843, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 189.434906, 56.940521, 186.661606, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 190.979340, 60.333061, 200.027451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.632248, 47.897598, 144.888062, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 182.115936, 48.810600, 152.630585, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.268143, 48.080715, 148.391388, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 157.007324, 60.923241, 263.217133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 150.500488, 60.850376, 263.248718, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 146.530884, 57.584221, 233.633820, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 128.803909, 60.055973, 252.144592, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 145.100479, 57.249226, 223.608643, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 139.773010, 57.841290, 226.183258, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 138.917557, 58.084629, 228.757660, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.993903, 51.633678, -102.898903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.280601, 52.694759, -114.580383, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -1.444717, 53.167774, -115.282059, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -10.711990, 49.782681, -90.152298, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.019464, 49.165482, -87.729759, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.284972, 47.606350, 19.982195, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.341366, 50.012794, -60.434803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 12.952839, 50.403530, -58.057556, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 113.687347, 65.358727, -110.080292, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 107.216080, 62.031960, -96.706802, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 103.731094, 62.449772, -104.154373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 77.290741, 49.612831, 0.064280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.626144, 49.297306, 4.778895, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 58.414593, 50.474976, -30.910105, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.437317, 55.576977, -68.951340, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 85.662285, 56.313927, -69.116508, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.731392, 56.317226, -50.044048, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.679257, 49.292801, -27.752888, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.263829, 49.315575, -35.775459, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.821778, 49.282028, -25.081804, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.025280, 49.349777, -5.415370, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 110.613480, 44.009529, 30.942867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 135.623169, 44.819939, 32.029903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.687996, 39.260262, 73.701317, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 33.763969, 42.924706, 30.753731, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -40.181015, 40.679569, 71.883293, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -35.683956, 40.893539, 66.671013, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 14.538228, 43.437088, 46.584648, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -7.279146, 42.683540, 49.196579, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 10.273220, 42.865303, 39.455036, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 12.479734, 43.282387, 45.144421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.434624, 43.189404, 29.502472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 111.008865, 44.158417, 28.212202, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.664551, 58.286568, 220.240219, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 176.934769, 58.712387, 226.232986, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.747498, 60.830498, 274.423828, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 203.351578, 50.978226, 152.279388, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 203.548477, 51.224773, 153.686295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 175.959366, 53.570744, 189.470215, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.472961, 59.694351, 248.385452, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.020264, 55.370415, -69.352966, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.170364, 49.838821, -68.782326, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.571152, 51.888584, -19.764053, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 0.773760, 47.606594, 19.565292, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.204916, 46.720444, -30.901602, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.168560, 60.444397, -183.799896, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.053051, 60.401928, -183.783249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.484033, 54.311432, -156.329300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.599415, 54.562565, -155.812119, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.257294, 53.970779, -149.141663, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.645035, 73.184212, -211.623795, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.141672, 57.110146, -193.953354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.450117, 56.646244, -187.739624, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 90.372414, 66.027878, -163.958939, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.131348, 66.684288, -163.940903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 20.829683, 56.061222, -157.242508, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.480545, 84.157242, -216.300781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.541214, 84.289825, -211.426544, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 116.005386, 67.953743, -142.929062, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 147.584274, 85.442703, -178.240295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 120.868019, 73.653473, -167.020645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.458961, 79.525024, -191.170502, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.138042, 55.869495, -155.769455, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 62.006012, 55.425858, -125.869781, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 67.963425, 56.335258, -114.111465, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.461700, 55.657070, -117.027122, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.746140, 67.471092, -137.663147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.973221, 68.098656, -146.530090, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.713570, 67.625000, -143.377502, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.486435, 62.308422, -165.237076, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.644001, 62.305508, -174.715576, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.222466, 63.667103, -168.534195, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.465408, 62.292175, -167.113373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.337288, 76.675690, -190.652710, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.189346, 79.572144, -191.947861, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 32.338299, 61.946495, -192.012360, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.009339, 56.475613, -164.606705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 23.313643, 60.965805, -188.869537, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.576660, 84.558853, -214.791580, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -27.866758, 50.403988, -112.145859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -22.229101, 52.105640, -126.614952, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.155701, 75.448906, -196.027115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.136543, 65.626106, -159.680511, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.210106, 58.112301, -202.417557, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblinfisher_769' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 118.425201, 49.484989, 10.177730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.565399, 49.175140, 13.275840, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.630295, 52.191109, 0.493474, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 132.709000, 52.181438, 1.958378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.385597, 49.234230, 11.315280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 119.187698, 52.657040, -17.502140, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.246078, 51.459473, 0.485654, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 105.423264, 48.900520, 14.196040, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.599762, 41.054874, -20.094616, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -144.017395, 42.810432, -34.186378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -151.625854, 41.554680, -26.096842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -88.918823, 43.204742, -17.722685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.965546, 48.252819, -102.441193, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -43.827671, 46.200661, 19.798168, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -88.788368, 45.940002, -76.557014, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -92.941093, 46.645500, -87.251610, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -95.979286, 46.592018, -79.841980, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -93.820442, 43.197647, -20.644436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.025192, 44.894878, -44.410561, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -80.286346, 41.722137, 35.408527, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -37.407791, 46.238487, 31.785645, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -38.814682, 46.454853, 21.565491, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.277756, 41.351612, -114.713394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -169.266388, 40.687962, -61.911877, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -166.801147, 40.699997, -64.838356, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -101.616592, 45.212582, -124.887360, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -69.954361, 45.725876, -168.462494, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.238197, 45.842312, -175.969131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.504135, 45.709385, -170.983658, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 21.688540, 55.237114, -249.336975, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 21.221603, 55.142979, -251.206650, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.021748, 57.039089, -254.211136, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -113.482796, 43.995758, -128.084473, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -40.277176, 47.483330, -213.903809, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.327293, 45.760178, -76.024277, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.675735, 42.961151, -44.501488, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.782242, 42.689823, -6.933394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -41.639767, 45.214169, 48.610859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -56.309303, 45.660477, 5.984929, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -158.192322, 41.106590, -259.243225, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -157.207184, 41.086460, -260.163269, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -63.083252, 53.688164, -278.163940, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -61.458576, 54.025280, -276.558777, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -75.620689, 51.382935, -245.781509, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.856087, 51.634296, -246.516800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.512016, 51.628036, -245.741226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -34.785534, 55.625523, -241.429657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -41.291142, 55.412819, -245.904037, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -36.349129, 55.578960, -242.701019, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.669804, 58.343464, -263.162811, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.807606, 58.136826, -264.724731, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -94.023582, 48.623371, -195.581924, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -99.659416, 48.012768, -197.962555, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.964874, 45.076744, -291.723206, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.894981, 45.337498, -289.692657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.786194, 52.336086, -244.533859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -69.183395, 46.165981, -305.605804, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -128.199341, 42.753056, -284.560211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.601761, 40.910500, -323.565857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.082520, 41.069489, -322.295532, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -107.989319, 40.836521, -325.645508, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.465107, 45.273018, -370.755737, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -84.872406, 40.256310, -352.051361, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -92.191818, 39.770813, -345.820923, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.554394, 46.347958, -350.959320, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.473343, 46.482601, -347.291534, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.033226, 45.865627, -371.026489, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.798931, 45.616169, -348.236267, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.499832, 47.053680, -242.012115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -103.995613, 46.643417, -239.056519, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -86.179993, 50.484299, -262.635132, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -91.691269, 48.634628, -262.121002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -86.452660, 50.134514, -264.685852, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -31.531996, 54.714878, -264.603302, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -99.645760, 47.782211, -202.084732, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'bogy_342' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -46.821171, 26.648108, -144.725708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -66.548843, 26.669088, -132.981705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.434685, 26.604877, -147.973160, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.879177, 25.679827, -158.735397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.083721, 25.258137, -153.525589, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.542942, 28.538513, -107.222115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.779339, 27.603992, -128.726578, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.617275, 26.943687, -131.619720, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -142.926392, 40.314911, -290.996735, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -136.354324, 40.829044, -294.772430, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -48.029114, 54.278446, -241.896179, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -51.581413, 47.112206, -311.481201, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -59.413441, 46.402538, -320.133301, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.052662, 45.887260, -356.489929, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -79.738419, 52.048374, -261.417542, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblingambler_769' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 141.935989, 51.884037, 14.806472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 127.126289, 50.907925, 8.929708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 111.503899, 49.330059, 5.172480, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 131.747849, 54.673080, -4.795078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.787727, 49.467583, 3.458449, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'woundedaurochs_323' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -133.282837, 45.754066, -217.522751, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -137.267136, 45.618862, -216.675995, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.235107, 44.624092, -218.372223, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -145.960434, 46.086548, -197.344772, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -200.232101, 40.129150, -261.332977, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -183.795349, 41.687798, -245.081512, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -185.965454, 40.926170, -254.748978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -229.571594, 38.839432, -179.839996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -193.934723, 41.542332, -149.620667, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -199.423264, 42.497814, -139.297287, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -178.735687, 43.134167, -176.989685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -128.948746, 47.443077, -164.533234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -120.582161, 47.869087, -173.918777, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -123.605011, 47.818863, -162.689804, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -176.681824, 41.645901, -248.407944, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -213.774139, 38.813259, -150.218536, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -178.535583, 43.628948, -203.078415, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedpirate_348' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -58.565269, 51.362320, -226.270996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -71.680878, 50.965340, -233.694061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -63.299820, 50.321152, -220.334595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -70.530807, 50.187229, -223.000702, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedraider_349' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.816235, 53.229298, -235.326721, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -64.206528, 51.132904, -224.558258, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -61.834114, 52.017464, -231.658936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -64.276390, 50.332390, -220.639801, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.290398, 40.322010, 573.227905, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -60.314915, 40.110245, 575.792114, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -23.620897, 57.285927, 508.625763, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.468094, 58.483242, 496.386566, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.365952, 51.727959, 549.140564, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -80.817833, 56.661560, 537.505066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.038486, 40.361443, 594.924194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.582077, 40.264317, 598.391479, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -47.518322, 40.373714, 589.616760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.468704, 60.077606, 502.455170, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.901297, 60.020233, 483.755493, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.339584, 55.511475, 507.494324, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.153000, 61.332344, 500.107452, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -26.130857, 46.304897, 551.232422, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.374115, 20.953936, 790.655029, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 143.236206, 21.654545, 825.135742, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.660950, 19.804104, 781.593994, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.304710, 19.838562, 780.547974, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.744324, 8.199000, 801.542908, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 243.316299, 6.389911, 769.215210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.922058, 6.183510, 770.405029, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.742157, 7.694178, 784.369446, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.827148, 7.973563, 787.824646, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 249.842758, 7.710939, 787.673218, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 254.667450, 6.616430, 780.404114, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 213.886414, 25.659513, 805.622131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 120.811371, 25.102345, 819.271606, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 130.967728, 24.257393, 811.500610, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 89.266502, 21.719769, 801.784729, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 24.453007, 16.388350, 783.661865, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 137.162354, 21.831797, 781.869629, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.695816, 25.808521, 757.471802, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -20.255661, 9.615396, 805.790283, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 63.823036, 57.064499, 724.493225, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.239830, 51.769058, 684.438110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.414261, 50.861782, 682.068054, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.595825, 48.787796, 645.855713, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.068626, 48.266430, 631.182983, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.219879, 56.385124, 716.791199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.848076, 54.702995, 729.259705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 76.545219, 56.787682, 715.667419, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.024426, 35.792965, 690.217041, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.733669, 37.499966, 688.096008, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.624710, 51.260124, 640.301331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.228138, 37.099724, 660.023499, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 202.664322, 47.130844, 40.074265, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.854713, 46.477989, 90.732613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 195.101822, 51.360214, 245.328018, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 72.700020, 51.071037, 160.793518, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -55.088406, 38.074795, 664.306946, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -55.645992, 38.772026, 660.599365, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -16.556934, 42.180382, 708.252197, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -48.496529, 39.269810, 663.201782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -51.500923, 37.012867, 674.528015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.145434, 42.288139, 706.083801, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -9.199514, 40.592983, 632.030334, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -2.834037, 40.855797, 621.834290, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.077995, 42.645485, 625.443604, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -127.880661, 8.199225, 662.265625, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -130.271301, 8.760700, 653.775574, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.043037, 3.029166, 802.280579, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -167.360901, 0.192970, 741.616821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.105789, 0.192970, 665.192383, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -115.657036, 3.732756, 702.174438, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.088989, 0.192970, 695.820801, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.347412, 0.192970, 686.557373, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.666428, 6.567122, 686.000122, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.962639, 0.833841, 754.274231, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -129.574051, 0.366468, 756.930542, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -78.763962, 1.965495, 762.245728, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -84.255234, 2.316301, 807.157654, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirneggdigger_771' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -152.054932, 4.573110, 658.858643, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -142.595551, 6.078611, 660.024963, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.952896, 1.569027, 667.861206, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -161.990494, 1.669328, 666.421692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -154.867004, 1.251185, 682.037842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.620605, 3.102985, 669.616089, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -140.565781, 1.617873, 716.305237, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -148.567505, 0.750069, 714.199524, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.139404, 0.759766, 712.362000, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 16.537346, 44.088127, 834.352844, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.156769, 48.701702, 870.370544, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.790197, 46.105656, 848.701172, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 33.608295, 45.270161, 818.972778, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 39.663425, 45.700741, 821.791626, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.545862, 42.715298, 761.550659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -23.999332, 42.612450, 757.071289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.315750, 48.374645, 869.111389, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.836945, 80.021965, -349.248810, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 565.216431, 83.095825, -306.819336, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 455.473480, 67.810539, -123.630386, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 375.830872, 66.879967, -107.765045, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.294533, 57.287041, 100.836075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.434448, 64.481537, 64.159660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 38.694130, 63.733395, 68.799767, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.532879, 63.661598, 72.839180, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.264307, 64.356834, 69.366142, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.045307, 64.700050, 69.941322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.921568, 59.784504, 131.917343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.174042, 55.436501, 110.212471, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 62.116161, 57.291229, 105.807106, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.838654, 54.671867, 108.062912, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.651297, 66.863014, 134.103897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.938428, 65.401749, 136.624969, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.469887, 60.747574, 155.960098, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.735464, 60.314034, 151.299133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 18.797560, 62.371342, 146.850464, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 15.261803, 63.832664, 106.379623, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 8.741608, 65.253212, 92.257599, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 10.913162, 64.974815, 95.179398, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.863117, 60.588356, 101.507233, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.030218, 63.985119, 76.442604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 31.129930, 64.289429, 69.652756, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 27.530689, 60.966793, 122.992928, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.288868, 62.641926, 152.854385, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 26.169344, 60.889542, 143.065704, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -4.847337, 67.396812, 93.828651, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.027699, 63.512241, 104.713951, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 15.466980, 64.467873, 94.719208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 9.859295, 65.085213, 95.879517, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 62.250587, 61.661640, 69.098907, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.971352, 49.198536, 165.746689, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.846367, 53.816826, 184.504410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 75.251656, 55.495728, 83.890091, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.773689, 55.349224, 146.168808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.102898, 56.397987, 192.556747, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.251907, 56.542641, 184.209198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.748695, 57.034107, 194.153549, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.792671, 49.618786, 77.402550, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.716331, 42.433197, 102.106140, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.801235, 55.842659, 148.313049, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.123383, 49.023922, 159.378052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.893135, 41.848457, 102.787659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 69.008430, 53.216988, 116.434280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.652199, 53.238319, 90.122620, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.246452, 41.570320, 140.122253, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.747833, 44.100784, 123.993179, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 113.454712, 42.345196, 100.948547, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.571033, 57.356201, 150.570984, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.304482, 55.216850, 151.417862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.113060, 56.823566, 191.221069, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.058884, 55.278248, 143.906418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.773232, 48.285912, 155.548477, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 96.166550, 49.865639, 74.718452, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 85.432297, 51.678909, 87.332741, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.098320, 48.875435, 75.065170, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 66.143730, 59.490005, 78.265450, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.377922, 44.330078, 130.574432, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.169579, 44.106537, 130.386093, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.143463, 54.169704, 106.052872, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 66.322388, 54.924107, 184.590073, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 107.798225, 43.411076, 104.886528, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.880043, 67.458412, 296.623932, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 146.188293, 56.939262, 245.259857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.376389, 55.812046, 253.175720, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 218.216965, 52.296589, 260.076874, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 250.545639, 36.017284, 235.457108, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.294846, 38.279060, 237.271759, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 184.790344, 57.019611, 269.565765, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 183.965454, 56.715187, 268.115601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 231.187881, 34.652035, 207.873764, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 224.039474, 36.268261, 204.835510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 196.098526, 47.213280, 225.738007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 227.140305, 29.550524, 166.387589, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.416321, 44.062424, 196.894440, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 181.006363, 43.680195, 196.869965, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 194.137177, 47.895237, 228.178833, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 153.964737, 64.167671, 315.198730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.200058, 63.085449, 309.499878, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.957993, 63.655045, 311.873932, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 111.903336, 68.743546, 300.661255, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.897453, 68.324715, 295.133606, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.350342, 58.937344, 274.565033, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 187.742783, 55.044521, 261.096619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 216.307541, 51.503906, 257.291656, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 210.699219, 52.011250, 257.106445, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.165085, 38.392544, 233.739548, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 187.012482, 45.573689, 216.676331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 229.088959, 35.555225, 208.886688, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.446045, 30.751472, 160.489532, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 215.104324, 31.385826, 159.672028, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 202.646469, 37.279289, 176.293274, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 177.782684, 44.458412, 196.410294, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.618759, 64.436661, 316.207001, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 151.824402, 58.862495, 273.164246, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.480591, 55.605923, -19.244616, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 411.791534, 54.457600, -15.883924, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 340.543945, 47.122749, 2.214485, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 341.583160, 59.172894, -66.581017, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'rivertoad_313' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.464691, 38.519886, 10.684659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.973785, 37.234180, 46.013535, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.570610, 38.011002, 11.701272, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 112.236008, 38.309334, 7.205370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 158.442062, 34.370682, 80.349533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 201.666260, 27.524975, 92.516258, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 167.294083, 33.590755, 69.887001, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 153.883469, 34.846092, 74.288155, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.986801, 44.935120, 43.373550, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 224.098328, 52.458633, 24.242342, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 225.999817, 50.733646, 30.041693, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 216.458954, 52.403118, 26.247066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 283.880951, 44.155113, 49.234337, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 283.263702, 41.858246, 62.531952, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 147.989014, 38.185940, 43.552074, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 144.362808, 37.922974, 41.341286, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 239.468414, 43.743702, 48.086830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 183.534637, 41.262024, 52.110279, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 189.437561, 44.447548, 45.937778, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 184.753876, 43.332886, 47.189186, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 244.019852, 36.014511, 69.926308, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 239.753937, 35.597179, 70.454971, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.136200, 50.403240, -13.734234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.027985, 66.161713, -72.315598, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 449.639343, 65.303894, -30.821619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 442.088135, 64.160156, -40.026783, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 455.870239, 55.518864, 3.272704, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 452.671356, 58.115013, -5.166701, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 446.943329, 54.652969, 9.564107, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.063202, 63.229794, -82.102165, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 406.717987, 63.644306, -86.204910, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 363.379822, 49.732506, -10.085771, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.224060, 47.922523, 0.497604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.791046, 48.713047, -2.706928, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 343.845428, 52.141602, -31.888533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 360.562195, 62.739830, -82.151413, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.901367, 59.727901, -61.852295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.609436, 58.438030, -55.536110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 378.224823, 59.231499, -57.050884, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.581940, 54.029053, 19.279335, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.587646, 43.731007, 50.083656, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 204.658096, 42.179863, 52.989445, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 198.983627, 30.358673, 80.954002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 222.884781, 51.949562, 26.155874, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.354279, 39.774525, 40.408192, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.209137, 43.212093, 55.520477, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 189.975784, 40.889244, 55.307251, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 210.336929, 42.171211, 53.502865, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 237.494446, 35.801193, 69.936287, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 272.746399, 46.054150, 36.030727, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 419.832550, 66.125008, -151.399826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 420.032501, 66.434593, -160.272156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 441.862000, 65.614815, -126.050018, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 420.231934, 66.234299, -158.144501, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 440.404388, 65.763298, -128.258789, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 434.575104, 65.704308, -127.933617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 477.989105, 66.571220, -146.671173, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 467.847137, 66.867813, -148.765076, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 396.368256, 67.786751, -122.644615, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 389.902344, 68.438660, -120.238037, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 388.816010, 68.861168, -123.025856, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 351.695587, 69.927399, -125.725754, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 357.954834, 69.522141, -123.606110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 338.487183, 69.478577, -132.456451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.440216, 68.663689, -118.765343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 382.010651, 70.166397, -134.019211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.114655, 70.161736, -143.352936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 390.056458, 69.155167, -140.515961, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 379.822540, 70.397919, -137.378250, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 353.897919, 71.613380, -144.669220, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 351.686157, 71.083435, -140.461899, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'nestingbuzzard_12' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 563.318542, 74.410683, -271.810699, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 558.802734, 74.299782, -270.912262, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 562.022949, 67.962524, -227.877182, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 561.874817, 68.546982, -232.569168, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 568.347595, 73.577438, -268.564087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 528.827637, 77.612038, -287.096863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 529.415894, 79.599213, -294.353790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 538.748596, 75.058891, -274.535675, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 526.682312, 69.835686, -239.749542, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 530.122192, 69.797562, -239.787460, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 519.848328, 69.790367, -238.733307, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 503.513336, 71.486565, -253.849579, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 636.123718, 70.413269, -279.500397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 630.403748, 72.509262, -286.077087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 390.160156, 79.890434, -358.783234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 406.324982, 88.096336, -399.940216, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 409.124756, 87.158852, -397.583557, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 608.237366, 70.946320, -265.898285, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 610.655884, 69.939163, -263.038879, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 605.864258, 71.952057, -270.677063, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 486.796844, 72.703178, -272.439667, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 391.271698, 69.652451, -264.843475, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 386.010254, 71.401779, -254.654022, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.482727, 72.436256, -254.333282, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 698.577209, 67.180229, -298.386536, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 660.052246, 67.938362, -279.966827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 650.803711, 68.715714, -280.011780, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 503.492828, 76.159920, -292.720673, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 496.124176, 76.771576, -299.405273, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.801544, 71.142204, -298.075897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 435.050293, 72.245720, -301.558533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 437.919464, 72.041763, -299.617920, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 358.943481, 73.582802, -315.218323, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 349.780762, 74.740341, -316.816895, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.961578, 74.875626, -321.563171, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.296844, 74.692383, -319.988922, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'cavebat_38' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 233.810730, 73.586388, -273.787872, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 230.908157, 73.656395, -274.500061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.013351, 75.401123, -303.494843, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 285.320435, 75.578819, -265.805176, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.612335, 75.364700, -256.060822, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 278.321503, 73.597031, -235.935959, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 279.102783, 75.624527, -255.437775, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 276.342987, 74.367447, -276.038605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 273.543701, 74.295868, -280.026184, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 236.170349, 75.241707, -332.495361, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 269.015045, 73.683670, -309.586090, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 294.723572, 76.246216, -320.254028, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 294.432831, 76.617851, -316.516144, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 604.106567, 66.095642, -214.137878, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 600.394043, 66.002831, -201.103607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 612.743591, 61.863049, -153.264847, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 627.916016, 61.467808, -169.797104, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 624.263489, 62.610977, -172.166809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 648.127930, 61.767151, -181.579208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 639.136414, 61.900654, -178.588196, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 681.631470, 64.906136, -221.895981, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 683.687561, 64.748779, -220.552322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 680.251587, 65.090805, -224.182343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 679.503357, 65.023972, -222.532898, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 677.820679, 65.290237, -226.927368, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 660.814392, 66.431412, -234.368591, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 664.211182, 66.330055, -236.155014, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 659.342285, 66.287399, -229.376236, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 624.711792, 66.610771, -233.029205, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 638.439331, 65.977501, -211.567291, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 631.613281, 66.114395, -213.538193, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 634.585144, 66.187698, -214.315826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 631.768738, 65.430511, -205.114731, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 623.746887, 66.586647, -229.050339, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 597.572388, 65.932281, -202.829224, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 642.739258, 60.376305, -174.569244, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 612.511047, 62.265327, -155.992722, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 609.297729, 62.941418, -152.494919, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 617.223999, 61.760101, -159.124969, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 581.315125, 63.941509, -162.398743, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 577.759399, 63.908821, -161.433121, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 724.959839, 64.510010, -239.044235, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 638.208984, 66.948196, -227.057037, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 614.043091, 61.041290, -146.291199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 622.407227, 62.909519, -172.249405, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 669.547180, 61.896049, -188.504135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 680.076843, 63.297722, -203.122406, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 676.648438, 60.998432, -187.351532, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'galago_5' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 398.594391, 86.938850, -395.725555, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 385.238983, 81.717377, -370.002289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.627106, 81.745964, -371.062988, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 408.861298, 82.580498, -374.672211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 415.871094, 84.370522, -384.927032, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 421.558533, 84.224174, -378.451904, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 474.853149, 87.663361, -351.449249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 461.404541, 85.193039, -345.374939, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 453.884369, 83.996025, -351.491241, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 428.101532, 77.176521, -330.722809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 393.978424, 76.234848, -331.036102, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 391.122162, 76.014748, -329.418121, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 397.105896, 76.976234, -336.823914, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 532.470581, 91.520287, -385.161407, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 530.146362, 91.061691, -381.784119, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 585.778381, 89.363602, -386.939697, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 656.953186, 78.282013, -356.964355, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 659.677429, 79.926849, -363.085175, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 652.882446, 78.775528, -358.058838, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 513.869385, 87.221413, -358.488800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 595.020081, 99.359871, -474.622345, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 596.605957, 101.166290, -483.939484, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 570.725525, 90.486488, -409.461853, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 639.963989, 75.507866, -317.423309, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 632.261536, 76.737450, -319.611938, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 633.949402, 75.880203, -312.780609, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 582.750244, 77.316277, -287.949646, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 587.057617, 78.599426, -296.115112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 583.232727, 83.028053, -322.348724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 553.331421, 86.246201, -343.383331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 549.962036, 86.221115, -335.880371, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 560.620544, 86.314621, -334.075378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 592.004578, 86.690178, -364.584747, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 596.683838, 87.444733, -370.492584, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'kobolddustman_752' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 517.050964, 96.222397, -459.080231, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsupplicant_754' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 540.745300, 96.927368, -467.733673, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 515.891357, 96.243935, -466.257721, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 372.246185, 28.720036, 741.938660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.128510, 32.244225, 708.033936, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'apkallu_314' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 431.721527, 13.975726, 655.738708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.286865, 13.533363, 675.021545, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.038330, 13.436191, 672.796204, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.155792, 13.959119, 667.944580, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 428.893768, 15.403847, 728.476685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 431.970032, 15.034657, 728.005493, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 419.314087, 17.541180, 740.629883, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.655792, 14.955267, 728.253418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.256073, 26.918362, 711.608459, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 391.824738, 27.036375, 715.442749, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.857025, 27.687635, 714.824097, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.999573, 24.816513, 693.751343, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 390.215973, 25.120920, 694.781433, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 348.497864, 31.759195, 729.429321, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 350.386688, 31.448929, 728.785889, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.810486, 34.494507, 699.025513, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.758575, 37.825691, 702.853455, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 290.597412, 43.343941, 745.739685, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 293.732147, 42.956852, 744.136902, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.556915, 34.175179, 254.676575, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 306.056396, 32.084148, 523.375427, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 519.251038, 40.352879, 551.294434, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 522.082275, 41.854961, 545.003601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 408.845581, 27.656450, 488.111481, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 334.707428, 36.504086, 423.652527, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 284.726166, 42.087921, 402.735870, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 331.623688, 38.916473, 327.954041, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 232.209991, 55.331787, 617.594421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 309.601624, 36.440109, 593.929993, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 467.868073, 31.961191, 556.752197, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'largebuffalo_322' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 401.396179, 35.054623, 222.734406, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 291.158844, 41.639423, 554.037903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 382.222351, 23.840349, 526.231934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.445770, 29.053875, 521.701782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.082886, 32.692612, 546.509521, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 338.258728, 30.744928, 455.014282, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 312.520599, 37.736408, 434.084412, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 287.192932, 43.570984, 369.160370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.216888, 40.808041, 354.268921, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.005096, 41.719658, 655.549744, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 429.784027, 17.786268, 593.056213, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.085052, 20.037975, 767.870605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 445.827515, 13.115939, 700.180786, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -251.967834, 55.243580, 192.459091, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.392525, 84.774948, -71.764091, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -133.050049, 53.990719, 636.436096, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -154.149033, 63.531036, 694.353882, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -93.800804, 59.829895, 661.897278, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 139.161118, 75.339279, 18.111082, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 143.705627, 73.825974, 6.568444, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -82.297890, 49.768051, 284.502075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 0.242683, 41.477894, 294.645935, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.170158, 77.173737, -19.728859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.733305, 41.245575, 346.205017, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.307009, 42.160084, 346.931152, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -138.975067, 50.036945, 336.339355, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -249.466690, 43.644550, 256.877136, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'giantpelican_178' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -104.625664, 38.006046, 460.946198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.058182, 40.457481, 509.719421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -45.960896, 52.462914, 571.532043, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -55.922276, 51.980762, 578.434753, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.414613, 49.896057, 509.611755, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -68.915504, 44.210693, 544.967285, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -40.563282, 46.516109, 523.413330, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.638638, 44.899216, 519.204956, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'grassraptor_2' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -247.816727, 50.680946, 207.230743, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -165.673279, 55.549320, 634.470032, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -96.612160, 57.008339, 639.203064, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -238.393372, 43.843601, 239.024277, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.185379, 45.833904, 224.204086, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -310.033844, 53.365177, 253.411087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.968750, 77.336281, -36.169071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 138.729279, 91.027161, -76.475929, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 134.107803, 90.189934, -75.294937, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.663414, 87.537735, -90.260155, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -273.921112, 52.281662, 219.633392, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 119.839310, 71.614166, 17.244806, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -106.747353, 60.368134, 674.293457, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.673538, 62.803711, 683.443542, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.672653, 76.129517, -8.622675, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -93.922867, 62.861301, 680.264038, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 125.975220, 83.588005, -59.488007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -164.992828, 62.249355, 682.125305, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -162.238342, 61.626869, 681.015198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.699371, 78.790428, -59.445129, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'snipper_325' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 504.239563, 9.219303, 685.512695, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 472.254883, 10.564069, 726.620361, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 463.649567, 11.310349, 698.085510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 465.627777, 12.656516, 602.219116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 505.001068, 9.415708, 632.124390, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 484.161926, 10.010633, 644.091370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 479.783447, 9.435391, 763.075867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 491.271393, 9.295449, 757.102295, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'corkbulb_384' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -169.711227, 48.139221, 183.802261, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -164.758163, 47.074829, 192.599335, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.419083, 48.265182, 173.729431, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -156.414856, 49.196289, 171.626007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.229843, 48.627834, 172.936539, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -92.152237, 46.671131, 177.070511, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.935814, 46.450417, 178.284103, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -107.492027, 43.030487, 199.119522, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.821083, 39.551929, 204.728775, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -132.937134, 48.119797, 170.243561, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.902214, 42.397972, 199.993027, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -60.683254, 41.885715, 202.716248, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.895386, 14.607802, 272.320496, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 464.343353, 13.820408, 277.345978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 439.958099, 16.836380, 332.653015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.443237, 36.219193, 127.508369, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 437.561188, 34.641438, 198.739212, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -114.906540, 45.180805, 408.725342, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -151.086990, 51.171707, 568.910889, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -308.923279, 45.098831, 464.539001, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -302.912323, 44.708927, 461.839172, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -241.525604, 44.868385, 494.086975, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -232.489197, 45.362839, 567.486084, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -193.868896, 53.098679, 610.272888, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -198.784103, 52.273563, 605.728699, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -276.964813, 44.047970, 328.564941, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -208.194763, 41.863541, 383.252441, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -203.964371, 41.149185, 379.679016, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.629547, 34.494732, 256.320251, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.019539, 34.731869, 223.876038, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'gigantoad_26' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -323.569305, 46.080910, 364.520782, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -197.242493, 34.694187, 264.061066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.788895, 35.770496, 242.080597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -131.930069, 35.678688, 237.568268, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -232.206055, 34.845417, 295.551453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -63.805229, 35.052498, 220.223587, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'Bloodshorebell_312' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 539.988159, 10.728779, 201.962463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 508.702332, 9.843376, 210.636063, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 488.300049, 11.344833, 231.362061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 512.723206, 9.212793, 222.065933, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 481.537384, 11.387406, 252.843628, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 525.416382, 9.520628, 250.390350, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 516.614746, 9.196991, 265.035309, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 510.098602, 9.718414, 210.246414, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'goobbue_320' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -142.779907, 45.538643, 390.789978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -8.204351, 40.733112, 387.741608, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.786427, 44.073502, 393.556488, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.590973, 54.865368, 620.933411, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -220.394562, 52.914051, 601.973694, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -140.082657, 48.086334, 541.116150, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -211.088623, 39.729519, 368.213989, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -213.953491, 47.186401, 443.753571, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -195.193054, 47.639656, 498.962738, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -277.234406, 44.030235, 334.434814, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -257.839233, 45.907104, 522.402100, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -196.695114, 46.416176, 571.984924, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'colibri_386' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 522.765137, 30.365868, 187.004410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 516.769836, 31.304415, 186.869141, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.407501, 36.752094, 115.708374, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 430.489563, 36.679100, 101.818298, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.955902, 36.557060, 103.377113, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 475.375275, 31.951229, 214.381836, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 483.411194, 43.005402, 164.453827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 511.686005, 49.788960, 136.333237, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 500.406738, 46.853142, 143.340286, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 415.773193, 35.943077, 154.037125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.130280, 34.927956, 166.278198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 427.614624, 35.188046, 171.682129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.695526, 36.421738, 194.230072, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.050262, 13.037590, 185.272095, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 456.832764, 12.846014, 149.105515, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'junglecoeurl_117' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -87.302818, 61.613789, 350.757111, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -121.799904, 52.516403, 326.409454, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -102.978989, 46.322708, 283.227692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -143.837524, 40.508278, 285.981903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -186.847992, 38.187733, 344.288849, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -170.481018, 40.745045, 317.857147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.847977, 48.664265, 344.132172, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -126.912247, 48.245762, 314.641449, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 333.649597, 38.490589, 164.717346, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.680969, 39.330353, 169.159546, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -87.352127, 45.814068, 567.012634, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -24.314640, 52.265717, 546.747131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.086487, 37.975540, 475.008118, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'mildewedgoobbue_321' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.688431, 44.764317, 553.852051, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.476135, 36.519455, 219.916962, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.658203, 37.686790, 233.860397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 322.804413, 37.674561, 206.378204, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 313.557495, 38.419243, 219.506363, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 325.863403, 37.460819, 205.065903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.045197, 38.194221, 236.654907, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldmissionary_331' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 339.655701, 36.864342, 239.408051, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 315.073486, 38.121010, 233.173004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.614807, 40.290474, 194.957336, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorthoplomachus_55' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 472.982330, 76.196999, -58.989597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 371.606262, 76.322876, -20.744659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 187.608551, 74.710724, -2.765123, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 285.295349, 76.650215, -0.718120, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortlaquearius_61' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.150146, 76.196999, -8.852811, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 297.365143, 76.319992, -19.353390, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 431.955353, 76.196999, -108.918213, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 205.328918, 73.958359, -23.871384, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorteques_62' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 354.466187, 76.065430, -67.588791, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 389.015991, 76.084824, -102.386803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 481.615387, 77.197006, -107.208000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 429.465088, 76.203674, -63.431820, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 436.628632, 76.196999, -101.585655, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 228.454910, 75.939194, -8.190249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.298004, 74.848045, -23.727840, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.697388, 76.196999, -39.613617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.136505, 76.397003, -61.814331, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 413.997803, 76.325714, 0.872293, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 335.799988, 76.196999, -11.489540, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsecutor_63' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 452.249542, 76.228813, -128.922562, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 301.524933, 76.289238, -16.579481, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 205.523087, 75.581001, -33.315983, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 411.744904, 76.196999, -5.216177, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsignifer_64' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 359.907318, 76.619888, -39.989422, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 401.510406, 79.863983, -80.450699, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, 1.148477, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, -34.551071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 211.275253, 74.969193, -10.168123, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 275.107452, 76.457809, -22.407925, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 376.375610, 79.997002, -55.369541, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 474.943909, 76.196991, -97.530579, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 448.056213, 79.863983, -48.739960, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortvanguard_201' ) , 50, 2778 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 355.095093, 76.213654, -93.768280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 368.403473, 76.478249, -103.176918, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.683380, 76.196999, -97.358223, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 465.146515, 76.196999, -78.248222, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 432.725006, 76.196999, -41.925694, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 393.013885, 76.262604, -41.708679, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 661.376892, 16.868380, 444.546478, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 600.877197, 5.880996, 485.953308, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 598.322144, 5.898227, 483.624512, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'roseling_22' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 747.951599, 50.427887, 357.928772, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 750.353027, 50.083611, 360.748383, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 743.340820, 44.356922, 397.143066, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 678.437561, 19.654554, 435.200378, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 667.057800, 20.397568, 429.583344, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 741.121460, 28.184546, 441.007660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 734.497192, 26.854353, 442.302002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 672.214539, 14.595839, 442.895569, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 719.658081, 40.786228, 365.821228, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 715.957581, 39.597771, 371.410339, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 657.032166, 41.796482, 338.018616, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 687.857300, 42.032818, 339.103790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 677.403137, 41.886250, 357.998016, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 696.959045, 28.637814, 408.641937, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 694.449768, 34.261051, 390.357208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 706.790405, 28.210888, 410.849121, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'sewermole_205' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 610.036804, 35.572445, 344.129456, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 608.844360, 34.301891, 347.554077, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 589.346008, 29.897394, 350.330688, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 619.494202, 27.583639, 374.089874, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 621.858521, 29.944971, 367.900574, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 619.407898, 29.057913, 369.502777, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 586.461548, 28.951075, 351.303070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 585.813171, 28.438513, 352.369751, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 622.800171, 41.141388, 327.561768, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 622.963623, 41.739059, 320.949005, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 602.817566, 30.726345, 355.777466, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 617.181580, 32.516930, 357.289886, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 643.447693, 23.634590, 398.243011, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 635.017883, 24.391804, 392.765808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 635.004395, 20.669270, 404.579987, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 598.226685, 25.550039, 368.222595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 634.595825, 42.144840, 321.818115, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'arborbuzzard_12' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 506.149567, 2.814311, 418.210938, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 516.260681, 1.855386, 421.547974, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 448.871796, 9.227687, 418.364410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 511.570709, 3.457108, 411.553375, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 461.846924, 12.663937, 362.355682, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 450.908691, 9.735098, 386.559052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.675018, 10.103431, 384.870239, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 490.583740, 8.330388, 397.629272, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 510.636200, 16.715385, 353.222382, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 448.888367, 5.203311, 276.677948, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 522.148376, 23.025820, 338.460297, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 549.980774, 37.888100, 297.108398, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 560.540100, 24.185499, 348.622803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 557.885254, 29.173893, 333.929108, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 554.530212, 29.420858, 329.752747, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 562.316833, 33.890800, 318.024475, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 503.762207, 17.623161, 322.609985, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 514.717102, 22.343367, 297.317657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 529.777893, 26.199690, 320.881897, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_348' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 611.903076, 43.327553, 310.701385, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 607.670898, 42.955601, 306.352112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 601.489197, 43.952782, 299.576599, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 607.933411, 44.651409, 294.689972, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_349' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 590.237366, 46.126652, 286.961273, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 585.551025, 44.082901, 293.967102, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 600.182373, 43.941280, 299.534485, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 604.942139, 46.820461, 284.395782, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'hedgemole_206' ) , 15, 319 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 240.009308, -11.875637, 94.363434, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 236.622910, -12.374062, 95.346664, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 270.845459, -9.754198, 101.272354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 268.099945, -9.356598, 95.027283, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 267.954834, -8.345027, 88.461983, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 242.214783, -13.903976, 118.906860, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 249.788513, -12.784965, 108.927460, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.353348, -13.125180, 119.497467, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 218.270966, -15.558857, 108.854996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 222.898697, -14.414904, 103.984398, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 15, 319 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 301.762268, 3.169765, 70.885086, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 291.185822, -11.798216, 131.701752, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 346.115662, -19.054857, 220.172867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.560944, -7.906649, 201.375565, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 414.154724, -8.001914, 208.562607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 308.206299, 3.224269, 66.798668, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.874359, -13.722762, 140.560760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 298.710693, -14.609919, 146.761963, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 307.000458, -20.029356, 160.336914, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 15, 319 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.115234, -12.237656, 93.315231, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 278.200012, -9.068469, 105.533852, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 264.399048, -16.985626, 162.506134, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 266.914124, -16.392138, 157.156372, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 324.282349, -4.017180, 105.255798, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rothlytpelican_181' ) , 16, 344 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 134.495255, -15.960920, 55.492996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 162.879456, -14.323977, 79.460434, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 173.172256, -12.719238, 113.497765, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 195.181580, -8.629279, 65.083954, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 119.722115, -17.771116, 161.300476, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 93.570320, -15.437970, 163.421646, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.031578, -15.878393, 123.544548, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 127.459404, -14.926886, 94.082710, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 16, 344 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.393642, -1.974696, -13.929848, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.976189, -2.045702, -13.768462, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.400002, -2.953552, -16.400000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 384.199646, 14.428646, 32.482605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 172.820511, -14.820461, 60.165451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 3.016516, -22.292753, 53.719463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.071075, 4.564421, 80.886124, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.787872, 4.598518, 83.138847, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 151.129349, -12.239421, 101.233078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 149.609390, -12.477910, 100.059769, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'killermantis_397' ) , 16, 344 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.943352, -3.992505, -26.552906, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.919285, -3.706397, -31.336760, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.056923, -3.885968, -62.313755, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 99.506714, -10.486404, 8.971105, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.148802, -22.535498, 50.525768, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -14.729313, -22.401009, 41.722015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 24.571882, -23.505068, 112.018021, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 6.203632, -24.387508, 109.371689, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.153160, -22.274078, 64.863579, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 19, 420 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.519829, -0.915667, -68.345375, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.276382, -2.694968, -61.816307, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.460457, -1.391993, -58.048004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 89.436523, -0.989940, -60.869198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.697441, -2.455795, -50.182808, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 77.607559, -2.221285, -61.116398, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'preyingmantis_396' ) , 40, 1732 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -279.919220, -39.905281, 656.459167, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -275.170227, -39.782280, 655.657288, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -253.976105, -37.625439, 564.579956, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -314.709747, -38.249912, 623.179077, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -343.226685, -40.837242, 665.661011, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -389.110626, -40.132030, 655.361572, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.610077, -39.364208, 701.057129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -242.819107, -37.835190, 663.537170, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 40, 1732 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -367.344208, -39.756889, 693.627441, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -258.862610, -38.845234, 656.123657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -290.473724, -38.221050, 625.219788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.641068, -38.717575, 499.031586, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -249.695206, -37.244095, 497.706360, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -221.257446, -38.644001, 506.923462, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.924347, -36.732006, 477.895660, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -259.013824, -39.834621, 440.567963, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -288.734344, -39.829880, 425.177887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -306.641113, -40.615318, 415.293915, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.500275, -39.220528, 433.955505, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.037277, -38.624527, 514.310486, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -244.434479, -37.127861, 547.532959, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lammergeyer_403' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -450.986206, -37.787945, 738.352051, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -476.749207, -37.986050, 757.037903, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -483.847992, -37.370193, 736.790588, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -449.547180, -37.671715, 733.113403, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -502.139069, -36.506023, 743.624451, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -448.947144, -36.675556, 703.180054, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -474.291046, -36.357124, 712.860901, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.666382, -41.931458, 742.759705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -333.599945, -41.347382, 708.581604, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -333.698303, -41.775959, 714.647217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -290.457306, -41.281891, 688.647827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -242.258255, -40.055676, 710.315002, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'deadmansmoan_20' ) , 42, 1941 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.771606, -41.212288, 735.835693, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -346.306793, -41.448574, 720.441650, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.640503, -41.655495, 697.187317, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -308.085052, -41.953552, 708.300720, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -286.262238, -41.513474, 697.558167, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -262.640625, -41.512302, 722.137085, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -231.341949, -41.249001, 734.726685, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 42, 1941 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -438.858093, -34.486282, 671.690613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -444.367584, -36.737885, 712.967957, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.395172, -37.043217, 719.711182, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -469.749176, -37.181816, 722.876709, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -469.493256, -37.631023, 748.576294, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'whelkballista_2835' ) , 44, 4300 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -96.910004, -30.450001, -92.839996, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -91.264221, -30.197689, -128.465698, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -84.733398, -29.587280, -110.399101, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.730499, -32.303410, -133.012894, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -103.441002, -31.479370, -116.075401, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -166.464432, -35.424061, -11.169662, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -204.166534, -39.734409, -90.640930, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -192.958786, -40.200939, -43.811974, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.541470, -23.889269, -92.920448, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -227.317398, -40.194572, -88.486130, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -158.070892, -33.927280, -101.886833, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.532974, -29.059402, -141.626770, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -59.227985, -24.572134, -117.284523, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -129.817825, -32.226665, -109.254219, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -189.200836, -38.028507, -83.829842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.513153, -30.945234, 1.708608, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleSahagin_765' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -213.979187, -40.301193, -87.161430, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -38.060734, -21.651909, -161.480682, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -75.913696, -28.427610, -146.562897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -155.277664, -34.216839, -89.592522, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -143.651108, -26.894556, 20.560968, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.166702, -32.339401, -135.991302, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -104.014999, -31.623831, -118.950104, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -155.565796, -38.010250, -31.357361, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawSahagin_766' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -75.944153, -27.532305, -144.487701, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -101.024223, -30.306547, -149.355865, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -190.973221, -36.762527, -111.709793, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.365509, -31.385445, -102.356194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -85.840622, -29.611879, -107.485497, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -157.610504, -38.071289, -31.235229, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.234207, -38.051666, -76.633934, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -132.165466, -30.458733, -8.729252, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfspineSahagin_767' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -94.161926, -30.635151, -89.379402, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -48.966251, -22.665247, -124.681503, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -106.523300, -31.509951, -130.479904, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -166.765900, -32.578060, 5.874695, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -215.871918, -40.822292, -67.836021, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.256203, -30.084669, -124.693199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -115.534233, -26.784563, 18.541813, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.201096, -32.487724, -113.122444, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsaelbst_2832' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -274.764923, -40.703537, -336.407104, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -277.360535, -41.199173, -352.245148, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -257.346191, -41.214268, -330.312500, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -218.294724, -40.989071, -291.742096, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -181.207321, -41.844490, -270.081940, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -196.028442, -41.727314, -288.479828, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'freshwhelkballista_2836' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.392303, -41.489319, -349.569000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -283.527893, -41.916561, -357.747803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.894806, -41.733459, -359.090607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -293.720886, -41.641911, -367.788208, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.062988, -42.038639, -367.910309, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalscaleSahagin_765' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -223.208710, -41.764877, -196.344330, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -168.981369, -40.908073, -290.732086, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalclawSahagin_766' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.990204, -41.031559, -289.265289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -212.413269, -41.816219, -228.919693, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalspineSahagin_767' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -237.445602, -41.977600, -231.189499, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -243.732407, -41.032051, -179.705597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -237.476196, -42.008121, -307.362488, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -197.619598, -41.428280, -317.036713, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -202.472000, -42.008121, -244.739395, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoaltoothSahagin_768' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -147.081696, -41.031559, -291.035309, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.826675, -41.672653, -219.247238, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.340927, -40.254555, -214.701431, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -203.427094, -41.483276, -281.547546, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -139.955750, -40.404739, -240.812851, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -265.469360, -42.719551, -266.499634, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -281.116913, -42.008121, -359.151611, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.307190, -42.008121, -365.072113, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -293.720886, -41.580872, -346.913910, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.652802, -41.672421, -327.657013, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.652802, -41.733459, -365.011108, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -228.354919, -39.483036, -345.774384, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.453400, -41.580872, -359.822998, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'axolotl_139' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -390.927277, -34.285240, -295.150085, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.479279, -36.514393, -288.353485, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -371.290802, -37.204941, -296.766418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -355.628601, -37.750099, -302.916290, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'reinforcedwhelkballista_2837' ) , 48, 5138 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -423.105713, -33.005535, -367.492004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -415.392700, -33.236031, -358.443909, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -425.528412, -33.066349, -357.686798, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -395.040802, -38.559631, -343.953613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -377.859192, -39.444641, -348.989105, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'seawasp_312' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -373.559967, -39.256435, -203.779465, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.283478, -39.316368, -202.468887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -393.575012, -41.767242, -203.534607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -360.035217, -38.911335, -222.539642, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -354.089874, -39.660213, -201.978973, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -355.678864, -37.158779, -241.068436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -350.930023, -37.643482, -237.743713, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'trenchtoothSahagin_768' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -78.263550, -26.108219, -70.908691, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.338928, -25.642410, -74.728661, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.901482, -25.768646, -86.375961, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleReaver_773' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -441.402222, -40.701698, -233.601974, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawReaver_774' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -441.245209, -39.475101, -220.111496, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfeyeReaver_776' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -441.435974, -38.926212, -213.282013, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfscale_765' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -422.721344, -33.686390, -326.296539, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -415.514801, -33.350899, -355.147888, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -344.364044, -39.466038, -361.109711, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -425.589386, -33.107040, -354.529510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -361.484436, -35.257927, -411.014862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -352.739044, -38.351639, -377.168549, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -319.625488, -39.391800, -300.050995, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -440.940002, -32.821819, -363.149506, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -425.913300, -32.916882, -368.407501, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -458.416687, -32.786930, -362.740295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -397.546295, -37.902161, -342.084900, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -350.843597, -35.153549, -405.412476, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -370.744995, -35.287498, -414.281708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -375.469208, -39.479321, -346.811401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.930511, -39.354549, -298.395599, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'wildwolf_303' ) , 20, 445 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -381.951752, -1.865713, 212.042023, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -371.391357, -0.687764, 196.625290, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.788086, -4.146658, 249.937302, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -424.664642, -4.389118, 254.018524, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -462.297302, -7.249224, 236.271515, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -398.920288, -2.606930, 180.822937, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -448.650696, -11.947705, 209.230209, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -402.708191, -3.109433, 174.303268, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 20, 445 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -422.501465, -7.614745, 201.604248, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -388.824432, -2.578248, 177.678131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -354.077728, 0.536767, 174.858154, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -465.114685, -3.054204, 249.472595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -467.935242, -2.167278, 250.799210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -439.207886, -7.911947, 241.229767, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 21, 483 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.281189, -1.188653, 102.061584, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -435.544128, -0.955348, 123.893471, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -437.993896, -1.031299, 126.314613, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -414.902252, -2.773921, 160.474014, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'stoneshell_382' ) , 21, 483 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -422.713104, -2.312514, 137.219559, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -373.282501, -2.801552, 149.988815, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -371.671844, -2.430629, 156.019821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -396.004242, -2.555122, 148.152954, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -383.427673, -2.876643, 160.658722, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -403.971313, -2.240242, 157.015625, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -405.759705, -2.889138, 139.678970, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -391.970581, -2.744184, 146.105545, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -380.797363, -2.897662, 146.567444, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'forestyarzon_159' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -414.757141, -3.022781, 28.021654, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -405.892303, -2.628568, 43.051041, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -515.360107, -3.022781, -9.979798, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -522.299805, -3.022781, -10.434307, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -483.240540, -3.022781, -1.752226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -426.197021, -2.781258, 25.197863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -432.669647, -2.654341, 20.002827, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -432.868530, -2.043492, 62.119469, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -475.415741, -2.053370, 23.742413, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'coeurlpup_28' ) , 23, 558 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -592.409119, -0.896684, 0.386436, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -564.974304, -0.983113, -13.998669, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -591.289734, -2.385894, -32.616730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -626.554626, -2.556157, -3.032897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -644.733398, -2.579175, 5.788857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -592.026917, -0.139966, 8.961593, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 23, 558 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -589.191589, -1.701380, -16.803839, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -581.001099, -1.248399, -12.149311, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -555.803711, -1.936794, -2.565444, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldfootman_328' ) , 24, 595 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -377.173157, 38.711910, 29.792322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -404.069885, 35.812199, 36.532841, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -489.859711, -2.618297, 38.082218, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -396.071106, 43.296131, -2.805411, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -439.528412, 32.168262, 55.036327, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.465546, 36.479664, 26.908142, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -484.342163, -1.634364, 24.240206, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpickman_329' ) , 24, 595 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -491.041992, -2.412468, 34.461601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -428.479553, 38.496067, 14.828461, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -402.817291, 36.296867, 33.293110, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -391.328400, 44.270889, -5.423687, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -476.028992, 29.465151, 52.901867, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -477.677368, 27.532982, 57.619347, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -480.850861, -1.622468, 35.452560, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 24, 595 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -380.239441, 40.455021, 15.811886, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -467.829315, 31.729000, 45.958958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -427.287354, 35.776600, 40.411327, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'mudpugil_383' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 561.284851, -1.738799, 205.528839, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 623.663635, -2.932235, 132.726913, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 640.196655, -3.022781, 174.134933, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 645.843750, -2.975219, 170.168198, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 638.579102, -2.995459, 186.706192, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 584.620300, -2.303465, 169.148834, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 593.450562, -2.844428, 139.766556, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 574.049438, -2.987645, 137.301453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 580.756775, -2.611646, 131.970093, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 664.319397, -2.598749, 162.226898, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 542.460022, -2.149217, 151.568039, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 541.605957, -3.010482, 157.341522, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 601.389954, -2.892532, 128.130249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 617.788452, -2.952927, 183.668243, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 661.936829, -1.528112, 134.098465, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 595.966858, -1.835564, 221.160812, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 695.272278, 0.237290, 145.195099, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 570.693848, -1.735677, 191.361359, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 685.403076, -0.007515, 122.931915, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 593.693115, -2.607079, 207.171448, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 619.854187, -3.022781, 198.036560, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 705.063721, -0.073885, 131.977234, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'uragnite_389' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 450.240051, -2.881454, 177.001404, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 397.457977, -2.500741, 180.186234, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 437.507446, -2.849627, 192.575226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 439.095184, -2.668610, 187.743286, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 363.489441, -2.988054, 127.097084, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.101715, -2.852393, 141.769638, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 394.360138, -2.946918, 141.727402, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 415.567535, -3.022781, 152.113510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 358.055237, -2.438254, 31.307247, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 373.647980, -2.204629, 21.426832, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 376.822510, -2.764290, 20.605335, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 361.111664, -2.359983, 141.265671, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.486603, -2.883696, 54.215927, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 386.960846, -2.544994, 180.465637, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 321.662354, -1.706533, 0.576895, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 299.033508, -2.221566, 89.648232, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 339.212128, -0.687913, 207.471146, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 321.650604, -2.761652, 82.931305, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 381.731079, 2.535215, -15.226002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 344.894470, -0.917974, 206.625656, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 358.525208, 2.440526, -4.988740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 359.317413, -0.445646, 214.080124, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 338.428162, -2.649891, 100.926704, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 351.069305, 0.455040, 2.362295, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 298.613068, -2.510823, 96.570503, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 352.498535, -2.229944, 192.390152, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 274.326050, -3.022781, 220.717575, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 247.186829, -3.022781, 246.639771, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 275.964752, -3.022781, 218.849091, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'salamander_139' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 330.537537, -2.184135, 153.375824, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 305.825378, -3.022781, 146.717667, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 296.616180, -3.013719, 160.163116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 276.898376, -3.022781, 81.090591, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 286.759888, -3.022781, 38.590855, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 293.494293, -3.022781, 38.362095, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 325.467896, -2.961442, 28.651447, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 287.232941, 22.459917, -94.937210, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 339.338654, 28.810354, -152.997025, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 369.648438, 23.634579, -124.963051, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 334.573517, 13.179729, -64.033875, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.261505, 24.531950, -141.892105, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 262.362488, 26.421909, -92.842506, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsidesman_330' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 374.994720, 25.746836, -131.705902, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 261.838196, 34.373199, -145.137985, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 259.484711, 26.393141, -94.860497, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 314.082611, -2.220537, 16.427921, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 304.273346, -3.022781, 127.453300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 250.051987, -2.988935, 83.435684, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 243.946030, -2.814081, 36.932377, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 327.924103, -2.738626, 94.117409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.596893, -3.008550, 85.275566, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 154.950455, 25.137733, 220.499100, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -98.540382, 85.807083, -350.417999, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.565582, 82.029961, -330.553619, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -187.955566, 82.418648, -242.364868, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -68.849266, 77.210121, -228.975296, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -32.679142, 78.788490, -197.195984, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.138035, 76.590508, -179.011887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -138.190628, 74.867424, -197.155426, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -115.129318, 69.254097, -164.934433, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 122.724625, 28.303354, 58.724297, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 160.029358, 37.028255, -21.424707, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.821182, 37.507317, -27.008282, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -261.132935, 64.443398, -90.575928, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -167.294601, 66.193542, -115.411652, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.072603, 12.420581, 249.430618, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 9.859401, 26.299496, 161.978531, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -201.519424, 76.680183, -189.318375, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -45.378353, 4.594343, 327.925201, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.113718, 9.739895, 301.944397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -264.697968, 84.737694, -278.522827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 88.354134, 17.421412, 203.354218, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 8.481019, 31.876749, 95.327995, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 102.454002, 21.556597, 133.843796, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -267.482941, 83.303230, -182.044739, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'basilisk_173' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -2.600920, 24.342901, 176.407578, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -26.477421, 23.268620, 166.940125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.336456, 29.613770, 53.853245, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 28.270794, 31.794752, 85.501617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.731804, 27.457956, 86.951363, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 153.025681, 26.303059, 60.375832, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.607170, 19.393501, 136.708725, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 36.706234, 12.549705, 269.077087, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.741432, 17.201839, 269.658844, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -21.052513, 9.488839, 260.401764, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'ahriman_183' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 141.796097, 37.025734, 1.178478, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 122.859512, 37.629654, 2.002243, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 127.627159, 33.635292, 21.377235, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 70.859192, 17.383774, 184.972321, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.422623, 18.933929, 252.523972, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 115.614525, 21.238791, 254.591293, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 113.948357, 22.440674, 195.022736, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 93.687889, 16.169958, 214.933899, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 101.220345, 16.107920, 239.544205, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.353172, 16.866383, 248.478348, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'magitekvanguard_200' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.913391, 85.775131, -336.263336, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -275.471313, 86.578674, -250.622040, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -272.031189, 86.589439, -210.045593, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -208.797012, 82.544693, -315.692413, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -248.703522, 84.883377, -294.410217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -201.729172, 73.905502, -152.126556, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -215.444275, 79.656067, -224.448868, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.075104, 80.036079, -227.536377, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.136047, 25.071756, 107.612526, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorthoplomachus_55' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -91.872368, 75.002228, -228.461075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -232.630829, 81.257980, -181.372650, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortlaquearius_61' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.689713, 79.861855, -285.206177, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -240.244980, 83.404892, -326.932861, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.613144, 85.306969, -271.404236, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorteques_62' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -145.073380, 76.635963, -224.310577, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -205.944687, 77.407257, -185.684372, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -177.328827, 74.465652, -181.077026, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsecutor_63' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -134.915619, 79.662804, -321.463623, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -184.025040, 83.300125, -278.188354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -224.933304, 84.489143, -253.589706, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsignifer_64' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -146.623947, 79.470093, -288.801514, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -226.367599, 84.477493, -253.589706, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -122.910088, 77.754440, -253.873520, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -229.763550, 81.019020, -190.646881, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -182.051605, 83.428810, -347.554321, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.474274, 75.299904, -194.970032, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 21.578611, 4.975241, 26.377096, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'kedtrap_23' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 17.868296, 7.106042, -17.171526, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.205910, 5.484024, 47.603928, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'riveryarzon_159' ) , 25, 633 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 139.399139, 6.263747, 26.419214, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 152.402847, 5.237850, 17.936674, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 151.709412, 5.807860, 10.336679, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.642181, 5.755404, 51.438736, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 98.720840, 4.971702, 52.386410, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.767986, 4.761376, 66.993118, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 37.680748, 4.953293, 72.245308, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 65.079338, 5.674155, 66.390022, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 25, 633 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.758194, 8.080178, -56.307663, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.938576, 14.116609, -81.036194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 100.920952, 7.607679, -55.427074, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 25, 633 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.284698, 4.644264, 45.026176, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.348400, 5.031322, 66.236412, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 26, 671 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 253.061035, 12.450743, -152.553329, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 250.477966, 10.586761, -169.728119, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 248.365814, 9.617976, -178.429169, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 281.224182, 9.269560, -169.353790, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 296.623962, 11.894608, -161.868713, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 295.196777, 10.541725, -183.692078, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 238.942795, 18.960083, -144.317749, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 292.637482, 10.876761, -164.807648, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 26, 671 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.622810, 7.818439, -111.865150, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 26, 671 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 75.660446, 7.607049, -108.592979, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.906487, 7.766785, -112.382797, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 26, 671 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.243660, 8.847745, -90.705162, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 69.137863, 8.508118, -105.323936, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.866234, 7.953293, -107.132462, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 157.845596, 16.789454, -140.097214, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 167.626282, 17.473413, -145.147446, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 135.518982, 19.229555, -146.295181, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 170.907196, 17.193430, -151.395401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.376198, 19.198467, -146.837601, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 126.090240, 20.705063, -111.209366, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 123.185997, 20.035912, -97.032173, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.000183, 19.030325, -159.014297, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.188995, 19.796492, -142.951370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 124.414299, 19.054943, -145.398300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.760773, 18.225830, -160.113007, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 121.843201, 20.218161, -96.971130, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 171.717804, 17.307770, -150.139297, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 102.838219, 20.272621, -160.238190, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 28, 746 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 278.901642, 3.911347, 46.565025, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 324.412292, 5.306582, -42.944809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 342.498230, 8.256850, -41.135147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 272.340118, 3.846904, 13.428856, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 264.393372, 2.637880, 23.084396, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'goblinthug_52' ) , 28, 746 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 320.515686, 2.215992, -18.509239, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 331.883972, 2.904445, -16.655821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.658691, 2.299638, -15.389510, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 317.199188, 0.290855, 13.417520, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.366119, 2.005001, -17.149740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 320.698792, 2.227228, -15.091220, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 313.945190, 0.195134, 8.234367, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 318.018890, 0.478852, 12.307590, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 292.225494, 0.411926, 13.809330, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 28, 746 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 311.033295, 0.517801, -0.204813, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 306.959686, 0.228231, 2.388638, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 300.585052, 0.253785, -0.255648, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawcutter_311' ) , 29, 783 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.521759, 1.297850, -25.194082, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 435.940704, -0.982693, 5.487583, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 435.723999, -1.106398, 3.907724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 399.968506, 4.714575, -41.852612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 362.637268, 1.761672, 9.493670, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.912415, 2.690911, -10.183659, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.075500, -1.022401, 21.408360, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawpoacher_79' ) , 29, 783 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 444.405365, 2.269864, -31.143581, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 436.545288, -1.022401, 4.501364, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.771088, 2.792354, 1.937849, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 400.476288, 4.241707, -40.787842, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 376.814392, 4.773165, -33.204460, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawhunter_81' ) , 29, 783 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 438.216705, 0.502468, -19.721241, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 392.419891, 5.388818, -31.738232, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 404.366333, -0.462935, 16.939405, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 387.472290, -0.900329, 20.340231, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 356.160797, 2.597828, 2.700800, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'midlandcondor_13' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -281.824707, 1.375012, 337.180084, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -120.189743, 1.298543, 297.432922, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -118.129181, 1.586027, 290.873566, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -180.149811, 1.329228, 259.241241, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -174.450653, 0.826647, 326.032074, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -233.590225, 0.609150, 303.478058, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -208.225418, 1.091709, 321.095123, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -189.756714, 0.523384, 276.984833, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -154.484329, 0.228401, 290.810242, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -282.577454, 1.781374, 344.390350, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -243.982834, 0.294519, 312.494995, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'bigmouthorobon_302' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -136.303848, 0.235673, 470.061859, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -135.688385, 0.209063, 466.644989, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -186.763107, 0.368787, 478.433899, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -172.772980, 0.564238, 437.816650, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -163.358063, 0.632972, 460.179504, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -191.338089, 0.343685, 474.522247, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -180.257813, 0.435515, 480.663116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -173.713257, 0.153294, 446.080353, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -307.343994, 1.574708, 411.567749, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -252.784439, 0.284077, 461.137482, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.081299, 0.939354, 467.506958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -316.329285, 0.085494, 443.564148, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -205.251495, 1.132652, 434.677643, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -284.932007, 0.811789, 409.177917, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -293.701935, 0.574562, 415.584351, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -239.102600, 1.174322, 487.598419, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -272.729065, 0.371793, 454.892212, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -301.002502, 0.971183, 477.373108, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -223.200058, 0.360053, 432.863922, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'revenant_305' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -361.600006, 1.953293, 461.799988, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -358.479858, 1.895434, 458.000153, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -341.376892, -0.246708, 431.042175, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -334.172821, -0.142858, 441.960754, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -362.200012, 2.353294, 450.799988, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -334.659546, 0.086901, 455.306061, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -337.223297, 0.167704, 454.781830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -345.804718, 0.536044, 449.956573, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.595444, 0.654059, 440.756439, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.552437, 0.556002, 337.963379, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.910637, 0.399478, 426.748169, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -108.549438, 0.759574, 446.906830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -127.783997, 0.153294, 343.045929, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -124.156303, 0.622273, 390.338318, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -123.271049, 0.153294, 336.635468, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -102.907066, 1.110574, 385.834503, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -97.304504, 0.220831, 460.319794, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.513351, 0.254719, 441.550232, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -104.048363, 1.260202, 382.858948, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.559479, 0.927049, 383.122620, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'stroper_304' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -18.452950, 0.207803, 361.804718, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -12.646904, 0.492321, 373.455322, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.496044, 0.153294, 322.616821, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -60.369980, 0.620001, 331.898956, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -44.584179, 0.468473, 399.977570, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -79.705612, 1.004676, 377.104370, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.331188, 0.153294, 341.051147, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.701607, 0.650173, 324.390594, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -24.597773, 0.336645, 382.682190, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -28.498209, 0.238283, 382.024170, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -38.815331, 0.878316, 326.413666, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -17.169430, 1.614668, 343.095428, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -67.169716, 0.450503, 346.946411, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 35, 1277 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 218.278320, 9.626074, 42.293156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 201.231918, 13.938748, 18.245020, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 208.655640, 12.012166, 40.583130, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 35, 1277 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 243.538208, 6.369292, 43.698978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 220.841019, 9.326168, 42.316071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 215.659210, 9.621600, 21.393459, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.666031, 7.852551, 27.424515, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 205.594772, 11.920905, 12.274120, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 193.294479, 14.422457, 15.546280, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.509689, 13.172311, 15.140548, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.165024, 15.262697, 20.420422, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 36, 1368 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 109.671593, 18.664917, 103.629242, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 122.636292, 19.212322, 85.012367, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 118.593910, 19.753290, 81.778809, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 166.242508, 17.621466, 71.034737, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 190.215240, 16.190983, 24.241163, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 194.059692, 15.553300, 58.400002, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 193.453125, 15.622672, 59.301884, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 36, 1368 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 148.602325, 17.591097, 64.458740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 110.585899, 19.560278, 116.602638, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.674263, 26.419935, 135.548584, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 37, 1459 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 69.238647, 23.642693, 202.599472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.212658, 20.345995, 218.766418, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 49.663757, 12.027298, 281.284607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.175465, 11.474810, 285.991211, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.829185, 25.959589, 143.245911, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 54.810070, 26.042759, 138.357468, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 37, 1459 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.381493, 23.541809, 246.465607, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.844872, 10.819162, 285.051788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.966400, 5.725693, 299.167664, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.123070, 22.513016, 213.663788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 88.113548, 23.136980, 172.128036, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.183640, 22.950760, 172.328491, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 38, 1550 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.987141, 26.500879, 130.803696, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 35.066334, 25.258486, 122.712532, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 38, 1550 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 63.075527, 18.440212, 254.309052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.862797, 26.633394, 135.292236, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'will-o-the-wisp_45' ) , 38, 1550 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.220726, 24.047203, 202.930588, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 75.620148, 23.101341, 173.372421, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 87.131577, 22.574894, 147.871826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 85.647774, 24.132235, 202.558289, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 134.761444, 28.608131, 167.188324, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 129.156998, 25.553301, 181.000000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 130.522385, 28.263964, 163.548691, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 147.503143, 32.914188, 178.984558, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 39, 1641 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 35.917995, 20.827244, 200.469391, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.165949, 21.876945, 190.043381, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.875324, 23.129019, 189.192474, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 39, 1641 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 44.467606, 20.028774, 208.815323, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 29.018549, 21.832933, 191.113770, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 458.028564, 1.207998, 166.398666, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 457.177734, 0.977621, 169.305634, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 382.045959, -3.000765, 87.875648, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 380.607117, -1.714232, 96.928268, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 364.208771, -3.970027, 67.266266, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 366.628906, -4.532925, 65.597023, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 379.016663, -3.561828, 81.993332, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 413.104309, 4.103601, 130.404922, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 413.245178, 3.991643, 157.491852, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 441.558441, 1.072546, 192.598175, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 458.455750, 4.506071, 200.943817, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 451.870850, 2.925568, 198.553757, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 397.338837, 0.778188, 117.291611, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 361.043579, 2.042016, 137.151703, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.318726, 3.714472, 154.953125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 393.102020, 4.861976, 164.145691, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 473.094635, 0.853687, 151.026642, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 495.067139, 3.394598, 169.433228, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 372.369049, -0.252312, 145.539474, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 507.013977, 5.353294, 208.204666, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 498.367493, 7.215365, 187.338974, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 545.736084, 11.106025, 197.726318, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 556.766907, 22.091091, 102.551453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 501.207977, 5.114982, 172.674042, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 483.206665, 5.295686, 204.618622, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 531.545410, 9.615707, 194.108994, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 545.011475, 10.566165, 202.816986, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 552.279114, 10.250693, 218.189026, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 509.520203, 5.797393, 203.292374, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 565.008789, 22.103556, 119.079933, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 523.467896, 17.700638, 110.807457, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 537.433899, 15.900310, 149.338684, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 521.968994, 18.131744, 102.781433, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'ked_8' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 559.085510, 22.032907, 130.158432, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 557.397766, 22.323153, 98.222397, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 540.623718, 22.001871, 120.312935, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 538.782227, 13.122617, 164.472412, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 510.703217, 14.727483, 136.516693, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 506.451019, 15.708985, 115.746490, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -328.214935, -1.382104, -562.018494, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -388.065887, -6.709208, -538.175354, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -203.945206, 7.083276, -662.385864, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -379.218628, -13.288798, -504.089905, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.662155, 17.365246, -621.277710, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.671295, 0.858022, -621.603394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -157.870773, -1.739383, -601.380615, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -306.650543, -15.724052, -485.586731, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'mudpuppy_139' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -466.278961, -9.345193, -536.730896, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -415.876953, -0.624770, -563.817444, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -353.362549, -6.366338, -521.945862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -353.668152, -1.889767, -554.169678, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -358.576813, -4.208381, -544.994019, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -393.795471, -14.137053, -498.157990, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -419.072571, -6.750120, -525.624817, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -364.357361, -16.055626, -485.979156, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'morbol_140' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -400.447693, -16.800800, -359.738800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -430.408478, -16.474775, -380.616394, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -305.019958, -16.239365, -455.824524, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -382.151276, -16.695229, -437.809906, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -340.258087, -16.800798, -435.010925, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -368.801117, -16.799139, -384.071411, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -399.663300, -15.824222, -469.566040, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -392.769775, -16.800800, -355.330872, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'nix_27' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -270.115723, -5.564771, -530.555054, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -279.074890, -9.268876, -515.046387, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.879089, -3.662974, -551.692932, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -106.126770, -0.551605, -641.217102, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -100.280334, 2.170384, -585.664856, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -168.402740, 6.150620, -671.770264, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -205.364151, -2.393888, -579.431946, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -207.987137, 2.095308, -618.217896, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.234894, 14.862438, -595.883179, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 221.954544, 20.428785, -614.556824, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 204.700058, 0.592923, -555.540466, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lakecobra_777' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 179.281021, -22.899044, -448.000000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 303.274078, -25.327501, -425.410950, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 308.878082, -26.339148, -406.439697, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 268.547302, -22.023846, -404.229553, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 214.777313, -22.923229, -424.896454, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 206.022980, -23.576593, -420.736481, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 148.975128, -26.967882, -439.738098, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 161.692841, -27.403070, -429.507172, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 294.337982, 15.031981, -649.709106, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 316.565247, 26.081779, -728.244263, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 380.336121, -3.791148, -690.031677, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 337.717163, 4.031579, -690.909851, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 560.117798, -6.999856, -657.073792, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 573.328003, -1.667467, -623.888733, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 341.486481, -7.720042, -454.207611, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorthoplomachus_55' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -556.903625, -2.485354, -455.298401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.370392, -13.977342, -423.385071, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -449.289978, -10.910893, -468.692657, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -475.984589, -4.141672, -466.825958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -465.682953, -3.579284, -251.795898, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -532.359619, -2.044634, -291.235474, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortlaquearius_61' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.484222, -4.199565, -501.470306, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -468.636261, -4.000793, -276.630219, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -542.703735, -3.200111, -329.053131, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -475.353668, -3.883567, -478.330811, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -640.300476, -3.558564, -367.160309, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorteques_62' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -592.797729, -2.945007, -432.211792, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -446.294891, -3.984699, -219.651199, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -431.483154, -1.764804, -303.251862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -635.341492, -2.933044, -396.278687, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -546.838928, -1.655508, -293.503632, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -557.301758, -3.677437, -381.385284, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -558.028809, -3.625569, -364.324585, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -489.250092, -3.627208, -282.124115, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -482.683105, -5.597062, -441.493073, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -479.714355, -4.413937, -417.199463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -437.867004, -2.581742, -273.708099, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsecutor_63' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -566.502625, -2.782105, -424.495209, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -429.060333, -3.250240, -244.869003, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -563.040833, -2.800797, -326.335052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -470.802673, -6.755476, -449.609680, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsignifer_64' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -600.921204, -3.536839, -364.490417, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -489.175293, -3.463209, -246.931213, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -450.320038, -10.954619, -443.615082, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -527.848938, -3.884468, -328.329559, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hippogryph_645' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 288.388214, 35.697899, -691.959290, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 297.593445, 22.060387, -684.986938, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 347.112274, 21.745182, -725.411682, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 357.257690, 21.586653, -742.933533, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 370.948944, 22.898510, -736.725281, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 360.181458, -0.605726, -693.488159, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 562.813049, -3.384825, -641.108826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 265.096130, 31.913975, -655.052612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 271.069336, 32.070313, -656.951233, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasshramana_727' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 306.364746, -5.760643, -519.664429, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 365.097046, -13.677204, -430.790649, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasbonze_728' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.880981, -0.431493, -568.846741, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 355.587311, -4.908767, -464.247131, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigassozu_729' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 313.073486, 6.867375, -558.511169, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 357.963623, -24.465349, -377.861969, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortvanguard_201' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -582.038574, -3.258524, -375.911133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -541.600830, -3.747990, -410.381073, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -551.768066, -1.774953, -306.972473, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -498.718903, -3.551362, -255.750671, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 485.397308, 5.016501, -833.477112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 481.436981, 5.220707, -835.526794, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 471.936218, 3.177799, -816.784912, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 499.297638, -2.805530, -776.088135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 416.334198, -8.178817, -750.712708, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 555.593201, -8.565275, -754.109070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 482.898956, 2.257884, -809.709290, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hapalit_647' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 555.226746, -8.898793, -734.929565, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 453.029816, -4.964316, -753.367249, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 455.815704, -4.557326, -760.564636, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 473.033081, 1.239610, -802.416260, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 484.811157, -0.451689, -793.427063, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 483.354614, 2.609100, -811.419617, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 495.249084, -4.774260, -758.666748, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -53.968075, 40.626629, 577.494324, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -54.772152, 40.937740, 569.377563, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -27.903179, 55.617722, 511.196289, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -89.379288, 57.873600, 491.677826, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -80.299843, 60.484467, 498.957672, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -79.367607, 57.337360, 534.587830, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.123886, 55.629345, 540.495178, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -15.353406, 60.152943, 476.861328, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -72.753616, 61.324738, 494.654724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -26.776743, 43.582298, 560.247437, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -50.769970, 40.481682, 588.929504, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -52.828140, 40.217793, 600.331543, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -49.674686, 40.202091, 599.041870, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -57.956455, 55.197498, 509.726349, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 82.880508, 50.351704, 638.699036, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 68.658043, 46.920773, 632.664490, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 45.426044, 37.137592, 655.502625, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.656174, 49.286789, 644.880005, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.340401, 42.041264, 627.708862, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.056473, 42.693142, 626.235168, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -124.439224, 10.043127, 653.849670, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -128.738632, 8.098146, 662.301453, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -74.418259, 3.002367, 802.470886, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -175.758530, 0.192970, 740.565857, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -129.824707, 0.392452, 755.607910, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -126.430168, 0.436597, 759.001587, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -90.773346, 8.807611, 680.411194, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -73.412216, 2.084321, 760.770325, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -119.570595, 3.740158, 701.817200, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -81.683006, 3.098206, 798.504700, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.956909, 0.192970, 664.005737, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -222.488434, 0.192970, 683.450134, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -214.674591, 0.192970, 689.205322, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirneggdigger_771' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -144.570282, 4.538429, 667.944885, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.620605, 3.272589, 669.616089, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -161.990494, 1.669328, 666.421692, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -160.952896, 1.569027, 667.861206, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -147.976685, 7.211773, 648.754333, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -150.745529, 1.891097, 679.430908, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -140.959915, 1.381874, 717.960083, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -149.139404, 0.759766, 712.362000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -148.567505, 0.750069, 714.199524, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'blackbat_1037' ) , 15, 905 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 263.554291, 46.455059, -196.807800, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 267.421997, 45.726028, -206.636902, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 302.008209, 47.155479, -168.970596, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 310.276093, 46.441952, -163.621597, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 329.482605, 44.452869, -210.422897, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 324.378510, 43.693790, -222.837906, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'caveaurelia_1038' ) , 15, 905 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 271.453613, 45.504711, -200.075607, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'foper_7439' ) , 60, 40160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 9.523642, 53.720516, -217.046158, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'spinner_7442' ) , 60, 40160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 223.210526, 44.843811, -339.998749, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -346.389740, 62.519150, -126.275093, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -353.836487, 61.672997, -119.187897, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'pteroc_65' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -354.420074, 56.423233, -96.513840, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -344.395325, 64.607246, -157.902496, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -341.323090, 64.578575, -160.182724, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -350.233124, 61.524578, -113.885941, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -319.546082, 60.104488, -124.223816, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.671509, 53.908203, -95.338379, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -317.611389, 60.075729, -128.127838, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'coeurl_117' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -365.764526, 65.494736, -305.070099, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -292.933563, 70.880463, -266.741791, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.481171, 60.137611, -369.996338, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -372.656219, 61.014076, -350.488831, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'highlandcondor_13' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -303.275574, 61.479023, -149.118958, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -248.915100, 63.041786, -183.808167, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -252.249084, 63.570446, -185.770676, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -216.185196, 66.569382, -242.893326, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -300.852142, 63.176342, -178.160568, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -263.679626, 63.708836, -251.339615, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -229.079773, 64.834488, -245.728836, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -210.108521, 67.672935, -243.264084, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -330.467377, 64.261154, -336.252960, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -393.794373, 49.725521, -341.202271, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -322.923187, 64.709900, -184.963135, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -316.858765, 64.213211, -314.357330, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -290.307983, 55.575882, -263.303406, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -380.062164, 53.973499, -291.843719, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -153.678604, 82.767532, -307.626709, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -170.819321, 78.937599, -266.836945, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -264.982056, 63.947887, -224.000000, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -351.385284, 54.183876, -241.304657, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'velociraptor_2' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 25.128429, 71.268677, -189.144226, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.871716, 68.419571, -210.217117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -59.508007, 64.795944, -302.991058, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -126.917580, 81.681725, -323.143463, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -138.590454, 81.639252, -317.720551, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -161.965485, 79.463608, -261.348389, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -196.249908, 71.570564, -273.608765, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -47.980247, 63.111557, -275.292786, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -51.387047, 64.510307, -309.933960, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -123.665451, 78.886292, -293.496613, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'youngcoeurl_2269' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -268.777344, 64.469254, -321.818024, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -246.820190, 64.967072, -319.323730, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -300.127502, 68.867729, -297.000824, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'basaltgolem_30' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -379.582794, 49.599728, -320.617401, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -392.384827, 48.829506, -270.781586, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -289.848114, 54.379707, -289.998871, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -339.448914, 50.635178, -294.665192, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -404.812653, 46.717731, -310.487518, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -324.328186, 55.788815, -224.676117, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -351.290314, 51.576576, -265.921173, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 180.076050, 59.615356, -148.851715, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 183.105377, 60.757282, -155.007202, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 184.878326, 61.323547, -156.019150, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 191.771393, 61.550873, -163.132507, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 185.650284, 60.073540, -150.433075, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 188.958481, 58.811165, -143.723083, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 172.057220, 60.347488, -160.257004, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 190.024429, 61.667694, -162.565582, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'ringtail_6' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -337.538879, 22.261187, -512.543579, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -294.067444, 15.837619, -526.381409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -284.631256, 15.979709, -524.325195, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -309.562897, 33.556576, -437.443756, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -327.216400, 33.860405, -452.127991, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -309.471985, 33.399452, -451.401154, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -296.423798, 32.770798, -443.928497, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -306.180389, 33.152576, -443.576508, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 49.782619, 48.558388, -359.919220, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.883301, 50.040894, -366.288025, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.501572, 48.824192, -386.915070, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 52.480934, 48.723763, -384.418518, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.816909, 49.996655, -342.930389, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.917726, 50.031612, -336.814178, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 16.670258, 49.568516, -332.820740, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.356415, 48.560959, -377.403534, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 3.316012, 48.751251, -308.807129, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 2.967811, 49.255138, -301.323792, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -0.587284, 49.616844, -347.270569, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -6.205463, 50.334320, -341.626526, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 77.880554, 57.709564, -304.362427, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 64.891975, 57.670910, -316.025116, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.143547, 48.569462, -406.118896, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 79.789307, 68.458755, -250.385300, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 23.727297, 49.034428, -362.581635, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.388740, 48.944725, -320.026978, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -2.076543, 49.155315, -324.895752, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 70.334991, 67.581085, -261.801605, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 71.335938, 48.508419, -408.346710, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 46.616211, 48.585762, -346.456085, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 16.776409, 48.642620, -366.713409, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.775769, 49.300411, -323.626160, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.524841, 48.325321, -324.818787, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -7.160486, 48.940979, -321.393829, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 66.550941, 48.806358, -363.489288, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 80.058411, 48.957294, -398.777863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.175064, 66.270889, -239.485504, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 43.717041, 48.884872, -344.197815, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -19.895678, 48.686302, -303.251129, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -23.801125, 53.776348, -341.428009, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 41.243237, 48.551842, -397.472931, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'bombincubator_2833' ) , 44, 4300 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.290409, 55.318249, -509.565887, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 50.868221, 55.176491, -509.842285, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 51.481640, 55.599010, -491.209015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.109711, 56.992210, -500.873199, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.011013, 56.871895, -476.327240, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 56.081234, 55.888691, -500.382965, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.261269, 55.470901, -451.263214, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 73.660034, 57.014153, -507.752472, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.135010, 56.961788, -498.527496, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 61.299801, 55.422451, -506.939392, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.829788, 55.176491, -510.031586, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 78.337578, 55.921329, -458.039429, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 53.985661, 55.599010, -492.126312, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 97.362740, 55.733959, -463.581757, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.672039, 24.659719, -611.021057, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.970928, 24.301811, -622.183655, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 84.582047, 24.139624, -710.028992, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 14.818369, 21.657869, -771.717468, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.921148, 26.625668, -802.449768, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'prototypebombincubator_2834' ) , 48, 5138 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 280.820007, 21.850000, -818.599976, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 282.380005, 22.062380, -807.590027, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 285.487915, 22.096889, -798.198914, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroroundsman_755' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 81.990967, 26.955635, -816.802246, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.540199, 24.338131, -605.890015, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 47.905769, 25.186752, -589.007019, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -11.884809, 25.236567, -663.126221, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 118.760902, 23.636169, -718.165894, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroquarryman_756' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 114.457634, 24.349905, -754.022217, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 44.950539, 24.971989, -675.010803, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 34.062794, 24.636602, -620.785767, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 74.762131, 25.395679, -678.056274, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 33.112991, 21.874960, -777.966125, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 86.037354, 24.478621, -699.376709, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarobedesman_757' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 22.326897, 23.223667, -657.985352, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 83.358307, 40.804111, -574.260376, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 57.461895, 25.641956, -722.111023, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 27.246609, 21.618671, -784.161194, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaropriest_758' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 117.893402, 23.059460, -785.317871, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 19.200001, 24.470900, -606.984863, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 30.990971, 22.995300, -758.266602, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 11.746227, 22.116056, -793.993530, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 207.624969, 24.173374, -679.869446, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 206.738022, 23.187981, -689.253052, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 203.890320, 24.761229, -742.728943, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 174.455490, 24.918858, -679.265625, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarogolem_2838' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 279.971466, 23.543526, -732.147705, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 284.018738, 21.924915, -701.318176, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 307.891937, 24.247149, -729.314880, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 256.669067, 21.883627, -813.910156, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 245.038605, 25.634367, -840.968018, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'eliteroundsman_755' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 281.156311, 21.832199, -815.852112, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 177.686096, 23.920490, -654.072205, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 175.829697, 23.483580, -792.629883, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitequarryman_756' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 219.098969, 25.198187, -654.522827, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 148.700470, 25.171375, -757.199341, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 163.440704, 23.438585, -715.525391, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 283.243195, 22.311359, -796.170898, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitebedesman_757' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 279.447388, 21.881470, -807.844788, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 158.525894, 21.622009, -698.329224, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 177.663101, 23.430275, -782.703918, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitepriest_758' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 254.038452, 21.881643, -798.051270, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 137.963898, 24.624701, -656.164612, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 155.508408, 21.852791, -697.356995, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 250, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_8016' ) , 1, 10000 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 96.160080, 2.359415, -4.634595, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 104.112198, 2.334595, -4.719133, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 95.987587, 2.359415, -24.583460, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 103.990997, 2.360248, -24.776320, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 5.759247, 25.616760, -51.532589, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, 3.004736, 25.616760, -51.484291, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -3.924433, 25.616760, -51.544392, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r` ) VALUES ( @last_id_spawngroup, -5.181253, 25.616760, -41.729118, 0 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -345.388947, 29.566580, -435.753174, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -326.154724, 22.296928, -401.389435, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.302933, 12.706744, -305.015015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.352875, 13.372667, -300.373566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.955841, 14.688709, -320.949066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.585846, 18.829691, -359.511688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.675323, 22.961006, -380.670990, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.137817, 23.382748, -389.604645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.550751, 14.436340, -352.420563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.839096, 15.333442, -347.116882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.478638, 15.116598, -356.427399, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.493927, 21.773628, -406.852844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.881897, 14.504688, -322.676117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.379456, 14.096419, -318.399017, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.760620, 23.480957, -387.760803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -313.823639, 13.033344, -301.501678, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.390060, 14.245410, -457.364075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.925201, 11.680475, -450.890533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.758735, 14.201798, -461.258636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.628424, 11.938938, -439.977692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.013916, 12.245436, -411.487366, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.313797, 12.305261, -314.432495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.436157, 13.084026, -319.166626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -198.334290, 12.714041, -360.448151, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.388519, 22.400616, -441.069214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.498245, 23.399185, -446.166595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.239288, 15.520851, -399.813934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.488739, 14.084651, -391.802826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.903427, 17.061604, -407.286926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.076279, 24.850960, -447.242645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.500504, 27.365400, -473.241180, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'CaptainPetyrPigeontoe_350' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.328251, 51.480759, -227.008499, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.810013, 25.391012, -460.873047, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -235.964523, 25.110031, -467.975067, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -199.158157, 14.872395, -396.241333, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -356.450928, 33.451496, -540.853455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -320.785858, 33.649094, -583.676697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.356537, 30.274841, -561.919373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.511169, 25.519537, -483.387787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -325.360657, 27.810431, -472.799927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -325.478394, 27.690218, -475.958923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -335.211273, 36.900539, -595.765808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -318.070435, 36.132381, -591.977966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.451721, 22.047026, -437.852325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -324.255280, 27.436514, -526.413879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -370.006042, 35.231163, -487.073334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.264984, 35.985336, -488.961395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.792694, 36.009693, -495.739410, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.364128, 44.093685, 107.553200, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.268539, 46.724518, 136.338364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.707085, 46.311752, 136.568741, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.018402, 33.117115, -563.082275, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.515167, 26.205408, -541.412598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.101288, 25.391624, -533.395813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.221771, 29.686281, -470.199615, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.047440, 31.206146, -576.813782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.136444, 33.524559, -595.852356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.733032, 33.874985, -597.828491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.360413, 33.645500, -505.330078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.525543, 31.869547, -509.008240, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.430328, 32.272133, -539.706909, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.613434, 24.118813, -380.878967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.744934, 23.897331, -381.954956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.261383, 13.775493, -317.929474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.834808, 17.254112, -347.665527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.815643, 16.845871, -349.862549, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.717438, 17.858700, -352.803070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.243317, 26.654594, -393.651733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.175659, 33.564983, -589.111572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.435623, 32.362934, -565.767761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -376.526489, 13.896859, -324.553253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.008102, 30.253586, -570.609436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.243301, 27.613777, -521.215027, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -420.094330, 12.597722, -311.434753, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.849731, 12.510590, -311.934723, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -366.167694, 12.091236, -306.270905, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.299580, 55.042175, -257.084961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.795578, 51.582069, -32.362301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.510176, 47.169777, 7.795540, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.551537, 29.851358, 189.738098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.262884, 29.407082, 179.518234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.720869, 29.053928, 181.304443, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.495502, 30.380665, 172.407364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.329781, 43.955208, 155.005188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.518013, 42.989105, 118.780502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -68.166626, 43.007225, 107.905563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.092205, 43.629402, 111.378723, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.234561, 24.291334, 201.717117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.773578, 23.680052, 196.653931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.779884, 44.791718, 145.633957, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.749100, 44.637295, 143.545715, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.238331, 45.256756, 96.337936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.197205, 44.597931, 113.161217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -17.754864, 45.153427, 99.784790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.992736, 45.949394, 79.764458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.424831, 44.679016, 151.940872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.866279, 24.183924, 198.192154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.086426, 45.106491, 148.815216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.979847, 44.280872, 158.869125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.076588, 43.842724, 141.637619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.916911, 43.823296, 109.991936, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.591410, 27.638182, 213.702469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.038459, 28.971394, 177.228210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.871887, 43.941578, 147.002197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.422501, 44.440933, 100.524612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.934925, 34.461262, 183.119568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.059912, 34.235126, 188.966934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.693619, 44.330345, 106.495529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.875931, 44.091866, 155.132431, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.015106, 103.203697, -193.008301, 0, 4296694 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.558899, 105.985802, -214.094299, 0, 4296691 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.144104, 105.712402, -208.740204, 0, 4296690 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.738297, 105.634201, -204.802994, 0, 4296689 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.339401, 103.033401, -192.118607, 0, 4296693 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.287445, 48.774925, 60.049950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.677322, 48.342552, 79.262779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.528473, 48.270821, 77.847992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.654846, 46.787323, 109.788803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.743423, 47.474777, 108.471367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.584122, 47.480267, 108.689880, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.970322, 46.841934, 109.707222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.913269, 46.945381, 111.036270, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.688782, 48.229084, 67.383591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.552887, 47.999767, 67.711365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.503937, 48.141754, 69.153397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.344719, 46.694866, 81.742561, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.444679, 46.425037, 120.738876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.658997, 46.397110, 122.156570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.095657, 46.443115, 117.044342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.960510, 47.640308, 52.202122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.655762, 47.580715, 63.141129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.554558, 44.667294, 102.201637, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.965904, 44.615826, 98.036583, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.463654, 48.419487, 76.549248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.421417, 47.941963, 59.158360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.089668, 46.433601, 104.064827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.238647, 46.415787, 105.150032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.160904, 48.173183, 50.316780, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.956974, 44.704605, 99.881027, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.549736, 57.190449, 214.553436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.525253, 56.042690, 209.422760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.051403, 62.446442, 282.129425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.944962, 61.911633, 276.713409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.922646, 56.992622, 225.424026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.078773, 56.885986, 223.856781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.744236, 57.267506, 242.963562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.297165, 51.641514, 183.525055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.394539, 50.344387, 210.498703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.321896, 51.855530, 215.426514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.232063, 50.115326, 176.923965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.856224, 50.262341, 179.783936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.554813, 50.278587, 197.175262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.076126, 51.404095, 181.327026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 106.336151, 46.542542, 146.037781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.529419, 46.496357, 146.864578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.411922, 47.397476, 188.868851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 55.938103, 48.382042, 192.162201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.970428, 46.898621, 171.290314, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.714684, 60.832500, 257.380402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.119259, 49.030884, 202.622604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 92.332085, 57.267738, 222.708633, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.338364, 46.940929, 155.956055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.729538, 47.873699, 181.971664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.173416, 47.911686, 182.943954, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.362442, 54.497883, 210.910156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 186.164612, 61.510574, 211.963135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.987930, 56.263233, 187.923843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.434906, 56.940521, 186.661606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.979340, 60.333061, 200.027451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.632248, 47.897598, 144.888062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 182.115936, 48.810600, 152.630585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.268143, 48.080715, 148.391388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 157.007324, 60.923241, 263.217133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 150.500488, 60.850376, 263.248718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.530884, 57.584221, 233.633820, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.803909, 60.055973, 252.144592, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.100479, 57.249226, 223.608643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.773010, 57.841290, 226.183258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.917557, 58.084629, 228.757660, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.993903, 51.633678, -102.898903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.280601, 52.694759, -114.580383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.444717, 53.167774, -115.282059, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -10.711990, 49.782681, -90.152298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.019464, 49.165482, -87.729759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.284972, 47.606350, 19.982195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.341366, 50.012794, -60.434803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.952839, 50.403530, -58.057556, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.687347, 65.358727, -110.080292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.216080, 62.031960, -96.706802, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.731094, 62.449772, -104.154373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.290741, 49.612831, 0.064280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.626144, 49.297306, 4.778895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.414593, 50.474976, -30.910105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.437317, 55.576977, -68.951340, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.662285, 56.313927, -69.116508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.731392, 56.317226, -50.044048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.679257, 49.292801, -27.752888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.263829, 49.315575, -35.775459, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.821778, 49.282028, -25.081804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.025280, 49.349777, -5.415370, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.613480, 44.009529, 30.942867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.623169, 44.819939, 32.029903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.687996, 39.260262, 73.701317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.763969, 42.924706, 30.753731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.181015, 40.679569, 71.883293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.683956, 40.893539, 66.671013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.538228, 43.437088, 46.584648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.279146, 42.683540, 49.196579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.273220, 42.865303, 39.455036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.479734, 43.282387, 45.144421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.434624, 43.189404, 29.502472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.008865, 44.158417, 28.212202, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.664551, 58.286568, 220.240219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.934769, 58.712387, 226.232986, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.747498, 60.830498, 274.423828, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.351578, 50.978226, 152.279388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.548477, 51.224773, 153.686295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.959366, 53.570744, 189.470215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.472961, 59.694351, 248.385452, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.020264, 55.370415, -69.352966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.170364, 49.838821, -68.782326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.571152, 51.888584, -19.764053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.773760, 47.606594, 19.565292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.204916, 46.720444, -30.901602, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.168560, 60.444397, -183.799896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.053051, 60.401928, -183.783249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.484033, 54.311432, -156.329300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.599415, 54.562565, -155.812119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.257294, 53.970779, -149.141663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.645035, 73.184212, -211.623795, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.141672, 57.110146, -193.953354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.450117, 56.646244, -187.739624, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.372414, 66.027878, -163.958939, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.131348, 66.684288, -163.940903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 20.829683, 56.061222, -157.242508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.480545, 84.157242, -216.300781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.541214, 84.289825, -211.426544, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.005386, 67.953743, -142.929062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.584274, 85.442703, -178.240295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.868019, 73.653473, -167.020645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.458961, 79.525024, -191.170502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.138042, 55.869495, -155.769455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.006012, 55.425858, -125.869781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.963425, 56.335258, -114.111465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.461700, 55.657070, -117.027122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.746140, 67.471092, -137.663147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.973221, 68.098656, -146.530090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.713570, 67.625000, -143.377502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.486435, 62.308422, -165.237076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.644001, 62.305508, -174.715576, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.222466, 63.667103, -168.534195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.465408, 62.292175, -167.113373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.337288, 76.675690, -190.652710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.189346, 79.572144, -191.947861, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.338299, 61.946495, -192.012360, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.009339, 56.475613, -164.606705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.313643, 60.965805, -188.869537, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.576660, 84.558853, -214.791580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.866758, 50.403988, -112.145859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -22.229101, 52.105640, -126.614952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.155701, 75.448906, -196.027115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.136543, 65.626106, -159.680511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.210106, 58.112301, -202.417557, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblinfisher_769' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.425201, 49.484989, 10.177730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.565399, 49.175140, 13.275840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.630295, 52.191109, 0.493474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.709000, 52.181438, 1.958378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.385597, 49.234230, 11.315280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.187698, 52.657040, -17.502140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.246078, 51.459473, 0.485654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.423264, 48.900520, 14.196040, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.599762, 41.054874, -20.094616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.017395, 42.810432, -34.186378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.625854, 41.554680, -26.096842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.918823, 43.204742, -17.722685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.965546, 48.252819, -102.441193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.827671, 46.200661, 19.798168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.788368, 45.940002, -76.557014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.941093, 46.645500, -87.251610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.979286, 46.592018, -79.841980, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.820442, 43.197647, -20.644436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.025192, 44.894878, -44.410561, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.286346, 41.722137, 35.408527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.407791, 46.238487, 31.785645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.814682, 46.454853, 21.565491, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.277756, 41.351612, -114.713394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.266388, 40.687962, -61.911877, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.801147, 40.699997, -64.838356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.616592, 45.212582, -124.887360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.954361, 45.725876, -168.462494, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.238197, 45.842312, -175.969131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.504135, 45.709385, -170.983658, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.688540, 55.237114, -249.336975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.221603, 55.142979, -251.206650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.021748, 57.039089, -254.211136, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -113.482796, 43.995758, -128.084473, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.277176, 47.483330, -213.903809, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.327293, 45.760178, -76.024277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.675735, 42.961151, -44.501488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.782242, 42.689823, -6.933394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.639767, 45.214169, 48.610859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -56.309303, 45.660477, 5.984929, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.192322, 41.106590, -259.243225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.207184, 41.086460, -260.163269, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.083252, 53.688164, -278.163940, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.458576, 54.025280, -276.558777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.620689, 51.382935, -245.781509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.856087, 51.634296, -246.516800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.512016, 51.628036, -245.741226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -34.785534, 55.625523, -241.429657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.291142, 55.412819, -245.904037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -36.349129, 55.578960, -242.701019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.669804, 58.343464, -263.162811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.807606, 58.136826, -264.724731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.023582, 48.623371, -195.581924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.659416, 48.012768, -197.962555, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.964874, 45.076744, -291.723206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.894981, 45.337498, -289.692657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.786194, 52.336086, -244.533859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.183395, 46.165981, -305.605804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.199341, 42.753056, -284.560211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.601761, 40.910500, -323.565857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.082520, 41.069489, -322.295532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.989319, 40.836521, -325.645508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.465107, 45.273018, -370.755737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.872406, 40.256310, -352.051361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.191818, 39.770813, -345.820923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.554394, 46.347958, -350.959320, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.473343, 46.482601, -347.291534, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.033226, 45.865627, -371.026489, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.798931, 45.616169, -348.236267, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.499832, 47.053680, -242.012115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.995613, 46.643417, -239.056519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.179993, 50.484299, -262.635132, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.691269, 48.634628, -262.121002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.452660, 50.134514, -264.685852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -31.531996, 54.714878, -264.603302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.645760, 47.782211, -202.084732, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'bogy_342' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.821171, 26.648108, -144.725708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.548843, 26.669088, -132.981705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.434685, 26.604877, -147.973160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.879177, 25.679827, -158.735397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.083721, 25.258137, -153.525589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.542942, 28.538513, -107.222115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.779339, 27.603992, -128.726578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.617275, 26.943687, -131.619720, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.926392, 40.314911, -290.996735, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.354324, 40.829044, -294.772430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.029114, 54.278446, -241.896179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -51.581413, 47.112206, -311.481201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.413441, 46.402538, -320.133301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.052662, 45.887260, -356.489929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.738419, 52.048374, -261.417542, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblingambler_769' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.935989, 51.884037, 14.806472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.126289, 50.907925, 8.929708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.503899, 49.330059, 5.172480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.747849, 54.673080, -4.795078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.787727, 49.467583, 3.458449, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'woundedaurochs_323' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.282837, 45.754066, -217.522751, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -137.267136, 45.618862, -216.675995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.235107, 44.624092, -218.372223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.960434, 46.086548, -197.344772, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.232101, 40.129150, -261.332977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.795349, 41.687798, -245.081512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -185.965454, 40.926170, -254.748978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.571594, 38.839432, -179.839996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -193.934723, 41.542332, -149.620667, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -199.423264, 42.497814, -139.297287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.735687, 43.134167, -176.989685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.948746, 47.443077, -164.533234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.582161, 47.869087, -173.918777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.605011, 47.818863, -162.689804, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.681824, 41.645901, -248.407944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.774139, 38.813259, -150.218536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.535583, 43.628948, -203.078415, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedpirate_348' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.565269, 51.362320, -226.270996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -71.680878, 50.965340, -233.694061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.299820, 50.321152, -220.334595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.530807, 50.187229, -223.000702, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedraider_349' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.816235, 53.229298, -235.326721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.206528, 51.132904, -224.558258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.834114, 52.017464, -231.658936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.276390, 50.332390, -220.639801, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.290398, 40.322010, 573.227905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.314915, 40.110245, 575.792114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.620897, 57.285927, 508.625763, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.468094, 58.483242, 496.386566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.365952, 51.727959, 549.140564, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.817833, 56.661560, 537.505066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.038486, 40.361443, 594.924194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.582077, 40.264317, 598.391479, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -47.518322, 40.373714, 589.616760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.468704, 60.077606, 502.455170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.901297, 60.020233, 483.755493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.339584, 55.511475, 507.494324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.153000, 61.332344, 500.107452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.130857, 46.304897, 551.232422, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.374115, 20.953936, 790.655029, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.236206, 21.654545, 825.135742, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.660950, 19.804104, 781.593994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.304710, 19.838562, 780.547974, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.744324, 8.199000, 801.542908, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.316299, 6.389911, 769.215210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.922058, 6.183510, 770.405029, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.742157, 7.694178, 784.369446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.827148, 7.973563, 787.824646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.842758, 7.710939, 787.673218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.667450, 6.616430, 780.404114, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.886414, 25.659513, 805.622131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.811371, 25.102345, 819.271606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.967728, 24.257393, 811.500610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.266502, 21.719769, 801.784729, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.453007, 16.388350, 783.661865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.162354, 21.831797, 781.869629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.695816, 25.808521, 757.471802, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.255661, 9.615396, 805.790283, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.823036, 57.064499, 724.493225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.239830, 51.769058, 684.438110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.414261, 50.861782, 682.068054, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.595825, 48.787796, 645.855713, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.068626, 48.266430, 631.182983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.219879, 56.385124, 716.791199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.848076, 54.702995, 729.259705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.545219, 56.787682, 715.667419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.024426, 35.792965, 690.217041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.733669, 37.499966, 688.096008, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.624710, 51.260124, 640.301331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.228138, 37.099724, 660.023499, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.664322, 47.130844, 40.074265, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.854713, 46.477989, 90.732613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.101822, 51.360214, 245.328018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 72.700020, 51.071037, 160.793518, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.088406, 38.074795, 664.306946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.645992, 38.772026, 660.599365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.556934, 42.180382, 708.252197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.496529, 39.269810, 663.201782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -51.500923, 37.012867, 674.528015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.145434, 42.288139, 706.083801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.199514, 40.592983, 632.030334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.834037, 40.855797, 621.834290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.077995, 42.645485, 625.443604, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.880661, 8.199225, 662.265625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -130.271301, 8.760700, 653.775574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.043037, 3.029166, 802.280579, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.360901, 0.192970, 741.616821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.105789, 0.192970, 665.192383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.657036, 3.732756, 702.174438, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.088989, 0.192970, 695.820801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.347412, 0.192970, 686.557373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.666428, 6.567122, 686.000122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.962639, 0.833841, 754.274231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -129.574051, 0.366468, 756.930542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.763962, 1.965495, 762.245728, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.255234, 2.316301, 807.157654, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirneggdigger_771' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -152.054932, 4.573110, 658.858643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.595551, 6.078611, 660.024963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.952896, 1.569027, 667.861206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.990494, 1.669328, 666.421692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.867004, 1.251185, 682.037842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.620605, 3.102985, 669.616089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.565781, 1.617873, 716.305237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.567505, 0.750069, 714.199524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.139404, 0.759766, 712.362000, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.537346, 44.088127, 834.352844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.156769, 48.701702, 870.370544, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.790197, 46.105656, 848.701172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.608295, 45.270161, 818.972778, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 39.663425, 45.700741, 821.791626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.545862, 42.715298, 761.550659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.999332, 42.612450, 757.071289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.315750, 48.374645, 869.111389, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.836945, 80.021965, -349.248810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.216431, 83.095825, -306.819336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.473480, 67.810539, -123.630386, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 375.830872, 66.879967, -107.765045, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.294533, 57.287041, 100.836075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.434448, 64.481537, 64.159660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.694130, 63.733395, 68.799767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.532879, 63.661598, 72.839180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.264307, 64.356834, 69.366142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.045307, 64.700050, 69.941322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.921568, 59.784504, 131.917343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.174042, 55.436501, 110.212471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.116161, 57.291229, 105.807106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.838654, 54.671867, 108.062912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.651297, 66.863014, 134.103897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.938428, 65.401749, 136.624969, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.469887, 60.747574, 155.960098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.735464, 60.314034, 151.299133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 18.797560, 62.371342, 146.850464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 15.261803, 63.832664, 106.379623, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.741608, 65.253212, 92.257599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.913162, 64.974815, 95.179398, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.863117, 60.588356, 101.507233, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.030218, 63.985119, 76.442604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.129930, 64.289429, 69.652756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.530689, 60.966793, 122.992928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.288868, 62.641926, 152.854385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.169344, 60.889542, 143.065704, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.847337, 67.396812, 93.828651, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.027699, 63.512241, 104.713951, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 15.466980, 64.467873, 94.719208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.859295, 65.085213, 95.879517, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.250587, 61.661640, 69.098907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.971352, 49.198536, 165.746689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.846367, 53.816826, 184.504410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.251656, 55.495728, 83.890091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.773689, 55.349224, 146.168808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.102898, 56.397987, 192.556747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.251907, 56.542641, 184.209198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.748695, 57.034107, 194.153549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.792671, 49.618786, 77.402550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.716331, 42.433197, 102.106140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.801235, 55.842659, 148.313049, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.123383, 49.023922, 159.378052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.893135, 41.848457, 102.787659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.008430, 53.216988, 116.434280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.652199, 53.238319, 90.122620, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.246452, 41.570320, 140.122253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.747833, 44.100784, 123.993179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.454712, 42.345196, 100.948547, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.571033, 57.356201, 150.570984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.304482, 55.216850, 151.417862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.113060, 56.823566, 191.221069, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.058884, 55.278248, 143.906418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.773232, 48.285912, 155.548477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.166550, 49.865639, 74.718452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.432297, 51.678909, 87.332741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.098320, 48.875435, 75.065170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.143730, 59.490005, 78.265450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.377922, 44.330078, 130.574432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.169579, 44.106537, 130.386093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.143463, 54.169704, 106.052872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.322388, 54.924107, 184.590073, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.798225, 43.411076, 104.886528, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.880043, 67.458412, 296.623932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.188293, 56.939262, 245.259857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.376389, 55.812046, 253.175720, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.216965, 52.296589, 260.076874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.545639, 36.017284, 235.457108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.294846, 38.279060, 237.271759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.790344, 57.019611, 269.565765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.965454, 56.715187, 268.115601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.187881, 34.652035, 207.873764, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 224.039474, 36.268261, 204.835510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 196.098526, 47.213280, 225.738007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 227.140305, 29.550524, 166.387589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.416321, 44.062424, 196.894440, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.006363, 43.680195, 196.869965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.137177, 47.895237, 228.178833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.964737, 64.167671, 315.198730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.200058, 63.085449, 309.499878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.957993, 63.655045, 311.873932, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.903336, 68.743546, 300.661255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.897453, 68.324715, 295.133606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.350342, 58.937344, 274.565033, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.742783, 55.044521, 261.096619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 216.307541, 51.503906, 257.291656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.699219, 52.011250, 257.106445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.165085, 38.392544, 233.739548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.012482, 45.573689, 216.676331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 229.088959, 35.555225, 208.886688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.446045, 30.751472, 160.489532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.104324, 31.385826, 159.672028, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.646469, 37.279289, 176.293274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.782684, 44.458412, 196.410294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.618759, 64.436661, 316.207001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.824402, 58.862495, 273.164246, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.480591, 55.605923, -19.244616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 411.791534, 54.457600, -15.883924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.543945, 47.122749, 2.214485, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.583160, 59.172894, -66.581017, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'rivertoad_313' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.464691, 38.519886, 10.684659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.973785, 37.234180, 46.013535, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.570610, 38.011002, 11.701272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.236008, 38.309334, 7.205370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.442062, 34.370682, 80.349533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.666260, 27.524975, 92.516258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.294083, 33.590755, 69.887001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.883469, 34.846092, 74.288155, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.986801, 44.935120, 43.373550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 224.098328, 52.458633, 24.242342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 225.999817, 50.733646, 30.041693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 216.458954, 52.403118, 26.247066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.880951, 44.155113, 49.234337, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.263702, 41.858246, 62.531952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.989014, 38.185940, 43.552074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 144.362808, 37.922974, 41.341286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.468414, 43.743702, 48.086830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.534637, 41.262024, 52.110279, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.437561, 44.447548, 45.937778, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.753876, 43.332886, 47.189186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.019852, 36.014511, 69.926308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.753937, 35.597179, 70.454971, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.136200, 50.403240, -13.734234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.027985, 66.161713, -72.315598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 449.639343, 65.303894, -30.821619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 442.088135, 64.160156, -40.026783, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.870239, 55.518864, 3.272704, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 452.671356, 58.115013, -5.166701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.943329, 54.652969, 9.564107, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.063202, 63.229794, -82.102165, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 406.717987, 63.644306, -86.204910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.379822, 49.732506, -10.085771, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.224060, 47.922523, 0.497604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.791046, 48.713047, -2.706928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 343.845428, 52.141602, -31.888533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 360.562195, 62.739830, -82.151413, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.901367, 59.727901, -61.852295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.609436, 58.438030, -55.536110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 378.224823, 59.231499, -57.050884, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.581940, 54.029053, 19.279335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.587646, 43.731007, 50.083656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.658096, 42.179863, 52.989445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 198.983627, 30.358673, 80.954002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.884781, 51.949562, 26.155874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.354279, 39.774525, 40.408192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.209137, 43.212093, 55.520477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.975784, 40.889244, 55.307251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.336929, 42.171211, 53.502865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 237.494446, 35.801193, 69.936287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.746399, 46.054150, 36.030727, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.832550, 66.125008, -151.399826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 420.032501, 66.434593, -160.272156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 441.862000, 65.614815, -126.050018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 420.231934, 66.234299, -158.144501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 440.404388, 65.763298, -128.258789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 434.575104, 65.704308, -127.933617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 477.989105, 66.571220, -146.671173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 467.847137, 66.867813, -148.765076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 396.368256, 67.786751, -122.644615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.902344, 68.438660, -120.238037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 388.816010, 68.861168, -123.025856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.695587, 69.927399, -125.725754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.954834, 69.522141, -123.606110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 338.487183, 69.478577, -132.456451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.440216, 68.663689, -118.765343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.010651, 70.166397, -134.019211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.114655, 70.161736, -143.352936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.056458, 69.155167, -140.515961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.822540, 70.397919, -137.378250, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.897919, 71.613380, -144.669220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.686157, 71.083435, -140.461899, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'nestingbuzzard_12' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 563.318542, 74.410683, -271.810699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 558.802734, 74.299782, -270.912262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.022949, 67.962524, -227.877182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 561.874817, 68.546982, -232.569168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 568.347595, 73.577438, -268.564087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 528.827637, 77.612038, -287.096863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 529.415894, 79.599213, -294.353790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 538.748596, 75.058891, -274.535675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 526.682312, 69.835686, -239.749542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 530.122192, 69.797562, -239.787460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 519.848328, 69.790367, -238.733307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.513336, 71.486565, -253.849579, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 636.123718, 70.413269, -279.500397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 630.403748, 72.509262, -286.077087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.160156, 79.890434, -358.783234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 406.324982, 88.096336, -399.940216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.124756, 87.158852, -397.583557, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 608.237366, 70.946320, -265.898285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.655884, 69.939163, -263.038879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 605.864258, 71.952057, -270.677063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 486.796844, 72.703178, -272.439667, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.271698, 69.652451, -264.843475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 386.010254, 71.401779, -254.654022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.482727, 72.436256, -254.333282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 698.577209, 67.180229, -298.386536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 660.052246, 67.938362, -279.966827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 650.803711, 68.715714, -280.011780, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.492828, 76.159920, -292.720673, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 496.124176, 76.771576, -299.405273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.801544, 71.142204, -298.075897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.050293, 72.245720, -301.558533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.919464, 72.041763, -299.617920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.943481, 73.582802, -315.218323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.780762, 74.740341, -316.816895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.961578, 74.875626, -321.563171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.296844, 74.692383, -319.988922, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'cavebat_38' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 233.810730, 73.586388, -273.787872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 230.908157, 73.656395, -274.500061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.013351, 75.401123, -303.494843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.320435, 75.578819, -265.805176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.612335, 75.364700, -256.060822, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.321503, 73.597031, -235.935959, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.102783, 75.624527, -255.437775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.342987, 74.367447, -276.038605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.543701, 74.295868, -280.026184, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.170349, 75.241707, -332.495361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 269.015045, 73.683670, -309.586090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.723572, 76.246216, -320.254028, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.432831, 76.617851, -316.516144, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 604.106567, 66.095642, -214.137878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 600.394043, 66.002831, -201.103607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 612.743591, 61.863049, -153.264847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 627.916016, 61.467808, -169.797104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 624.263489, 62.610977, -172.166809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 648.127930, 61.767151, -181.579208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.136414, 61.900654, -178.588196, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 681.631470, 64.906136, -221.895981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 683.687561, 64.748779, -220.552322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 680.251587, 65.090805, -224.182343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 679.503357, 65.023972, -222.532898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 677.820679, 65.290237, -226.927368, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 660.814392, 66.431412, -234.368591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 664.211182, 66.330055, -236.155014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 659.342285, 66.287399, -229.376236, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 624.711792, 66.610771, -233.029205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 638.439331, 65.977501, -211.567291, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 631.613281, 66.114395, -213.538193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.585144, 66.187698, -214.315826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 631.768738, 65.430511, -205.114731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 623.746887, 66.586647, -229.050339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 597.572388, 65.932281, -202.829224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 642.739258, 60.376305, -174.569244, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 612.511047, 62.265327, -155.992722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 609.297729, 62.941418, -152.494919, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.223999, 61.760101, -159.124969, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 581.315125, 63.941509, -162.398743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 577.759399, 63.908821, -161.433121, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 724.959839, 64.510010, -239.044235, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 638.208984, 66.948196, -227.057037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 614.043091, 61.041290, -146.291199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.407227, 62.909519, -172.249405, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 669.547180, 61.896049, -188.504135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 680.076843, 63.297722, -203.122406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 676.648438, 60.998432, -187.351532, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'galago_5' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 398.594391, 86.938850, -395.725555, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.238983, 81.717377, -370.002289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.627106, 81.745964, -371.062988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 408.861298, 82.580498, -374.672211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 415.871094, 84.370522, -384.927032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 421.558533, 84.224174, -378.451904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 474.853149, 87.663361, -351.449249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 461.404541, 85.193039, -345.374939, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 453.884369, 83.996025, -351.491241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 428.101532, 77.176521, -330.722809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.978424, 76.234848, -331.036102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.122162, 76.014748, -329.418121, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.105896, 76.976234, -336.823914, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 532.470581, 91.520287, -385.161407, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 530.146362, 91.061691, -381.784119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 585.778381, 89.363602, -386.939697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 656.953186, 78.282013, -356.964355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 659.677429, 79.926849, -363.085175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 652.882446, 78.775528, -358.058838, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 513.869385, 87.221413, -358.488800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 595.020081, 99.359871, -474.622345, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 596.605957, 101.166290, -483.939484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 570.725525, 90.486488, -409.461853, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.963989, 75.507866, -317.423309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 632.261536, 76.737450, -319.611938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 633.949402, 75.880203, -312.780609, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 582.750244, 77.316277, -287.949646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 587.057617, 78.599426, -296.115112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 583.232727, 83.028053, -322.348724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 553.331421, 86.246201, -343.383331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 549.962036, 86.221115, -335.880371, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 560.620544, 86.314621, -334.075378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 592.004578, 86.690178, -364.584747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 596.683838, 87.444733, -370.492584, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'kobolddustman_752' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 517.050964, 96.222397, -459.080231, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsupplicant_754' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 540.745300, 96.927368, -467.733673, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 515.891357, 96.243935, -466.257721, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 372.246185, 28.720036, 741.938660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.128510, 32.244225, 708.033936, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'apkallu_314' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 431.721527, 13.975726, 655.738708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.286865, 13.533363, 675.021545, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.038330, 13.436191, 672.796204, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.155792, 13.959119, 667.944580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 428.893768, 15.403847, 728.476685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 431.970032, 15.034657, 728.005493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.314087, 17.541180, 740.629883, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.655792, 14.955267, 728.253418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.256073, 26.918362, 711.608459, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.824738, 27.036375, 715.442749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.857025, 27.687635, 714.824097, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.999573, 24.816513, 693.751343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.215973, 25.120920, 694.781433, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 348.497864, 31.759195, 729.429321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 350.386688, 31.448929, 728.785889, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.810486, 34.494507, 699.025513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.758575, 37.825691, 702.853455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.597412, 43.343941, 745.739685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.732147, 42.956852, 744.136902, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.556915, 34.175179, 254.676575, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.056396, 32.084148, 523.375427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 519.251038, 40.352879, 551.294434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.082275, 41.854961, 545.003601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 408.845581, 27.656450, 488.111481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.707428, 36.504086, 423.652527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.726166, 42.087921, 402.735870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.623688, 38.916473, 327.954041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 232.209991, 55.331787, 617.594421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 309.601624, 36.440109, 593.929993, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 467.868073, 31.961191, 556.752197, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'largebuffalo_322' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 401.396179, 35.054623, 222.734406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.158844, 41.639423, 554.037903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.222351, 23.840349, 526.231934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.445770, 29.053875, 521.701782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.082886, 32.692612, 546.509521, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 338.258728, 30.744928, 455.014282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 312.520599, 37.736408, 434.084412, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.192932, 43.570984, 369.160370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.216888, 40.808041, 354.268921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.005096, 41.719658, 655.549744, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.784027, 17.786268, 593.056213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.085052, 20.037975, 767.870605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 445.827515, 13.115939, 700.180786, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -251.967834, 55.243580, 192.459091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.392525, 84.774948, -71.764091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.050049, 53.990719, 636.436096, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.149033, 63.531036, 694.353882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.800804, 59.829895, 661.897278, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.161118, 75.339279, 18.111082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.705627, 73.825974, 6.568444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -82.297890, 49.768051, 284.502075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.242683, 41.477894, 294.645935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.170158, 77.173737, -19.728859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.733305, 41.245575, 346.205017, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.307009, 42.160084, 346.931152, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.975067, 50.036945, 336.339355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.466690, 43.644550, 256.877136, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'giantpelican_178' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.625664, 38.006046, 460.946198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.058182, 40.457481, 509.719421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.960896, 52.462914, 571.532043, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.922276, 51.980762, 578.434753, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.414613, 49.896057, 509.611755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -68.915504, 44.210693, 544.967285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.563282, 46.516109, 523.413330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.638638, 44.899216, 519.204956, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'grassraptor_2' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.816727, 50.680946, 207.230743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.673279, 55.549320, 634.470032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.612160, 57.008339, 639.203064, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.393372, 43.843601, 239.024277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.185379, 45.833904, 224.204086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -310.033844, 53.365177, 253.411087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.968750, 77.336281, -36.169071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.729279, 91.027161, -76.475929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.107803, 90.189934, -75.294937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.663414, 87.537735, -90.260155, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -273.921112, 52.281662, 219.633392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.839310, 71.614166, 17.244806, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.747353, 60.368134, 674.293457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.673538, 62.803711, 683.443542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.672653, 76.129517, -8.622675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.922867, 62.861301, 680.264038, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.975220, 83.588005, -59.488007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.992828, 62.249355, 682.125305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -162.238342, 61.626869, 681.015198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.699371, 78.790428, -59.445129, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'snipper_325' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 504.239563, 9.219303, 685.512695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 472.254883, 10.564069, 726.620361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 463.649567, 11.310349, 698.085510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 465.627777, 12.656516, 602.219116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 505.001068, 9.415708, 632.124390, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 484.161926, 10.010633, 644.091370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 479.783447, 9.435391, 763.075867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 491.271393, 9.295449, 757.102295, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'corkbulb_384' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.711227, 48.139221, 183.802261, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.758163, 47.074829, 192.599335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.419083, 48.265182, 173.729431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -156.414856, 49.196289, 171.626007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.229843, 48.627834, 172.936539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.152237, 46.671131, 177.070511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.935814, 46.450417, 178.284103, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.492027, 43.030487, 199.119522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.821083, 39.551929, 204.728775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.937134, 48.119797, 170.243561, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.902214, 42.397972, 199.993027, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.683254, 41.885715, 202.716248, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.895386, 14.607802, 272.320496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 464.343353, 13.820408, 277.345978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.958099, 16.836380, 332.653015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.443237, 36.219193, 127.508369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.561188, 34.641438, 198.739212, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.906540, 45.180805, 408.725342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.086990, 51.171707, 568.910889, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -308.923279, 45.098831, 464.539001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.912323, 44.708927, 461.839172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -241.525604, 44.868385, 494.086975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.489197, 45.362839, 567.486084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -193.868896, 53.098679, 610.272888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -198.784103, 52.273563, 605.728699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.964813, 44.047970, 328.564941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.194763, 41.863541, 383.252441, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.964371, 41.149185, 379.679016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.629547, 34.494732, 256.320251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.019539, 34.731869, 223.876038, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'gigantoad_26' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -323.569305, 46.080910, 364.520782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.242493, 34.694187, 264.061066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.788895, 35.770496, 242.080597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -131.930069, 35.678688, 237.568268, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.206055, 34.845417, 295.551453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.805229, 35.052498, 220.223587, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'Bloodshorebell_312' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 539.988159, 10.728779, 201.962463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 508.702332, 9.843376, 210.636063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 488.300049, 11.344833, 231.362061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 512.723206, 9.212793, 222.065933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.537384, 11.387406, 252.843628, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 525.416382, 9.520628, 250.390350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.614746, 9.196991, 265.035309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.098602, 9.718414, 210.246414, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'goobbue_320' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.779907, 45.538643, 390.789978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.204351, 40.733112, 387.741608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.786427, 44.073502, 393.556488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.590973, 54.865368, 620.933411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -220.394562, 52.914051, 601.973694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.082657, 48.086334, 541.116150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.088623, 39.729519, 368.213989, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.953491, 47.186401, 443.753571, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.193054, 47.639656, 498.962738, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.234406, 44.030235, 334.434814, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.839233, 45.907104, 522.402100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.695114, 46.416176, 571.984924, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'colibri_386' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.765137, 30.365868, 187.004410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.769836, 31.304415, 186.869141, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.407501, 36.752094, 115.708374, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.489563, 36.679100, 101.818298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.955902, 36.557060, 103.377113, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 475.375275, 31.951229, 214.381836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.411194, 43.005402, 164.453827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 511.686005, 49.788960, 136.333237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 500.406738, 46.853142, 143.340286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 415.773193, 35.943077, 154.037125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.130280, 34.927956, 166.278198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.614624, 35.188046, 171.682129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.695526, 36.421738, 194.230072, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.050262, 13.037590, 185.272095, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.832764, 12.846014, 149.105515, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'junglecoeurl_117' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.302818, 61.613789, 350.757111, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -121.799904, 52.516403, 326.409454, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.978989, 46.322708, 283.227692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -143.837524, 40.508278, 285.981903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.847992, 38.187733, 344.288849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.481018, 40.745045, 317.857147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.847977, 48.664265, 344.132172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.912247, 48.245762, 314.641449, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.649597, 38.490589, 164.717346, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.680969, 39.330353, 169.159546, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.352127, 45.814068, 567.012634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.314640, 52.265717, 546.747131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.086487, 37.975540, 475.008118, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'mildewedgoobbue_321' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.688431, 44.764317, 553.852051, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.476135, 36.519455, 219.916962, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.658203, 37.686790, 233.860397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 322.804413, 37.674561, 206.378204, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.557495, 38.419243, 219.506363, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.863403, 37.460819, 205.065903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.045197, 38.194221, 236.654907, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldmissionary_331' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.655701, 36.864342, 239.408051, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.073486, 38.121010, 233.173004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.614807, 40.290474, 194.957336, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorthoplomachus_55' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 472.982330, 76.196999, -58.989597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.606262, 76.322876, -20.744659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.608551, 74.710724, -2.765123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.295349, 76.650215, -0.718120, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortlaquearius_61' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.150146, 76.196999, -8.852811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.365143, 76.319992, -19.353390, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 431.955353, 76.196999, -108.918213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.328918, 73.958359, -23.871384, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorteques_62' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.466187, 76.065430, -67.588791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.015991, 76.084824, -102.386803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.615387, 77.197006, -107.208000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.465088, 76.203674, -63.431820, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.628632, 76.196999, -101.585655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.454910, 75.939194, -8.190249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.298004, 74.848045, -23.727840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.697388, 76.196999, -39.613617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.136505, 76.397003, -61.814331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.997803, 76.325714, 0.872293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.799988, 76.196999, -11.489540, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsecutor_63' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 452.249542, 76.228813, -128.922562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.524933, 76.289238, -16.579481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.523087, 75.581001, -33.315983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 411.744904, 76.196999, -5.216177, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsignifer_64' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.907318, 76.619888, -39.989422, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 401.510406, 79.863983, -80.450699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, 1.148477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, -34.551071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.275253, 74.969193, -10.168123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.107452, 76.457809, -22.407925, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.375610, 79.997002, -55.369541, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 474.943909, 76.196991, -97.530579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.056213, 79.863983, -48.739960, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortvanguard_201' ) , 50, 2778 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.095093, 76.213654, -93.768280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.403473, 76.478249, -103.176918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.683380, 76.196999, -97.358223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 465.146515, 76.196999, -78.248222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.725006, 76.196999, -41.925694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.013885, 76.262604, -41.708679, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 661.376892, 16.868380, 444.546478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 600.877197, 5.880996, 485.953308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.322144, 5.898227, 483.624512, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'roseling_22' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 747.951599, 50.427887, 357.928772, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 750.353027, 50.083611, 360.748383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 743.340820, 44.356922, 397.143066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 678.437561, 19.654554, 435.200378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 667.057800, 20.397568, 429.583344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 741.121460, 28.184546, 441.007660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 734.497192, 26.854353, 442.302002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 672.214539, 14.595839, 442.895569, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 719.658081, 40.786228, 365.821228, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 715.957581, 39.597771, 371.410339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 657.032166, 41.796482, 338.018616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 687.857300, 42.032818, 339.103790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 677.403137, 41.886250, 357.998016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 696.959045, 28.637814, 408.641937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 694.449768, 34.261051, 390.357208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 706.790405, 28.210888, 410.849121, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'sewermole_205' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.036804, 35.572445, 344.129456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 608.844360, 34.301891, 347.554077, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 589.346008, 29.897394, 350.330688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 619.494202, 27.583639, 374.089874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 621.858521, 29.944971, 367.900574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 619.407898, 29.057913, 369.502777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 586.461548, 28.951075, 351.303070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 585.813171, 28.438513, 352.369751, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.800171, 41.141388, 327.561768, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.963623, 41.739059, 320.949005, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 602.817566, 30.726345, 355.777466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.181580, 32.516930, 357.289886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 643.447693, 23.634590, 398.243011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.017883, 24.391804, 392.765808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.004395, 20.669270, 404.579987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.226685, 25.550039, 368.222595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.595825, 42.144840, 321.818115, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'arborbuzzard_12' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 506.149567, 2.814311, 418.210938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.260681, 1.855386, 421.547974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.871796, 9.227687, 418.364410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 511.570709, 3.457108, 411.553375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 461.846924, 12.663937, 362.355682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.908691, 9.735098, 386.559052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.675018, 10.103431, 384.870239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 490.583740, 8.330388, 397.629272, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.636200, 16.715385, 353.222382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.888367, 5.203311, 276.677948, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.148376, 23.025820, 338.460297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 549.980774, 37.888100, 297.108398, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 560.540100, 24.185499, 348.622803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.885254, 29.173893, 333.929108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 554.530212, 29.420858, 329.752747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.316833, 33.890800, 318.024475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.762207, 17.623161, 322.609985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 514.717102, 22.343367, 297.317657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 529.777893, 26.199690, 320.881897, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_348' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 611.903076, 43.327553, 310.701385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 607.670898, 42.955601, 306.352112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 601.489197, 43.952782, 299.576599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 607.933411, 44.651409, 294.689972, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_349' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 590.237366, 46.126652, 286.961273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 585.551025, 44.082901, 293.967102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 600.182373, 43.941280, 299.534485, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 604.942139, 46.820461, 284.395782, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'hedgemole_206' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.009308, -11.875637, 94.363434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.622910, -12.374062, 95.346664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 270.845459, -9.754198, 101.272354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.099945, -9.356598, 95.027283, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.954834, -8.345027, 88.461983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.214783, -13.903976, 118.906860, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.788513, -12.784965, 108.927460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.353348, -13.125180, 119.497467, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.270966, -15.558857, 108.854996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.898697, -14.414904, 103.984398, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.762268, 3.169765, 70.885086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.185822, -11.798216, 131.701752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 346.115662, -19.054857, 220.172867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.560944, -7.906649, 201.375565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.154724, -8.001914, 208.562607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.206299, 3.224269, 66.798668, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.874359, -13.722762, 140.560760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.710693, -14.609919, 146.761963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.000458, -20.029356, 160.336914, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.115234, -12.237656, 93.315231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.200012, -9.068469, 105.533852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.399048, -16.985626, 162.506134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 266.914124, -16.392138, 157.156372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.282349, -4.017180, 105.255798, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rothlytpelican_181' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.495255, -15.960920, 55.492996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 162.879456, -14.323977, 79.460434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 173.172256, -12.719238, 113.497765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.181580, -8.629279, 65.083954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.722115, -17.771116, 161.300476, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.570320, -15.437970, 163.421646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.031578, -15.878393, 123.544548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.459404, -14.926886, 94.082710, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.393642, -1.974696, -13.929848, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.976189, -2.045702, -13.768462, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.400002, -2.953552, -16.400000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 384.199646, 14.428646, 32.482605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.820511, -14.820461, 60.165451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.016516, -22.292753, 53.719463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.071075, 4.564421, 80.886124, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.787872, 4.598518, 83.138847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.129349, -12.239421, 101.233078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.609390, -12.477910, 100.059769, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'killermantis_397' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.943352, -3.992505, -26.552906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.919285, -3.706397, -31.336760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.056923, -3.885968, -62.313755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.506714, -10.486404, 8.971105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.148802, -22.535498, 50.525768, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.729313, -22.401009, 41.722015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.571882, -23.505068, 112.018021, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.203632, -24.387508, 109.371689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.153160, -22.274078, 64.863579, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 19, 420 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.519829, -0.915667, -68.345375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.276382, -2.694968, -61.816307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.460457, -1.391993, -58.048004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.436523, -0.989940, -60.869198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.697441, -2.455795, -50.182808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.607559, -2.221285, -61.116398, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'preyingmantis_396' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.919220, -39.905281, 656.459167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.170227, -39.782280, 655.657288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -253.976105, -37.625439, 564.579956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -314.709747, -38.249912, 623.179077, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -343.226685, -40.837242, 665.661011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -389.110626, -40.132030, 655.361572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.610077, -39.364208, 701.057129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.819107, -37.835190, 663.537170, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.344208, -39.756889, 693.627441, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -258.862610, -38.845234, 656.123657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.473724, -38.221050, 625.219788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.641068, -38.717575, 499.031586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.695206, -37.244095, 497.706360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -221.257446, -38.644001, 506.923462, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.924347, -36.732006, 477.895660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -259.013824, -39.834621, 440.567963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.734344, -39.829880, 425.177887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.641113, -40.615318, 415.293915, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.500275, -39.220528, 433.955505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.037277, -38.624527, 514.310486, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.434479, -37.127861, 547.532959, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lammergeyer_403' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -450.986206, -37.787945, 738.352051, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -476.749207, -37.986050, 757.037903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -483.847992, -37.370193, 736.790588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.547180, -37.671715, 733.113403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -502.139069, -36.506023, 743.624451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -448.947144, -36.675556, 703.180054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -474.291046, -36.357124, 712.860901, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.666382, -41.931458, 742.759705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.599945, -41.347382, 708.581604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.698303, -41.775959, 714.647217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.457306, -41.281891, 688.647827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.258255, -40.055676, 710.315002, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'deadmansmoan_20' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.771606, -41.212288, 735.835693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -346.306793, -41.448574, 720.441650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.640503, -41.655495, 697.187317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -308.085052, -41.953552, 708.300720, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -286.262238, -41.513474, 697.558167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -262.640625, -41.512302, 722.137085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.341949, -41.249001, 734.726685, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -438.858093, -34.486282, 671.690613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -444.367584, -36.737885, 712.967957, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.395172, -37.043217, 719.711182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -469.749176, -37.181816, 722.876709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -469.493256, -37.631023, 748.576294, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'whelkballista_2835' ) , 44, 4300 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.910004, -30.450001, -92.839996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.264221, -30.197689, -128.465698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.733398, -29.587280, -110.399101, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.730499, -32.303410, -133.012894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.441002, -31.479370, -116.075401, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.464432, -35.424061, -11.169662, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -204.166534, -39.734409, -90.640930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -192.958786, -40.200939, -43.811974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.541470, -23.889269, -92.920448, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.317398, -40.194572, -88.486130, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.070892, -33.927280, -101.886833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.532974, -29.059402, -141.626770, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.227985, -24.572134, -117.284523, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -129.817825, -32.226665, -109.254219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.200836, -38.028507, -83.829842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.513153, -30.945234, 1.708608, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleSahagin_765' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.979187, -40.301193, -87.161430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.060734, -21.651909, -161.480682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.913696, -28.427610, -146.562897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.277664, -34.216839, -89.592522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -143.651108, -26.894556, 20.560968, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.166702, -32.339401, -135.991302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.014999, -31.623831, -118.950104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.565796, -38.010250, -31.357361, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawSahagin_766' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.944153, -27.532305, -144.487701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.024223, -30.306547, -149.355865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.973221, -36.762527, -111.709793, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.365509, -31.385445, -102.356194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.840622, -29.611879, -107.485497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.610504, -38.071289, -31.235229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.234207, -38.051666, -76.633934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.165466, -30.458733, -8.729252, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfspineSahagin_767' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.161926, -30.635151, -89.379402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.966251, -22.665247, -124.681503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.523300, -31.509951, -130.479904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.765900, -32.578060, 5.874695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.871918, -40.822292, -67.836021, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.256203, -30.084669, -124.693199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.534233, -26.784563, 18.541813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.201096, -32.487724, -113.122444, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsaelbst_2832' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -274.764923, -40.703537, -336.407104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.360535, -41.199173, -352.245148, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.346191, -41.214268, -330.312500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.294724, -40.989071, -291.742096, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -181.207321, -41.844490, -270.081940, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.028442, -41.727314, -288.479828, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'freshwhelkballista_2836' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.392303, -41.489319, -349.569000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -283.527893, -41.916561, -357.747803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.894806, -41.733459, -359.090607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.720886, -41.641911, -367.788208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.062988, -42.038639, -367.910309, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalscaleSahagin_765' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.208710, -41.764877, -196.344330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -168.981369, -40.908073, -290.732086, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalclawSahagin_766' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.990204, -41.031559, -289.265289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.413269, -41.816219, -228.919693, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalspineSahagin_767' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.445602, -41.977600, -231.189499, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.732407, -41.032051, -179.705597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.476196, -42.008121, -307.362488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.619598, -41.428280, -317.036713, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.472000, -42.008121, -244.739395, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoaltoothSahagin_768' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.081696, -41.031559, -291.035309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.826675, -41.672653, -219.247238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.340927, -40.254555, -214.701431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.427094, -41.483276, -281.547546, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.955750, -40.404739, -240.812851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -265.469360, -42.719551, -266.499634, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.116913, -42.008121, -359.151611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.307190, -42.008121, -365.072113, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.720886, -41.580872, -346.913910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.652802, -41.672421, -327.657013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.652802, -41.733459, -365.011108, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.354919, -39.483036, -345.774384, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.453400, -41.580872, -359.822998, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'axolotl_139' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.927277, -34.285240, -295.150085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.479279, -36.514393, -288.353485, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.290802, -37.204941, -296.766418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.628601, -37.750099, -302.916290, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'reinforcedwhelkballista_2837' ) , 48, 5138 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -423.105713, -33.005535, -367.492004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.392700, -33.236031, -358.443909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.528412, -33.066349, -357.686798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -395.040802, -38.559631, -343.953613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.859192, -39.444641, -348.989105, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'seawasp_312' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.559967, -39.256435, -203.779465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.283478, -39.316368, -202.468887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -393.575012, -41.767242, -203.534607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.035217, -38.911335, -222.539642, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.089874, -39.660213, -201.978973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.678864, -37.158779, -241.068436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.930023, -37.643482, -237.743713, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'trenchtoothSahagin_768' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.263550, -26.108219, -70.908691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.338928, -25.642410, -74.728661, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.901482, -25.768646, -86.375961, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleReaver_773' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -441.402222, -40.701698, -233.601974, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawReaver_774' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -441.245209, -39.475101, -220.111496, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfeyeReaver_776' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -441.435974, -38.926212, -213.282013, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfscale_765' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.721344, -33.686390, -326.296539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.514801, -33.350899, -355.147888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.364044, -39.466038, -361.109711, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.589386, -33.107040, -354.529510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.484436, -35.257927, -411.014862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -352.739044, -38.351639, -377.168549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.625488, -39.391800, -300.050995, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -440.940002, -32.821819, -363.149506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.913300, -32.916882, -368.407501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -458.416687, -32.786930, -362.740295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.546295, -37.902161, -342.084900, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.843597, -35.153549, -405.412476, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -370.744995, -35.287498, -414.281708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -375.469208, -39.479321, -346.811401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.930511, -39.354549, -298.395599, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'wildwolf_303' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -381.951752, -1.865713, 212.042023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.391357, -0.687764, 196.625290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.788086, -4.146658, 249.937302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -424.664642, -4.389118, 254.018524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -462.297302, -7.249224, 236.271515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.920288, -2.606930, 180.822937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -448.650696, -11.947705, 209.230209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.708191, -3.109433, 174.303268, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.501465, -7.614745, 201.604248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -388.824432, -2.578248, 177.678131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.077728, 0.536767, 174.858154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -465.114685, -3.054204, 249.472595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.935242, -2.167278, 250.799210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -439.207886, -7.911947, 241.229767, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.281189, -1.188653, 102.061584, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -435.544128, -0.955348, 123.893471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -437.993896, -1.031299, 126.314613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -414.902252, -2.773921, 160.474014, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'stoneshell_382' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.713104, -2.312514, 137.219559, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.282501, -2.801552, 149.988815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.671844, -2.430629, 156.019821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -396.004242, -2.555122, 148.152954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -383.427673, -2.876643, 160.658722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -403.971313, -2.240242, 157.015625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.759705, -2.889138, 139.678970, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -391.970581, -2.744184, 146.105545, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -380.797363, -2.897662, 146.567444, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'forestyarzon_159' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -414.757141, -3.022781, 28.021654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.892303, -2.628568, 43.051041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -515.360107, -3.022781, -9.979798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -522.299805, -3.022781, -10.434307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -483.240540, -3.022781, -1.752226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -426.197021, -2.781258, 25.197863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.669647, -2.654341, 20.002827, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.868530, -2.043492, 62.119469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.415741, -2.053370, 23.742413, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'coeurlpup_28' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -592.409119, -0.896684, 0.386436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -564.974304, -0.983113, -13.998669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -591.289734, -2.385894, -32.616730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -626.554626, -2.556157, -3.032897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -644.733398, -2.579175, 5.788857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -592.026917, -0.139966, 8.961593, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -589.191589, -1.701380, -16.803839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -581.001099, -1.248399, -12.149311, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -555.803711, -1.936794, -2.565444, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldfootman_328' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.173157, 38.711910, 29.792322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -404.069885, 35.812199, 36.532841, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.859711, -2.618297, 38.082218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -396.071106, 43.296131, -2.805411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -439.528412, 32.168262, 55.036327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.465546, 36.479664, 26.908142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -484.342163, -1.634364, 24.240206, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpickman_329' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -491.041992, -2.412468, 34.461601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -428.479553, 38.496067, 14.828461, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.817291, 36.296867, 33.293110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -391.328400, 44.270889, -5.423687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -476.028992, 29.465151, 52.901867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -477.677368, 27.532982, 57.619347, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -480.850861, -1.622468, 35.452560, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -380.239441, 40.455021, 15.811886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.829315, 31.729000, 45.958958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -427.287354, 35.776600, 40.411327, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'mudpugil_383' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 561.284851, -1.738799, 205.528839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 623.663635, -2.932235, 132.726913, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 640.196655, -3.022781, 174.134933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 645.843750, -2.975219, 170.168198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 638.579102, -2.995459, 186.706192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 584.620300, -2.303465, 169.148834, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 593.450562, -2.844428, 139.766556, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 574.049438, -2.987645, 137.301453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 580.756775, -2.611646, 131.970093, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 664.319397, -2.598749, 162.226898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 542.460022, -2.149217, 151.568039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 541.605957, -3.010482, 157.341522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 601.389954, -2.892532, 128.130249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.788452, -2.952927, 183.668243, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 661.936829, -1.528112, 134.098465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 595.966858, -1.835564, 221.160812, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 695.272278, 0.237290, 145.195099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 570.693848, -1.735677, 191.361359, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 685.403076, -0.007515, 122.931915, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 593.693115, -2.607079, 207.171448, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 619.854187, -3.022781, 198.036560, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 705.063721, -0.073885, 131.977234, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'uragnite_389' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.240051, -2.881454, 177.001404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.457977, -2.500741, 180.186234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.507446, -2.849627, 192.575226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.095184, -2.668610, 187.743286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.489441, -2.988054, 127.097084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.101715, -2.852393, 141.769638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.360138, -2.946918, 141.727402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 415.567535, -3.022781, 152.113510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.055237, -2.438254, 31.307247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 373.647980, -2.204629, 21.426832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.822510, -2.764290, 20.605335, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.111664, -2.359983, 141.265671, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.486603, -2.883696, 54.215927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 386.960846, -2.544994, 180.465637, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.662354, -1.706533, 0.576895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 299.033508, -2.221566, 89.648232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.212128, -0.687913, 207.471146, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.650604, -2.761652, 82.931305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.731079, 2.535215, -15.226002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.894470, -0.917974, 206.625656, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.525208, 2.440526, -4.988740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.317413, -0.445646, 214.080124, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 338.428162, -2.649891, 100.926704, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.069305, 0.455040, 2.362295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.613068, -2.510823, 96.570503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 352.498535, -2.229944, 192.390152, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.326050, -3.022781, 220.717575, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.186829, -3.022781, 246.639771, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.964752, -3.022781, 218.849091, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'salamander_139' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.537537, -2.184135, 153.375824, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.825378, -3.022781, 146.717667, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.616180, -3.013719, 160.163116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.898376, -3.022781, 81.090591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.759888, -3.022781, 38.590855, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.494293, -3.022781, 38.362095, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.467896, -2.961442, 28.651447, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.232941, 22.459917, -94.937210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.338654, 28.810354, -152.997025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 369.648438, 23.634579, -124.963051, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.573517, 13.179729, -64.033875, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.261505, 24.531950, -141.892105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.362488, 26.421909, -92.842506, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsidesman_330' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 374.994720, 25.746836, -131.705902, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 261.838196, 34.373199, -145.137985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 259.484711, 26.393141, -94.860497, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.082611, -2.220537, 16.427921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 304.273346, -3.022781, 127.453300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.051987, -2.988935, 83.435684, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.946030, -2.814081, 36.932377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.924103, -2.738626, 94.117409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.596893, -3.008550, 85.275566, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 154.950455, 25.137733, 220.499100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -98.540382, 85.807083, -350.417999, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.565582, 82.029961, -330.553619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -187.955566, 82.418648, -242.364868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -68.849266, 77.210121, -228.975296, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -32.679142, 78.788490, -197.195984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.138035, 76.590508, -179.011887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.190628, 74.867424, -197.155426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.129318, 69.254097, -164.934433, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.724625, 28.303354, 58.724297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.029358, 37.028255, -21.424707, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.821182, 37.507317, -27.008282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -261.132935, 64.443398, -90.575928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.294601, 66.193542, -115.411652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.072603, 12.420581, 249.430618, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.859401, 26.299496, 161.978531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.519424, 76.680183, -189.318375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.378353, 4.594343, 327.925201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.113718, 9.739895, 301.944397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.697968, 84.737694, -278.522827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.354134, 17.421412, 203.354218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.481019, 31.876749, 95.327995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.454002, 21.556597, 133.843796, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.482941, 83.303230, -182.044739, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'basilisk_173' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.600920, 24.342901, 176.407578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.477421, 23.268620, 166.940125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.336456, 29.613770, 53.853245, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.270794, 31.794752, 85.501617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.731804, 27.457956, 86.951363, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.025681, 26.303059, 60.375832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.607170, 19.393501, 136.708725, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.706234, 12.549705, 269.077087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.741432, 17.201839, 269.658844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.052513, 9.488839, 260.401764, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'ahriman_183' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.796097, 37.025734, 1.178478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.859512, 37.629654, 2.002243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.627159, 33.635292, 21.377235, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.859192, 17.383774, 184.972321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.422623, 18.933929, 252.523972, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.614525, 21.238791, 254.591293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.948357, 22.440674, 195.022736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.687889, 16.169958, 214.933899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.220345, 16.107920, 239.544205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.353172, 16.866383, 248.478348, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'magitekvanguard_200' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.913391, 85.775131, -336.263336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.471313, 86.578674, -250.622040, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.031189, 86.589439, -210.045593, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.797012, 82.544693, -315.692413, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.703522, 84.883377, -294.410217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.729172, 73.905502, -152.126556, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.444275, 79.656067, -224.448868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.075104, 80.036079, -227.536377, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.136047, 25.071756, 107.612526, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorthoplomachus_55' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.872368, 75.002228, -228.461075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.630829, 81.257980, -181.372650, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortlaquearius_61' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.689713, 79.861855, -285.206177, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.244980, 83.404892, -326.932861, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.613144, 85.306969, -271.404236, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorteques_62' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.073380, 76.635963, -224.310577, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.944687, 77.407257, -185.684372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -177.328827, 74.465652, -181.077026, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsecutor_63' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.915619, 79.662804, -321.463623, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.025040, 83.300125, -278.188354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -224.933304, 84.489143, -253.589706, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsignifer_64' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.623947, 79.470093, -288.801514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.367599, 84.477493, -253.589706, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -122.910088, 77.754440, -253.873520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.763550, 81.019020, -190.646881, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.051605, 83.428810, -347.554321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.474274, 75.299904, -194.970032, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.578611, 4.975241, 26.377096, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'kedtrap_23' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.868296, 7.106042, -17.171526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.205910, 5.484024, 47.603928, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'riveryarzon_159' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.399139, 6.263747, 26.419214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.402847, 5.237850, 17.936674, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.709412, 5.807860, 10.336679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.642181, 5.755404, 51.438736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.720840, 4.971702, 52.386410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.767986, 4.761376, 66.993118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.680748, 4.953293, 72.245308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.079338, 5.674155, 66.390022, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.758194, 8.080178, -56.307663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.938576, 14.116609, -81.036194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.920952, 7.607679, -55.427074, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.284698, 4.644264, 45.026176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.348400, 5.031322, 66.236412, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.061035, 12.450743, -152.553329, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.477966, 10.586761, -169.728119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.365814, 9.617976, -178.429169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.224182, 9.269560, -169.353790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.623962, 11.894608, -161.868713, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 295.196777, 10.541725, -183.692078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 238.942795, 18.960083, -144.317749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.637482, 10.876761, -164.807648, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.622810, 7.818439, -111.865150, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.660446, 7.607049, -108.592979, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.906487, 7.766785, -112.382797, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.243660, 8.847745, -90.705162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.137863, 8.508118, -105.323936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.866234, 7.953293, -107.132462, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 157.845596, 16.789454, -140.097214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.626282, 17.473413, -145.147446, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.518982, 19.229555, -146.295181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 170.907196, 17.193430, -151.395401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.376198, 19.198467, -146.837601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.090240, 20.705063, -111.209366, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.185997, 20.035912, -97.032173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.000183, 19.030325, -159.014297, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.188995, 19.796492, -142.951370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.414299, 19.054943, -145.398300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.760773, 18.225830, -160.113007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.843201, 20.218161, -96.971130, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.717804, 17.307770, -150.139297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.838219, 20.272621, -160.238190, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.901642, 3.911347, 46.565025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.412292, 5.306582, -42.944809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.498230, 8.256850, -41.135147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.340118, 3.846904, 13.428856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.393372, 2.637880, 23.084396, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'goblinthug_52' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.515686, 2.215992, -18.509239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.883972, 2.904445, -16.655821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.658691, 2.299638, -15.389510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.199188, 0.290855, 13.417520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.366119, 2.005001, -17.149740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.698792, 2.227228, -15.091220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.945190, 0.195134, 8.234367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.018890, 0.478852, 12.307590, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.225494, 0.411926, 13.809330, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.033295, 0.517801, -0.204813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.959686, 0.228231, 2.388638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 300.585052, 0.253785, -0.255648, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawcutter_311' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.521759, 1.297850, -25.194082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.940704, -0.982693, 5.487583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.723999, -1.106398, 3.907724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 399.968506, 4.714575, -41.852612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 362.637268, 1.761672, 9.493670, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.912415, 2.690911, -10.183659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.075500, -1.022401, 21.408360, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawpoacher_79' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.405365, 2.269864, -31.143581, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.545288, -1.022401, 4.501364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.771088, 2.792354, 1.937849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 400.476288, 4.241707, -40.787842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.814392, 4.773165, -33.204460, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawhunter_81' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 438.216705, 0.502468, -19.721241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 392.419891, 5.388818, -31.738232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 404.366333, -0.462935, 16.939405, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.472290, -0.900329, 20.340231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.160797, 2.597828, 2.700800, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'midlandcondor_13' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.824707, 1.375012, 337.180084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.189743, 1.298543, 297.432922, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.129181, 1.586027, 290.873566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.149811, 1.329228, 259.241241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -174.450653, 0.826647, 326.032074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.590225, 0.609150, 303.478058, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.225418, 1.091709, 321.095123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.756714, 0.523384, 276.984833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.484329, 0.228401, 290.810242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.577454, 1.781374, 344.390350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.982834, 0.294519, 312.494995, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'bigmouthorobon_302' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.303848, 0.235673, 470.061859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -135.688385, 0.209063, 466.644989, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.763107, 0.368787, 478.433899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.772980, 0.564238, 437.816650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -163.358063, 0.632972, 460.179504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.338089, 0.343685, 474.522247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.257813, 0.435515, 480.663116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.713257, 0.153294, 446.080353, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.343994, 1.574708, 411.567749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -252.784439, 0.284077, 461.137482, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.081299, 0.939354, 467.506958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -316.329285, 0.085494, 443.564148, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.251495, 1.132652, 434.677643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.932007, 0.811789, 409.177917, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.701935, 0.574562, 415.584351, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.102600, 1.174322, 487.598419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.729065, 0.371793, 454.892212, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -301.002502, 0.971183, 477.373108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.200058, 0.360053, 432.863922, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'revenant_305' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.600006, 1.953293, 461.799988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.479858, 1.895434, 458.000153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -341.376892, -0.246708, 431.042175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -334.172821, -0.142858, 441.960754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -362.200012, 2.353294, 450.799988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -334.659546, 0.086901, 455.306061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.223297, 0.167704, 454.781830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -345.804718, 0.536044, 449.956573, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.595444, 0.654059, 440.756439, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.552437, 0.556002, 337.963379, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.910637, 0.399478, 426.748169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.549438, 0.759574, 446.906830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.783997, 0.153294, 343.045929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.156303, 0.622273, 390.338318, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.271049, 0.153294, 336.635468, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.907066, 1.110574, 385.834503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.304504, 0.220831, 460.319794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.513351, 0.254719, 441.550232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.048363, 1.260202, 382.858948, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.559479, 0.927049, 383.122620, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'stroper_304' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.452950, 0.207803, 361.804718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.646904, 0.492321, 373.455322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.496044, 0.153294, 322.616821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.369980, 0.620001, 331.898956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.584179, 0.468473, 399.977570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.705612, 1.004676, 377.104370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.331188, 0.153294, 341.051147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.701607, 0.650173, 324.390594, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.597773, 0.336645, 382.682190, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.498209, 0.238283, 382.024170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.815331, 0.878316, 326.413666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -17.169430, 1.614668, 343.095428, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.169716, 0.450503, 346.946411, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.278320, 9.626074, 42.293156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.231918, 13.938748, 18.245020, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 208.655640, 12.012166, 40.583130, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.538208, 6.369292, 43.698978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.841019, 9.326168, 42.316071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.659210, 9.621600, 21.393459, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.666031, 7.852551, 27.424515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.594772, 11.920905, 12.274120, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.294479, 14.422457, 15.546280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.509689, 13.172311, 15.140548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.165024, 15.262697, 20.420422, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.671593, 18.664917, 103.629242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.636292, 19.212322, 85.012367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.593910, 19.753290, 81.778809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.242508, 17.621466, 71.034737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.215240, 16.190983, 24.241163, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.059692, 15.553300, 58.400002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.453125, 15.622672, 59.301884, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.602325, 17.591097, 64.458740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.585899, 19.560278, 116.602638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.674263, 26.419935, 135.548584, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.238647, 23.642693, 202.599472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.212658, 20.345995, 218.766418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.663757, 12.027298, 281.284607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.175465, 11.474810, 285.991211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.829185, 25.959589, 143.245911, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.810070, 26.042759, 138.357468, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.381493, 23.541809, 246.465607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.844872, 10.819162, 285.051788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.966400, 5.725693, 299.167664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.123070, 22.513016, 213.663788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.113548, 23.136980, 172.128036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.183640, 22.950760, 172.328491, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.987141, 26.500879, 130.803696, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.066334, 25.258486, 122.712532, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.075527, 18.440212, 254.309052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.862797, 26.633394, 135.292236, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'will-o-the-wisp_45' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.220726, 24.047203, 202.930588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.620148, 23.101341, 173.372421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.131577, 22.574894, 147.871826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.647774, 24.132235, 202.558289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.761444, 28.608131, 167.188324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.156998, 25.553301, 181.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.522385, 28.263964, 163.548691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.503143, 32.914188, 178.984558, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.917995, 20.827244, 200.469391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.165949, 21.876945, 190.043381, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.875324, 23.129019, 189.192474, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.467606, 20.028774, 208.815323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.018549, 21.832933, 191.113770, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 458.028564, 1.207998, 166.398666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.177734, 0.977621, 169.305634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.045959, -3.000765, 87.875648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 380.607117, -1.714232, 96.928268, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 364.208771, -3.970027, 67.266266, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.628906, -4.532925, 65.597023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.016663, -3.561828, 81.993332, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.104309, 4.103601, 130.404922, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.245178, 3.991643, 157.491852, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 441.558441, 1.072546, 192.598175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 458.455750, 4.506071, 200.943817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.870850, 2.925568, 198.553757, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.338837, 0.778188, 117.291611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.043579, 2.042016, 137.151703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.318726, 3.714472, 154.953125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.102020, 4.861976, 164.145691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 473.094635, 0.853687, 151.026642, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 495.067139, 3.394598, 169.433228, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 372.369049, -0.252312, 145.539474, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 507.013977, 5.353294, 208.204666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 498.367493, 7.215365, 187.338974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 545.736084, 11.106025, 197.726318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 556.766907, 22.091091, 102.551453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 501.207977, 5.114982, 172.674042, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.206665, 5.295686, 204.618622, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 531.545410, 9.615707, 194.108994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 545.011475, 10.566165, 202.816986, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 552.279114, 10.250693, 218.189026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 509.520203, 5.797393, 203.292374, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.008789, 22.103556, 119.079933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 523.467896, 17.700638, 110.807457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 537.433899, 15.900310, 149.338684, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 521.968994, 18.131744, 102.781433, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'ked_8' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 559.085510, 22.032907, 130.158432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.397766, 22.323153, 98.222397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 540.623718, 22.001871, 120.312935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 538.782227, 13.122617, 164.472412, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.703217, 14.727483, 136.516693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 506.451019, 15.708985, 115.746490, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -328.214935, -1.382104, -562.018494, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -388.065887, -6.709208, -538.175354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.945206, 7.083276, -662.385864, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.218628, -13.288798, -504.089905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.662155, 17.365246, -621.277710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.671295, 0.858022, -621.603394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.870773, -1.739383, -601.380615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.650543, -15.724052, -485.586731, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'mudpuppy_139' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -466.278961, -9.345193, -536.730896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.876953, -0.624770, -563.817444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.362549, -6.366338, -521.945862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.668152, -1.889767, -554.169678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.576813, -4.208381, -544.994019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -393.795471, -14.137053, -498.157990, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -419.072571, -6.750120, -525.624817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -364.357361, -16.055626, -485.979156, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'morbol_140' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -400.447693, -16.800800, -359.738800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -430.408478, -16.474775, -380.616394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -305.019958, -16.239365, -455.824524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -382.151276, -16.695229, -437.809906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -340.258087, -16.800798, -435.010925, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -368.801117, -16.799139, -384.071411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -399.663300, -15.824222, -469.566040, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -392.769775, -16.800800, -355.330872, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'nix_27' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -270.115723, -5.564771, -530.555054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.074890, -9.268876, -515.046387, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.879089, -3.662974, -551.692932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.126770, -0.551605, -641.217102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.280334, 2.170384, -585.664856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -168.402740, 6.150620, -671.770264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.364151, -2.393888, -579.431946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.987137, 2.095308, -618.217896, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.234894, 14.862438, -595.883179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 221.954544, 20.428785, -614.556824, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.700058, 0.592923, -555.540466, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lakecobra_777' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.281021, -22.899044, -448.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.274078, -25.327501, -425.410950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.878082, -26.339148, -406.439697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.547302, -22.023846, -404.229553, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 214.777313, -22.923229, -424.896454, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.022980, -23.576593, -420.736481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.975128, -26.967882, -439.738098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.692841, -27.403070, -429.507172, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.337982, 15.031981, -649.709106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.565247, 26.081779, -728.244263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 380.336121, -3.791148, -690.031677, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 337.717163, 4.031579, -690.909851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 560.117798, -6.999856, -657.073792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 573.328003, -1.667467, -623.888733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.486481, -7.720042, -454.207611, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorthoplomachus_55' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -556.903625, -2.485354, -455.298401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.370392, -13.977342, -423.385071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.289978, -10.910893, -468.692657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.984589, -4.141672, -466.825958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -465.682953, -3.579284, -251.795898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -532.359619, -2.044634, -291.235474, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortlaquearius_61' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.484222, -4.199565, -501.470306, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.636261, -4.000793, -276.630219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -542.703735, -3.200111, -329.053131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.353668, -3.883567, -478.330811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -640.300476, -3.558564, -367.160309, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorteques_62' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -592.797729, -2.945007, -432.211792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -446.294891, -3.984699, -219.651199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -431.483154, -1.764804, -303.251862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -635.341492, -2.933044, -396.278687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -546.838928, -1.655508, -293.503632, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -557.301758, -3.677437, -381.385284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -558.028809, -3.625569, -364.324585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.250092, -3.627208, -282.124115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -482.683105, -5.597062, -441.493073, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -479.714355, -4.413937, -417.199463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -437.867004, -2.581742, -273.708099, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsecutor_63' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -566.502625, -2.782105, -424.495209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.060333, -3.250240, -244.869003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -563.040833, -2.800797, -326.335052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -470.802673, -6.755476, -449.609680, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsignifer_64' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -600.921204, -3.536839, -364.490417, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.175293, -3.463209, -246.931213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -450.320038, -10.954619, -443.615082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -527.848938, -3.884468, -328.329559, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hippogryph_645' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.388214, 35.697899, -691.959290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.593445, 22.060387, -684.986938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.112274, 21.745182, -725.411682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.257690, 21.586653, -742.933533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.948944, 22.898510, -736.725281, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 360.181458, -0.605726, -693.488159, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.813049, -3.384825, -641.108826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 265.096130, 31.913975, -655.052612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.069336, 32.070313, -656.951233, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasshramana_727' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.364746, -5.760643, -519.664429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.097046, -13.677204, -430.790649, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasbonze_728' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.880981, -0.431493, -568.846741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.587311, -4.908767, -464.247131, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigassozu_729' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.073486, 6.867375, -558.511169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.963623, -24.465349, -377.861969, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortvanguard_201' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -582.038574, -3.258524, -375.911133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -541.600830, -3.747990, -410.381073, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -551.768066, -1.774953, -306.972473, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -498.718903, -3.551362, -255.750671, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 485.397308, 5.016501, -833.477112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.436981, 5.220707, -835.526794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 471.936218, 3.177799, -816.784912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 499.297638, -2.805530, -776.088135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.334198, -8.178817, -750.712708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 555.593201, -8.565275, -754.109070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 482.898956, 2.257884, -809.709290, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hapalit_647' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 555.226746, -8.898793, -734.929565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 453.029816, -4.964316, -753.367249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.815704, -4.557326, -760.564636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 473.033081, 1.239610, -802.416260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 484.811157, -0.451689, -793.427063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.354614, 2.609100, -811.419617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 495.249084, -4.774260, -758.666748, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.968075, 40.626629, 577.494324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.772152, 40.937740, 569.377563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.903179, 55.617722, 511.196289, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.379288, 57.873600, 491.677826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.299843, 60.484467, 498.957672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.367607, 57.337360, 534.587830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.123886, 55.629345, 540.495178, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.353406, 60.152943, 476.861328, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.753616, 61.324738, 494.654724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.776743, 43.582298, 560.247437, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.769970, 40.481682, 588.929504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.828140, 40.217793, 600.331543, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.674686, 40.202091, 599.041870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.956455, 55.197498, 509.726349, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.880508, 50.351704, 638.699036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.658043, 46.920773, 632.664490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.426044, 37.137592, 655.502625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.656174, 49.286789, 644.880005, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.340401, 42.041264, 627.708862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.056473, 42.693142, 626.235168, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.439224, 10.043127, 653.849670, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.738632, 8.098146, 662.301453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.418259, 3.002367, 802.470886, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.758530, 0.192970, 740.565857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -129.824707, 0.392452, 755.607910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.430168, 0.436597, 759.001587, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.773346, 8.807611, 680.411194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.412216, 2.084321, 760.770325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.570595, 3.740158, 701.817200, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.683006, 3.098206, 798.504700, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.956909, 0.192970, 664.005737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -222.488434, 0.192970, 683.450134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.674591, 0.192970, 689.205322, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirneggdigger_771' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.570282, 4.538429, 667.944885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.620605, 3.272589, 669.616089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.990494, 1.669328, 666.421692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.952896, 1.569027, 667.861206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.976685, 7.211773, 648.754333, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.745529, 1.891097, 679.430908, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.959915, 1.381874, 717.960083, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.139404, 0.759766, 712.362000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.567505, 0.750069, 714.199524, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'blackbat_1037' ) , 15, 905 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 263.554291, 46.455059, -196.807800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.421997, 45.726028, -206.636902, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.008209, 47.155479, -168.970596, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 310.276093, 46.441952, -163.621597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 329.482605, 44.452869, -210.422897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.378510, 43.693790, -222.837906, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'caveaurelia_1038' ) , 15, 905 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.453613, 45.504711, -200.075607, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'foper_7439' ) , 60, 40160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.523642, 53.720516, -217.046158, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'spinner_7442' ) , 60, 40160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.210526, 44.843811, -339.998749, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -346.389740, 62.519150, -126.275093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.836487, 61.672997, -119.187897, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'pteroc_65' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.420074, 56.423233, -96.513840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.395325, 64.607246, -157.902496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -341.323090, 64.578575, -160.182724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.233124, 61.524578, -113.885941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.546082, 60.104488, -124.223816, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.671509, 53.908203, -95.338379, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.611389, 60.075729, -128.127838, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'coeurl_117' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.764526, 65.494736, -305.070099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.933563, 70.880463, -266.741791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.481171, 60.137611, -369.996338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.656219, 61.014076, -350.488831, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'highlandcondor_13' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -303.275574, 61.479023, -149.118958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.915100, 63.041786, -183.808167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -252.249084, 63.570446, -185.770676, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.185196, 66.569382, -242.893326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -300.852142, 63.176342, -178.160568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.679626, 63.708836, -251.339615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.079773, 64.834488, -245.728836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.108521, 67.672935, -243.264084, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -330.467377, 64.261154, -336.252960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -393.794373, 49.725521, -341.202271, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -322.923187, 64.709900, -184.963135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -316.858765, 64.213211, -314.357330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.307983, 55.575882, -263.303406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -380.062164, 53.973499, -291.843719, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -153.678604, 82.767532, -307.626709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.819321, 78.937599, -266.836945, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.982056, 63.947887, -224.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -351.385284, 54.183876, -241.304657, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'velociraptor_2' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.128429, 71.268677, -189.144226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.871716, 68.419571, -210.217117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.508007, 64.795944, -302.991058, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.917580, 81.681725, -323.143463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.590454, 81.639252, -317.720551, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.965485, 79.463608, -261.348389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.249908, 71.570564, -273.608765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -47.980247, 63.111557, -275.292786, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -51.387047, 64.510307, -309.933960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.665451, 78.886292, -293.496613, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'youngcoeurl_2269' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.777344, 64.469254, -321.818024, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.820190, 64.967072, -319.323730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -300.127502, 68.867729, -297.000824, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'basaltgolem_30' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.582794, 49.599728, -320.617401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -392.384827, 48.829506, -270.781586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -289.848114, 54.379707, -289.998871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -339.448914, 50.635178, -294.665192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -404.812653, 46.717731, -310.487518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -324.328186, 55.788815, -224.676117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -351.290314, 51.576576, -265.921173, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.076050, 59.615356, -148.851715, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.105377, 60.757282, -155.007202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.878326, 61.323547, -156.019150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 191.771393, 61.550873, -163.132507, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.650284, 60.073540, -150.433075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.958481, 58.811165, -143.723083, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.057220, 60.347488, -160.257004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.024429, 61.667694, -162.565582, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'ringtail_6' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.538879, 22.261187, -512.543579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.067444, 15.837619, -526.381409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.631256, 15.979709, -524.325195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -309.562897, 33.556576, -437.443756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.216400, 33.860405, -452.127991, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -309.471985, 33.399452, -451.401154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.423798, 32.770798, -443.928497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.180389, 33.152576, -443.576508, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.782619, 48.558388, -359.919220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.883301, 50.040894, -366.288025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.501572, 48.824192, -386.915070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.480934, 48.723763, -384.418518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.816909, 49.996655, -342.930389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.917726, 50.031612, -336.814178, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.670258, 49.568516, -332.820740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.356415, 48.560959, -377.403534, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.316012, 48.751251, -308.807129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.967811, 49.255138, -301.323792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.587284, 49.616844, -347.270569, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.205463, 50.334320, -341.626526, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.880554, 57.709564, -304.362427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.891975, 57.670910, -316.025116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.143547, 48.569462, -406.118896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.789307, 68.458755, -250.385300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.727297, 49.034428, -362.581635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.388740, 48.944725, -320.026978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.076543, 49.155315, -324.895752, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.334991, 67.581085, -261.801605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.335938, 48.508419, -408.346710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 46.616211, 48.585762, -346.456085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.776409, 48.642620, -366.713409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.775769, 49.300411, -323.626160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.524841, 48.325321, -324.818787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.160486, 48.940979, -321.393829, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.550941, 48.806358, -363.489288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.058411, 48.957294, -398.777863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.175064, 66.270889, -239.485504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 43.717041, 48.884872, -344.197815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.895678, 48.686302, -303.251129, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.801125, 53.776348, -341.428009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.243237, 48.551842, -397.472931, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'bombincubator_2833' ) , 44, 4300 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.290409, 55.318249, -509.565887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.868221, 55.176491, -509.842285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.481640, 55.599010, -491.209015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.109711, 56.992210, -500.873199, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.011013, 56.871895, -476.327240, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.081234, 55.888691, -500.382965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.261269, 55.470901, -451.263214, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.660034, 57.014153, -507.752472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.135010, 56.961788, -498.527496, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.299801, 55.422451, -506.939392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.829788, 55.176491, -510.031586, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.337578, 55.921329, -458.039429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.985661, 55.599010, -492.126312, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.362740, 55.733959, -463.581757, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.672039, 24.659719, -611.021057, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.970928, 24.301811, -622.183655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.582047, 24.139624, -710.028992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.818369, 21.657869, -771.717468, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.921148, 26.625668, -802.449768, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'prototypebombincubator_2834' ) , 48, 5138 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.820007, 21.850000, -818.599976, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.380005, 22.062380, -807.590027, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.487915, 22.096889, -798.198914, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroroundsman_755' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.990967, 26.955635, -816.802246, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.540199, 24.338131, -605.890015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.905769, 25.186752, -589.007019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -11.884809, 25.236567, -663.126221, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.760902, 23.636169, -718.165894, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroquarryman_756' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.457634, 24.349905, -754.022217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.950539, 24.971989, -675.010803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.062794, 24.636602, -620.785767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.762131, 25.395679, -678.056274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.112991, 21.874960, -777.966125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.037354, 24.478621, -699.376709, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarobedesman_757' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 22.326897, 23.223667, -657.985352, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.358307, 40.804111, -574.260376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.461895, 25.641956, -722.111023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.246609, 21.618671, -784.161194, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaropriest_758' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.893402, 23.059460, -785.317871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.200001, 24.470900, -606.984863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.990971, 22.995300, -758.266602, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.746227, 22.116056, -793.993530, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.624969, 24.173374, -679.869446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.738022, 23.187981, -689.253052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.890320, 24.761229, -742.728943, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 174.455490, 24.918858, -679.265625, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarogolem_2838' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.971466, 23.543526, -732.147705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.018738, 21.924915, -701.318176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.891937, 24.247149, -729.314880, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 256.669067, 21.883627, -813.910156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 245.038605, 25.634367, -840.968018, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'eliteroundsman_755' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.156311, 21.832199, -815.852112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.686096, 23.920490, -654.072205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.829697, 23.483580, -792.629883, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitequarryman_756' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.098969, 25.198187, -654.522827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.700470, 25.171375, -757.199341, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 163.440704, 23.438585, -715.525391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.243195, 22.311359, -796.170898, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitebedesman_757' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.447388, 21.881470, -807.844788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.525894, 21.622009, -698.329224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.663101, 23.430275, -782.703918, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitepriest_758' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.038452, 21.881643, -798.051270, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.963898, 24.624701, -656.164612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.508408, 21.852791, -697.356995, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 250, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_8016' ) , 1, 10000 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.160080, 2.359415, -4.634595, 0, 6483953 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.112198, 2.334595, -4.719133, 0, 6483956 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.987587, 2.359415, -24.583460, 0, 6483949 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.990997, 2.360248, -24.776320, 0, 6483952 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.759247, 25.616760, -51.532589, 0, 4833611 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.004736, 25.616760, -51.484291, 0, 4833609 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.924433, 25.616760, -51.544392, 0, 4833612 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.181253, 25.616760, -41.729118, 0, 4833610 ); \ No newline at end of file diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index 4a33f182..d5ca06c2 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -41,7 +41,7 @@ Sapphire::Entity::BNpc::BNpc( FrameworkPtr pFw ) : } Sapphire::Entity::BNpc::BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, - uint8_t level, FrameworkPtr pFw ) : + uint8_t level, uint32_t maxHp, FrameworkPtr pFw ) : Npc( ObjKind::BattleNpc, pFw ) { m_modelChara = pTemplate->getModelChara(); @@ -58,12 +58,12 @@ Sapphire::Entity::BNpc::BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, m_pos.z = posZ; m_level = level; - m_maxHp = 200; + m_maxHp = maxHp; m_maxMp = 200; - m_hp = 200; + m_hp = maxHp; m_mp = 200; - m_baseStats.max_hp = 200; + m_baseStats.max_hp = maxHp; m_baseStats.max_mp = 200; memcpy( m_customize, pTemplate->getCustomize(), sizeof( m_customize ) ); diff --git a/src/world/Actor/BNpc.h b/src/world/Actor/BNpc.h index 7d371cad..09a5f93d 100644 --- a/src/world/Actor/BNpc.h +++ b/src/world/Actor/BNpc.h @@ -23,7 +23,7 @@ namespace Sapphire::Entity public: BNpc( FrameworkPtr pFw ); - BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, uint8_t level, FrameworkPtr pFw ); + BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, uint8_t level, uint32_t maxHp, FrameworkPtr pFw ); virtual ~BNpc() override; diff --git a/src/world/Actor/SpawnGroup.cpp b/src/world/Actor/SpawnGroup.cpp index f7ab38c5..218eff5d 100644 --- a/src/world/Actor/SpawnGroup.cpp +++ b/src/world/Actor/SpawnGroup.cpp @@ -20,7 +20,7 @@ uint32_t Sapphire::Entity::SpawnGroup::getTemplateId() const return m_bNpcTemplateId; } -uint32_t Sapphire::Entity::SpawnGroup::getLevelId() const +uint32_t Sapphire::Entity::SpawnGroup::getLevel() const { return m_level; } diff --git a/src/world/Actor/SpawnGroup.h b/src/world/Actor/SpawnGroup.h index dd7d566b..5fb3a146 100644 --- a/src/world/Actor/SpawnGroup.h +++ b/src/world/Actor/SpawnGroup.h @@ -24,7 +24,7 @@ namespace Sapphire::Entity uint32_t getId() const; uint32_t getTemplateId() const; - uint32_t getLevelId() const; + uint32_t getLevel() const; uint32_t getMaxHp() const; SpawnPointList& getSpawnPointList(); diff --git a/src/world/Actor/SpawnPoint.cpp b/src/world/Actor/SpawnPoint.cpp index d4a05b62..05741614 100644 --- a/src/world/Actor/SpawnPoint.cpp +++ b/src/world/Actor/SpawnPoint.cpp @@ -17,6 +17,16 @@ Sapphire::Entity::SpawnPoint::SpawnPoint( float x, float y, float z, float rot, { } +uint32_t Sapphire::Entity::SpawnPoint::getTimeOfDeath() const +{ + return m_timeOfDeath; +} + +void Sapphire::Entity::SpawnPoint::setTimeOfDeath( uint32_t timeOfDeath ) +{ + m_timeOfDeath = timeOfDeath; +} + float Sapphire::Entity::SpawnPoint::getPosX() const { return m_posX; diff --git a/src/world/Actor/SpawnPoint.h b/src/world/Actor/SpawnPoint.h index e99709ab..61931c7f 100644 --- a/src/world/Actor/SpawnPoint.h +++ b/src/world/Actor/SpawnPoint.h @@ -33,6 +33,9 @@ namespace Sapphire::Entity BNpcPtr getLinkedBNpc(); void setLinkedBNpc( BNpcPtr pBnpc ); + uint32_t getTimeOfDeath() const; + void setTimeOfDeath( uint32_t m_timeOfDeath ); + }; } diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index b858a8a1..953d685c 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -436,7 +436,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& player.getPos().x, player.getPos().y, player.getPos().z, - 1, framework() ); + 1, 1000, framework() ); auto playerZone = player.getCurrentZone(); diff --git a/src/world/ServerMgr.cpp b/src/world/ServerMgr.cpp index d675859a..c16092b0 100644 --- a/src/world/ServerMgr.cpp +++ b/src/world/ServerMgr.cpp @@ -163,6 +163,8 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) } framework()->set< Scripting::ScriptMgr >( pScript ); + loadBNpcTemplates(); + Logger::info( "TerritoryMgr: Setting up zones" ); auto pTeriMgr = std::make_shared< Manager::TerritoryMgr >( framework() ); auto pHousingMgr = std::make_shared< Manager::HousingMgr >( framework() ); @@ -189,7 +191,7 @@ void Sapphire::World::ServerMgr::run( int32_t argc, char* argv[] ) return; } - loadBNpcTemplates(); + Network::HivePtr hive( new Network::Hive() ); Network::addServerToHive< Network::GameConnection >( m_ip, m_port, hive, framework() ); @@ -421,7 +423,6 @@ void Sapphire::World::ServerMgr::updatePlayerName( uint32_t playerId, const std: void Sapphire::World::ServerMgr::loadBNpcTemplates() { auto pDb = framework()->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - auto pTeriMgr = framework()->get< TerritoryMgr >(); auto stmt = pDb->getPreparedStatement( Db::ZoneDbStatements::ZONE_SEL_BNPCTEMPLATES ); diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 14d745e8..5bbf6780 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -435,6 +435,7 @@ bool Sapphire::Zone::update( uint32_t currTime ) //updateBnpcs( tickCount ); onUpdate( currTime ); + updateSpawnPoints(); return true; } @@ -772,7 +773,7 @@ bool Sapphire::Zone::loadSpawnGroups() m_spawnGroups.emplace_back( id, templateId, level, maxHp ); - Logger::debug( "id: {0}, template: {1}, level: {2}, maxHp: {3}", id, templateId, level, maxHp ); + Logger::debug( "id: {0}, template: {1}, level: {2}, maxHp: {3}", id, m_spawnGroups.back().getTemplateId(), level, maxHp ); } res.reset(); @@ -800,3 +801,38 @@ bool Sapphire::Zone::loadSpawnGroups() } return false; } + +void Sapphire::Zone::updateSpawnPoints() +{ + for( auto& group : m_spawnGroups ) + { + for( auto& point : group.getSpawnPointList() ) + { + if( !point->getLinkedBNpc() && ( Util::getTimeSeconds() - point->getTimeOfDeath() ) > 60 ) + { + auto serverZone = m_pFw->get< World::ServerMgr >(); + + auto bNpcTemplate = serverZone->getBNpcTemplate( group.getTemplateId() ); + + if( !bNpcTemplate ) + { + //Logger::error( "No template found for templateId#{0}", group.getTemplateId() ); + continue; + } + + //Logger::error( "No template found for templateId#{0}", group.getTemplateId() ); + + auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, + point->getPosX(), + point->getPosY(), + point->getPosZ(), + group.getLevel(), + group.getMaxHp(), m_pFw ); + point->setLinkedBNpc( pBNpc ); + + pushActor( pBNpc ); + } + } + } + +} diff --git a/src/world/Territory/Zone.h b/src/world/Territory/Zone.h index 0ca2a750..dc8c8509 100644 --- a/src/world/Territory/Zone.h +++ b/src/world/Territory/Zone.h @@ -154,6 +154,7 @@ namespace Sapphire InstanceContentPtr getAsInstanceContent(); + void updateSpawnPoints(); }; } From 69f8fe13ac2a801244499440c6483aa8e6aa4cab Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 8 Jan 2019 17:12:13 +0100 Subject: [PATCH 352/385] Further opdating opcodes --- src/common/Network/PacketDef/Ipcs.h | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 472f565d..74220cc2 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -287,8 +287,8 @@ namespace Sapphire::Network::Packets AddWaymark = 0x0143, // updated 4.3 SkillHandler = 0x013B, // updated 4.5 - GMCommand1 = 0x013B, // updated 4.5 - GMCommand2 = 0x013C, // updated 4.5 + GMCommand1 = 0x013C, // updated 4.5 + GMCommand2 = 0x013D, // updated 4.5 UpdatePositionHandler = 0x013F, // updated 4.5 UpdatePositionInstance = 0x0183, // updated 4.3 @@ -297,17 +297,17 @@ namespace Sapphire::Network::Packets ReqPlaceHousingItem = 0x145, // updated 4.4 - BuildPresetHandler = 0x014A, // updated 4.4 - TalkEventHandler = 0x014B, // updated 4.4 - EmoteEventHandler = 0x014C, // updated 4.4 - WithinRangeEventHandler = 0x014D, // updated 4.4 - OutOfRangeEventHandler = 0x014E, // updated 4.4 - EnterTeriEventHandler = 0x014F, // updated 4.4 + BuildPresetHandler = 0x014E, // updated 4.5 + TalkEventHandler = 0x014F, // updated 4.5 + EmoteEventHandler = 0x0150, // updated 4.5 + WithinRangeEventHandler = 0x0151, // updated 4.5 + OutOfRangeEventHandler = 0x0152, // updated 4.5 + EnterTeriEventHandler = 0x0153, // updated 4.5 - ShopEventHandler = 0x0151, // updated 4.4 + ShopEventHandler = 0x0155, // updated 4.5 - ReturnEventHandler = 0x0154, // updated 4.4 - TradeReturnEventHandler = 0x0155, // updated 4.4 + ReturnEventHandler = 0x0158, // updated 4.5 + TradeReturnEventHandler = 0x0159, // updated 4.5 LinkshellEventHandler = 0x1150, // updated 4.1 ?? LinkshellEventHandler1 = 0x1151, // updated 4.1 ?? From e1875bc4c861b0589451cc1077cf7bab8f9d1c66 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 8 Jan 2019 17:26:13 +0100 Subject: [PATCH 353/385] Even more opcode updates --- src/common/Network/PacketDef/Ipcs.h | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 74220cc2..48ace863 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -233,18 +233,18 @@ namespace Sapphire::Network::Packets enum ClientZoneIpcType : uint16_t { - PingHandler = 0x0065, // unchanged 4.3 - InitHandler = 0x0066, // unchanged 4.3 + PingHandler = 0x0065, // unchanged 4.5 + InitHandler = 0x0066, // unchanged 4.5 - FinishLoadingHandler = 0x0069, // unchanged 4.3 + FinishLoadingHandler = 0x0069, // unchanged 4.5 CFCommenceHandler = 0x006F, CFRegisterDuty = 0x0071, CFRegisterRoulette = 0x0072, - PlayTimeHandler = 0x0073, // unchanged 4.3 - LogoutHandler = 0x0074, // unchanged 4.3 + PlayTimeHandler = 0x0073, // unchanged 4.5 + LogoutHandler = 0x0074, // unchanged 4.5 CFDutyInfoHandler = 0x0078, // updated 4.2 @@ -257,7 +257,7 @@ namespace Sapphire::Network::Packets ReqSearchInfoHandler = 0x00E4, // updated 4.5 ReqExamineSearchCommentHandler = 0x00E5, // updated 4.5 - SetSearchInfoHandler = 0x00E2, // updated 4.3 + SetSearchInfoHandler = 0x00E2, // unchanged 4.5 BlackListHandler = 0x00F0, // updated 4.5 PlayerSearchHandler = 0x00E6, // updated 4.5 @@ -284,7 +284,7 @@ namespace Sapphire::Network::Packets ClientTrigger = 0x0138, // updated 4.5 DiscoveryHandler = 0x0139, // updated 4.5 - AddWaymark = 0x0143, // updated 4.3 + AddWaymark = 0x013A, // updated 4.5 SkillHandler = 0x013B, // updated 4.5 GMCommand1 = 0x013C, // updated 4.5 @@ -293,9 +293,9 @@ namespace Sapphire::Network::Packets UpdatePositionHandler = 0x013F, // updated 4.5 UpdatePositionInstance = 0x0183, // updated 4.3 - InventoryModifyHandler = 0x0142, // updated 4.4 + InventoryModifyHandler = 0x0146, // updated 4.5 ( +4 ) - ReqPlaceHousingItem = 0x145, // updated 4.4 + ReqPlaceHousingItem = 0x149, // updated 4.5 BuildPresetHandler = 0x014E, // updated 4.5 TalkEventHandler = 0x014F, // updated 4.5 @@ -312,15 +312,15 @@ namespace Sapphire::Network::Packets LinkshellEventHandler = 0x1150, // updated 4.1 ?? LinkshellEventHandler1 = 0x1151, // updated 4.1 ?? - LandRenameHandler = 0x0171, // updated 4.4 - HousingUpdateHouseGreeting = 0x0172, // updated 4.4 - HousingUpdateObjectPosition = 0x0173, // updated 4.4 + LandRenameHandler = 0x0175, // updated 4.5 + HousingUpdateHouseGreeting = 0x0176, // updated 4.5 + HousingUpdateObjectPosition = 0x0177, // updated 4.5 - SetSharedEstateSettings = 0x0177, // updated 4.4 + SetSharedEstateSettings = 0x017B, // updated 4.5 PerformNoteHandler = 0x029B, // updated 4.3 - ReqEquipDisplayFlagsChange = 0x016F, // updated 4.4 + ReqEquipDisplayFlagsChange = 0x0173, // updated 4.5 }; From 5b90ca72cc8d6b879edc414beb4159a10cdb4034 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 8 Jan 2019 21:20:37 +0100 Subject: [PATCH 354/385] Updated CommonGen.h for bluemage --- src/common/Common.h | 15 ---- src/common/CommonGen.h | 133 +++++++++++++++++++++--------- src/tools/exd_common_gen/main.cpp | 3 +- 3 files changed, 95 insertions(+), 56 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 77d29367..bbd453d4 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -880,21 +880,6 @@ namespace Sapphire::Common heart = 0x06 }; - enum HousingAppeal : uint8_t - { - NoAppeal = 0, - Emporium = 1, - Botique = 2, - DesignerHome = 3, - MessageBook = 4, - Tavern = 5, - Eatery = 6, - ImmersiveExperience = 7, - Aquarium = 9, - Sanctum = 10, - Venue = 11, - }; - enum WardlandFlags : uint8_t { IsEstateOwned = 1, diff --git a/src/common/CommonGen.h b/src/common/CommonGen.h index 6004cf83..8c9b922a 100644 --- a/src/common/CommonGen.h +++ b/src/common/CommonGen.h @@ -11,9 +11,9 @@ namespace Common { /////////////////////////////////////////////////////////// //ActionCategory.exd -enum class ActionCategory : - uint8_t +enum class ActionCategory : uint8_t { + None = 0, Autoattack = 1, Spell = 2, Weaponskill = 3, @@ -33,8 +33,7 @@ enum class ActionCategory : /////////////////////////////////////////////////////////// //BeastReputationRank.exd -enum class BeastReputationRank : - uint8_t +enum class BeastReputationRank : uint8_t { None = 0, Neutral = 1, @@ -49,15 +48,13 @@ enum class BeastReputationRank : /////////////////////////////////////////////////////////// //BeastTribe.exd -enum class BeastTribe : - uint8_t +enum class BeastTribe : uint8_t { }; /////////////////////////////////////////////////////////// //ClassJob.exd -enum class ClassJob : - uint8_t +enum class ClassJob : uint8_t { Adventurer = 0, Gladiator = 1, @@ -95,13 +92,14 @@ enum class ClassJob : Astrologian = 33, Samurai = 34, Redmage = 35, + Bluemage = 36, }; /////////////////////////////////////////////////////////// //ContentType.exd -enum class ContentType : - uint8_t +enum class ContentType : uint8_t { + None = 0, DutyRoulette = 1, Dungeons = 2, Guildhests = 3, @@ -121,36 +119,42 @@ enum class ContentType : DisciplesoftheHand = 17, RetainerVentures = 18, GoldSaucer = 19, + one = 20, DeepDungeons = 21, + two = 22, + three = 23, WondrousTails = 24, CustomDeliveries = 25, + Eureka = 26, + four = 27, }; /////////////////////////////////////////////////////////// //EmoteCategory.exd -enum class EmoteCategory : - uint8_t +enum class EmoteCategory : uint8_t { + None = 0, General = 1, - Persistent = 2, + Special = 2, Expressions = 3, + one = 4, }; /////////////////////////////////////////////////////////// //ExVersion.exd -enum class ExVersion : - uint8_t +enum class ExVersion : uint8_t { ARealmReborn = 0, Heavensward = 1, Stormblood = 2, + three = 3, }; /////////////////////////////////////////////////////////// //GrandCompany.exd -enum GrandCompany : uint8_t +enum class GrandCompany : uint8_t { - NoGc = 0, + None = 0, Maelstrom = 1, OrderoftheTwinAdder = 2, ImmortalFlames = 3, @@ -160,6 +164,7 @@ enum GrandCompany : uint8_t //GuardianDeity.exd enum class GuardianDeity : uint8_t { + None = 0, HalonetheFury = 1, MenphinatheLover = 2, ThaliaktheScholar = 3, @@ -176,9 +181,9 @@ enum class GuardianDeity : uint8_t /////////////////////////////////////////////////////////// //ItemUICategory.exd -enum class ItemUICategory : - uint8_t +enum class ItemUICategory : uint8_t { + None = 0, PugilistsArm = 1, GladiatorsArm = 2, MaraudersArm = 3, @@ -279,13 +284,18 @@ enum class ItemUICategory : ScholarsArm = 98, FishersSecondaryTool = 99, Currency = 100, + SubmersibleHull = 101, + SubmersibleStern = 102, + SubmersibleBow = 103, + SubmersibleBridge = 104, + BlueMagesArm = 105, }; /////////////////////////////////////////////////////////// //ItemSearchCategory.exd -enum class ItemSearchCategory : - uint8_t +enum class ItemSearchCategory : uint8_t { + None = 0, PrimaryArms = 1, PrimaryTools = 2, PrimaryTools1 = 3, @@ -364,7 +374,7 @@ enum class ItemSearchCategory : DarkKnightsArms = 76, MachinistsArms = 77, AstrologiansArms = 78, - AirshipComponents = 79, + Airship_SubmersibleComponents = 79, OrchestrionComponents = 80, GardeningItems = 81, Paintings = 82, @@ -375,8 +385,7 @@ enum class ItemSearchCategory : /////////////////////////////////////////////////////////// //OnlineStatus.exd -enum class OnlineStatus : - uint8_t +enum class OnlineStatus : uint8_t { Producer = 1, GameMaster = 2, @@ -429,9 +438,9 @@ enum class OnlineStatus : /////////////////////////////////////////////////////////// //Race.exd -enum class Race : - uint8_t +enum class Race : uint8_t { + None = 0, Hyur = 1, Elezen = 2, Lalafell = 3, @@ -442,9 +451,9 @@ enum class Race : /////////////////////////////////////////////////////////// //Tribe.exd -enum class Tribe : - uint8_t +enum class Tribe : uint8_t { + None = 0, Midlander = 1, Highlander = 2, Wildwood = 3, @@ -461,8 +470,7 @@ enum class Tribe : /////////////////////////////////////////////////////////// //Town.exd -enum class Town : - uint8_t +enum class Town : uint8_t { Nowheresville = 0, LimsaLominsa = 1, @@ -474,8 +482,7 @@ enum class Town : /////////////////////////////////////////////////////////// //Weather.exd -enum class Weather : - uint8_t +enum class Weather : uint8_t { None = 0, ClearSkies = 1, @@ -543,8 +550,8 @@ enum class Weather : FairSkies7 = 63, Rain2 = 64, FairSkies8 = 65, - Dragonstorm = 66, - Dragonstorm1 = 67, + Dragonstorms = 66, + Dragonstorms1 = 67, Subterrain = 68, Concordance = 69, Concordance1 = 70, @@ -557,17 +564,65 @@ enum class Weather : DimensionalDisruption = 77, DimensionalDisruption1 = 78, DimensionalDisruption2 = 79, - Revelstorm = 80, - Revelstorm1 = 81, + Revelstorms = 80, + Revelstorms1 = 81, EternalBliss = 82, EternalBliss1 = 83, - Wyrmstorm = 84, - Wyrmstorm1 = 85, - Revelstorm2 = 86, + Wyrmstorms = 84, + Wyrmstorms1 = 85, + Revelstorms2 = 86, Quicklevin = 87, Thunder3 = 88, DimensionalDisruption3 = 89, FairSkies9 = 90, + ClearSkies1 = 91, + WhiteCyclones = 92, + WhiteCyclones1 = 93, + WhiteCyclones2 = 94, + Ultimania = 95, + WhiteCyclones3 = 96, + Moonlight = 97, + Moonlight1 = 98, + Moonlight2 = 99, + Moonlight3 = 100, + FairSkies10 = 101, + Scarlet = 102, + Scarlet1 = 103, + Scarlet2 = 104, + FairSkies11 = 105, + FairSkies12 = 106, + FairSkies13 = 107, + FairSkies14 = 108, + Flames = 109, + Tsunamis = 110, + Cyclones = 111, + Geostorms = 112, + TrueBlue = 113, + TrueBlue1 = 114, + TrueBlue2 = 115, + TrueBlue3 = 117, +}; + +/////////////////////////////////////////////////////////// +//HousingAppeal.exd +enum class HousingAppeal : uint8_t +{ + None = 0, + Emporium = 1, + Boutique = 2, + DesignerHome = 3, + MessageBook = 4, + Tavern = 5, + Eatery = 6, + ImmersiveExperience = 7, + Cafe = 8, + Aquarium = 9, + Sanctum = 10, + Venue = 11, + Florist = 12, + Library = 14, + PhotoStudio = 15, + HauntedHouse = 16, }; } } diff --git a/src/tools/exd_common_gen/main.cpp b/src/tools/exd_common_gen/main.cpp index 295df693..4e36da50 100644 --- a/src/tools/exd_common_gen/main.cpp +++ b/src/tools/exd_common_gen/main.cpp @@ -21,8 +21,7 @@ Sapphire::Data::ExdDataGenerated g_exdData; using namespace Sapphire; //const std::string datLocation( "/opt/sapphire_3_15_0/bin/sqpack" ); -const std::string datLocation( - "C:\\Data\\Games\\Final Fantasy XIV\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack\\ffxiv" ); +const std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); std::string generateEnum( const std::string& exd, int8_t nameIndex, const std::string& type, bool useLang = true ) { From 062f2d311415adf8b790c37589add966731f70f3 Mon Sep 17 00:00:00 2001 From: Tahir Akhlaq Date: Tue, 8 Jan 2019 20:35:41 +0000 Subject: [PATCH 355/385] apparently /std:c++17 is needed even if CMAKE_CXX_COMPILER is 17 --- cmake/compiler.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/cmake/compiler.cmake b/cmake/compiler.cmake index 0a755ce3..fa32b7b3 100644 --- a/cmake/compiler.cmake +++ b/cmake/compiler.cmake @@ -11,6 +11,7 @@ else() set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj" ) set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4834" ) + set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17" ) set( CMAKE_CXX_STANDARD 17 ) set( CMAKE_CXX_STANDARD_REQUIRED ON ) From 2a626ebc298d79895e9faa36c757f28273589c51 Mon Sep 17 00:00:00 2001 From: Mordred Date: Tue, 8 Jan 2019 23:58:14 +0100 Subject: [PATCH 356/385] Added a field for bluemage to player --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++-- src/world/Actor/Player.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index d3900e27..ccec3b79 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -835,14 +835,14 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned char unknown95[10]; unsigned char unknown9F[2]; unsigned char unknownA1[3]; - unsigned int exp[25]; + unsigned int exp[26]; unsigned int unknown108; unsigned int pvpTotalExp; unsigned int unknownPvp110; unsigned int pvpExp; unsigned int pvpFrontlineOverallRanks[3]; unsigned int exploratoryMissionNextTimestamp; - unsigned short levels[25]; + unsigned short levels[26]; unsigned short unknown15C[9]; unsigned short fishingRecordsFish[26]; unsigned short fishingRecordsFishWeight[26]; diff --git a/src/world/Actor/Player.h b/src/world/Actor/Player.h index 2009e219..1ff34bfb 100644 --- a/src/world/Actor/Player.h +++ b/src/world/Actor/Player.h @@ -1013,8 +1013,8 @@ namespace Sapphire::Entity uint8_t m_discovery[421]; uint32_t m_playTime; - uint16_t m_classArray[25]; - uint32_t m_expArray[25]; + uint16_t m_classArray[26]; + uint32_t m_expArray[26]; uint8_t m_aetheryte[17]; uint8_t m_unlocks[64]; uint8_t m_orchestrion[40]; From 1cc38c0cca655a9bd394a5b141c39a47e3e096e9 Mon Sep 17 00:00:00 2001 From: Mordred Date: Wed, 9 Jan 2019 23:57:49 +0100 Subject: [PATCH 357/385] Fixed black screen on new character, fixed servernotice size, initial initui adjustments. --- src/common/Network/CommonActorControl.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 223 +++++++++--------- src/scripts/opening/OpeningGridania.cpp | 9 +- src/scripts/opening/OpeningLimsa.cpp | 3 +- src/scripts/opening/OpeningUldah.cpp | 3 +- src/world/Actor/Player.cpp | 13 +- 6 files changed, 128 insertions(+), 125 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 32a00705..231a1591 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -185,7 +185,7 @@ enum ActorControlType : uint16_t LogMsg = 0x205, // LogMessage? AchievementMsg = 0x206, - SetItemLevel = 0x209, + SetItemLevel = 0x207, //updated 4.5 ( 0x209 before ) ChallengeEntryCompleteMsg = 0x20B, ChallengeEntryUnlockMsg = 0x20C, diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 6556ccda..c949502c 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -158,7 +158,7 @@ struct FFXIVIpcServerNotice : FFXIVIpcBasePacket< ServerNotice > { /* 0000 */ uint8_t padding; - char message[307]; + char message[775]; }; struct FFXIVIpcSetOnlineStatus : @@ -783,8 +783,8 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int fishCaught; unsigned int useBaitCatalogId; unsigned int unknown28; - unsigned short unknownPvp2C; - unsigned short unknown3; + unsigned __int16 unknownPvp2C; + unsigned __int16 unknown3; unsigned int pvpFrontlineOverallCampaigns; unsigned int unknownTimestamp34; unsigned int unknownTimestamp38; @@ -793,122 +793,123 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int unknown44; float companionTimePassed; unsigned int unknown4C; - unsigned short unknown50; - unsigned short unknownPvp52[4]; - unsigned short playerCommendations; - unsigned short unknown5C; - unsigned short unknown5E; - unsigned short pvpFrontlineWeeklyCampaigns; - unsigned short enhancedAnimaGlassProgress; - unsigned short unknown64[4]; - unsigned short pvpRivalWingsTotalMatches; - unsigned short pvpRivalWingsTotalVictories; - unsigned short pvpRivalWingsWeeklyMatches; - unsigned short pvpRivalWingsWeeklyVictories; - unsigned char maxLevel; - unsigned char expansion; - unsigned char unknown76; - unsigned char race; - unsigned char tribe; - unsigned char gender; - unsigned char currentJob; - unsigned char currentClass; - unsigned char deity; - unsigned char namedayMonth; - unsigned char namedayDay; - unsigned char cityState; - unsigned char homepoint; - unsigned char unknown81; - unsigned char petHotBar; - unsigned char companionRank; - unsigned char companionStars; - unsigned char companionSp; - unsigned char companionUnk86; - unsigned char companionColor; - unsigned char companionFavoFeed; - unsigned char unknown89; - unsigned char unknown8A[4]; - unsigned char hasRelicBook; - unsigned char relicBookId; - unsigned char unknown90[4]; - unsigned char craftingMasterMask; - unsigned char unknown95[10]; - unsigned char unknown9F[2]; - unsigned char unknownA1[3]; + unsigned __int16 unknown50; + unsigned __int16 unknownPvp52[4]; + unsigned __int16 playerCommendations; + unsigned __int16 unknown5C; + unsigned __int16 unknown5E; + unsigned __int16 pvpFrontlineWeeklyCampaigns; + unsigned __int16 enhancedAnimaGlassProgress; + unsigned __int16 unknown64[4]; + unsigned __int16 pvpRivalWingsTotalMatches; + unsigned __int16 pvpRivalWingsTotalVictories; + unsigned __int16 pvpRivalWingsWeeklyMatches; + unsigned __int16 pvpRivalWingsWeeklyVictories; + unsigned __int8 maxLevel; + unsigned __int8 expansion; + unsigned __int8 unknown76; + unsigned __int8 race; + unsigned __int8 tribe; + unsigned __int8 gender; + unsigned __int8 currentJob; + unsigned __int8 currentClass; + unsigned __int8 deity; + unsigned __int8 namedayMonth; + unsigned __int8 namedayDay; + unsigned __int8 cityState; + unsigned __int8 homepoint; + unsigned __int8 unknown81; + unsigned __int8 petHotBar; + unsigned __int8 companionRank; + unsigned __int8 companionStars; + unsigned __int8 companionSp; + unsigned __int8 companionUnk86; + unsigned __int8 companionColor; + unsigned __int8 companionFavoFeed; + unsigned __int8 unknown89; + unsigned __int8 unknown8A[4]; + unsigned __int8 hasRelicBook; + unsigned __int8 relicBookId; + unsigned __int8 unknown90[4]; + unsigned __int8 craftingMasterMask; + unsigned __int8 unknown95[10]; + unsigned __int8 unknown9F[2]; + unsigned __int8 unknownA1[3]; unsigned int exp[26]; unsigned int unknown108; unsigned int pvpTotalExp; unsigned int unknownPvp110; unsigned int pvpExp; unsigned int pvpFrontlineOverallRanks[3]; + unsigned __int16 levels[26]; unsigned int exploratoryMissionNextTimestamp; - unsigned short levels[26]; - unsigned short unknown15C[9]; - unsigned short fishingRecordsFish[26]; - unsigned short fishingRecordsFishWeight[26]; - unsigned short beastExp[11]; - unsigned short unknown1EA[5]; - unsigned short pvpFrontlineWeeklyRanks[3]; - unsigned short unknownMask1FA[3]; - unsigned char companionName[21]; - unsigned char companionDefRank; - unsigned char companionAttRank; - unsigned char companionHealRank; - unsigned char mountGuideMask[17]; + unsigned __int16 unknown15C[9]; + unsigned __int16 fishingRecordsFish[26]; + unsigned __int16 fishingRecordsFishWeight[26]; + unsigned __int16 beastExp[11]; + unsigned __int16 unknown1EA[5]; + unsigned __int16 pvpFrontlineWeeklyRanks[3]; + unsigned __int16 unknownMask1FA[3]; + unsigned __int8 companionName[21]; + unsigned __int8 companionDefRank; + unsigned __int8 companionAttRank; + unsigned __int8 companionHealRank; + unsigned __int8 mountGuideMask[17]; char name[32]; - unsigned char unknownOword[16]; - unsigned char unknown258; - unsigned char unlockBitmask[64]; - unsigned char aetheryte[17]; - unsigned char discovery[421]; - unsigned char howto[33]; - unsigned char minions[40]; - unsigned char chocoboTaxiMask[8]; - unsigned char watchedCutscenes[115]; - unsigned char companionBardingMask[9]; - unsigned char companionEquippedHead; - unsigned char companionEquippedBody; - unsigned char companionEquippedLegs; - unsigned char unknown519[4]; - unsigned char unknownMask51D[11]; - unsigned char fishingGuideMask[89]; - unsigned char fishingSpotVisited[25]; - unsigned char unknown59A[15]; - unsigned char unknown5A9[2]; - unsigned char unknownPvp5AB[2]; - unsigned char pvpLevel; - unsigned char beastRank[11]; - unsigned char unknown5B9[11]; - unsigned char pose; - unsigned char weaponPose; - unsigned char unknownMask5C4[3]; - unsigned char unknown5C9[2]; - unsigned char challengeLogComplete[9]; - unsigned char unknown5D4[11]; - unsigned char unknownMask5DD[28]; - unsigned char relicCompletion[12]; - unsigned char sightseeingMask[26]; - unsigned char huntingMarkMask[55]; - unsigned char tripleTriadCards[30]; - unsigned char unknownMask673[10]; - unsigned char unknown67D; - unsigned char aetherCurrentMask[22]; - unsigned char unknown694[3]; - unsigned char orchestrionMask[40]; - unsigned char hallOfNoviceCompleteMask[3]; - unsigned char animaCompletion[11]; - unsigned char unknown6CD[16]; - unsigned char unknownMask6DB[11]; - unsigned char unlockedRaids[28]; - unsigned char unlockedDungeons[18]; - unsigned char unlockedGuildhests[10]; - unsigned char unlockedTrials[8]; - unsigned char unlockedPvp[5]; - unsigned char clearedRaids[28]; - unsigned char clearedDungeons[18]; - unsigned char clearedGuildhests[10]; - unsigned char clearedTrials[8]; - unsigned char clearedPvp[5]; + unsigned __int8 unknownOword[15]; + unsigned __int8 unlockBitmask[64]; + unsigned __int8 aetheryte[17]; + unsigned __int8 unknown258; + unsigned __int8 chocoboTaxiMask[8]; + unsigned __int8 unknown11111[118]; + unsigned __int8 companionBardingMask[9]; + unsigned __int8 companionEquippedHead; + unsigned __int8 companionEquippedBody; + unsigned __int8 companionEquippedLegs; + unsigned __int8 unknown519[4]; + unsigned __int8 unknownMask51D[11]; + unsigned __int8 fishingGuideMask[89]; + unsigned __int8 fishingSpotVisited[25]; + unsigned __int8 unknown59A[15]; + unsigned __int8 unknown5A9[2]; + unsigned __int8 unknownPvp5AB[2]; + unsigned __int8 beastRank[11]; + unsigned __int8 pose; + unsigned __int8 weaponPose; + unsigned __int8 unknownMask5C4[3]; + unsigned __int8 unknown5C9[2]; + unsigned __int8 challengeLogComplete[9]; + unsigned __int8 unknownMask5DD[28]; + unsigned __int8 tripleTriadCards[30]; + unsigned __int8 unknownMask673[10]; + unsigned __int8 unknown5B9[11]; + unsigned __int8 unknown5D4[11]; + unsigned __int8 unknown694[3]; + unsigned __int8 pvpLevel; + unsigned __int8 unknown67D; + unsigned __int8 howto[34]; + unsigned __int8 minions[42]; + unsigned __int8 watchedCutscenes[118]; + unsigned __int8 discovery[421]; + unsigned __int8 relicCompletion[12]; + unsigned __int8 sightseeingMask[26]; + unsigned __int8 huntingMarkMask[55]; + unsigned __int8 aetherCurrentMask[22]; + unsigned __int8 orchestrionMask[40]; + unsigned __int8 hallOfNoviceCompleteMask[3]; + unsigned __int8 animaCompletion[11]; + unsigned __int8 unknown6CD[16]; + unsigned __int8 unknownMask6DB[11]; + unsigned __int8 unlockedRaids[28]; + unsigned __int8 unlockedDungeons[18]; + unsigned __int8 unlockedGuildhests[10]; + unsigned __int8 unlockedTrials[8]; + unsigned __int8 unlockedPvp[5]; + unsigned __int8 clearedRaids[28]; + unsigned __int8 clearedDungeons[18]; + unsigned __int8 clearedGuildhests[10]; + unsigned __int8 clearedTrials[8]; + unsigned __int8 clearedPvp[5]; }; diff --git a/src/scripts/opening/OpeningGridania.cpp b/src/scripts/opening/OpeningGridania.cpp index 0623890a..20617ccb 100644 --- a/src/scripts/opening/OpeningGridania.cpp +++ b/src/scripts/opening/OpeningGridania.cpp @@ -56,8 +56,8 @@ private: auto item = player.addItem( itemId, 1, false, true ); - if( item ) - player.equipItem( Common::GearSetSlot::Ring2, item, true ); + //if( item ) + // player.equipItem( Common::GearSetSlot::Ring2, item, true ); player.setOpeningSequence( 1 ); Scene00001( player ); @@ -65,12 +65,13 @@ private: player.playScene( getId(), 0, NO_DEFAULT_CAMERA | INVIS_ENPC | CONDITION_CUTSCENE | HIDE_UI | - HIDE_HOTBAR | SILENT_ENTER_TERRI_ENV, 0, 1, callback ); + HIDE_HOTBAR | SILENT_ENTER_TERRI_ENV | SILENT_ENTER_TERRI_BGM | SILENT_ENTER_TERRI_SE | + DISABLE_SKIP | DISABLE_STEALTH, 0, 1, callback ); } void Scene00001( Entity::Player& player ) { - player.playScene( getId(), 1, NO_DEFAULT_CAMERA | HIDE_HOTBAR, 1, 0x32 ); + player.playScene( getId(), 1, NO_DEFAULT_CAMERA | HIDE_HOTBAR, 0, 0 ); } void Scene00020( Entity::Player& player ) diff --git a/src/scripts/opening/OpeningLimsa.cpp b/src/scripts/opening/OpeningLimsa.cpp index 73f9af52..67b56b1e 100644 --- a/src/scripts/opening/OpeningLimsa.cpp +++ b/src/scripts/opening/OpeningLimsa.cpp @@ -81,7 +81,8 @@ private: player.playScene( getId(), 0, NO_DEFAULT_CAMERA | INVIS_ENPC | CONDITION_CUTSCENE | HIDE_UI | - HIDE_HOTBAR | SILENT_ENTER_TERRI_ENV, 0, 1, callback ); + HIDE_HOTBAR | SILENT_ENTER_TERRI_ENV | SILENT_ENTER_TERRI_BGM | SILENT_ENTER_TERRI_SE | + DISABLE_SKIP | DISABLE_STEALTH, 0, 1, callback ); } void Scene00001( Entity::Player& player ) diff --git a/src/scripts/opening/OpeningUldah.cpp b/src/scripts/opening/OpeningUldah.cpp index 256d3b34..58890942 100644 --- a/src/scripts/opening/OpeningUldah.cpp +++ b/src/scripts/opening/OpeningUldah.cpp @@ -66,7 +66,8 @@ private: player.playScene( getId(), 0, NO_DEFAULT_CAMERA | INVIS_ENPC | CONDITION_CUTSCENE | HIDE_UI | - HIDE_HOTBAR | SILENT_ENTER_TERRI_ENV, 0, 1, callback ); + HIDE_HOTBAR | SILENT_ENTER_TERRI_ENV | SILENT_ENTER_TERRI_BGM | SILENT_ENTER_TERRI_SE | + DISABLE_SKIP | DISABLE_STEALTH, 0, 1, callback ); } void Scene00001( Entity::Player& player ) diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index c5f70e4b..17d7850e 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -1694,19 +1694,18 @@ void Sapphire::Entity::Player::sendTitleList() void Sapphire::Entity::Player::sendZoneInPackets( uint32_t param1, uint32_t param2 = 0, uint32_t param3 = 0, uint32_t param4 = 0, - bool shouldSetStatus = false ) + bool shouldSetStatus = false ) { auto zoneInPacket = makeActorControl143( getId(), ZoneIn, param1, param2, param3, param4 ); auto SetStatusPacket = makeActorControl142( getId(), SetStatus, static_cast< uint8_t >( Common::ActorStatus::Idle ) ); if( !getGmInvis() ) - sendToInRangeSet( zoneInPacket, true ); + sendToInRangeSet( zoneInPacket ); + if( shouldSetStatus ) - sendToInRangeSet( SetStatusPacket ); - else - queuePacket( zoneInPacket ); - if( shouldSetStatus ) - queuePacket( SetStatusPacket ); + sendToInRangeSet( SetStatusPacket, true ); + + queuePacket( zoneInPacket ); setZoningType( Common::ZoneingType::None ); unsetStateFlag( PlayerStateFlag::BetweenAreas ); From c03dc6dc80a3cb1314944f89e4dfdce927fccbec Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 10 Jan 2019 15:03:25 +1100 Subject: [PATCH 358/385] initial pass to fix housing issues --- sql/schema/schema.sql | 6 ++--- src/common/Common.h | 2 +- .../Network/PacketDef/Zone/ServerZoneDef.h | 4 +-- src/world/Inventory/HousingItem.cpp | 4 +-- src/world/Inventory/HousingItem.h | 6 ++--- src/world/Manager/HousingMgr.cpp | 26 +++++-------------- .../Housing/HousingInteriorTerritory.cpp | 2 +- .../Housing/HousingInteriorTerritory.h | 2 +- 8 files changed, 19 insertions(+), 33 deletions(-) diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql index 26be0e43..b2975d2b 100644 --- a/sql/schema/schema.sql +++ b/sql/schema/schema.sql @@ -576,9 +576,9 @@ CREATE TABLE `zonepositions` ( CREATE TABLE `landplaceditems` ( `ItemId` INT(20) UNSIGNED NOT NULL, - `PosX` INT(10) NOT NULL, - `PosY` INT(10) NOT NULL, - `PosZ` INT(10) NOT NULL, + `PosX` FLOAT NOT NULL, + `PosY` FLOAT NOT NULL, + `PosZ` FLOAT NOT NULL, `Rotation` INT(10) NOT NULL, PRIMARY KEY (`ItemId`) ) diff --git a/src/common/Common.h b/src/common/Common.h index bbd453d4..168155e4 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -856,7 +856,7 @@ namespace Sapphire::Common { uint32_t itemId; uint16_t itemRotation; - Common::FFXIVARR_POSITION3_U16 pos; + Common::FFXIVARR_POSITION3 pos; }; enum HouseSize : uint8_t diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index c949502c..7845240a 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1695,7 +1695,7 @@ struct FFXIVIpcHousingObjectMove : FFXIVIpcBasePacket< HousingObjectMove > uint16_t itemRotation; uint8_t objectArray; uint8_t landId; - Common::FFXIVARR_POSITION3_U16 pos; + Common::FFXIVARR_POSITION3 pos; uint16_t unknown1; uint16_t unknown2; uint16_t unknown3; @@ -1726,7 +1726,7 @@ struct FFXIVIpcHousingInternalObjectSpawn : FFXIVIpcBasePacket< HousingInternalO uint8_t unk2; uint8_t pad2; uint16_t rotation; - Common::FFXIVARR_POSITION3_U16 pos; + Common::FFXIVARR_POSITION3 pos; }; struct FFXIVIpcHousingIndoorInitialize : FFXIVIpcBasePacket< HousingIndoorInitialize > diff --git a/src/world/Inventory/HousingItem.cpp b/src/world/Inventory/HousingItem.cpp index a07282df..44b0da90 100644 --- a/src/world/Inventory/HousingItem.cpp +++ b/src/world/Inventory/HousingItem.cpp @@ -18,12 +18,12 @@ void Sapphire::Inventory::HousingItem::setRot( uint16_t rot ) m_rotation = rot; } -Sapphire::Common::FFXIVARR_POSITION3_U16 Sapphire::Inventory::HousingItem::getPos() const +Sapphire::Common::FFXIVARR_POSITION3 Sapphire::Inventory::HousingItem::getPos() const { return m_position; } -void Sapphire::Inventory::HousingItem::setPos( Sapphire::Common::FFXIVARR_POSITION3_U16 pos ) +void Sapphire::Inventory::HousingItem::setPos( Sapphire::Common::FFXIVARR_POSITION3 pos ) { m_position = pos; } \ No newline at end of file diff --git a/src/world/Inventory/HousingItem.h b/src/world/Inventory/HousingItem.h index 91c3426a..1460d6d6 100644 --- a/src/world/Inventory/HousingItem.h +++ b/src/world/Inventory/HousingItem.h @@ -14,11 +14,11 @@ namespace Sapphire::Inventory void setRot( uint16_t rot ); uint16_t getRot() const; - void setPos( Common::FFXIVARR_POSITION3_U16 pos ); - Common::FFXIVARR_POSITION3_U16 getPos() const; + void setPos( Common::FFXIVARR_POSITION3 pos ); + Common::FFXIVARR_POSITION3 getPos() const; private: - Common::FFXIVARR_POSITION3_U16 m_position; + Common::FFXIVARR_POSITION3 m_position; uint16_t m_rotation; }; } diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index bf2ff370..41c8da64 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -139,9 +139,9 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() if( isPlacedItemsInventory( static_cast< Common::InventoryType >( containerId ) ) ) { item->setPos( { - res->getUInt16( "PosX" ), - res->getUInt16( "PosY" ), - res->getUInt16( "PosZ" ) + res->getFloat( "PosX" ), + res->getFloat( "PosY" ), + res->getFloat( "PosZ" ) } ); item->setRot( res->getUInt16( "Rotation" ) ); @@ -1007,12 +1007,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity return; // set params - item->setPos( { - Util::floatToUInt16( pos.x ), - Util::floatToUInt16( pos.y ), - Util::floatToUInt16( pos.z ) - } ); - + item->setPos( pos ); item->setRot( Util::floatToUInt16Rot( rotation ) ); } else @@ -1281,11 +1276,7 @@ bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& pla if( !item ) return false; - item->setPos( { - Util::floatToUInt16( pos.x ), - Util::floatToUInt16( pos.y ), - Util::floatToUInt16( pos.z ) - } ); + item->setPos( pos ); item->setRot( Util::floatToUInt16Rot( rot ) ); @@ -1324,12 +1315,7 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla if( !item ) return false; - item->setPos( { - Util::floatToUInt16( pos.x ), - Util::floatToUInt16( pos.y ), - Util::floatToUInt16( pos.z ) - } ); - + item->setPos( pos ); item->setRot( Util::floatToUInt16Rot( rot ) ); auto invMgr = framework()->get< InventoryMgr >(); diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 2ef529c8..9b311177 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -196,7 +196,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::spawnHousing void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousingObjectPosition( Entity::Player& sourcePlayer, uint16_t slot, - Common::FFXIVARR_POSITION3_U16 pos, + Common::FFXIVARR_POSITION3 pos, uint16_t rot ) { auto& obj = m_housingObjects[ slot ]; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.h b/src/world/Territory/Housing/HousingInteriorTerritory.h index f1021ccd..352c414e 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.h +++ b/src/world/Territory/Housing/HousingInteriorTerritory.h @@ -29,7 +29,7 @@ namespace Sapphire::World::Territory::Housing void spawnHousingObject( uint8_t containerIdx, uint16_t slot, uint16_t containerType, Inventory::HousingItemPtr item ); void updateHousingObjectPosition( - Entity::Player& sourcePlayer, uint16_t slot, Sapphire::Common::FFXIVARR_POSITION3_U16 pos, uint16_t rot ); + Entity::Player& sourcePlayer, uint16_t slot, Sapphire::Common::FFXIVARR_POSITION3 pos, uint16_t rot ); void removeHousingObject( uint16_t slot ); private: From 22e73a0da8cfb1c8c1c8eaeaac0d365da508bd1e Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 10 Jan 2019 17:34:22 +1100 Subject: [PATCH 359/385] additional playerspawn fields and fix logging into housing zones --- src/common/Common.h | 2 + .../Network/PacketDef/Zone/ServerZoneDef.h | 228 +++++++++--------- 2 files changed, 115 insertions(+), 115 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index 168155e4..3b3af244 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -857,6 +857,8 @@ namespace Sapphire::Common uint32_t itemId; uint16_t itemRotation; Common::FFXIVARR_POSITION3 pos; + uint32_t unknown; + uint16_t padding; }; enum HouseSize : uint8_t diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 7845240a..b497e01b 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -482,10 +482,8 @@ struct FFXIVIpcPlayerSpawn : { uint16_t title; uint16_t u1b; - uint8_t u2b; - uint8_t u2ab; - uint8_t u3a; - uint8_t u3b; + uint16_t currentWorldId; + uint16_t homeWorldId; uint8_t gmRank; uint8_t u3c; @@ -783,8 +781,8 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int fishCaught; unsigned int useBaitCatalogId; unsigned int unknown28; - unsigned __int16 unknownPvp2C; - unsigned __int16 unknown3; + uint16_t unknownPvp2C; + uint16_t unknown3; unsigned int pvpFrontlineOverallCampaigns; unsigned int unknownTimestamp34; unsigned int unknownTimestamp38; @@ -793,123 +791,123 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int unknown44; float companionTimePassed; unsigned int unknown4C; - unsigned __int16 unknown50; - unsigned __int16 unknownPvp52[4]; - unsigned __int16 playerCommendations; - unsigned __int16 unknown5C; - unsigned __int16 unknown5E; - unsigned __int16 pvpFrontlineWeeklyCampaigns; - unsigned __int16 enhancedAnimaGlassProgress; - unsigned __int16 unknown64[4]; - unsigned __int16 pvpRivalWingsTotalMatches; - unsigned __int16 pvpRivalWingsTotalVictories; - unsigned __int16 pvpRivalWingsWeeklyMatches; - unsigned __int16 pvpRivalWingsWeeklyVictories; - unsigned __int8 maxLevel; - unsigned __int8 expansion; - unsigned __int8 unknown76; - unsigned __int8 race; - unsigned __int8 tribe; - unsigned __int8 gender; - unsigned __int8 currentJob; - unsigned __int8 currentClass; - unsigned __int8 deity; - unsigned __int8 namedayMonth; - unsigned __int8 namedayDay; - unsigned __int8 cityState; - unsigned __int8 homepoint; - unsigned __int8 unknown81; - unsigned __int8 petHotBar; - unsigned __int8 companionRank; - unsigned __int8 companionStars; - unsigned __int8 companionSp; - unsigned __int8 companionUnk86; - unsigned __int8 companionColor; - unsigned __int8 companionFavoFeed; - unsigned __int8 unknown89; - unsigned __int8 unknown8A[4]; - unsigned __int8 hasRelicBook; - unsigned __int8 relicBookId; - unsigned __int8 unknown90[4]; - unsigned __int8 craftingMasterMask; - unsigned __int8 unknown95[10]; - unsigned __int8 unknown9F[2]; - unsigned __int8 unknownA1[3]; + uint16_t unknown50; + uint16_t unknownPvp52[4]; + uint16_t playerCommendations; + uint16_t unknown5C; + uint16_t unknown5E; + uint16_t pvpFrontlineWeeklyCampaigns; + uint16_t enhancedAnimaGlassProgress; + uint16_t unknown64[4]; + uint16_t pvpRivalWingsTotalMatches; + uint16_t pvpRivalWingsTotalVictories; + uint16_t pvpRivalWingsWeeklyMatches; + uint16_t pvpRivalWingsWeeklyVictories; + uint8_t maxLevel; + uint8_t expansion; + uint8_t unknown76; + uint8_t race; + uint8_t tribe; + uint8_t gender; + uint8_t currentJob; + uint8_t currentClass; + uint8_t deity; + uint8_t namedayMonth; + uint8_t namedayDay; + uint8_t cityState; + uint8_t homepoint; + uint8_t unknown81; + uint8_t petHotBar; + uint8_t companionRank; + uint8_t companionStars; + uint8_t companionSp; + uint8_t companionUnk86; + uint8_t companionColor; + uint8_t companionFavoFeed; + uint8_t unknown89; + uint8_t unknown8A[4]; + uint8_t hasRelicBook; + uint8_t relicBookId; + uint8_t unknown90[4]; + uint8_t craftingMasterMask; + uint8_t unknown95[10]; + uint8_t unknown9F[2]; + uint8_t unknownA1[3]; unsigned int exp[26]; unsigned int unknown108; unsigned int pvpTotalExp; unsigned int unknownPvp110; unsigned int pvpExp; unsigned int pvpFrontlineOverallRanks[3]; - unsigned __int16 levels[26]; + uint16_t levels[26]; unsigned int exploratoryMissionNextTimestamp; - unsigned __int16 unknown15C[9]; - unsigned __int16 fishingRecordsFish[26]; - unsigned __int16 fishingRecordsFishWeight[26]; - unsigned __int16 beastExp[11]; - unsigned __int16 unknown1EA[5]; - unsigned __int16 pvpFrontlineWeeklyRanks[3]; - unsigned __int16 unknownMask1FA[3]; - unsigned __int8 companionName[21]; - unsigned __int8 companionDefRank; - unsigned __int8 companionAttRank; - unsigned __int8 companionHealRank; - unsigned __int8 mountGuideMask[17]; + uint16_t unknown15C[9]; + uint16_t fishingRecordsFish[26]; + uint16_t fishingRecordsFishWeight[26]; + uint16_t beastExp[11]; + uint16_t unknown1EA[5]; + uint16_t pvpFrontlineWeeklyRanks[3]; + uint16_t unknownMask1FA[3]; + uint8_t companionName[21]; + uint8_t companionDefRank; + uint8_t companionAttRank; + uint8_t companionHealRank; + uint8_t mountGuideMask[17]; char name[32]; - unsigned __int8 unknownOword[15]; - unsigned __int8 unlockBitmask[64]; - unsigned __int8 aetheryte[17]; - unsigned __int8 unknown258; - unsigned __int8 chocoboTaxiMask[8]; - unsigned __int8 unknown11111[118]; - unsigned __int8 companionBardingMask[9]; - unsigned __int8 companionEquippedHead; - unsigned __int8 companionEquippedBody; - unsigned __int8 companionEquippedLegs; - unsigned __int8 unknown519[4]; - unsigned __int8 unknownMask51D[11]; - unsigned __int8 fishingGuideMask[89]; - unsigned __int8 fishingSpotVisited[25]; - unsigned __int8 unknown59A[15]; - unsigned __int8 unknown5A9[2]; - unsigned __int8 unknownPvp5AB[2]; - unsigned __int8 beastRank[11]; - unsigned __int8 pose; - unsigned __int8 weaponPose; - unsigned __int8 unknownMask5C4[3]; - unsigned __int8 unknown5C9[2]; - unsigned __int8 challengeLogComplete[9]; - unsigned __int8 unknownMask5DD[28]; - unsigned __int8 tripleTriadCards[30]; - unsigned __int8 unknownMask673[10]; - unsigned __int8 unknown5B9[11]; - unsigned __int8 unknown5D4[11]; - unsigned __int8 unknown694[3]; - unsigned __int8 pvpLevel; - unsigned __int8 unknown67D; - unsigned __int8 howto[34]; - unsigned __int8 minions[42]; - unsigned __int8 watchedCutscenes[118]; - unsigned __int8 discovery[421]; - unsigned __int8 relicCompletion[12]; - unsigned __int8 sightseeingMask[26]; - unsigned __int8 huntingMarkMask[55]; - unsigned __int8 aetherCurrentMask[22]; - unsigned __int8 orchestrionMask[40]; - unsigned __int8 hallOfNoviceCompleteMask[3]; - unsigned __int8 animaCompletion[11]; - unsigned __int8 unknown6CD[16]; - unsigned __int8 unknownMask6DB[11]; - unsigned __int8 unlockedRaids[28]; - unsigned __int8 unlockedDungeons[18]; - unsigned __int8 unlockedGuildhests[10]; - unsigned __int8 unlockedTrials[8]; - unsigned __int8 unlockedPvp[5]; - unsigned __int8 clearedRaids[28]; - unsigned __int8 clearedDungeons[18]; - unsigned __int8 clearedGuildhests[10]; - unsigned __int8 clearedTrials[8]; - unsigned __int8 clearedPvp[5]; + uint8_t unknownOword[15]; + uint8_t unlockBitmask[64]; + uint8_t aetheryte[17]; + uint8_t unknown258; + uint8_t chocoboTaxiMask[8]; + uint8_t unknown11111[118]; + uint8_t companionBardingMask[9]; + uint8_t companionEquippedHead; + uint8_t companionEquippedBody; + uint8_t companionEquippedLegs; + uint8_t unknown519[4]; + uint8_t unknownMask51D[11]; + uint8_t fishingGuideMask[89]; + uint8_t fishingSpotVisited[25]; + uint8_t unknown59A[15]; + uint8_t unknown5A9[2]; + uint8_t unknownPvp5AB[2]; + uint8_t beastRank[11]; + uint8_t pose; + uint8_t weaponPose; + uint8_t unknownMask5C4[3]; + uint8_t unknown5C9[2]; + uint8_t challengeLogComplete[9]; + uint8_t unknownMask5DD[28]; + uint8_t tripleTriadCards[30]; + uint8_t unknownMask673[10]; + uint8_t unknown5B9[11]; + uint8_t unknown5D4[11]; + uint8_t unknown694[3]; + uint8_t pvpLevel; + uint8_t unknown67D; + uint8_t howto[34]; + uint8_t minions[42]; + uint8_t watchedCutscenes[118]; + uint8_t discovery[421]; + uint8_t relicCompletion[12]; + uint8_t sightseeingMask[26]; + uint8_t huntingMarkMask[55]; + uint8_t aetherCurrentMask[22]; + uint8_t orchestrionMask[40]; + uint8_t hallOfNoviceCompleteMask[3]; + uint8_t animaCompletion[11]; + uint8_t unknown6CD[16]; + uint8_t unknownMask6DB[11]; + uint8_t unlockedRaids[28]; + uint8_t unlockedDungeons[18]; + uint8_t unlockedGuildhests[10]; + uint8_t unlockedTrials[8]; + uint8_t unlockedPvp[5]; + uint8_t clearedRaids[28]; + uint8_t clearedDungeons[18]; + uint8_t clearedGuildhests[10]; + uint8_t clearedTrials[8]; + uint8_t clearedPvp[5]; }; From 6e6ffc7cf3da3751546176dadb4ed0726719708d Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 10 Jan 2019 20:38:27 +1100 Subject: [PATCH 360/385] fix housing object init structure, game no longer crashes/doesn't load --- sql/schema/schema.sql | 2 +- src/common/Common.h | 5 ++--- src/tools/exd_struct_gen/main.cpp | 2 +- src/world/Inventory/HousingItem.cpp | 4 ++-- src/world/Inventory/HousingItem.h | 6 +++--- src/world/Manager/HousingMgr.cpp | 2 +- src/world/Territory/Housing/HousingInteriorTerritory.cpp | 4 ++-- src/world/Territory/HousingZone.cpp | 4 ++-- 8 files changed, 14 insertions(+), 15 deletions(-) diff --git a/sql/schema/schema.sql b/sql/schema/schema.sql index b2975d2b..100308c6 100644 --- a/sql/schema/schema.sql +++ b/sql/schema/schema.sql @@ -579,7 +579,7 @@ CREATE TABLE `landplaceditems` ( `PosX` FLOAT NOT NULL, `PosY` FLOAT NOT NULL, `PosZ` FLOAT NOT NULL, - `Rotation` INT(10) NOT NULL, + `Rotation` FLOAT NOT NULL, PRIMARY KEY (`ItemId`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB; diff --git a/src/common/Common.h b/src/common/Common.h index 3b3af244..c688d088 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -855,10 +855,9 @@ namespace Sapphire::Common struct HousingObject { uint32_t itemId; - uint16_t itemRotation; + uint32_t padding; // was itemrotation + unknown/pad, looks unused now + float rotation; Common::FFXIVARR_POSITION3 pos; - uint32_t unknown; - uint16_t padding; }; enum HouseSize : uint8_t diff --git a/src/tools/exd_struct_gen/main.cpp b/src/tools/exd_struct_gen/main.cpp index 13a29feb..0226134b 100644 --- a/src/tools/exd_struct_gen/main.cpp +++ b/src/tools/exd_struct_gen/main.cpp @@ -45,7 +45,7 @@ std::vector< std::string > cppKeyWords }; //std::string datLocation( "/home/mordred/sqpack" ); -std::string datLocation( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); +std::string datLocation( "/mnt/c/Program Files (x86)/Steam/steamapps/common/FINAL FANTASY XIV Online/game/sqpack" ); std::map< uint8_t, std::string > g_typeMap; diff --git a/src/world/Inventory/HousingItem.cpp b/src/world/Inventory/HousingItem.cpp index 44b0da90..f4fe35da 100644 --- a/src/world/Inventory/HousingItem.cpp +++ b/src/world/Inventory/HousingItem.cpp @@ -8,12 +8,12 @@ Sapphire::Inventory::HousingItem::HousingItem( uint64_t uId, uint32_t catalogId, m_reservedFlag = 1092616192; // wat? } -uint16_t Sapphire::Inventory::HousingItem::getRot() const +float Sapphire::Inventory::HousingItem::getRot() const { return m_rotation; } -void Sapphire::Inventory::HousingItem::setRot( uint16_t rot ) +void Sapphire::Inventory::HousingItem::setRot( float rot ) { m_rotation = rot; } diff --git a/src/world/Inventory/HousingItem.h b/src/world/Inventory/HousingItem.h index 1460d6d6..ba208ddc 100644 --- a/src/world/Inventory/HousingItem.h +++ b/src/world/Inventory/HousingItem.h @@ -11,15 +11,15 @@ namespace Sapphire::Inventory HousingItem( uint64_t uId, uint32_t catalogId, FrameworkPtr pFw ); virtual ~HousingItem() = default; - void setRot( uint16_t rot ); - uint16_t getRot() const; + void setRot( float rot ); + float getRot() const; void setPos( Common::FFXIVARR_POSITION3 pos ); Common::FFXIVARR_POSITION3 getPos() const; private: Common::FFXIVARR_POSITION3 m_position; - uint16_t m_rotation; + float m_rotation; }; } diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 41c8da64..ad8831c2 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -1187,7 +1187,7 @@ Sapphire::Common::HousingObject Sapphire::World::Manager::HousingMgr::getYardObj Sapphire::Common::HousingObject obj {}; obj.pos = item->getPos(); - obj.itemRotation = item->getRot(); + obj.rotation = item->getRot(); obj.itemId = item->getAdditionalData(); return obj; diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 9b311177..98b7cc41 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -202,7 +202,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousin auto& obj = m_housingObjects[ slot ]; obj.pos = pos; - obj.itemRotation = rot; + obj.rotation = rot; // todo: how does this update on other clients? @@ -213,7 +213,7 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::updateHousin auto moveObjPkt = makeZonePacket< Server::FFXIVIpcHousingObjectMove >( player.second->getId() ); - moveObjPkt->data().itemRotation = obj.itemRotation; + moveObjPkt->data().itemRotation = obj.rotation; moveObjPkt->data().pos = obj.pos; // todo: how does this work when an item is in a slot >50 or u8 max? my guess is landid is the container index, but not sure... diff --git a/src/world/Territory/HousingZone.cpp b/src/world/Territory/HousingZone.cpp index 793f8c8a..022e7a24 100644 --- a/src/world/Territory/HousingZone.cpp +++ b/src/world/Territory/HousingZone.cpp @@ -353,7 +353,7 @@ void Sapphire::HousingZone::spawnYardObject( uint8_t landId, uint16_t slotId, In Common::HousingObject obj {}; obj.itemId = item.getAdditionalData(); - obj.itemRotation = item.getRot(); + obj.rotation = item.getRot(); obj.pos = item.getPos(); @@ -383,7 +383,7 @@ void Sapphire::HousingZone::updateYardObjectPos( Entity::Player& sourcePlayer, u auto& obj = m_yardObjects[ yardMapIndex ][ offset ]; - obj.itemRotation = item.getRot(); + obj.rotation = item.getRot(); obj.pos = item.getPos(); for( const auto& player : m_playerMap ) From c1f7d9ddef8ff62ca568e1e4ccd50c1be07ab851 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 10 Jan 2019 20:50:16 +1100 Subject: [PATCH 361/385] cleanup old setrot calls using float -> u16 --- src/world/Manager/HousingMgr.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index ad8831c2..5ce256f5 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -144,7 +144,7 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() res->getFloat( "PosZ" ) } ); - item->setRot( res->getUInt16( "Rotation" ) ); + item->setRot( res->getFloat( "Rotation" ) ); } ContainerIdToContainerMap& estateInv = m_estateInventories[ ident ]; @@ -1008,7 +1008,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity // set params item->setPos( pos ); - item->setRot( Util::floatToUInt16Rot( rotation ) ); + item->setRot( rotation ); } else { @@ -1277,8 +1277,7 @@ bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& pla return false; item->setPos( pos ); - - item->setRot( Util::floatToUInt16Rot( rot ) ); + item->setRot( rot ); // save auto invMgr = framework()->get< InventoryMgr >(); @@ -1316,7 +1315,7 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla return false; item->setPos( pos ); - item->setRot( Util::floatToUInt16Rot( rot ) ); + item->setRot( rot ); auto invMgr = framework()->get< InventoryMgr >(); invMgr->updateHousingItemPosition( item ); From a1b4f98032d3f0d5afa6d200410b75fd372e4927 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 10 Jan 2019 21:08:19 +1100 Subject: [PATCH 362/385] slightly change behaviour for items that can't be loaded for a house --- src/world/Manager/HousingMgr.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 5ce256f5..09293fcb 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -151,7 +151,13 @@ bool Sapphire::World::Manager::HousingMgr::loadEstateInventories() // check if containerId exists, it always should - if it doesn't, something went wrong auto container = estateInv.find( containerId ); - assert( container != estateInv.end() ); + if( container == estateInv.end() ) + { + Logger::warn( "Skipping item#{0} for ident#{1} - container#{2} doesn't exist for estate.", + itemId, ident, containerId ); + + continue; + } container->second->setItem( slot, item ); From d3e6514af1c733c90bf512be7588f252807e7033 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 10 Jan 2019 22:01:58 +1100 Subject: [PATCH 363/385] change itemcontainer back to use u8s for slots, some cleanup --- src/world/Inventory/ItemContainer.cpp | 18 ++++---- src/world/Inventory/ItemContainer.h | 18 ++++---- src/world/Manager/HousingMgr.cpp | 60 +++++++++++++-------------- 3 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/world/Inventory/ItemContainer.cpp b/src/world/Inventory/ItemContainer.cpp index 3dd41846..6afb81a1 100644 --- a/src/world/Inventory/ItemContainer.cpp +++ b/src/world/Inventory/ItemContainer.cpp @@ -9,7 +9,7 @@ #include "Forwards.h" #include "ItemContainer.h" -Sapphire::ItemContainer::ItemContainer( uint16_t storageId, uint16_t maxSize, const std::string& tableName, +Sapphire::ItemContainer::ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, bool isMultiStorage, FrameworkPtr pFw, bool isPersistentStorage ) : m_id( storageId ), m_size( maxSize ), @@ -31,15 +31,15 @@ uint16_t Sapphire::ItemContainer::getId() const return m_id; } -uint16_t Sapphire::ItemContainer::getEntryCount() const +uint8_t Sapphire::ItemContainer::getEntryCount() const { - return static_cast< uint16_t >( m_itemMap.size() ); + return static_cast< uint8_t >( m_itemMap.size() ); } -void Sapphire::ItemContainer::removeItem( uint16_t slotId, bool removeFromDb ) +void Sapphire::ItemContainer::removeItem( uint8_t slotId, bool removeFromDb ) { auto pDb = m_pFw->get< Db::DbWorkerPool< Db::ZoneDbConnection > >(); - ItemMap::iterator it = m_itemMap.find( slotId ); + auto it = m_itemMap.find( slotId ); if( it != m_itemMap.end() ) { @@ -66,7 +66,7 @@ const Sapphire::ItemMap& Sapphire::ItemContainer::getItemMap() const return m_itemMap; } -int16_t Sapphire::ItemContainer::getFreeSlot() +int8_t Sapphire::ItemContainer::getFreeSlot() { for( uint16_t slotId = 0; slotId < m_size; slotId++ ) { @@ -78,7 +78,7 @@ int16_t Sapphire::ItemContainer::getFreeSlot() return -1; } -Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint16_t slotId ) +Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint8_t slotId ) { if( ( slotId > m_size ) ) @@ -90,7 +90,7 @@ Sapphire::ItemPtr Sapphire::ItemContainer::getItem( uint16_t slotId ) return m_itemMap[ slotId ]; } -void Sapphire::ItemContainer::setItem( uint16_t slotId, ItemPtr pItem ) +void Sapphire::ItemContainer::setItem( uint8_t slotId, ItemPtr pItem ) { if( slotId > m_size ) return; @@ -98,7 +98,7 @@ void Sapphire::ItemContainer::setItem( uint16_t slotId, ItemPtr pItem ) m_itemMap[ slotId ] = pItem; } -uint16_t Sapphire::ItemContainer::getMaxSize() const +uint8_t Sapphire::ItemContainer::getMaxSize() const { return m_size; } diff --git a/src/world/Inventory/ItemContainer.h b/src/world/Inventory/ItemContainer.h index ea857d82..140393ae 100644 --- a/src/world/Inventory/ItemContainer.h +++ b/src/world/Inventory/ItemContainer.h @@ -8,34 +8,34 @@ namespace Sapphire { - using ItemMap = std::map< uint16_t, ItemPtr >; + using ItemMap = std::map< uint8_t, ItemPtr >; class ItemContainer { public: - ItemContainer( uint16_t storageId, uint16_t maxSize, const std::string& tableName, bool isMultiStorage, + ItemContainer( uint16_t storageId, uint8_t maxSize, const std::string& tableName, bool isMultiStorage, FrameworkPtr pFw, bool isPersistentStorage = true ); ~ItemContainer(); uint16_t getId() const; - uint16_t getEntryCount() const; + uint8_t getEntryCount() const; - void removeItem( uint16_t slotId, bool removeFromDb = true ); + void removeItem( uint8_t slotId, bool removeFromDb = true ); ItemMap& getItemMap(); const ItemMap& getItemMap() const; - ItemPtr getItem( uint16_t slotId ); + ItemPtr getItem( uint8_t slotId ); - void setItem( uint16_t slotId, ItemPtr item ); + void setItem( uint8_t slotId, ItemPtr item ); - int16_t getFreeSlot(); + int8_t getFreeSlot(); - uint16_t getMaxSize() const; + uint8_t getMaxSize() const; std::string getTableName() const; @@ -45,7 +45,7 @@ namespace Sapphire private: uint16_t m_id; - uint16_t m_size; + uint8_t m_size; std::string m_tableName; bool m_bMultiStorage; FrameworkPtr m_pFw; diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index 09293fcb..efa3f162 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -860,12 +860,12 @@ void Sapphire::World::Manager::HousingMgr::sendEstateInventory( Entity::Player& return; auto& containers = getEstateInventory( targetLand->getLandIdent() ); - auto needle = containers.find( inventoryType ); - if( needle == containers.end() ) + auto it = containers.find( inventoryType ); + if( it == containers.end() ) return; auto invMgr = framework()->get< Manager::InventoryMgr >(); - invMgr->sendInventoryContainer( player, needle->second ); + invMgr->sendInventoryContainer( player, it->second ); } const Sapphire::World::Manager::HousingMgr::LandSetLandCacheMap& @@ -1085,11 +1085,11 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity { for( auto houseContainer : m_internalStoreroomContainers ) { - auto needle = containers.find( houseContainer ); - if( needle == containers.end() ) + auto it = containers.find( houseContainer ); + if( it == containers.end() ) continue; - auto container = needle->second; + auto container = it->second; auto freeSlot = container->getFreeSlot(); if( freeSlot == -1 ) { @@ -1157,11 +1157,11 @@ bool Sapphire::World::Manager::HousingMgr::placeInteriorItem( Entity::Player& pl uint8_t containerIdx = 0; for( auto containerId : m_internalPlacedItemContainers ) { - auto needle = containers.find( containerId ); - if( needle == containers.end() ) + auto it = containers.find( containerId ); + if( it == containers.end() ) continue; - auto container = needle->second; + auto container = it->second; auto freeSlot = container->getFreeSlot(); if( freeSlot == -1 ) { @@ -1272,11 +1272,11 @@ bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& pla auto& containers = getEstateInventory( ident ); - auto needle = containers.find( containerId ); - if( needle == containers.end() ) + auto it = containers.find( containerId ); + if( it == containers.end() ) return false; - auto container = needle->second; + auto container = it->second; auto item = std::dynamic_pointer_cast< Inventory::HousingItem >( container->getItem( slotIdx ) ); if( !item ) @@ -1310,11 +1310,11 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla return false; auto& containers = getEstateInventory( ident ); - auto needle = containers.find( InventoryType::HousingExteriorPlacedItems ); - if( needle == containers.end() ) + auto it = containers.find( InventoryType::HousingExteriorPlacedItems ); + if( it == containers.end() ) return false; - auto container = needle->second; + auto container = it->second; auto item = std::dynamic_pointer_cast< Inventory::HousingItem >( container->getItem( slot ) ); if( !item ) @@ -1394,11 +1394,11 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p // eg, remove a permit and reuse it elsewhere // I'm not going to bother fixing it for now, but worth noting for future reference - auto needle = containers.find( containerId ); - if( needle == containers.end() ) + auto it = containers.find( containerId ); + if( it == containers.end() ) return false; - auto container = needle->second; + auto container = it->second; auto item = std::dynamic_pointer_cast< Inventory::HousingItem >( container->getItem( slotId ) ); if( !item ) @@ -1461,11 +1461,11 @@ bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& p { auto& containers = getEstateInventory( land.getLandIdent() ); - auto needle = containers.find( containerType ); - if( needle == containers.end() ) + auto it = containers.find( containerType ); + if( it == containers.end() ) return false; - auto& sourceContainer = needle->second; + auto& sourceContainer = it->second; auto item = std::dynamic_pointer_cast< Inventory::HousingItem >( sourceContainer->getItem( slotId ) ); if( !item ) @@ -1522,11 +1522,11 @@ Sapphire::ItemContainerPtr Sapphire::World::Manager::HousingMgr::getFreeEstateIn for( auto bag : bagList ) { - auto needle = estateContainers.find( bag ); - if( needle == estateContainers.end() ) + auto it = estateContainers.find( bag ); + if( it == estateContainers.end() ) continue; - auto container = needle->second; + auto container = it->second; auto freeSlot = container->getFreeSlot(); @@ -1554,13 +1554,13 @@ void Sapphire::World::Manager::HousingMgr::reqEstateExteriorRemodel( Sapphire::E return; auto& inv = getEstateInventory( land->getLandIdent() ); - auto needle = inv.find( InventoryType::HousingExteriorAppearance ); - if( needle == inv.end() ) + auto it = inv.find( InventoryType::HousingExteriorAppearance ); + if( it == inv.end() ) return; auto invMgr = framework()->get< InventoryMgr >(); - invMgr->sendInventoryContainer( player, needle->second ); + invMgr->sendInventoryContainer( player, it->second ); auto pkt = Server::makeActorControl143( player.getId(), Network::ActorControl::ShowEstateExternalAppearanceUI, plot ); player.queuePacket( pkt ); @@ -1584,13 +1584,13 @@ void Sapphire::World::Manager::HousingMgr::reqEstateInteriorRemodel( Sapphire::E return; auto& inv = getEstateInventory( land->getLandIdent() ); - auto needle = inv.find( InventoryType::HousingInteriorAppearance ); - if( needle == inv.end() ) + auto it = inv.find( InventoryType::HousingInteriorAppearance ); + if( it == inv.end() ) return; auto invMgr = framework()->get< InventoryMgr >(); - invMgr->sendInventoryContainer( player, needle->second ); + invMgr->sendInventoryContainer( player, it->second ); auto pkt = Server::makeActorControl143( player.getId(), Network::ActorControl::ShowEstateInternalAppearanceUI ); player.queuePacket( pkt ); From ea7b104a73711e16a50f88383213799e931888a9 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 12 Jan 2019 00:19:23 +0100 Subject: [PATCH 364/385] InitUI almost fully fixed. --- .../Network/PacketDef/Zone/ServerZoneDef.h | 229 +++++++++--------- 1 file changed, 116 insertions(+), 113 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index b497e01b..4b251100 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -781,8 +781,8 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int fishCaught; unsigned int useBaitCatalogId; unsigned int unknown28; - uint16_t unknownPvp2C; - uint16_t unknown3; + unsigned __int16 unknownPvp2C; + unsigned __int16 unknown3; unsigned int pvpFrontlineOverallCampaigns; unsigned int unknownTimestamp34; unsigned int unknownTimestamp38; @@ -791,126 +791,129 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int unknown44; float companionTimePassed; unsigned int unknown4C; - uint16_t unknown50; - uint16_t unknownPvp52[4]; - uint16_t playerCommendations; - uint16_t unknown5C; - uint16_t unknown5E; - uint16_t pvpFrontlineWeeklyCampaigns; - uint16_t enhancedAnimaGlassProgress; - uint16_t unknown64[4]; - uint16_t pvpRivalWingsTotalMatches; - uint16_t pvpRivalWingsTotalVictories; - uint16_t pvpRivalWingsWeeklyMatches; - uint16_t pvpRivalWingsWeeklyVictories; - uint8_t maxLevel; - uint8_t expansion; - uint8_t unknown76; - uint8_t race; - uint8_t tribe; - uint8_t gender; - uint8_t currentJob; - uint8_t currentClass; - uint8_t deity; - uint8_t namedayMonth; - uint8_t namedayDay; - uint8_t cityState; - uint8_t homepoint; - uint8_t unknown81; - uint8_t petHotBar; - uint8_t companionRank; - uint8_t companionStars; - uint8_t companionSp; - uint8_t companionUnk86; - uint8_t companionColor; - uint8_t companionFavoFeed; - uint8_t unknown89; - uint8_t unknown8A[4]; - uint8_t hasRelicBook; - uint8_t relicBookId; - uint8_t unknown90[4]; - uint8_t craftingMasterMask; - uint8_t unknown95[10]; - uint8_t unknown9F[2]; - uint8_t unknownA1[3]; + unsigned __int16 unknown50; + unsigned __int16 unknownPvp52[4]; + unsigned __int16 playerCommendations; + unsigned __int16 unknown5C; + unsigned __int16 unknown5E; + unsigned __int16 pvpFrontlineWeeklyCampaigns; + unsigned __int16 enhancedAnimaGlassProgress; + unsigned __int16 unknown64[4]; + unsigned __int16 pvpRivalWingsTotalMatches; + unsigned __int16 pvpRivalWingsTotalVictories; + unsigned __int16 pvpRivalWingsWeeklyMatches; + unsigned __int16 pvpRivalWingsWeeklyVictories; + unsigned __int8 maxLevel; + unsigned __int8 expansion; + unsigned __int8 unknown76; + unsigned __int8 race; + unsigned __int8 tribe; + unsigned __int8 gender; + unsigned __int8 currentJob; + unsigned __int8 currentClass; + unsigned __int8 deity; + unsigned __int8 namedayMonth; + unsigned __int8 namedayDay; + unsigned __int8 cityState; + unsigned __int8 homepoint; + unsigned __int8 unknown81; + unsigned __int8 petHotBar; + unsigned __int8 companionRank; + unsigned __int8 companionStars; + unsigned __int8 companionSp; + unsigned __int8 companionUnk86; + unsigned __int8 companionColor; + unsigned __int8 companionFavoFeed; + unsigned __int8 unknown89; + unsigned __int8 unknown8A[4]; + unsigned __int8 hasRelicBook; + unsigned __int8 relicBookId; + unsigned __int8 unknown90[4]; + unsigned __int8 craftingMasterMask; + unsigned __int8 unknown95[10]; + unsigned __int8 unknown9F[2]; + unsigned __int8 unknownA1[3]; unsigned int exp[26]; unsigned int unknown108; unsigned int pvpTotalExp; unsigned int unknownPvp110; unsigned int pvpExp; unsigned int pvpFrontlineOverallRanks[3]; - uint16_t levels[26]; - unsigned int exploratoryMissionNextTimestamp; - uint16_t unknown15C[9]; - uint16_t fishingRecordsFish[26]; - uint16_t fishingRecordsFishWeight[26]; - uint16_t beastExp[11]; - uint16_t unknown1EA[5]; - uint16_t pvpFrontlineWeeklyRanks[3]; - uint16_t unknownMask1FA[3]; - uint8_t companionName[21]; - uint8_t companionDefRank; - uint8_t companionAttRank; - uint8_t companionHealRank; - uint8_t mountGuideMask[17]; + unsigned __int16 levels[26]; + unsigned __int16 unknown15C[9]; + unsigned __int16 u1; + unsigned __int16 u2; + unsigned __int16 unknown112[23]; + unsigned __int16 fishingRecordsFish[26]; + unsigned __int16 beastExp[11]; + unsigned __int16 unknown1EA[5]; + unsigned __int16 pvpFrontlineWeeklyRanks[3]; + unsigned __int16 unknownMask1FA[4]; + unsigned __int8 companionName[21]; + unsigned __int8 companionDefRank; + unsigned __int8 companionAttRank; + unsigned __int8 companionHealRank; + unsigned __int8 unknown21A[19]; char name[32]; - uint8_t unknownOword[15]; - uint8_t unlockBitmask[64]; - uint8_t aetheryte[17]; - uint8_t unknown258; - uint8_t chocoboTaxiMask[8]; - uint8_t unknown11111[118]; - uint8_t companionBardingMask[9]; - uint8_t companionEquippedHead; - uint8_t companionEquippedBody; - uint8_t companionEquippedLegs; - uint8_t unknown519[4]; - uint8_t unknownMask51D[11]; - uint8_t fishingGuideMask[89]; - uint8_t fishingSpotVisited[25]; - uint8_t unknown59A[15]; - uint8_t unknown5A9[2]; - uint8_t unknownPvp5AB[2]; - uint8_t beastRank[11]; - uint8_t pose; - uint8_t weaponPose; - uint8_t unknownMask5C4[3]; - uint8_t unknown5C9[2]; - uint8_t challengeLogComplete[9]; - uint8_t unknownMask5DD[28]; - uint8_t tripleTriadCards[30]; - uint8_t unknownMask673[10]; - uint8_t unknown5B9[11]; - uint8_t unknown5D4[11]; - uint8_t unknown694[3]; - uint8_t pvpLevel; - uint8_t unknown67D; - uint8_t howto[34]; - uint8_t minions[42]; - uint8_t watchedCutscenes[118]; - uint8_t discovery[421]; - uint8_t relicCompletion[12]; - uint8_t sightseeingMask[26]; - uint8_t huntingMarkMask[55]; - uint8_t aetherCurrentMask[22]; - uint8_t orchestrionMask[40]; - uint8_t hallOfNoviceCompleteMask[3]; - uint8_t animaCompletion[11]; - uint8_t unknown6CD[16]; - uint8_t unknownMask6DB[11]; - uint8_t unlockedRaids[28]; - uint8_t unlockedDungeons[18]; - uint8_t unlockedGuildhests[10]; - uint8_t unlockedTrials[8]; - uint8_t unlockedPvp[5]; - uint8_t clearedRaids[28]; - uint8_t clearedDungeons[18]; - uint8_t clearedGuildhests[10]; - uint8_t clearedTrials[8]; - uint8_t clearedPvp[5]; - + unsigned __int8 unknownOword[16]; + unsigned __int8 unknownOw; + unsigned __int8 unlockBitmask[64]; + unsigned __int8 aetheryte[17]; + unsigned __int8 discovery[421]; + unsigned __int8 howto[34]; + unsigned __int8 minions[42]; + unsigned __int8 chocoboTaxiMask[8]; + unsigned __int8 watchedCutscenes[118]; + unsigned __int8 companionBardingMask[9]; + unsigned __int8 companionEquippedHead; + unsigned __int8 companionEquippedBody; + unsigned __int8 companionEquippedLegs; + unsigned __int8 unknown52A[4]; + unsigned __int8 unknownMask52E[11]; + unsigned __int8 fishingGuideMask[89]; + unsigned __int8 fishingSpotVisited[25]; + unsigned __int8 unknown59A[15]; + unsigned __int8 unknown5A9[5]; + unsigned __int8 beastRank[11]; + unsigned __int8 unknownPvp5AB[11]; + unsigned __int8 unknown5B9[5]; + unsigned __int8 unknown5B91; + unsigned __int8 pose; + unsigned __int8 challengeLogComplete[9]; + unsigned __int8 weaponPose; + unsigned __int8 unknownMask673[10]; + unsigned __int8 unknownMask5DD[28]; + unsigned __int8 relicCompletion[12]; + unsigned __int8 unknown694[26]; + unsigned __int8 huntingMarkMask[55]; + unsigned __int8 tripleTriadCards[32]; + unsigned __int8 animaCompletion[11]; + unsigned __int8 u13; + unsigned __int8 aetherCurrentMask[22]; + unsigned __int8 u10[3]; + unsigned __int8 orchestrionMask[40]; + unsigned __int8 u11[3]; + unsigned __int8 u12[11]; + unsigned __int8 u14[16]; + unsigned __int8 u15[13]; + unsigned __int8 unlockedRaids[28]; + unsigned __int8 unlockedDungeons[18]; + unsigned __int8 unlockedGuildhests[10]; + unsigned __int8 unlockedTrials[8]; + unsigned __int8 unlockedPvp[5]; + unsigned __int8 clearedRaids[28]; + unsigned __int8 clearedDungeons[18]; + unsigned __int8 clearedGuildhests[10]; + unsigned __int8 clearedTrials[8]; + unsigned __int8 clearedPvp[5]; + unsigned __int8 mountGuideMask[17]; + unsigned __int16 fishingRecordsFishWeight[26]; + unsigned int exploratoryMissionNextTimestamp; + unsigned __int8 pvpLevel; + unsigned __int8 sightseeingMask[26]; }; + /** * Structural representation of the packet sent by the server * to set a players stats From 3b97971c30176d6b2220706a49d6222fe9b030d0 Mon Sep 17 00:00:00 2001 From: Biscuit Date: Sat, 12 Jan 2019 13:18:58 +1100 Subject: [PATCH 365/385] Updated GMCommand2 Def Added worldId to the def since you can now Player@WorldName, this also fixes GM2 Commands not working --- src/common/Network/PacketDef/Zone/ClientZoneDef.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index f4a057ad..d6537d9c 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -29,8 +29,9 @@ struct FFXIVIpcGmCommand2 : /* 0008 */ uint32_t param2; /* 000C */ uint32_t param3; /* 0010 */ uint32_t param4; - /* 0014 */ char target[0x20]; - /* 0034 */ uint32_t unknown1; + /* 0014 */ uint16_t worldId; + /* 0016 */ char target[0x20]; + /* 0036 */ uint16_t unknown1; }; struct FFXIVIpcClientTrigger : From 2d770211b571f894f4f358373670e1b0a746a82f Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 12 Jan 2019 10:47:45 +0100 Subject: [PATCH 366/385] Linux build fix --- .../Network/PacketDef/Zone/ServerZoneDef.h | 228 +++++++++--------- 1 file changed, 114 insertions(+), 114 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 4b251100..87205190 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -781,8 +781,8 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int fishCaught; unsigned int useBaitCatalogId; unsigned int unknown28; - unsigned __int16 unknownPvp2C; - unsigned __int16 unknown3; + unsigned short unknownPvp2C; + unsigned short unknown3; unsigned int pvpFrontlineOverallCampaigns; unsigned int unknownTimestamp34; unsigned int unknownTimestamp38; @@ -791,126 +791,126 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned int unknown44; float companionTimePassed; unsigned int unknown4C; - unsigned __int16 unknown50; - unsigned __int16 unknownPvp52[4]; - unsigned __int16 playerCommendations; - unsigned __int16 unknown5C; - unsigned __int16 unknown5E; - unsigned __int16 pvpFrontlineWeeklyCampaigns; - unsigned __int16 enhancedAnimaGlassProgress; - unsigned __int16 unknown64[4]; - unsigned __int16 pvpRivalWingsTotalMatches; - unsigned __int16 pvpRivalWingsTotalVictories; - unsigned __int16 pvpRivalWingsWeeklyMatches; - unsigned __int16 pvpRivalWingsWeeklyVictories; - unsigned __int8 maxLevel; - unsigned __int8 expansion; - unsigned __int8 unknown76; - unsigned __int8 race; - unsigned __int8 tribe; - unsigned __int8 gender; - unsigned __int8 currentJob; - unsigned __int8 currentClass; - unsigned __int8 deity; - unsigned __int8 namedayMonth; - unsigned __int8 namedayDay; - unsigned __int8 cityState; - unsigned __int8 homepoint; - unsigned __int8 unknown81; - unsigned __int8 petHotBar; - unsigned __int8 companionRank; - unsigned __int8 companionStars; - unsigned __int8 companionSp; - unsigned __int8 companionUnk86; - unsigned __int8 companionColor; - unsigned __int8 companionFavoFeed; - unsigned __int8 unknown89; - unsigned __int8 unknown8A[4]; - unsigned __int8 hasRelicBook; - unsigned __int8 relicBookId; - unsigned __int8 unknown90[4]; - unsigned __int8 craftingMasterMask; - unsigned __int8 unknown95[10]; - unsigned __int8 unknown9F[2]; - unsigned __int8 unknownA1[3]; + unsigned short unknown50; + unsigned short unknownPvp52[4]; + unsigned short playerCommendations; + unsigned short unknown5C; + unsigned short unknown5E; + unsigned short pvpFrontlineWeeklyCampaigns; + unsigned short enhancedAnimaGlassProgress; + unsigned short unknown64[4]; + unsigned short pvpRivalWingsTotalMatches; + unsigned short pvpRivalWingsTotalVictories; + unsigned short pvpRivalWingsWeeklyMatches; + unsigned short pvpRivalWingsWeeklyVictories; + unsigned char maxLevel; + unsigned char expansion; + unsigned char unknown76; + unsigned char race; + unsigned char tribe; + unsigned char gender; + unsigned char currentJob; + unsigned char currentClass; + unsigned char deity; + unsigned char namedayMonth; + unsigned char namedayDay; + unsigned char cityState; + unsigned char homepoint; + unsigned char unknown81; + unsigned char petHotBar; + unsigned char companionRank; + unsigned char companionStars; + unsigned char companionSp; + unsigned char companionUnk86; + unsigned char companionColor; + unsigned char companionFavoFeed; + unsigned char unknown89; + unsigned char unknown8A[4]; + unsigned char hasRelicBook; + unsigned char relicBookId; + unsigned char unknown90[4]; + unsigned char craftingMasterMask; + unsigned char unknown95[10]; + unsigned char unknown9F[2]; + unsigned char unknownA1[3]; unsigned int exp[26]; unsigned int unknown108; unsigned int pvpTotalExp; unsigned int unknownPvp110; unsigned int pvpExp; unsigned int pvpFrontlineOverallRanks[3]; - unsigned __int16 levels[26]; - unsigned __int16 unknown15C[9]; - unsigned __int16 u1; - unsigned __int16 u2; - unsigned __int16 unknown112[23]; - unsigned __int16 fishingRecordsFish[26]; - unsigned __int16 beastExp[11]; - unsigned __int16 unknown1EA[5]; - unsigned __int16 pvpFrontlineWeeklyRanks[3]; - unsigned __int16 unknownMask1FA[4]; - unsigned __int8 companionName[21]; - unsigned __int8 companionDefRank; - unsigned __int8 companionAttRank; - unsigned __int8 companionHealRank; - unsigned __int8 unknown21A[19]; + unsigned short levels[26]; + unsigned short unknown15C[9]; + unsigned short u1; + unsigned short u2; + unsigned short unknown112[23]; + unsigned short fishingRecordsFish[26]; + unsigned short beastExp[11]; + unsigned short unknown1EA[5]; + unsigned short pvpFrontlineWeeklyRanks[3]; + unsigned short unknownMask1FA[4]; + unsigned char companionName[21]; + unsigned char companionDefRank; + unsigned char companionAttRank; + unsigned char companionHealRank; + unsigned char unknown21A[19]; char name[32]; - unsigned __int8 unknownOword[16]; - unsigned __int8 unknownOw; - unsigned __int8 unlockBitmask[64]; - unsigned __int8 aetheryte[17]; - unsigned __int8 discovery[421]; - unsigned __int8 howto[34]; - unsigned __int8 minions[42]; - unsigned __int8 chocoboTaxiMask[8]; - unsigned __int8 watchedCutscenes[118]; - unsigned __int8 companionBardingMask[9]; - unsigned __int8 companionEquippedHead; - unsigned __int8 companionEquippedBody; - unsigned __int8 companionEquippedLegs; - unsigned __int8 unknown52A[4]; - unsigned __int8 unknownMask52E[11]; - unsigned __int8 fishingGuideMask[89]; - unsigned __int8 fishingSpotVisited[25]; - unsigned __int8 unknown59A[15]; - unsigned __int8 unknown5A9[5]; - unsigned __int8 beastRank[11]; - unsigned __int8 unknownPvp5AB[11]; - unsigned __int8 unknown5B9[5]; - unsigned __int8 unknown5B91; - unsigned __int8 pose; - unsigned __int8 challengeLogComplete[9]; - unsigned __int8 weaponPose; - unsigned __int8 unknownMask673[10]; - unsigned __int8 unknownMask5DD[28]; - unsigned __int8 relicCompletion[12]; - unsigned __int8 unknown694[26]; - unsigned __int8 huntingMarkMask[55]; - unsigned __int8 tripleTriadCards[32]; - unsigned __int8 animaCompletion[11]; - unsigned __int8 u13; - unsigned __int8 aetherCurrentMask[22]; - unsigned __int8 u10[3]; - unsigned __int8 orchestrionMask[40]; - unsigned __int8 u11[3]; - unsigned __int8 u12[11]; - unsigned __int8 u14[16]; - unsigned __int8 u15[13]; - unsigned __int8 unlockedRaids[28]; - unsigned __int8 unlockedDungeons[18]; - unsigned __int8 unlockedGuildhests[10]; - unsigned __int8 unlockedTrials[8]; - unsigned __int8 unlockedPvp[5]; - unsigned __int8 clearedRaids[28]; - unsigned __int8 clearedDungeons[18]; - unsigned __int8 clearedGuildhests[10]; - unsigned __int8 clearedTrials[8]; - unsigned __int8 clearedPvp[5]; - unsigned __int8 mountGuideMask[17]; - unsigned __int16 fishingRecordsFishWeight[26]; + unsigned char unknownOword[16]; + unsigned char unknownOw; + unsigned char unlockBitmask[64]; + unsigned char aetheryte[17]; + unsigned char discovery[421]; + unsigned char howto[34]; + unsigned char minions[42]; + unsigned char chocoboTaxiMask[8]; + unsigned char watchedCutscenes[118]; + unsigned char companionBardingMask[9]; + unsigned char companionEquippedHead; + unsigned char companionEquippedBody; + unsigned char companionEquippedLegs; + unsigned char unknown52A[4]; + unsigned char unknownMask52E[11]; + unsigned char fishingGuideMask[89]; + unsigned char fishingSpotVisited[25]; + unsigned char unknown59A[15]; + unsigned char unknown5A9[5]; + unsigned char beastRank[11]; + unsigned char unknownPvp5AB[11]; + unsigned char unknown5B9[5]; + unsigned char unknown5B91; + unsigned char pose; + unsigned char challengeLogComplete[9]; + unsigned char weaponPose; + unsigned char unknownMask673[10]; + unsigned char unknownMask5DD[28]; + unsigned char relicCompletion[12]; + unsigned char unknown694[26]; + unsigned char huntingMarkMask[55]; + unsigned char tripleTriadCards[32]; + unsigned char animaCompletion[11]; + unsigned char u13; + unsigned char aetherCurrentMask[22]; + unsigned char u10[3]; + unsigned char orchestrionMask[40]; + unsigned char u11[3]; + unsigned char u12[11]; + unsigned char u14[16]; + unsigned char u15[13]; + unsigned char unlockedRaids[28]; + unsigned char unlockedDungeons[18]; + unsigned char unlockedGuildhests[10]; + unsigned char unlockedTrials[8]; + unsigned char unlockedPvp[5]; + unsigned char clearedRaids[28]; + unsigned char clearedDungeons[18]; + unsigned char clearedGuildhests[10]; + unsigned char clearedTrials[8]; + unsigned char clearedPvp[5]; + unsigned char mountGuideMask[17]; + unsigned short fishingRecordsFishWeight[26]; unsigned int exploratoryMissionNextTimestamp; - unsigned __int8 pvpLevel; - unsigned __int8 sightseeingMask[26]; + unsigned char pvpLevel; + unsigned char sightseeingMask[26]; }; From f805eb3485c016b3c60fe2d5d5af916efc0d449a Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 12 Jan 2019 11:22:30 +0100 Subject: [PATCH 367/385] SightseeingMask fixed in initui --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 87205190..5422d272 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -884,16 +884,16 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned char unknownMask673[10]; unsigned char unknownMask5DD[28]; unsigned char relicCompletion[12]; - unsigned char unknown694[26]; + unsigned char sightseeingMask[26]; unsigned char huntingMarkMask[55]; unsigned char tripleTriadCards[32]; - unsigned char animaCompletion[11]; + unsigned char u12[11]; unsigned char u13; unsigned char aetherCurrentMask[22]; unsigned char u10[3]; unsigned char orchestrionMask[40]; - unsigned char u11[3]; - unsigned char u12[11]; + unsigned char hallOfNoviceCompletion[3]; + unsigned char animaCompletion[11]; unsigned char u14[16]; unsigned char u15[13]; unsigned char unlockedRaids[28]; @@ -910,7 +910,6 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned short fishingRecordsFishWeight[26]; unsigned int exploratoryMissionNextTimestamp; unsigned char pvpLevel; - unsigned char sightseeingMask[26]; }; From b0760043c3a457b32c1c1770a106a78baf01be87 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 12 Jan 2019 22:53:16 +0100 Subject: [PATCH 368/385] Fixed tell, fixed examine, fixed equipping gear, fixed itemlevel --- src/common/Network/CommonActorControl.h | 2 +- src/common/Network/PacketDef/Chat/ServerChatDef.h | 15 +++++---------- src/common/Network/PacketDef/Ipcs.h | 6 +++--- src/common/Network/PacketDef/Zone/ClientZoneDef.h | 12 ++++++++---- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 7 +++---- src/world/Network/Handlers/PacketHandlers.cpp | 5 ++++- 6 files changed, 24 insertions(+), 23 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 231a1591..32a00705 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -185,7 +185,7 @@ enum ActorControlType : uint16_t LogMsg = 0x205, // LogMessage? AchievementMsg = 0x206, - SetItemLevel = 0x207, //updated 4.5 ( 0x209 before ) + SetItemLevel = 0x209, ChallengeEntryCompleteMsg = 0x20B, ChallengeEntryUnlockMsg = 0x20C, diff --git a/src/common/Network/PacketDef/Chat/ServerChatDef.h b/src/common/Network/PacketDef/Chat/ServerChatDef.h index bbec5794..9d7ac65c 100644 --- a/src/common/Network/PacketDef/Chat/ServerChatDef.h +++ b/src/common/Network/PacketDef/Chat/ServerChatDef.h @@ -13,25 +13,20 @@ namespace Server { * Structural representation of the packet sent by the server as response * to a tell request */ -struct FFXIVIpcTell : - FFXIVIpcBasePacket< Tell > +struct FFXIVIpcTell : FFXIVIpcBasePacket< Tell > { - uint32_t u1; - uint16_t u2a; - uint16_t u2b; + uint64_t contentId; + uint16_t worldId; uint8_t preName; - uint8_t u3a; - bool isGm; char receipientName[32]; - char msg[1031]; + char msg[1029]; }; /** * Structural representation of the packet sent by the server as response * to a failed tell because of unavailable target player */ -struct FFXIVIpcTellErrNotFound : - FFXIVIpcBasePacket< TellErrNotFound > +struct FFXIVIpcTellErrNotFound : FFXIVIpcBasePacket< TellErrNotFound > { char receipientName[32]; }; diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 48ace863..f6f25116 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -138,10 +138,10 @@ namespace Sapphire::Network::Packets ActorOwner = 0x0187, // updated 4.5 PlayerStateFlags = 0x0188, // updated 4.5 PlayerClassInfo = 0x0189, // updated 4.5 - ModelEquip = 0x018A, // updated 4.5 - Examine = 0x018B, // updated 4.5 + ModelEquip = 0x018B, // updated 4.5 + Examine = 0x018C, // updated 4.5 CharaNameReq = 0x018D, // updated 4.5 - SetLevelSync = 0x0186, // not updated for 4.4, not sure what it is anymore + SetLevelSync = 0x1186, // not updated for 4.4, not sure what it is anymore ItemInfo = 0x0196, // updated 4.5 ContainerInfo = 0x0197, // updated 4.5 diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index d6537d9c..75a1f959 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -147,12 +147,16 @@ struct FFXIVIpcSetSearchInfo : /* 0012 */ char searchComment[193]; }; -struct FFXIVIpcTellHandler : - FFXIVIpcBasePacket< TellReq > +struct FFXIVIpcTellHandler : FFXIVIpcBasePacket< TellReq > { - /* 0000 */ char pad_0000[4]; + uint64_t contentId; + uint16_t worldId; + uint16_t u0A; + uint32_t u0C; + uint16_t worldId1; + uint8_t preName; /* 0004 */ char targetPCName[32]; - /* 0024 */ char message[1012]; + /* 0024 */ char message[1029]; }; struct FFXIVIpcChatHandler : diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 5422d272..476003c0 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -853,7 +853,8 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned char companionDefRank; unsigned char companionAttRank; unsigned char companionHealRank; - unsigned char unknown21A[19]; + unsigned char u19[2]; + unsigned char mountGuideMask[17]; char name[32]; unsigned char unknownOword[16]; unsigned char unknownOw; @@ -906,7 +907,6 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > unsigned char clearedGuildhests[10]; unsigned char clearedTrials[8]; unsigned char clearedPvp[5]; - unsigned char mountGuideMask[17]; unsigned short fishingRecordsFishWeight[26]; unsigned int exploratoryMissionNextTimestamp; unsigned char pvpLevel; @@ -917,8 +917,7 @@ struct FFXIVIpcInitUI : FFXIVIpcBasePacket< InitUI > * Structural representation of the packet sent by the server * to set a players stats */ -struct FFXIVIpcPlayerStats : - FFXIVIpcBasePacket< PlayerStats > +struct FFXIVIpcPlayerStats : FFXIVIpcBasePacket< PlayerStats > { uint32_t strength; uint32_t dexterity; diff --git a/src/world/Network/Handlers/PacketHandlers.cpp b/src/world/Network/Handlers/PacketHandlers.cpp index 7e79b963..fecf8ed9 100644 --- a/src/world/Network/Handlers/PacketHandlers.cpp +++ b/src/world/Network/Handlers/PacketHandlers.cpp @@ -652,13 +652,16 @@ void Sapphire::Network::GameConnection::tellHandler( FrameworkPtr pFw, auto tellPacket = makeChatPacket< FFXIVIpcTell >( player.getId() ); strcpy( tellPacket->data().msg, packet.data().message ); strcpy( tellPacket->data().receipientName, player.getName().c_str() ); + // TODO: world id from server + tellPacket->data().contentId = player.getContentId(); + tellPacket->data().worldId = 67; // TODO: do these have a meaning? //tellPacket.data().u1 = 0x92CD7337; //tellPacket.data().u2a = 0x2E; //tellPacket.data().u2b = 0x40; if( player.isActingAsGm() ) { - tellPacket->data().isGm = true; + //tellPacket->data().isGm = true; } pTargetPlayer->queueChatPacket( tellPacket ); From 06e214956c61d09b10e8746b8f7bfcdbe1fc81ea Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 13 Jan 2019 00:51:31 +0100 Subject: [PATCH 369/385] Mobs spawn with randomized rotation and are actually targetable now --- src/world/Actor/BNpc.cpp | 4 +++- src/world/Actor/BNpc.h | 3 ++- src/world/Manager/DebugCommandMgr.cpp | 7 +++++-- src/world/Territory/Zone.cpp | 20 +++++++++++++++++--- src/world/Territory/Zone.h | 3 +++ 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index d5ca06c2..7b42324c 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -40,10 +40,11 @@ Sapphire::Entity::BNpc::BNpc( FrameworkPtr pFw ) : { } -Sapphire::Entity::BNpc::BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, +Sapphire::Entity::BNpc::BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, float rot, uint8_t level, uint32_t maxHp, FrameworkPtr pFw ) : Npc( ObjKind::BattleNpc, pFw ) { + m_id = id; m_modelChara = pTemplate->getModelChara(); m_displayFlags = pTemplate->getDisplayFlags(); m_pose = pTemplate->getPose(); @@ -56,6 +57,7 @@ Sapphire::Entity::BNpc::BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, m_pos.x = posX; m_pos.y = posY; m_pos.z = posZ; + m_rot = rot; m_level = level; m_maxHp = maxHp; diff --git a/src/world/Actor/BNpc.h b/src/world/Actor/BNpc.h index 09a5f93d..f87f66eb 100644 --- a/src/world/Actor/BNpc.h +++ b/src/world/Actor/BNpc.h @@ -23,7 +23,8 @@ namespace Sapphire::Entity public: BNpc( FrameworkPtr pFw ); - BNpc( BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, uint8_t level, uint32_t maxHp, FrameworkPtr pFw ); + BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, float rot, + uint8_t level, uint32_t maxHp, FrameworkPtr pFw ); virtual ~BNpc() override; diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 953d685c..6c4752ba 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -432,13 +432,16 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& player.sendNotice( "Template {0} not found in cache!", params ); return; } - auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, + auto playerZone = player.getCurrentZone(); + auto pBNpc = std::make_shared< Entity::BNpc >( playerZone->getNextActorId(), + bNpcTemplate, player.getPos().x, player.getPos().y, player.getPos().z, + player.getRot(), 1, 1000, framework() ); - auto playerZone = player.getCurrentZone(); + //pBNpc->setCurrentZone( playerZone ); //pBNpc->setPos( player.getPos().x, player.getPos().y, player.getPos().z ); diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 5bbf6780..80ea84db 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -53,7 +54,8 @@ Sapphire::Zone::Zone() : m_currentWeather( Weather::FairSkies ), m_weatherOverride( Weather::None ), m_lastMobUpdate( 0 ), - m_nextEObjId( 0x400D0000 ) + m_nextEObjId( 0x400D0000 ), + m_nextActorId( 0x500D0000 ) { } @@ -741,6 +743,12 @@ uint32_t Sapphire::Zone::getNextEObjId() return ++m_nextEObjId; } +uint32_t Sapphire::Zone::getNextActorId() +{ + return ++m_nextActorId; +} + + Sapphire::Entity::EventObjectPtr Sapphire::Zone::registerEObj( const std::string& name, uint32_t objectId, uint32_t mapLink, uint8_t state, FFXIVARR_POSITION3 pos, float scale, float rotation ) @@ -804,6 +812,10 @@ bool Sapphire::Zone::loadSpawnGroups() void Sapphire::Zone::updateSpawnPoints() { + std::random_device rd; + std::mt19937 mt( rd() ); + std::uniform_real_distribution< float > dist( 0.0, PI * 2 ); + for( auto& group : m_spawnGroups ) { for( auto& point : group.getSpawnPointList() ) @@ -820,12 +832,14 @@ void Sapphire::Zone::updateSpawnPoints() continue; } - //Logger::error( "No template found for templateId#{0}", group.getTemplateId() ); + uint32_t random = rand() % 20; - auto pBNpc = std::make_shared< Entity::BNpc >( bNpcTemplate, + auto pBNpc = std::make_shared< Entity::BNpc >( getNextActorId(), + bNpcTemplate, point->getPosX(), point->getPosY(), point->getPosZ(), + dist( mt ), group.getLevel(), group.getMaxHp(), m_pFw ); point->setLinkedBNpc( pBNpc ); diff --git a/src/world/Territory/Zone.h b/src/world/Territory/Zone.h index dc8c8509..4a6a5197 100644 --- a/src/world/Territory/Zone.h +++ b/src/world/Territory/Zone.h @@ -57,6 +57,7 @@ namespace Sapphire std::map< uint8_t, int32_t > m_weatherRateMap; uint32_t m_nextEObjId; + uint32_t m_nextActorId; FrameworkPtr m_pFw; std::vector< Entity::SpawnGroup > m_spawnGroups; @@ -128,6 +129,8 @@ namespace Sapphire uint32_t getNextEObjId(); + uint32_t getNextActorId(); + const std::string& getName() const; const std::string& getInternalName() const; From 51242ce5dc7d10b2b8d75dc1050f5e2a8934d4c2 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 13 Jan 2019 13:19:15 +0100 Subject: [PATCH 370/385] Fixed remaining g_log appearances and fmt usage --- src/lobby/GameConnection.cpp | 68 +++++++++---------- src/lobby/RestConnector.cpp | 26 ++++--- src/world/Network/GameConnection.cpp | 1 - .../Network/Handlers/ClientTriggerHandler.cpp | 2 +- src/world/Script/ScriptMgr.cpp | 1 - 5 files changed, 46 insertions(+), 52 deletions(-) diff --git a/src/lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp index 6b17b453..31028a9d 100644 --- a/src/lobby/GameConnection.cpp +++ b/src/lobby/GameConnection.cpp @@ -15,7 +15,6 @@ #include "RestConnector.h" #include "LobbySession.h" -extern Sapphire::Logger g_log; extern Sapphire::ServerLobby g_serverLobby; extern Sapphire::Network::RestConnector g_restConnector; @@ -44,13 +43,13 @@ void Sapphire::Network::GameConnection::OnAccept( const std::string& host, uint1 auto connection = make_GameConnection( m_hive, m_pAcceptor, m_pFw ); m_pAcceptor->Accept( connection ); - g_log.info( "Connect from " + m_socket.remote_endpoint().address().to_string() ); + Logger::info( "Connect from {0}", m_socket.remote_endpoint().address().to_string() ); } void Sapphire::Network::GameConnection::OnDisconnect() { - g_log.debug( "DISCONNECT" ); + Logger::debug( "DISCONNECT" ); } void Sapphire::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) @@ -60,15 +59,15 @@ void Sapphire::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) if( headerResult == Incomplete ) { - g_log.info( "Dropping connection due to incomplete packet header." ); - g_log.info( "FIXME: Packet message bounary is not implemented." ); + Logger::info( "Dropping connection due to incomplete packet header." ); + Logger::info( "FIXME: Packet message bounary is not implemented." ); Disconnect(); return; } if( headerResult == Malformed ) { - g_log.info( "Dropping connection due to malformed packet header." ); + Logger::info( "Dropping connection due to malformed packet header." ); Disconnect(); return; } @@ -80,15 +79,15 @@ void Sapphire::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) if( packetResult == Incomplete ) { - g_log.info( "Dropping connection due to incomplete packets." ); - g_log.info( "FIXME: Packet message bounary is not implemented." ); + Logger::info( "Dropping connection due to incomplete packets." ); + Logger::info( "FIXME: Packet message bounary is not implemented." ); Disconnect(); return; } if( packetResult == Malformed ) { - g_log.info( "Dropping connection due to malformed packets." ); + Logger::info( "Dropping connection due to malformed packets." ); Disconnect(); return; } @@ -100,7 +99,7 @@ void Sapphire::Network::GameConnection::OnRecv( std::vector< uint8_t >& buffer ) void Sapphire::Network::GameConnection::OnError( const asio::error_code& error ) { - g_log.info( "GameConnection closed: " + error.message() ); + Logger::info( "GameConnection closed: {0}", error.message() ); } void @@ -119,9 +118,9 @@ Sapphire::Network::GameConnection::sendError( uint64_t sequence, uint32_t errorc void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); - g_log.info( "Sequence [" + std::to_string( sequence ) + "]" ); + Logger::info( "Sequence [{0}]", sequence ); - g_log.info( "[" + std::to_string( m_pSession->getAccountID() ) + "] ReqCharList" ); + Logger::info( "[{0}] ReqCharList", m_pSession->getAccountID() ); Packets::LobbyPacketContainer pRP( m_encKey ); auto serverListPacket = makeLobbyPacket< FFXIVIpcServerList >( tmpId ); @@ -171,11 +170,13 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet charListPacket->data().charaDetails[ j ] = details; - g_log.debug( "[" + std::to_string( charIndex ) + "] " + std::to_string( details.index ) + " - " - + std::get< 0 >( charEntry ) + " - " + - std::to_string( std::get< 1 >( charEntry ) ) + " - " + - std::to_string( std::get< 2 >( charEntry ) ) + " - " + - std::get< 3 >( charEntry ) ); + Logger::debug( "[{0}] {1} - {2} - {3} - {4} - {5}", + charIndex, + details.index, + std::get< 0 >( charEntry ), + std::get< 1 >( charEntry ), + std::get< 2 >( charEntry ), + std::get< 3 >( charEntry ) ); } charIndex++; } @@ -201,9 +202,9 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); - g_log.info( "Sequence [" + std::to_string( sequence ) + "]" ); + Logger::info( "Sequence [{0}]", sequence ); - g_log.info( "[" + std::to_string( m_pSession->getAccountID() ) + "] ReqEnterWorld" ); + Logger::info( "[{0}] ReqEnterWorld", m_pSession->getAccountID() ); uint64_t lookupId = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x18 ); @@ -225,8 +226,7 @@ void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, if( logInCharId == -1 ) return; - g_log.info( "[" + std::to_string( m_pSession->getAccountID() ) + "] Logging in as " + logInCharName + "(" + - std::to_string( logInCharId ) + ")" ); + Logger::info( "[{0}] Logging in as {1} ({2})", m_pSession->getAccountID(), logInCharName, logInCharId ); Packets::LobbyPacketContainer pRP( m_encKey ); @@ -251,12 +251,12 @@ bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_ session->setAccountID( 0 ); session->setSessionId( ( uint8_t* ) &packet.data[ 0 ] + 0x20 ); pSession = session; - g_log.info( "Allowed connection with no session: " + std::string( ( char* ) &packet.data[ 0 ] + 0x20 ) ); + Logger::info( "Allowed connection with no session: {0}", std::string( ( char* ) &packet.data[ 0 ] + 0x20 ) ); } if( pSession != nullptr ) { - g_log.info( "Found session linked to accountId: " + std::to_string( pSession->getAccountID() ) ); + Logger::info( "Found session linked to accountId: {0}", pSession->getAccountID() ); m_pSession = pSession; auto serviceIdInfoPacket = makeLobbyPacket< FFXIVIpcServiceIdInfo >( tmpId ); @@ -272,7 +272,7 @@ bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_ } else { - g_log.info( "Could not retrieve session: " + std::string( ( char* ) &packet.data[ 0 ] + 0x20 ) ); + Logger::info( "Could not retrieve session: {0}", std::string( ( char* ) &packet.data[ 0 ] + 0x20 ) ); sendError( 1, 5006, 13001, tmpId ); return true; @@ -284,10 +284,10 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); uint8_t type = *reinterpret_cast< uint8_t* >( &packet.data[ 0 ] + 0x29 ); - g_log.info( "Sequence [" + std::to_string( sequence ) + "]" ); - g_log.info( "Type [" + std::to_string( type ) + "]" ); + Logger::info( "Sequence [{0}]", sequence ); + Logger::info( "Type [{0}]", type ); - g_log.info( "[" + std::to_string( m_pSession->getAccountID() ) + "] ReqCharCreate" ); + Logger::info( "[{0}] ReqCharCreate", m_pSession->getAccountID() ); std::string name; uint32_t newId = g_restConnector.getNextCharId(); @@ -297,7 +297,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& { name = std::string( ( char* ) &packet.data[ 0 ] + 0x2C ); - g_log.info( "[" + std::to_string( m_pSession->getAccountID() ) + "] Type 1: " + name ); + Logger::info( "[{0}] Type 1: {1}", m_pSession->getAccountID(), name ); Packets::LobbyPacketContainer pRP( m_encKey ); @@ -325,7 +325,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& else if( type == 2 ) //Character creation finalize { std::string charDetails( ( char* ) &packet.data[ 0 ] + 0x4C ); - g_log.info( "[" + std::to_string( m_pSession->getAccountID() ) + "] Type 2: " + charDetails ); + Logger::info( "[{0}] Type 2: {1}", m_pSession->getAccountID(), charDetails ); if( g_restConnector.createCharacter( ( char* ) m_pSession->getSessionId(), m_pSession->newCharName, charDetails ) != -1 ) @@ -354,7 +354,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& else if( type == 4 ) //Character delete { name = std::string( ( char* ) &packet.data[ 0 ] + 0x2C ); - g_log.info( "[" + std::to_string( m_pSession->getAccountID() ) + "] Type 4: " + name ); + Logger::info( "[{0}] Type 4: {1}", m_pSession->getAccountID(), name ); if( g_restConnector.deleteCharacter( ( char* ) m_pSession->getSessionId(), name ) ) @@ -383,8 +383,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& } else { - g_log.error( "[" + std::to_string( m_pSession->getAccountID() ) + "] Unknown Character Creation Type: " + - std::to_string( type ) ); + Logger::error( "[{0}] Unknown Character Creation Type: {1}", m_pSession->getAccountID(), type ); } return false; } @@ -394,7 +393,7 @@ void Sapphire::Network::GameConnection::handleGamePacket( Packets::FFXIVARR_PACK uint32_t tmpId = packet.segHdr.target_actor; - g_log.info( "OpCode [" + std::to_string( *reinterpret_cast< uint16_t* >( &packet.data[ 2 ] ) ) + "]" ); + Logger::info( "OpCode [{0}]", *reinterpret_cast< uint16_t* >( &packet.data[ 2 ] ) ); switch( *reinterpret_cast< uint16_t* >( &packet.data[ 2 ] ) ) { @@ -438,7 +437,6 @@ void Sapphire::Network::GameConnection::sendPacket( Packets::LobbyPacketContaine void Sapphire::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket ) { - //g_log.Log(LoggingSeverity::info, pPacket->toString()); std::vector< uint8_t > sendBuffer; pPacket->fillSendBuffer( sendBuffer ); @@ -503,7 +501,7 @@ void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network:: case SEGMENTTYPE_IPC: // game packet { - g_log.info( "GamePacket [" + std::to_string( inPacket.segHdr.type ) + "]" ); + Logger::info( "GamePacket [{0}]", inPacket.segHdr.type ); handleGamePacket( inPacket ); break; } diff --git a/src/lobby/RestConnector.cpp b/src/lobby/RestConnector.cpp index 54a78236..32694b1d 100644 --- a/src/lobby/RestConnector.cpp +++ b/src/lobby/RestConnector.cpp @@ -8,8 +8,6 @@ #include -extern Sapphire::Logger g_log; - typedef std::vector< std::tuple< std::string, uint32_t, uint64_t, std::string > > CharList; Sapphire::Network::RestConnector::RestConnector() @@ -35,7 +33,7 @@ HttpResponse Sapphire::Network::RestConnector::requestApi( std::string endpoint, } catch( std::exception& e ) { - g_log.error( endpoint + " failed, REST is not reachable: " + std::string( e.what() ) ); + Logger::error( "{0} failed, Api is not reachable: {1}", endpoint, e.what() ); return nullptr; } return r; @@ -61,7 +59,7 @@ Sapphire::LobbySessionPtr Sapphire::Network::RestConnector::getSession( char* sI } catch( std::exception& e ) { - g_log.debug( "Could not parse REST response: " + std::string( e.what() ) ); + Logger::debug( "Could not parse Api response: {0}", e.what() ); return nullptr; } @@ -103,7 +101,7 @@ bool Sapphire::Network::RestConnector::checkNameTaken( std::string name ) } catch( std::exception& e ) { - g_log.debug( "Could not parse REST response: " + std::string( e.what() ) ); + Logger::debug( "Could not parse Api response: {0}", e.what() ); return true; } @@ -137,7 +135,7 @@ uint32_t Sapphire::Network::RestConnector::getNextCharId() } catch( std::exception& e ) { - g_log.debug( "Could not parse REST response: " + std::string( e.what() ) ); + Logger::debug( "Could not parse Api response: {0}", e.what() ); return -1; } @@ -176,7 +174,7 @@ uint64_t Sapphire::Network::RestConnector::getNextContentId() } catch( std::exception& e ) { - g_log.debug( "Could not parse REST response: " + std::string( e.what() ) ); + Logger::debug( "Could not parse Api response: {0}", e.what() ); return -1; } @@ -206,7 +204,7 @@ CharList Sapphire::Network::RestConnector::getCharList( char* sId ) return list; std::string content = std::string( std::istreambuf_iterator< char >( r->content ), {} ); - g_log.debug( content ); + Logger::debug( content ); if( r->status_code.find( "200" ) != std::string::npos ) { auto json = nlohmann::json(); @@ -217,18 +215,18 @@ CharList Sapphire::Network::RestConnector::getCharList( char* sId ) } catch( std::exception& e ) { - g_log.debug( "Could not parse REST response: " + std::string( e.what() ) ); + Logger::debug( "Could not parse Api response: {0}", e.what() ); return list; } if( json["result"].get< std::string >().find( "invalid" ) == std::string::npos ) { - g_log.debug( json["result"] ); + Logger::debug( json["result"] ); for( auto& child : json["charArray"] ) { - g_log.info( child["contentId"] ); + Logger::info( child["contentId"] ); //std::string, uint32_t, uint64_t, std::string list.push_back( { child["name"], std::stoi( std::string( child["charId"] ) ), @@ -271,7 +269,7 @@ bool Sapphire::Network::RestConnector::deleteCharacter( char* sId, std::string n } catch( std::exception& e ) { - g_log.debug( "Could not parse REST response: " + std::string( e.what() ) ); + Logger::debug( "Could not parse Api response: {0}", e.what() ); return false; } @@ -297,7 +295,7 @@ int Sapphire::Network::RestConnector::createCharacter( char* sId, std::string na return -1; std::string content = std::string( std::istreambuf_iterator< char >( r->content ), {} ); - g_log.debug( content ); + Logger::debug( content ); if( r->status_code.find( "200" ) != std::string::npos ) { auto json = nlohmann::json(); @@ -308,7 +306,7 @@ int Sapphire::Network::RestConnector::createCharacter( char* sId, std::string na } catch( std::exception& e ) { - g_log.debug( "Could not parse REST response: " + std::string( e.what() ) ); + Logger::debug( "Could not parse Api response: {0}", e.what() ); return -1; } diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index 0bacd53a..d1f2a61c 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -276,7 +276,6 @@ void Sapphire::Network::GameConnection::handlePacket( Sapphire::Network::Packets void Sapphire::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket ) { - //g_log.Log(LoggingSeverity::info, pPacket->toString()); std::vector< uint8_t > sendBuffer; pPacket->fillSendBuffer( sendBuffer ); diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index 30c68fa5..8b519de1 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -82,7 +82,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, Logger::debug( "[{0}] Incoming action: {1:04X}\nparam1: {2:016X}\nparam2: {3:08X}\nparam3: {4:016x}", m_pSession->getId(), commandId, param1, param2, param3 ); - //g_log.Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString()); + //Logger::Log(LoggingSeverity::debug, "[" + std::to_string(m_pSession->getId()) + "] " + pInPacket->toString()); switch( commandId ) { diff --git a/src/world/Script/ScriptMgr.cpp b/src/world/Script/ScriptMgr.cpp index 13702363..c1cb2f69 100644 --- a/src/world/Script/ScriptMgr.cpp +++ b/src/world/Script/ScriptMgr.cpp @@ -155,7 +155,6 @@ void Sapphire::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& pl // catch( const std::exception &e ) // { // std::string what = e.what(); -// g_log.Log( LoggingSeverity::error, what ); // } } From f468949df27ad5613aa2d18b30e3eb0452b7088a Mon Sep 17 00:00:00 2001 From: Mordred Date: Sun, 13 Jan 2019 17:32:43 +0100 Subject: [PATCH 371/385] Temporary fix for resetting directors. Eventually zoning needs to be streamlined --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 5 +++++ src/world/Actor/Player.cpp | 10 ++++++++-- src/world/Manager/DebugCommandMgr.cpp | 8 ++++---- src/world/Manager/TerritoryMgr.cpp | 4 ++-- src/world/Network/Handlers/ClientTriggerHandler.cpp | 2 +- src/world/Territory/InstanceContent.cpp | 13 +++++++++---- src/world/Territory/InstanceContent.h | 2 ++ 7 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 476003c0..bcbbd11a 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1563,6 +1563,11 @@ struct FFXIVIpcDirectorVars : FFXIVIpcBasePacket< DirectorVars > uint8_t m_branch; /*! raw storage for flags/vars */ uint8_t m_unionData[10]; + /*! unknown */ + uint16_t u20; + uint16_t u22; + uint16_t u24; + uint16_t u28; }; diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index 17d7850e..5c0ac513 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -11,11 +11,12 @@ #include "Session.h" #include "Player.h" +#include "Manager/HousingMgr.h" #include "Manager/TerritoryMgr.h" + #include "Territory/Zone.h" #include "Territory/ZonePosition.h" - -#include "Manager/HousingMgr.h" +#include "Territory/InstanceContent.h" #include "Territory/Land.h" #include "Network/GameConnection.h" @@ -491,6 +492,9 @@ bool Sapphire::Entity::Player::exitInstance() { auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto pZone = getCurrentZone(); + auto pInstance = pZone->getAsInstanceContent(); + // check if housing zone if( pTeriMgr->isHousingTerritory( m_prevTerritoryTypeId ) ) { @@ -510,6 +514,8 @@ bool Sapphire::Entity::Player::exitInstance() sendZonePackets(); + //m_queuedZoneing = std::make_shared< QueuedZoning >( m_territoryTypeId, m_pos, Util::getTimeMs(), m_rot ); + return true; } diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 6c4752ba..4d234541 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -794,14 +794,14 @@ Sapphire::World::Manager::DebugCommandMgr::instance( char* data, Entity::Player& if( subCommand == "create" || subCommand == "cr" ) { - uint32_t instanceContentId; - sscanf( params.c_str(), "%d", &instanceContentId ); + uint32_t contentFinderConditionId; + sscanf( params.c_str(), "%d", &contentFinderConditionId ); - auto instance = pTeriMgr->createInstanceContent( instanceContentId ); + auto instance = pTeriMgr->createInstanceContent( contentFinderConditionId ); if( instance ) player.sendDebug( "Created instance with id#{0} -> {1}", instance->getGuId(), instance->getName() ); else - player.sendDebug( "Failed to create instance with id#{0}", instanceContentId ); + player.sendDebug( "Failed to create instance with id#{0}", contentFinderConditionId ); } else if( subCommand == "bind" ) { diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 9c3da5d0..56e3a049 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -535,8 +535,8 @@ bool Sapphire::World::Manager::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire // mark character as zoning in progress pPlayer->setLoadingComplete( false ); - //if( pPlayer->getLastPing() != 0 ) - // pPlayer->getCurrentZone()->removeActor( pPlayer ); + if( pPlayer->getLastPing() != 0 ) + pPlayer->getCurrentZone()->removeActor( pPlayer ); pPlayer->setCurrentZone( pZone ); pZone->pushActor( pPlayer ); diff --git a/src/world/Network/Handlers/ClientTriggerHandler.cpp b/src/world/Network/Handlers/ClientTriggerHandler.cpp index 8b519de1..362e6a13 100644 --- a/src/world/Network/Handlers/ClientTriggerHandler.cpp +++ b/src/world/Network/Handlers/ClientTriggerHandler.cpp @@ -294,7 +294,7 @@ void Sapphire::Network::GameConnection::clientTriggerHandler( FrameworkPtr pFw, } case ClientTriggerType::RequestInstanceLeave: { - // todo: apply cf penalty if applicable, make sure player isnt in combat + // todo: apply cf penalty if applicable, make sure player isn't in combat player.exitInstance(); break; } diff --git a/src/world/Territory/InstanceContent.cpp b/src/world/Territory/InstanceContent.cpp index 6c9a2db6..99d604ec 100644 --- a/src/world/Territory/InstanceContent.cpp +++ b/src/world/Territory/InstanceContent.cpp @@ -89,11 +89,8 @@ void Sapphire::InstanceContent::onLeaveTerritory( Entity::Player& player ) { Logger::debug( "InstanceContent::onLeaveTerritory: Zone#{0}|{1}, Entity#{2}", getGuId(), getTerritoryTypeId(), player.getId() ); - sendDirectorClear( player ); - player.setDirectorInitialized( false ); - // remove "bound by duty" state - player.unsetStateFlag( PlayerStateFlag::BoundByDuty ); + clearDirector( player ); } void Sapphire::InstanceContent::onUpdate( uint32_t currTime ) @@ -450,3 +447,11 @@ void Sapphire::InstanceContent::unbindPlayer( uint32_t playerId ) if( it != m_playerMap.end() ) it->second->exitInstance(); } + +void Sapphire::InstanceContent::clearDirector( Entity::Player& player ) +{ + sendDirectorClear( player ); + + player.setDirectorInitialized( false ); + // remove "bound by duty" state + player.unsetStateFlag( PlayerStateFlag::BoundByDuty );} diff --git a/src/world/Territory/InstanceContent.h b/src/world/Territory/InstanceContent.h index 11b6e0dc..85a34ebc 100644 --- a/src/world/Territory/InstanceContent.h +++ b/src/world/Territory/InstanceContent.h @@ -64,6 +64,8 @@ public: void endEventCutscene(); + void clearDirector( Entity::Player& player ); + /*! set the current bgm index (inside bgm.exd) */ void setCurrentBGM( uint16_t bgmId ); From 63ce4c42beeb445ef69bf2a473ec94cc49493f5a Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 14 Jan 2019 20:05:27 +1100 Subject: [PATCH 372/385] fix placing interior housing items --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 6 +----- src/world/Territory/Housing/HousingInteriorTerritory.cpp | 6 +++--- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index bcbbd11a..d4402fec 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1726,11 +1726,7 @@ struct FFXIVIpcHousingInternalObjectSpawn : FFXIVIpcBasePacket< HousingInternalO uint8_t containerOffset; uint8_t pad1; - uint16_t itemId; - uint8_t unk2; - uint8_t pad2; - uint16_t rotation; - Common::FFXIVARR_POSITION3 pos; + Common::HousingObject object; }; struct FFXIVIpcHousingIndoorInitialize : FFXIVIpcBasePacket< HousingIndoorInitialize > diff --git a/src/world/Territory/Housing/HousingInteriorTerritory.cpp b/src/world/Territory/Housing/HousingInteriorTerritory.cpp index 98b7cc41..1121e268 100644 --- a/src/world/Territory/Housing/HousingInteriorTerritory.cpp +++ b/src/world/Territory/Housing/HousingInteriorTerritory.cpp @@ -186,9 +186,9 @@ void Sapphire::World::Territory::Housing::HousingInteriorTerritory::spawnHousing objectSpawnPkt->data().containerId = containerType; objectSpawnPkt->data().containerOffset = slot; - objectSpawnPkt->data().itemId = item->getAdditionalData() & 0xFFFF; - objectSpawnPkt->data().rotation = item->getRot(); - objectSpawnPkt->data().pos = item->getPos(); + objectSpawnPkt->data().object.itemId = item->getAdditionalData() & 0xFFFF; + objectSpawnPkt->data().object.rotation = item->getRot(); + objectSpawnPkt->data().object.pos = item->getPos(); player.second->queuePacket( objectSpawnPkt ); } From 339f74b62ff49d5bf3a1f34d3e547c9b9cda8549 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 14 Jan 2019 21:32:18 +1100 Subject: [PATCH 373/385] fix doxygen missing documentation after project restructure --- doxygen/Doxyfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doxygen/Doxyfile b/doxygen/Doxyfile index ca96909b..a0773bb2 100644 --- a/doxygen/Doxyfile +++ b/doxygen/Doxyfile @@ -790,7 +790,7 @@ WARN_LOGFILE = # spaces. See also FILE_PATTERNS and EXTENSION_MAPPING # Note: If this tag is empty the current directory is searched. -INPUT = ../src/servers ../src/common pages/ +INPUT = pages/ ../src/api ../src/common ../src/dbm ../src/lobby ../src/world # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses From 0e138e5e5f1870eb1241554f57cb9f0c287688d2 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Mon, 14 Jan 2019 21:32:40 +1100 Subject: [PATCH 374/385] Move housingmgr to u8s for inv slots instead of u16s --- src/world/Manager/HousingMgr.cpp | 14 +++++++------- src/world/Manager/HousingMgr.h | 15 +++++++-------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/world/Manager/HousingMgr.cpp b/src/world/Manager/HousingMgr.cpp index efa3f162..623c6073 100644 --- a/src/world/Manager/HousingMgr.cpp +++ b/src/world/Manager/HousingMgr.cpp @@ -956,7 +956,7 @@ bool Sapphire::World::Manager::HousingMgr::isPlacedItemsInventory( Sapphire::Com } void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity::Player& player, uint16_t landId, - uint16_t containerId, uint16_t slotId, + uint16_t containerId, uint8_t slotId, Sapphire::Common::FFXIVARR_POSITION3 pos, float rotation ) { @@ -1038,7 +1038,7 @@ void Sapphire::World::Manager::HousingMgr::reqPlaceHousingItem( Sapphire::Entity } void Sapphire::World::Manager::HousingMgr::reqPlaceItemInStore( Sapphire::Entity::Player& player, uint16_t landId, - uint16_t containerId, uint16_t slotId ) + uint16_t containerId, uint8_t slotId ) { LandPtr land; bool isOutside = false; @@ -1229,7 +1229,7 @@ void Sapphire::World::Manager::HousingMgr::sendInternalEstateInventoryBatch( Sap } void Sapphire::World::Manager::HousingMgr::reqMoveHousingItem( Entity::Player& player, - Common::LandIdent ident, uint16_t slot, + Common::LandIdent ident, uint8_t slot, Common::FFXIVARR_POSITION3 pos, float rot ) { auto landSet = toLandSetId( ident.territoryTypeId, ident.wardNum ); @@ -1254,7 +1254,7 @@ void Sapphire::World::Manager::HousingMgr::reqMoveHousingItem( Entity::Player& p } bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& player, Common::LandIdent ident, - Territory::Housing::HousingInteriorTerritory& terri, uint16_t slot, + Territory::Housing::HousingInteriorTerritory& terri, uint8_t slot, Common::FFXIVARR_POSITION3 pos, float rot ) { auto containerIdx = static_cast< uint16_t >( slot / 50 ); @@ -1300,7 +1300,7 @@ bool Sapphire::World::Manager::HousingMgr::moveInternalItem( Entity::Player& pla } bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& player, - Common::LandIdent ident, uint16_t slot, + Common::LandIdent ident, uint8_t slot, Sapphire::HousingZone& terri, Common::FFXIVARR_POSITION3 pos, float rot ) { @@ -1336,7 +1336,7 @@ bool Sapphire::World::Manager::HousingMgr::moveExternalItem( Entity::Player& pla } void Sapphire::World::Manager::HousingMgr::reqRemoveHousingItem( Sapphire::Entity::Player& player, uint16_t plot, - uint16_t containerId, uint16_t slot, + uint16_t containerId, uint8_t slot, bool sendToStoreroom ) { if( auto terri = std::dynamic_pointer_cast< Territory::Housing::HousingInteriorTerritory >( player.getCurrentZone() ) ) @@ -1456,7 +1456,7 @@ bool Sapphire::World::Manager::HousingMgr::removeInternalItem( Entity::Player& p } bool Sapphire::World::Manager::HousingMgr::removeExternalItem( Entity::Player& player, HousingZone& terri, Land& land, - Common::InventoryType containerType, uint16_t slotId, + Common::InventoryType containerType, uint8_t slotId, bool sendToStoreroom ) { auto& containers = getEstateInventory( land.getLandIdent() ); diff --git a/src/world/Manager/HousingMgr.h b/src/world/Manager/HousingMgr.h index 8167efb9..cd81255e 100644 --- a/src/world/Manager/HousingMgr.h +++ b/src/world/Manager/HousingMgr.h @@ -156,10 +156,10 @@ namespace Sapphire::World::Manager */ bool initHouseModels( Entity::Player& player, LandPtr land, uint32_t presetCatalogId ); - void reqPlaceHousingItem( Entity::Player& player, uint16_t landId, uint16_t containerId, uint16_t slotId, + void reqPlaceHousingItem( Entity::Player& player, uint16_t landId, uint16_t containerId, uint8_t slotId, Common::FFXIVARR_POSITION3 pos, float rotation ); - void reqPlaceItemInStore( Entity::Player& player, uint16_t landId, uint16_t containerId, uint16_t slotId ); + void reqPlaceItemInStore( Entity::Player& player, uint16_t landId, uint16_t containerId, uint8_t slotId ); /*! * @brief Returns the equivalent YardObject for a HousingItem @@ -169,13 +169,12 @@ namespace Sapphire::World::Manager Common::HousingObject getYardObjectForItem( Inventory::HousingItemPtr item ) const; - void reqMoveHousingItem( Entity::Player& player, Common::LandIdent ident, uint16_t slot, + void reqMoveHousingItem( Entity::Player& player, Common::LandIdent ident, uint8_t slot, Common::FFXIVARR_POSITION3 pos, float rot ); void reqRemoveHousingItem( Sapphire::Entity::Player& player, uint16_t plot, - uint16_t containerId, uint16_t slot, - bool sendToStoreroom ); + uint16_t containerId, uint8_t slot, bool sendToStoreroom ); void reqEstateExteriorRemodel( Entity::Player& player, uint16_t plot ); @@ -212,7 +211,7 @@ namespace Sapphire::World::Manager * @return */ bool removeExternalItem( Entity::Player& player, HousingZone& terri, Land& land, - Common::InventoryType containerType, uint16_t slotId, + Common::InventoryType containerType, uint8_t slotId, bool sendToStoreroom ); /*! @@ -228,7 +227,7 @@ namespace Sapphire::World::Manager * @param rot The new rotation * @return true if moved successfully */ - bool moveExternalItem( Entity::Player& player, Common::LandIdent ident, uint16_t slot, + bool moveExternalItem( Entity::Player& player, Common::LandIdent ident, uint8_t slot, Sapphire::HousingZone& terri, Common::FFXIVARR_POSITION3 pos, float rot ); /*! @@ -245,7 +244,7 @@ namespace Sapphire::World::Manager * @return true if moved successfully */ bool moveInternalItem( Entity::Player& player, Common::LandIdent ident, - Territory::Housing::HousingInteriorTerritory& terri, uint16_t slot, + Territory::Housing::HousingInteriorTerritory& terri, uint8_t slot, Common::FFXIVARR_POSITION3 pos, float rot ); /*! From a230a2ca2abbe9354c4a1f8ff1107718221ec4bc Mon Sep 17 00:00:00 2001 From: Mordred Date: Mon, 14 Jan 2019 22:29:52 +0100 Subject: [PATCH 375/385] Cleaned up some zoning code. Secondly, alot more bnpcs will spawn now --- sql/schema/inserts.sql | 1325 ++++++++++++++++++++-------- src/tools/mob_parse/main.cpp | 14 +- src/world/Actor/Player.cpp | 32 +- src/world/Manager/PlayerMgr.cpp | 3 +- src/world/Manager/TerritoryMgr.cpp | 4 +- 5 files changed, 1002 insertions(+), 376 deletions(-) diff --git a/sql/schema/inserts.sql b/sql/schema/inserts.sql index 8134e107..c8d0edf3 100644 --- a/sql/schema/inserts.sql +++ b/sql/schema/inserts.sql @@ -1,6 +1,5 @@ - -INSERT INTO `accounts` (`account_id`, `account_name`, `account_pass`, `account_created`, `account_status`) VALUES -(1, 'Admin', 'Admin', 0, 2); + +INSERT INTO `accounts` (`account_id`, `account_name`, `account_pass`, `account_created`, `account_status`) VALUES (1, 'Admin', 'Admin', 0, 2); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "littleladybug_49", 49, 49, 0, 0, 1, 4, 4, 57, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "beecloud_57", 57, 395, 0, 0, 1, 4, 4, 60, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); @@ -17,32 +16,19 @@ INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWea INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "CaptainPetyrPigeontoe_350", 350, 419, 8591966609, 0, 2, 4, 4, 0, 0, UNHEX( '0100014b010304016b3b2b000001023b83000200006400320001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pugil_383", 383, 640, 0, 0, 1, 4, 4, 356, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wespe_385", 385, 641, 0, 0, 1, 4, 4, 359, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblingambler_769", 769, 3099, 4297588937, 0, 1, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "strikingdummy_901", 901, 541, 0, 0, 1, 4, 0, 480, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblinfisher_769", 769, 367, 4297588937, 0, 1, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mosslessgoobbue_1447", 1447, 354, 0, 0, 1, 4, 4, 198, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "SkogsFru_3184", 3184, 2928, 0, 0, 1, 4, 0, 57, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "galago_5", 5, 408, 0, 0, 1, 4, 4, 31, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "nestingbuzzard_12", 12, 299, 0, 0, 1, 4, 4, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cavebat_38", 38, 364, 0, 0, 1, 4, 4, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "littleladybug_49", 49, 49, 0, 0, 1, 4, 4, 57, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "tinymandragora_118", 118, 405, 0, 0, 1, 4, 4, 297, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "windsprite_133", 133, 115, 0, 0, 1, 4, 4, 383, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildjackal_138", 138, 399, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Morabymole_205", 205, 409, 0, 0, 1, 4, 4, 282, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "firefly_306", 306, 129, 0, 0, 1, 4, 4, 78, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "rivertoad_313", 313, 349, 0, 0, 1, 4, 4, 126, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "aurelia_324", 324, 563, 0, 0, 1, 4, 4, 279, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "megalocrab_326", 326, 561, 0, 0, 1, 4, 4, 148, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wilddodo_339", 339, 393, 0, 0, 1, 4, 4, 173, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wharfrat_347", 347, 417, 0, 0, 1, 4, 4, 24, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "packrat_351", 351, 1101, 0, 0, 2, 4, 4, 26, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpotman_751", 751, 378, 4297588937, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "kobolddustman_752", 752, 368, 4295033233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldsupplicant_754", 754, 372, 4295951237, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000300010003000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirneggdigger_771", 771, 350, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Cepheus_855", 855, 1058, 0, 0, 2, 4, 4, 279, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mosslessgoobbue_1447", 1447, 354, 0, 0, 1, 4, 4, 198, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Barbastelle_3185", 3185, 2929, 0, 0, 1, 4, 0, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "grassraptor_2", 2, 411, 0, 0, 2, 4, 4, 96, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigantoad_26", 26, 26, 0, 0, 2, 4, 4, 126, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); @@ -52,7 +38,6 @@ INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWea INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohortsecutor_63", 63, 1824, 21475033389, 21475033439, 2, 4, 4, 0, 0, UNHEX( '0100013201010701984706000000024701020302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohortsignifer_64", 64, 1825, 30064837609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201050301113b27000000043b850103000032004b0007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "junglecoeurl_117", 117, 352, 0, 0, 2, 4, 4, 65, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "windsprite_133", 133, 115, 0, 0, 1, 4, 4, 383, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dungmidgeswarm_136", 136, 396, 0, 0, 1, 4, 4, 58, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "giantpelican_178", 178, 366, 0, 0, 2, 4, 4, 154, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "2ndCohortvanguard_201", 201, 1826, 0, 0, 2, 4, 4, 214, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); @@ -67,49 +52,36 @@ INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWea INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldmissionary_331", 331, 373, 4295951237, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000300010003000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "corkbulb_384", 384, 684, 0, 0, 1, 4, 4, 358, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "colibri_386", 386, 639, 0, 0, 2, 4, 4, 360, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "BloodyMary_3186", 3186, 2930, 0, 0, 1, 4, 0, 190, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "BloodyMary_3186", 3186, 2930, 0, 0, 1, 4, 0, 190, 3, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "arborbuzzard_12", 12, 13, 0, 0, 2, 4, 4, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "deadmansmoan_20", 20, 1854, 25772425417, 0, 2, 4, 4, 17, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "roseling_22", 22, 400, 0, 0, 1, 4, 4, 48, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "duskbat_38", 38, 363, 0, 0, 1, 4, 4, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "plasmoid_46", 46, 46, 0, 0, 1, 4, 4, 80, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildjackal_138", 138, 399, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "axolotl_139", 139, 1831, 0, 0, 2, 4, 4, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Rothlytpelican_181", 181, 1181, 0, 0, 2, 4, 4, 157, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sewermole_205", 205, 410, 0, 0, 1, 4, 4, 282, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hedgemole_206", 206, 403, 0, 0, 1, 4, 4, 283, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "firefly_306", 306, 129, 0, 0, 1, 4, 4, 78, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "seawasp_312", 312, 360, 0, 0, 2, 4, 4, 280, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "fatdodo_340", 340, 394, 0, 0, 1, 4, 4, 174, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pukhatchling_341", 341, 402, 0, 0, 1, 4, 4, 130, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Rhotanobuccaneer_348", 348, 420, 4297654473, 8590262373, 2, 4, 4, 0, 0, UNHEX( '0100013201050601623b32000001013b83010102004b004b0001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Rhotanobuccaneer_349", 349, 420, 8591966609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201040c01300305000001010304040302004b00320001'), UNHEX( '170032000a000512000001000a000100080059000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "preyingmantis_396", 396, 1852, 0, 0, 2, 4, 4, 376, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "killermantis_397", 397, 644, 0, 0, 2, 4, 4, 374, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lammergeyer_403", 403, 1853, 0, 0, 2, 4, 4, 41, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfscaleSahagin_765", 765, 386, 4295688693, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfclawSahagin_766", 766, 384, 0, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Sapsashelfspine_767", 767, 1829, 4295688693, 4295426149, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000020001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shoalscaleSahagin_765", 765, 2525, 4295688693, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shoalclawSahagin_766", 766, 2524, 0, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfspineSahagin_767", 767, 389, 4295688693, 4295426149, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000020001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shoaltoothSahagin_768", 768, 2526, 51539673889, 0, 2, 4, 4, 9, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000020002000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblinhunter_769", 769, 225, 4297588937, 0, 1, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfscaleReaver_773", 773, 347, 17182949577, 12885033061, 2, 4, 4, 0, 0, UNHEX( '05000132090101011a0101000001000100000000003200321045'), UNHEX( '170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfclawReaver_774", 774, 345, 21474967853, 21474967903, 2, 4, 4, 0, 0, UNHEX( '0500013209020901ab15040000010115830300020064004b1045'), UNHEX( '1700660008000d000800480008003f00080064000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "shelfeyeReaver_776", 776, 559, 30064902745, 4295033530, 2, 4, 4, 0, 0, UNHEX( '0500013209010c01149203000001029202020202006400321445'), UNHEX( '170066000a000f0019000f0010005100190027000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Sapsaelbst_2832", 2832, 2527, 0, 0, 2, 4, 4, 182, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "whelkballista_2835", 2835, 2530, 0, 0, 1, 4, 2, 679, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "freshwhelkballista_2836", 2836, 2531, 0, 0, 1, 4, 2, 679, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "reinforcedwhelkballista_2837", 2837, 2532, 0, 0, 2, 4, 2, 679, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "DarkHelmet_3187", 3187, 2931, 0, 0, 1, 4, 0, 722, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Nahn_3204", 3204, 2948, 0, 0, 2, 4, 0, 150, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "coeurlpup_28", 28, 28, 0, 0, 2, 4, 4, 69, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bumblebeetle_36", 36, 296, 0, 0, 1, 4, 4, 56, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "salamander_139", 139, 391, 0, 0, 2, 4, 4, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "forestyarzon_159", 159, 381, 0, 0, 2, 4, 4, 76, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildwolf_303", 303, 1180, 0, 0, 2, 4, 4, 159, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpatrolman_328", 328, 379, 8592556233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpickman_329", 329, 370, 4295033233, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldsidesman_330", 330, 376, 4295033533, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000400010004000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "MamoolJabreeder_343", 343, 414, 4295033033, 4295426149, 2, 4, 4, 10, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "MamoolJaexecutioner_344", 344, 413, 4295033233, 0, 2, 4, 4, 10, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); @@ -119,63 +91,281 @@ INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWea INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mudpugil_383", 383, 642, 0, 0, 1, 4, 4, 356, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "uragnite_389", 389, 643, 0, 0, 1, 4, 4, 364, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Myradrosh_3188", 3188, 2932, 0, 0, 1, 4, 0, 360, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bomb_17", 17, 316, 0, 0, 1, 4, 4, 100, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "laughingtoad_26", 26, 217, 0, 0, 2, 4, 4, 126, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "yarzonfeeder_42", 42, 284, 0, 0, 2, 4, 4, 75, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "4thCohorthoplomachus_55", 55, 1815, 17180065993, 12885295205, 2, 4, 4, 0, 0, UNHEX( '0100013201020401110505000000030580040101001900320000'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "4thCohortlaquearius_61", 61, 1816, 12884967825, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201010201aa9206000000029202000302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "4thCohorteques_62", 62, 1817, 12885230069, 0, 2, 4, 4, 0, 0, UNHEX( '02000132030203013c9236000000019201050300003201320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "4thCohortsecutor_63", 63, 1818, 21475033389, 21475033439, 2, 4, 4, 0, 0, UNHEX( '0100013201010701984706000000024701020302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "4thCohortsignifer_64", 64, 1819, 30064837609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201050301113b27000000043b850103000032004b0007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Moondripstonehauler_109", 109, 310, 4295040851, 0, 2, 11, 4, 12, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '05000100010005000500010005000100000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Moondrippiledriver_110", 110, 314, 4295040840, 0, 2, 11, 4, 12, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '05000100010005000500010005000100000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Moondripblastmaster_111", 111, 312, 4295040852, 0, 2, 11, 4, 12, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '05000200010006000500020005000200000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "earthsprite_131", 131, 113, 0, 0, 1, 4, 4, 386, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sunmidgeswarm_136", 136, 298, 0, 0, 1, 4, 4, 58, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dustymongrel_138", 138, 302, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "desertpeiste_172", 172, 305, 0, 0, 2, 4, 4, 136, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cactuar_175", 175, 287, 0, 0, 1, 4, 4, 141, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "rustycoblyn_187", 187, 276, 0, 0, 1, 4, 4, 176, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "4thCohortvanguard_201", 201, 1820, 0, 0, 2, 4, 4, 214, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "orobon_302", 302, 308, 0, 0, 1, 4, 4, 270, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sandtoad_313", 313, 265, 0, 0, 1, 4, 4, 126, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bloatedbogy_342", 342, 309, 0, 0, 1, 4, 4, 264, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "starmarmot_351", 351, 262, 0, 0, 1, 4, 4, 26, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "thickshell_382", 382, 636, 0, 0, 1, 4, 4, 355, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "scaphite_389", 389, 635, 0, 0, 1, 4, 4, 364, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hammerbeak_431", 431, 282, 0, 0, 1, 4, 4, 156, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblinmugger_769", 769, 283, 4297588937, 0, 1, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "strikingdummy_901", 901, 541, 0, 0, 1, 4, 0, 480, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gianttortoise_1445", 1445, 244, 0, 0, 1, 4, 4, 95, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "SewerSyrup_3179", 3179, 2923, 0, 0, 1, 4, 0, 292, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "toxictoad_26", 26, 216, 0, 0, 2, 4, 4, 126, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sunbat_38", 38, 279, 0, 0, 1, 4, 4, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "syrphidcloud_41", 41, 201, 0, 0, 1, 4, 4, 59, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "spriggangraverobber_100", 100, 317, 0, 0, 1, 4, 4, 110, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "spriggangraverobber_101", 101, 317, 0, 0, 1, 4, 4, 109, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "eft_160", 160, 289, 0, 0, 1, 4, 4, 152, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cochinealcactuar_175", 175, 288, 0, 0, 1, 4, 4, 141, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "antlingsoldier_197", 197, 292, 0, 0, 2, 4, 4, 193, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "snappingshrew_205", 205, 318, 0, 0, 1, 4, 4, 282, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Quiveronguard_352", 352, 326, 17180131629, 17180131679, 2, 4, 4, 0, 0, UNHEX( '0300013206030201564f04000001004f00010302003201320001'), UNHEX( '19002a000e0003000e00380009000100050096000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Quiveronattendant_353", 353, 330, 21474968153, 4295033530, 2, 4, 4, 0, 0, UNHEX( '03000132060401013d7a06000001017a05030303003201320001'), UNHEX( '19002a000e0003000e00380009000100050096000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hugehornet_385", 385, 632, 0, 0, 1, 4, 4, 359, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "antlingworker_432", 432, 294, 0, 0, 1, 4, 4, 192, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaaimpaler_735", 735, 246, 4295361013, 0, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000100010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaastriker_736", 736, 254, 8590524717, 8590524767, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000100010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirnshellsweeper_771", 771, 266, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ovjang_3180", 3180, 2924, 0, 0, 1, 4, 0, 221, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "SabotenderBailarina_3197", 3197, 2941, 0, 0, 2, 4, 0, 143, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "chasmbuzzard_12", 12, 301, 0, 0, 2, 4, 4, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "rottingcorpse_18", 18, 319, 42949870069, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201c80101983904000000003900000000000000320107'), UNHEX( '000000006b2301000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "rottingnoble_19", 19, 322, 12884968425, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201c80101983904000000003900000000000000320107'), UNHEX( '000000006b2301000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "vandalousimp_21", 21, 1198, 0, 0, 2, 4, 4, 63, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "blowflyswarm_41", 41, 1199, 0, 0, 1, 4, 4, 59, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaabruiser_167", 167, 256, 17180459309, 17180459359, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000100010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaaranger_168", 168, 251, 38654902873, 4295033530, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000100020001000200020002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirnroerunner_170", 170, 268, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "axebeak_181", 181, 281, 0, 0, 2, 4, 4, 157, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "quartzdoblyn_188", 188, 275, 0, 0, 1, 4, 4, 177, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "myotragusbilly_193", 193, 273, 0, 0, 1, 4, 4, 183, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "myotragusnanny_194", 194, 274, 0, 0, 1, 4, 4, 184, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "phurble_203", 203, 272, 0, 0, 1, 4, 4, 266, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goldenfleece_204", 204, 271, 0, 0, 1, 4, 4, 267, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "tuco-tuco_206", 206, 306, 0, 0, 1, 4, 4, 283, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bandittrapper_352", 352, 1309, 17180131629, 17180131679, 2, 4, 4, 0, 0, UNHEX( '0300013206030201564f04000001004f00010302003201320001'), UNHEX( '19002a000e0003000e00380009000100050096000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "banditarcher_353", 353, 1311, 21474968153, 4295033530, 2, 4, 4, 0, 0, UNHEX( '03000132060401013d7a06000001017a05030303003201320001'), UNHEX( '19002a000e0003000e00380009000100050096000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "banditmage_354", 354, 1310, 17180853125, 0, 2, 4, 4, 0, 0, UNHEX( '03000132060303012c4706000001004700010302003201320001'), UNHEX( '000001001d0005000e00390009000100050096000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mirrorknight_399", 399, 634, 0, 0, 2, 4, 4, 378, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaajavelinier_735", 735, 247, 4295361013, 0, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000100010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaahunter_737", 737, 250, 8590131801, 4295033530, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000100020001000200020002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Gatling_3181", 3181, 2925, 0, 0, 1, 4, 0, 283, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Maahes_3198", 3198, 2942, 0, 0, 2, 4, 0, 66, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "smokebomb_17", 17, 132, 0, 0, 1, 4, 4, 100, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "fallenpikeman_18", 18, 321, 42949870069, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201c80101983904000000003900000000000000320107'), UNHEX( '000000006b2301000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "fallenwizard_19", 19, 324, 12884968425, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201c80101983904000000003900000000000000320107'), UNHEX( '000000006b2301000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sandstonegolem_30", 30, 280, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "russetyarzon_42", 42, 285, 0, 0, 2, 4, 4, 75, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "potterwaspswarm_57", 57, 564, 0, 0, 1, 4, 4, 60, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "firesprite_134", 134, 116, 0, 0, 1, 4, 4, 381, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaahalberdier_166", 166, 2155, 12885295605, 0, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000100010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaasniper_168", 168, 252, 38654902873, 4295033530, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000100020001000200020002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaaseer_169", 169, 259, 17179935721, 0, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000300010003000200030000000000010003000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sandskinpeiste_174", 174, 303, 0, 0, 2, 4, 4, 137, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sabotender_176", 176, 286, 0, 0, 1, 4, 4, 142, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Zaharakbattledrake_190", 190, 1841, 0, 0, 2, 4, 4, 179, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "angler_356", 356, 307, 0, 0, 1, 4, 4, 268, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sandworm_357", 357, 290, 0, 0, 2, 4, 4, 238, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "irontortoise_358", 358, 243, 0, 0, 1, 4, 4, 95, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "CorpseBrigadeknuckledancer_363", 363, 331, 12885098797, 12885098847, 2, 4, 4, 0, 0, UNHEX( '01000132020101011d0106000001000100000000003200320001'), UNHEX( '1900300008001430000001000a003d0008005c000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "CorpseBrigadefiredancer_365", 365, 332, 17180853125, 0, 2, 4, 4, 0, 0, UNHEX( '010001320202080152b60400000100b600000000003200320001'), UNHEX( '000001001d000800000001000300320008005c000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Zanraklancer_739", 739, 2297, 12885295605, 0, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000100010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Zaharakpugilist_740", 740, 1839, 30064836910, 30064836960, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000100010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Amaljaaarcher_741", 741, 249, 34359935577, 4295033530, 2, 7, 1, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000100020001000200020002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Zanrakthaumaturge_742", 742, 1879, 25769870313, 0, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000300010003000200030000000000010003000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "rockskinpeiste_2188", 2188, 1993, 0, 0, 2, 4, 0, 137, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "temperedsword_2259", 2259, 1998, 42949870069, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201c80101983904000000003900000000000000320107'), UNHEX( '03001400030016000300160003000100030016000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "temperedbrand_2260", 2260, 1999, 12884968425, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201c80101983904000000003900000000000000320107'), UNHEX( '0400c500220029000200010007003e00040095000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "duneangler_2268", 2268, 2191, 0, 0, 1, 4, 4, 268, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "infernalbeacon_2452", 2452, 1877, 0, 0, 1, 7, 1, 615, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ifritsbeacon_2453", 2453, 1878, 0, 0, 1, 7, 1, 615, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Zaharakfortune-teller_2457", 2457, 2303, 25769870313, 0, 2, 7, 4, 3, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '02000300010003000200030000000000010003000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "AlbintheAshen_3182", 3182, 2926, 42949870069, 0, 1, 4, 0, 0, 0, UNHEX( '0100013201c80101983904000000003900000000000000320107'), UNHEX( '000000006b2301000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Zanigoh_3199", 3199, 2943, 0, 0, 2, 4, 0, 826, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohorthoplomachus_55", 55, 53, 17180065993, 12885295205, 2, 4, 4, 0, 0, UNHEX( '0100013201020401110505000000030580040101001900320000'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohortlaquearius_61", 61, 58, 12884967825, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201010201aa9206000000029202000302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohorteques_62", 62, 59, 12885230069, 0, 2, 4, 4, 0, 0, UNHEX( '02000132030203013c9236000000019201050300003201320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohortsecutor_63", 63, 60, 21475033389, 21475033439, 2, 4, 4, 0, 0, UNHEX( '0100013201010701984706000000024701020302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "3rdCohortsignifer_64", 64, 61, 30064837609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201050301113b27000000043b850103000032004b0007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "earthsprite_131", 131, 113, 0, 0, 1, 4, 4, 386, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "basilisk_173", 173, 304, 0, 0, 2, 4, 4, 135, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ahriman_183", 183, 242, 0, 0, 2, 4, 4, 168, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "quartzdoblyn_188", 188, 275, 0, 0, 1, 4, 4, 177, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "magitekvanguard_200", 200, 269, 0, 0, 2, 4, 4, 213, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "grenade_327", 327, 270, 0, 0, 2, 4, 4, 101, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "FlameSergeantDalvag_3183", 3183, 2927, 0, 0, 1, 4, 0, 717, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000040001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "diremite_10", 10, 10, 0, 0, 2, 4, 4, 21, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hoglet_14", 14, 195, 0, 0, 1, 4, 4, 46, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "magickedbones_20", 20, 20, 25772425417, 0, 2, 4, 4, 17, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "tricksterimp_21", 21, 21, 0, 0, 2, 4, 4, 63, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "roselet_22", 22, 22, 0, 0, 1, 4, 4, 48, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cratergolem_30", 30, 131, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "microchu_32", 32, 32, 0, 0, 1, 4, 4, 35, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "groundsquirrel_37", 37, 37, 0, 0, 1, 4, 4, 25, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "treeslug_39", 39, 39, 0, 0, 1, 4, 4, 50, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "syrphidswarm_41", 41, 41, 0, 0, 1, 4, 4, 59, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "chigoe_43", 43, 43, 0, 0, 1, 4, 4, 36, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "forestfunguar_47", 47, 47, 0, 0, 1, 4, 4, 28, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "toadstool_48", 48, 48, 0, 0, 2, 4, 4, 29, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lindwurm_53", 53, 130, 0, 0, 2, 4, 4, 97, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hornetswarm_57", 57, 54, 0, 0, 1, 4, 4, 60, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "deathgaze_58", 58, 55, 0, 0, 2, 4, 4, 233, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "spriggan_98", 98, 91, 0, 0, 2, 4, 4, 107, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "spriggan_99", 99, 91, 0, 0, 2, 4, 4, 108, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "spriggan_100", 100, 91, 0, 0, 2, 4, 4, 110, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "spriggan_101", 101, 91, 0, 0, 2, 4, 4, 109, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "anole_142", 142, 120, 0, 0, 2, 4, 4, 97, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bogyarzon_159", 159, 197, 0, 0, 2, 4, 4, 76, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "blackeft_160", 160, 196, 0, 0, 1, 4, 4, 152, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "broodziz_178", 178, 221, 0, 0, 2, 4, 4, 154, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "floatingeye_182", 182, 207, 0, 0, 2, 4, 4, 167, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "stroper_304", 304, 238, 0, 0, 2, 4, 4, 145, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "revenant_305", 305, 236, 0, 0, 2, 4, 4, 265, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirnscrambler_771", 771, 218, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "treantsapling_1446", 1446, 128, 0, 0, 1, 4, 4, 104, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "halitostroper_2193", 2193, 2057, 0, 0, 2, 4, 0, 145, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningspark_2267", 2267, 2190, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "WhiteJoker_3175", 3175, 2919, 0, 0, 1, 4, 0, 27, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lemur_6", 6, 6, 0, 0, 1, 4, 4, 32, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gallgnat_7", 7, 2157, 0, 0, 2, 4, 4, 53, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "northernvulture_12", 12, 12, 0, 0, 2, 4, 4, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildhoglet_14", 14, 14, 0, 0, 1, 4, 4, 46, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildboar_15", 15, 16, 0, 0, 2, 4, 4, 44, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "milkrootsapling_23", 23, 162, 0, 0, 2, 4, 4, 49, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Sylphlandssentinel_24", 24, 163, 0, 0, 2, 4, 4, 104, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dreamtoad_27", 27, 164, 0, 0, 2, 4, 4, 127, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "milkrootcluster_33", 33, 165, 0, 0, 2, 4, 4, 34, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "boringweevil_36", 36, 36, 0, 0, 1, 4, 4, 56, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "blackbat_38", 38, 38, 0, 0, 1, 4, 4, 98, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "jumpingdjigga_44", 44, 44, 0, 0, 1, 4, 4, 37, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "faeriefunguar_47", 47, 220, 0, 0, 1, 4, 4, 28, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sylphbonnet_48", 48, 166, 0, 0, 2, 4, 4, 29, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "raptorpoacher_79", 79, 239, 38654902773, 0, 2, 4, 4, 0, 0, UNHEX( '0401013208030201150c05000000000c00000000003201000000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "boarpoacher_81", 81, 240, 17179935321, 4295033530, 2, 4, 4, 0, 0, UNHEX( '04010132080301014a0c1e000000000c00000000003201000000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mandragora_118", 118, 107, 0, 0, 1, 4, 4, 297, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "morbol_140", 140, 237, 0, 0, 2, 4, 4, 145, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "moltedziz_178", 178, 222, 0, 0, 2, 4, 4, 154, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "zizgorlin_179", 179, 223, 0, 0, 2, 4, 4, 155, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "glowfly_306", 306, 211, 0, 0, 1, 4, 4, 78, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wolfpoacher_311", 311, 241, 17182556361, 17180328037, 2, 4, 4, 0, 0, UNHEX( '040101320801060189241e000000032403040301003201320000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Sylphlandscondor_403", 403, 567, 0, 0, 2, 4, 4, 41, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sylpheedscreech_762", 762, 67, 17182556361, 0, 2, 4, 4, 7, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "sylpheedsigh_763", 763, 68, 30064837309, 0, 2, 4, 4, 7, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "violetsnarl_764", 764, 2318, 30065755013, 0, 2, 4, 4, 7, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "swollendjigga_2264", 2264, 2187, 0, 0, 1, 4, 4, 37, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "greaterbanestool_2464", 2464, 2315, 0, 0, 1, 4, 1, 616, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "giantbanestool_2465", 2465, 2316, 0, 0, 1, 4, 1, 616, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "banestool_2660", 2660, 2314, 0, 0, 1, 4, 0, 616, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "StingingSophie_3176", 3176, 2920, 0, 0, 1, 4, 0, 359, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Melt_3193", 3193, 2937, 0, 0, 2, 4, 0, 690, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "antelopedoe_3", 3, 3, 0, 0, 1, 4, 4, 61, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "antelopestag_4", 4, 4, 0, 0, 1, 4, 4, 62, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ked_8", 8, 8, 0, 0, 2, 4, 4, 54, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "midlandcondor_13", 13, 566, 0, 0, 2, 4, 4, 40, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildhog_16", 16, 15, 0, 0, 2, 4, 4, 45, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "kedtrap_23", 23, 23, 0, 0, 2, 4, 4, 49, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "treant_24", 24, 24, 0, 0, 2, 4, 4, 104, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "overgrownoffering_33", 33, 215, 0, 0, 2, 4, 4, 34, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "adamantoise_34", 34, 34, 0, 0, 1, 4, 4, 94, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hoverflyswarm_41", 41, 168, 0, 0, 1, 4, 4, 59, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "will-o-the-wisp_45", 45, 45, 0, 0, 1, 4, 4, 79, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "goblinthug_52", 52, 50, 8592556233, 0, 2, 4, 4, 6, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watersprite_59", 59, 56, 0, 0, 1, 4, 4, 385, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Coeurlclawpoacher_79", 79, 140, 38654902773, 0, 2, 4, 4, 0, 0, UNHEX( '0401013208030201150c05000000000c00000000003201000000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Coeurlclawhunter_81", 81, 139, 17179935321, 4295033530, 2, 4, 4, 0, 0, UNHEX( '04010132080301014a0c1e000000000c00000000003201000000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Redbellylookout_84", 84, 52, 21474902217, 8590393445, 2, 4, 4, 0, 0, UNHEX( '02000132040102013a8a06000000028a02000302003201320000'), UNHEX( '0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Redbellylarcener_86", 86, 172, 12885033261, 12885033311, 2, 4, 4, 0, 0, UNHEX( '0200013204010701224e06000000024e01020302003201320000'), UNHEX( '0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Redbellysharpeye_87", 87, 83, 8590131801, 4295033530, 2, 4, 4, 0, 0, UNHEX( '0200013204030401282605000000022685010102003201320000'), UNHEX( '0900d200090010000900670009004a000900a0000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lesserkalong_130", 130, 112, 0, 0, 1, 4, 4, 99, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "windsprite_133", 133, 115, 0, 0, 1, 4, 4, 383, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lesserkalong_130", 130, 171, 0, 0, 1, 4, 4, 99, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "deepvoiddeathmouse_143", 143, 170, 0, 0, 1, 4, 4, 27, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "riveryarzon_159", 159, 226, 0, 0, 2, 4, 4, 76, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "barkeft_161", 161, 228, 0, 0, 1, 4, 4, 152, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirnbeater_170", 170, 219, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bigmouthorobon_302", 302, 235, 0, 0, 1, 4, 4, 270, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "stroper_304", 304, 238, 0, 0, 2, 4, 4, 145, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "revenant_305", 305, 236, 0, 0, 2, 4, 4, 265, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Coeurlclawcutter_311", 311, 169, 17182556361, 17180328037, 2, 4, 4, 0, 0, UNHEX( '040101320801060189241e000000032403040301003201320000'), UNHEX( '130010000900260009007c0009004d000900b2000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "scarredantelope_2187", 2187, 1992, 0, 0, 1, 4, 0, 61, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "MonarchOgrefly_3177", 3177, 2921, 0, 0, 1, 4, 0, 654, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "opo-opo_5", 5, 5, 0, 0, 1, 4, 4, 31, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "miteling_9", 9, 9, 0, 0, 1, 4, 4, 20, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "banemite_11", 11, 11, 0, 0, 2, 4, 4, 22, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "balloon_17", 17, 17, 0, 0, 1, 4, 4, 100, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dryad_25", 25, 25, 0, 0, 2, 4, 4, 106, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dullahan_29", 29, 29, 4298178761, 0, 2, 4, 4, 125, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "claygolem_30", 30, 30, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Shroudhare_40", 40, 40, 0, 0, 1, 4, 4, 51, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "yarzonscavenger_42", 42, 227, 0, 0, 2, 4, 4, 75, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalideftalon_113", 113, 209, 12887982281, 12885360741, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalilightwing_114", 114, 208, 21474967953, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000100020000000000010002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalistraightbeak_115", 115, 210, 8590262773, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010004000200040000000000020004000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "midgeswarm_136", 136, 118, 0, 0, 1, 4, 4, 58, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "watchwolf_141", 141, 174, 0, 0, 2, 4, 4, 163, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ziz_179", 179, 224, 0, 0, 2, 4, 4, 155, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalidulltalon_743", 743, 192, 8593014985, 12885360741, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalilostwing_744", 744, 193, 17180000657, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000100020000000000010002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalislowbeak_745", 745, 194, 4295295477, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010004000200040000000000020004000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixaliwindtalon_747", 747, 436, 17182949577, 12885360741, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixaliboldwing_748", 748, 103, 25769935249, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000100020000000000010002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pumicegolem_2265", 2265, 2188, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "brightballoon_2266", 2266, 2189, 0, 0, 1, 4, 4, 100, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Phecda_3178", 3178, 2922, 0, 0, 1, 4, 0, 574, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "will-o-the-wyke_45", 45, 2918, 0, 0, 1, 4, 4, 79, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixaliwildtalon_113", 113, 660, 12887982281, 12885360741, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixaliboundwing_114", 114, 662, 21474967953, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000100020000000000010002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalistillbeak_115", 115, 661, 8590262773, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010004000200040000000000020004000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Ixalifearcaller_116", 116, 663, 42949804833, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010003000200040000000000020004000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "icesprite_132", 132, 114, 0, 0, 1, 4, 4, 382, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mudpuppy_139", 139, 645, 0, 0, 2, 4, 4, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Natalanwatchwolf_141", 141, 1846, 0, 0, 2, 4, 4, 163, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "chinchilla_143", 143, 2156, 0, 0, 2, 4, 4, 27, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "biast_191", 191, 788, 0, 0, 2, 4, 4, 180, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "dragonfly_387", 387, 637, 0, 0, 2, 4, 4, 362, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "vodoriga_388", 388, 658, 0, 0, 2, 4, 4, 363, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "taurus_390", 390, 1182, 0, 0, 2, 4, 4, 365, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "baritinecroc_394", 394, 1850, 0, 0, 2, 4, 4, 372, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "feralcroc_395", 395, 784, 0, 0, 2, 4, 4, 373, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "downyaevis_398", 398, 1849, 0, 0, 2, 4, 4, 377, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bateleur_403", 403, 1183, 0, 0, 2, 4, 4, 41, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hippocerf_644", 644, 790, 0, 0, 2, 4, 4, 133, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "redhornogre_646", 646, 794, 0, 0, 2, 4, 4, 187, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ornerykarakul_719", 719, 795, 0, 0, 1, 4, 4, 291, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "snowstormgoobbue_720", 720, 1611, 0, 0, 1, 4, 4, 199, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "giantlogger_721", 721, 785, 4295106375, 0, 2, 9, 4, 11, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010002000200010001000200000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "giantlugger_722", 722, 786, 0, 0, 2, 9, 4, 11, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010003000300010001000300000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "giantreader_723", 723, 787, 0, 0, 2, 9, 4, 11, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010004000400010001000400000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "snowwolfpup_731", 731, 659, 0, 0, 2, 4, 4, 161, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Natalanwindtalon_747", 747, 1842, 17182949577, 12885360741, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000100010000000000010001000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Natalanboldwing_748", 748, 1843, 25769935249, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000100020000000000010002000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Natalanswiftbeak_749", 749, 1844, 17180197365, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010004000200040000000000020004000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Natalanfogcaller_750", 750, 1845, 42949804833, 0, 2, 6, 4, 4, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010003000200040000000000020004000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Naul_3190", 3190, 2934, 0, 0, 1, 4, 0, 224, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Marraco_3207", 3207, 2951, 0, 0, 2, 4, 0, 371, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "nix_27", 27, 27, 0, 0, 2, 4, 4, 127, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohorthoplomachus_55", 55, 1809, 17180065993, 12885295205, 2, 4, 4, 0, 0, UNHEX( '0100013201020401110505000000030580040101001900320000'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortlaquearius_61", 61, 1810, 12884967825, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201010201aa9206000000029202000302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohorteques_62", 62, 1811, 12885230069, 0, 2, 4, 4, 0, 0, UNHEX( '02000132030203013c9236000000019201050300003201320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortsecutor_63", 63, 1812, 21475033389, 21475033439, 2, 4, 4, 0, 0, UNHEX( '0100013201010701984706000000024701020302003200320007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortsignifer_64", 64, 1813, 30064837609, 0, 2, 4, 4, 0, 0, UNHEX( '0100013201050301113b27000000043b850103000032004b0007'), UNHEX( '0d009300220037000d004000070061000a009e000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "mudpuppy_139", 139, 645, 0, 0, 2, 4, 4, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "morbol_140", 140, 237, 0, 0, 2, 4, 4, 145, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "5thCohortvanguard_201", 201, 1814, 0, 0, 2, 4, 4, 214, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hippogryph_645", 645, 789, 0, 0, 2, 4, 4, 134, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hapalit_647", 647, 793, 0, 0, 2, 4, 4, 188, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "daringharrier_724", 724, 650, 4295033034, 25770000485, 2, 4, 4, 0, 0, UNHEX( '02000132030104010a2605000001002682000000003201320001'), UNHEX( '0f0099000f0030000b0040000f0047000f0070000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ragingharrier_725", 725, 651, 12885230069, 0, 2, 4, 4, 0, 0, UNHEX( '02000132030206013a4e16000001024e82000000003201320001'), UNHEX( '0f0099000f0030000b0040000f0047000f0070000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "hexingharrier_726", 726, 652, 47244706793, 0, 2, 4, 4, 0, 0, UNHEX( '0201013203030501422605000001022684000103003201320001'), UNHEX( '10000100070028000200590207003e000a008b000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigasshramana_727", 727, 647, 4295040839, 0, 2, 10, 4, 13, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000070001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigasbonze_728", 728, 646, 4295106370, 0, 2, 10, 4, 13, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000070001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigassozu_729", 729, 648, 4295040844, 0, 2, 10, 4, 13, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000070001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "gigasbhikkhu_730", 730, 649, 4295106388, 4295106369, 2, 10, 4, 13, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000070001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lakecobra_777", 777, 1851, 0, 0, 2, 4, 4, 235, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "LeechKing_3191", 3191, 2935, 0, 0, 1, 4, 0, 600, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "wildjackal_138", 138, 399, 0, 0, 2, 4, 4, 160, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Kurrea_3208", 3208, 2952, 0, 0, 2, 4, 0, 151, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Morabymole_205", 205, 409, 0, 0, 1, 4, 4, 282, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "megalocrab_326", 326, 561, 0, 0, 1, 4, 4, 148, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Qiqirneggdigger_771", 771, 350, 0, 0, 2, 4, 4, 14, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000010001000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "blackbat_1037", 1037, 38, 0, 0, 3, 4, 2, 98, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "caveaurelia_1038", 1038, 1210, 0, 0, 3, 4, 2, 279, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); @@ -185,21 +375,19 @@ INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWea INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "ringtail_6", 6, 407, 0, 0, 1, 4, 4, 32, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "highlandcondor_13", 13, 398, 0, 0, 2, 4, 4, 40, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "basaltgolem_30", 30, 365, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "plasmoid_46", 46, 46, 0, 0, 1, 4, 4, 80, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "pteroc_65", 65, 62, 0, 0, 1, 4, 4, 131, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "coeurl_117", 117, 106, 0, 0, 2, 4, 4, 65, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "lightningsprite_135", 135, 117, 0, 0, 1, 4, 4, 384, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "syntheticdoblyn_189", 189, 1836, 0, 0, 2, 4, 4, 178, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "grenade_327", 327, 270, 0, 0, 2, 4, 4, 101, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "UGhamaroroundsman_755", 755, 1832, 17182490825, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "UGhamaroquarryman_756", 756, 1833, 8590000529, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); -INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "elitebedesman_757", 757, 2521, 30064837309, 0, 2, 8, 2, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000400010004000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "eliteroundsman_755", 755, 2518, 17182490825, 0, 2, 8, 2, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000100010001000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "elitequarryman_756", 756, 2519, 8590000529, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000200010002000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "elitebedesman_757", 757, 2521, 30064837309, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000400010004000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "koboldpriest_758", 758, 371, 30065755013, 0, 2, 8, 4, 5, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '01000300010003000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "youngcoeurl_2269", 2269, 2192, 0, 0, 2, 4, 4, 65, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "bombincubator_2833", 2833, 2528, 0, 0, 1, 4, 2, 678, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "prototypebombincubator_2834", 2834, 2529, 0, 0, 1, 4, 2, 678, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "UGhamarogolem_2838", 2838, 2522, 0, 0, 2, 4, 4, 81, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Vuokho_3189", 3189, 2933, 0, 0, 1, 4, 0, 39, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); +INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Cornu_3206", 3206, 2950, 0, 0, 2, 4, 0, 604, 3, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "strikingdummy_8016", 8016, 541, 0, 0, 1, 4, 0, 480, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "cocoon_6358", 6358, 6275, 0, 0, 1, 4, 0, 480, 262152, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "Shinryu_6531", 6531, 5640, 0, 0, 3, 4, 0, 1893, 262144, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); @@ -236,7 +424,6 @@ INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWea INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "servantofthesage_8754", 8754, 7205, 0, 0, 3, 4, 0, 2270, 262147, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "saitaisui_8780", 8780, 7206, 4295302988, 0, 1, 4, 0, 2218, 12, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); - INSERT INTO `discoveryinfo` (`id`, `map_id`, `discover_id`) VALUES (1367775, 4, 2), (1367776, 4, 2), @@ -9206,268 +9393,708 @@ INSERT INTO `zonepositions` (`id`, `target_zone_id`, `pos_x`, `pos_y`, `pos_z`, (6906492, 635, 100.312, 2.731, -113.366, -0.481, 2); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -345.388947, 29.566580, -435.753174, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -326.154724, 22.296928, -401.389435, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.302933, 12.706744, -305.015015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.352875, 13.372667, -300.373566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.955841, 14.688709, -320.949066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.585846, 18.829691, -359.511688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.675323, 22.961006, -380.670990, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.137817, 23.382748, -389.604645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.550751, 14.436340, -352.420563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.839096, 15.333442, -347.116882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.478638, 15.116598, -356.427399, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.493927, 21.773628, -406.852844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.881897, 14.504688, -322.676117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.379456, 14.096419, -318.399017, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.760620, 23.480957, -387.760803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -313.823639, 13.033344, -301.501678, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.390060, 14.245410, -457.364075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.925201, 11.680475, -450.890533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.758735, 14.201798, -461.258636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.628424, 11.938938, -439.977692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.013916, 12.245436, -411.487366, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.313797, 12.305261, -314.432495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.436157, 13.084026, -319.166626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -198.334290, 12.714041, -360.448151, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.388519, 22.400616, -441.069214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.498245, 23.399185, -446.166595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.239288, 15.520851, -399.813934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.488739, 14.084651, -391.802826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.903427, 17.061604, -407.286926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.076279, 24.850960, -447.242645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.500504, 27.365400, -473.241180, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'CaptainPetyrPigeontoe_350' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -331.965668, 22.992815, -397.683472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -343.520752, 29.194338, -434.403931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.851410, 23.329105, -389.787903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.919769, 23.185986, -379.368286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.690704, 18.819510, -358.737640, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.698059, 14.251725, -314.956085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.845459, 12.771940, -294.912384, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.021545, 12.128521, -304.521088, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.034760, 15.414858, -352.626801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.411011, 14.661633, -353.962830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.534393, 15.604112, -364.897766, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.086853, 14.243032, -318.071198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.355133, 14.702018, -324.354950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -265.035980, 21.642460, -391.558014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.696960, 21.995447, -408.036621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -311.346100, 13.090148, -301.844757, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.446762, 14.427491, -455.573090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.431925, 11.248571, -450.000061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.233833, 15.026097, -455.286896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.050797, 11.844938, -442.189026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -221.341934, 11.961915, -312.651794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.595505, 12.352926, -309.352112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.311447, 12.183639, -354.748505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -76.889236, 12.132688, -411.779266, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.057877, 12.777744, -317.539368, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -220.589676, 11.878364, -312.511322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.594452, 11.962065, -355.653717, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.458466, 13.031585, -388.402069, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.588074, 22.026314, -439.699127, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -171.213028, 17.009743, -408.806580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.518661, 15.478683, -400.348083, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.690918, 25.026531, -447.813477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.352142, 23.785759, -445.140503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.630051, 26.268248, -468.249023, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'CaptainPetyrPigeontoe_350' ) , 11, 217 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.328251, 51.480759, -227.008499, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.810013, 25.391012, -460.873047, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -235.964523, 25.110031, -467.975067, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -199.158157, 14.872395, -396.241333, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -356.450928, 33.451496, -540.853455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -320.785858, 33.649094, -583.676697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.356537, 30.274841, -561.919373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.511169, 25.519537, -483.387787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -325.360657, 27.810431, -472.799927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -325.478394, 27.690218, -475.958923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -335.211273, 36.900539, -595.765808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -318.070435, 36.132381, -591.977966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.451721, 22.047026, -437.852325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -324.255280, 27.436514, -526.413879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -370.006042, 35.231163, -487.073334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.264984, 35.985336, -488.961395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.792694, 36.009693, -495.739410, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.364128, 44.093685, 107.553200, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.268539, 46.724518, 136.338364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.707085, 46.311752, 136.568741, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.018402, 33.117115, -563.082275, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.515167, 26.205408, -541.412598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.101288, 25.391624, -533.395813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.221771, 29.686281, -470.199615, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.047440, 31.206146, -576.813782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.136444, 33.524559, -595.852356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.733032, 33.874985, -597.828491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.360413, 33.645500, -505.330078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.525543, 31.869547, -509.008240, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.430328, 32.272133, -539.706909, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.613434, 24.118813, -380.878967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.744934, 23.897331, -381.954956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.261383, 13.775493, -317.929474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.834808, 17.254112, -347.665527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.815643, 16.845871, -349.862549, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.717438, 17.858700, -352.803070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.243317, 26.654594, -393.651733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.175659, 33.564983, -589.111572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.435623, 32.362934, -565.767761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -376.526489, 13.896859, -324.553253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.008102, 30.253586, -570.609436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.243301, 27.613777, -521.215027, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -420.094330, 12.597722, -311.434753, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.849731, 12.510590, -311.934723, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -366.167694, 12.091236, -306.270905, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.299580, 55.042175, -257.084961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.795578, 51.582069, -32.362301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.510176, 47.169777, 7.795540, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.551537, 29.851358, 189.738098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.262884, 29.407082, 179.518234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.720869, 29.053928, 181.304443, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.495502, 30.380665, 172.407364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.329781, 43.955208, 155.005188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.518013, 42.989105, 118.780502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -68.166626, 43.007225, 107.905563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.092205, 43.629402, 111.378723, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.234561, 24.291334, 201.717117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.773578, 23.680052, 196.653931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.779884, 44.791718, 145.633957, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.749100, 44.637295, 143.545715, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.238331, 45.256756, 96.337936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.197205, 44.597931, 113.161217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -17.754864, 45.153427, 99.784790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.992736, 45.949394, 79.764458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.424831, 44.679016, 151.940872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.866279, 24.183924, 198.192154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.086426, 45.106491, 148.815216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.979847, 44.280872, 158.869125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.076588, 43.842724, 141.637619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.916911, 43.823296, 109.991936, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.591410, 27.638182, 213.702469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.038459, 28.971394, 177.228210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.871887, 43.941578, 147.002197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.422501, 44.440933, 100.524612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.934925, 34.461262, 183.119568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.059912, 34.235126, 188.966934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.693619, 44.330345, 106.495529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.875931, 44.091866, 155.132431, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.015106, 103.203697, -193.008301, 0, 4296694 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.558899, 105.985802, -214.094299, 0, 4296691 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.144104, 105.712402, -208.740204, 0, 4296690 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.738297, 105.634201, -204.802994, 0, 4296689 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.339401, 103.033401, -192.118607, 0, 4296693 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.287445, 48.774925, 60.049950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.677322, 48.342552, 79.262779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.528473, 48.270821, 77.847992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.654846, 46.787323, 109.788803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.743423, 47.474777, 108.471367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.584122, 47.480267, 108.689880, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.970322, 46.841934, 109.707222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.913269, 46.945381, 111.036270, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.688782, 48.229084, 67.383591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.552887, 47.999767, 67.711365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.503937, 48.141754, 69.153397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.344719, 46.694866, 81.742561, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.444679, 46.425037, 120.738876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.658997, 46.397110, 122.156570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.095657, 46.443115, 117.044342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.960510, 47.640308, 52.202122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.655762, 47.580715, 63.141129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.554558, 44.667294, 102.201637, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.965904, 44.615826, 98.036583, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.463654, 48.419487, 76.549248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.421417, 47.941963, 59.158360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.089668, 46.433601, 104.064827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.238647, 46.415787, 105.150032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.160904, 48.173183, 50.316780, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.956974, 44.704605, 99.881027, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.549736, 57.190449, 214.553436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.525253, 56.042690, 209.422760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.051403, 62.446442, 282.129425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.944962, 61.911633, 276.713409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.922646, 56.992622, 225.424026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.078773, 56.885986, 223.856781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.744236, 57.267506, 242.963562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.297165, 51.641514, 183.525055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.394539, 50.344387, 210.498703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.321896, 51.855530, 215.426514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.232063, 50.115326, 176.923965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.856224, 50.262341, 179.783936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.554813, 50.278587, 197.175262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.076126, 51.404095, 181.327026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 106.336151, 46.542542, 146.037781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.529419, 46.496357, 146.864578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.411922, 47.397476, 188.868851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 55.938103, 48.382042, 192.162201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.970428, 46.898621, 171.290314, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.714684, 60.832500, 257.380402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.119259, 49.030884, 202.622604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 92.332085, 57.267738, 222.708633, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.338364, 46.940929, 155.956055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.729538, 47.873699, 181.971664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.173416, 47.911686, 182.943954, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.362442, 54.497883, 210.910156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 186.164612, 61.510574, 211.963135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.987930, 56.263233, 187.923843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.434906, 56.940521, 186.661606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.979340, 60.333061, 200.027451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.632248, 47.897598, 144.888062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 182.115936, 48.810600, 152.630585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.268143, 48.080715, 148.391388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 157.007324, 60.923241, 263.217133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 150.500488, 60.850376, 263.248718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.530884, 57.584221, 233.633820, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.803909, 60.055973, 252.144592, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.100479, 57.249226, 223.608643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.773010, 57.841290, 226.183258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.917557, 58.084629, 228.757660, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.993903, 51.633678, -102.898903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.280601, 52.694759, -114.580383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.444717, 53.167774, -115.282059, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -10.711990, 49.782681, -90.152298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.019464, 49.165482, -87.729759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.284972, 47.606350, 19.982195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.341366, 50.012794, -60.434803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.952839, 50.403530, -58.057556, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.687347, 65.358727, -110.080292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.216080, 62.031960, -96.706802, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.731094, 62.449772, -104.154373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.290741, 49.612831, 0.064280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.626144, 49.297306, 4.778895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.414593, 50.474976, -30.910105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.437317, 55.576977, -68.951340, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.662285, 56.313927, -69.116508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.731392, 56.317226, -50.044048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.679257, 49.292801, -27.752888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.263829, 49.315575, -35.775459, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.821778, 49.282028, -25.081804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.025280, 49.349777, -5.415370, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.613480, 44.009529, 30.942867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.623169, 44.819939, 32.029903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.687996, 39.260262, 73.701317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.763969, 42.924706, 30.753731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.181015, 40.679569, 71.883293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.683956, 40.893539, 66.671013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.538228, 43.437088, 46.584648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.279146, 42.683540, 49.196579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.273220, 42.865303, 39.455036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.479734, 43.282387, 45.144421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.434624, 43.189404, 29.502472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.008865, 44.158417, 28.212202, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.664551, 58.286568, 220.240219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.934769, 58.712387, 226.232986, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.747498, 60.830498, 274.423828, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.351578, 50.978226, 152.279388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.548477, 51.224773, 153.686295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.959366, 53.570744, 189.470215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.472961, 59.694351, 248.385452, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.020264, 55.370415, -69.352966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.170364, 49.838821, -68.782326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.571152, 51.888584, -19.764053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.773760, 47.606594, 19.565292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.204916, 46.720444, -30.901602, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.168560, 60.444397, -183.799896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.053051, 60.401928, -183.783249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.484033, 54.311432, -156.329300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.599415, 54.562565, -155.812119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.257294, 53.970779, -149.141663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.645035, 73.184212, -211.623795, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.141672, 57.110146, -193.953354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.450117, 56.646244, -187.739624, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.372414, 66.027878, -163.958939, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.131348, 66.684288, -163.940903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 20.829683, 56.061222, -157.242508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.480545, 84.157242, -216.300781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.541214, 84.289825, -211.426544, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.005386, 67.953743, -142.929062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.584274, 85.442703, -178.240295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.868019, 73.653473, -167.020645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.458961, 79.525024, -191.170502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.138042, 55.869495, -155.769455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.006012, 55.425858, -125.869781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.963425, 56.335258, -114.111465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.461700, 55.657070, -117.027122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.746140, 67.471092, -137.663147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.973221, 68.098656, -146.530090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.713570, 67.625000, -143.377502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.486435, 62.308422, -165.237076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.644001, 62.305508, -174.715576, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.222466, 63.667103, -168.534195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.465408, 62.292175, -167.113373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.337288, 76.675690, -190.652710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.189346, 79.572144, -191.947861, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.338299, 61.946495, -192.012360, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.009339, 56.475613, -164.606705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.313643, 60.965805, -188.869537, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.576660, 84.558853, -214.791580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.866758, 50.403988, -112.145859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -22.229101, 52.105640, -126.614952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.155701, 75.448906, -196.027115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.136543, 65.626106, -159.680511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.210106, 58.112301, -202.417557, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblinfisher_769' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.425201, 49.484989, 10.177730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.565399, 49.175140, 13.275840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.630295, 52.191109, 0.493474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.709000, 52.181438, 1.958378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.385597, 49.234230, 11.315280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.187698, 52.657040, -17.502140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.246078, 51.459473, 0.485654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.423264, 48.900520, 14.196040, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.599762, 41.054874, -20.094616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.017395, 42.810432, -34.186378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.625854, 41.554680, -26.096842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.918823, 43.204742, -17.722685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.965546, 48.252819, -102.441193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.827671, 46.200661, 19.798168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.788368, 45.940002, -76.557014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.941093, 46.645500, -87.251610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.979286, 46.592018, -79.841980, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.820442, 43.197647, -20.644436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.025192, 44.894878, -44.410561, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.286346, 41.722137, 35.408527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.407791, 46.238487, 31.785645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.814682, 46.454853, 21.565491, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.277756, 41.351612, -114.713394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.266388, 40.687962, -61.911877, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.801147, 40.699997, -64.838356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.616592, 45.212582, -124.887360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.954361, 45.725876, -168.462494, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.238197, 45.842312, -175.969131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.504135, 45.709385, -170.983658, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.688540, 55.237114, -249.336975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.221603, 55.142979, -251.206650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.021748, 57.039089, -254.211136, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -113.482796, 43.995758, -128.084473, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.277176, 47.483330, -213.903809, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.327293, 45.760178, -76.024277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.675735, 42.961151, -44.501488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.782242, 42.689823, -6.933394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.639767, 45.214169, 48.610859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -56.309303, 45.660477, 5.984929, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.192322, 41.106590, -259.243225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.207184, 41.086460, -260.163269, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.083252, 53.688164, -278.163940, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.458576, 54.025280, -276.558777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.620689, 51.382935, -245.781509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.856087, 51.634296, -246.516800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.512016, 51.628036, -245.741226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -34.785534, 55.625523, -241.429657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.291142, 55.412819, -245.904037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -36.349129, 55.578960, -242.701019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.669804, 58.343464, -263.162811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.807606, 58.136826, -264.724731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.023582, 48.623371, -195.581924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.659416, 48.012768, -197.962555, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.964874, 45.076744, -291.723206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.894981, 45.337498, -289.692657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.786194, 52.336086, -244.533859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.183395, 46.165981, -305.605804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.199341, 42.753056, -284.560211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.601761, 40.910500, -323.565857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.082520, 41.069489, -322.295532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.989319, 40.836521, -325.645508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.465107, 45.273018, -370.755737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.872406, 40.256310, -352.051361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.191818, 39.770813, -345.820923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.554394, 46.347958, -350.959320, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.473343, 46.482601, -347.291534, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.033226, 45.865627, -371.026489, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.798931, 45.616169, -348.236267, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.499832, 47.053680, -242.012115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.995613, 46.643417, -239.056519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.179993, 50.484299, -262.635132, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.691269, 48.634628, -262.121002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.452660, 50.134514, -264.685852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -31.531996, 54.714878, -264.603302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.645760, 47.782211, -202.084732, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'bogy_342' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.821171, 26.648108, -144.725708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.548843, 26.669088, -132.981705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.434685, 26.604877, -147.973160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.879177, 25.679827, -158.735397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.083721, 25.258137, -153.525589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.542942, 28.538513, -107.222115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.779339, 27.603992, -128.726578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.617275, 26.943687, -131.619720, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.926392, 40.314911, -290.996735, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.354324, 40.829044, -294.772430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.029114, 54.278446, -241.896179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -51.581413, 47.112206, -311.481201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.413441, 46.402538, -320.133301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.052662, 45.887260, -356.489929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.738419, 52.048374, -261.417542, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblingambler_769' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.935989, 51.884037, 14.806472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.126289, 50.907925, 8.929708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.503899, 49.330059, 5.172480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.747849, 54.673080, -4.795078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.787727, 49.467583, 3.458449, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'woundedaurochs_323' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.282837, 45.754066, -217.522751, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -137.267136, 45.618862, -216.675995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.235107, 44.624092, -218.372223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.960434, 46.086548, -197.344772, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.232101, 40.129150, -261.332977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.795349, 41.687798, -245.081512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -185.965454, 40.926170, -254.748978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.571594, 38.839432, -179.839996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -193.934723, 41.542332, -149.620667, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -199.423264, 42.497814, -139.297287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.735687, 43.134167, -176.989685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.948746, 47.443077, -164.533234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.582161, 47.869087, -173.918777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.605011, 47.818863, -162.689804, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.681824, 41.645901, -248.407944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.774139, 38.813259, -150.218536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.535583, 43.628948, -203.078415, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedpirate_348' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.565269, 51.362320, -226.270996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -71.680878, 50.965340, -233.694061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.299820, 50.321152, -220.334595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.530807, 50.187229, -223.000702, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedraider_349' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.816235, 53.229298, -235.326721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.206528, 51.132904, -224.558258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.834114, 52.017464, -231.658936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.276390, 50.332390, -220.639801, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.290398, 40.322010, 573.227905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.314915, 40.110245, 575.792114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.620897, 57.285927, 508.625763, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.468094, 58.483242, 496.386566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.365952, 51.727959, 549.140564, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.817833, 56.661560, 537.505066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.038486, 40.361443, 594.924194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.582077, 40.264317, 598.391479, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -47.518322, 40.373714, 589.616760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.468704, 60.077606, 502.455170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.901297, 60.020233, 483.755493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.339584, 55.511475, 507.494324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.153000, 61.332344, 500.107452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.130857, 46.304897, 551.232422, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.374115, 20.953936, 790.655029, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.236206, 21.654545, 825.135742, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.660950, 19.804104, 781.593994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.304710, 19.838562, 780.547974, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.744324, 8.199000, 801.542908, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.316299, 6.389911, 769.215210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.922058, 6.183510, 770.405029, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.742157, 7.694178, 784.369446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.827148, 7.973563, 787.824646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.842758, 7.710939, 787.673218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.667450, 6.616430, 780.404114, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.886414, 25.659513, 805.622131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.811371, 25.102345, 819.271606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.967728, 24.257393, 811.500610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.266502, 21.719769, 801.784729, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.453007, 16.388350, 783.661865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.162354, 21.831797, 781.869629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.695816, 25.808521, 757.471802, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.255661, 9.615396, 805.790283, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.823036, 57.064499, 724.493225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.239830, 51.769058, 684.438110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.414261, 50.861782, 682.068054, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.595825, 48.787796, 645.855713, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.068626, 48.266430, 631.182983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.219879, 56.385124, 716.791199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.848076, 54.702995, 729.259705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.545219, 56.787682, 715.667419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.024426, 35.792965, 690.217041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.733669, 37.499966, 688.096008, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.624710, 51.260124, 640.301331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.228138, 37.099724, 660.023499, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.664322, 47.130844, 40.074265, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.854713, 46.477989, 90.732613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.101822, 51.360214, 245.328018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 72.700020, 51.071037, 160.793518, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.088406, 38.074795, 664.306946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.645992, 38.772026, 660.599365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.556934, 42.180382, 708.252197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.496529, 39.269810, 663.201782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -51.500923, 37.012867, 674.528015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.145434, 42.288139, 706.083801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.199514, 40.592983, 632.030334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.834037, 40.855797, 621.834290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.077995, 42.645485, 625.443604, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.880661, 8.199225, 662.265625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -130.271301, 8.760700, 653.775574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.043037, 3.029166, 802.280579, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.360901, 0.192970, 741.616821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.105789, 0.192970, 665.192383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.657036, 3.732756, 702.174438, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.088989, 0.192970, 695.820801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.347412, 0.192970, 686.557373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.666428, 6.567122, 686.000122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.962639, 0.833841, 754.274231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -129.574051, 0.366468, 756.930542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.763962, 1.965495, 762.245728, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.255234, 2.316301, 807.157654, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirneggdigger_771' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -152.054932, 4.573110, 658.858643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.595551, 6.078611, 660.024963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.952896, 1.569027, 667.861206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.990494, 1.669328, 666.421692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.867004, 1.251185, 682.037842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.620605, 3.102985, 669.616089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.565781, 1.617873, 716.305237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.567505, 0.750069, 714.199524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.139404, 0.759766, 712.362000, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.537346, 44.088127, 834.352844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.156769, 48.701702, 870.370544, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.790197, 46.105656, 848.701172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.608295, 45.270161, 818.972778, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 39.663425, 45.700741, 821.791626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.545862, 42.715298, 761.550659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.999332, 42.612450, 757.071289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.315750, 48.374645, 869.111389, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.836945, 80.021965, -349.248810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.216431, 83.095825, -306.819336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.473480, 67.810539, -123.630386, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 375.830872, 66.879967, -107.765045, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.294533, 57.287041, 100.836075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.434448, 64.481537, 64.159660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.694130, 63.733395, 68.799767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.532879, 63.661598, 72.839180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.264307, 64.356834, 69.366142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.045307, 64.700050, 69.941322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.921568, 59.784504, 131.917343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.174042, 55.436501, 110.212471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.116161, 57.291229, 105.807106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.838654, 54.671867, 108.062912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.651297, 66.863014, 134.103897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.938428, 65.401749, 136.624969, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.469887, 60.747574, 155.960098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.735464, 60.314034, 151.299133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 18.797560, 62.371342, 146.850464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 15.261803, 63.832664, 106.379623, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.741608, 65.253212, 92.257599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.913162, 64.974815, 95.179398, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.863117, 60.588356, 101.507233, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.030218, 63.985119, 76.442604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.129930, 64.289429, 69.652756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.530689, 60.966793, 122.992928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.288868, 62.641926, 152.854385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.169344, 60.889542, 143.065704, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.847337, 67.396812, 93.828651, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.027699, 63.512241, 104.713951, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 15.466980, 64.467873, 94.719208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.859295, 65.085213, 95.879517, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.250587, 61.661640, 69.098907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.971352, 49.198536, 165.746689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.846367, 53.816826, 184.504410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.251656, 55.495728, 83.890091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.773689, 55.349224, 146.168808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.102898, 56.397987, 192.556747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.251907, 56.542641, 184.209198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.748695, 57.034107, 194.153549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.792671, 49.618786, 77.402550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.716331, 42.433197, 102.106140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.801235, 55.842659, 148.313049, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.123383, 49.023922, 159.378052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.893135, 41.848457, 102.787659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.008430, 53.216988, 116.434280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.652199, 53.238319, 90.122620, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.246452, 41.570320, 140.122253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.747833, 44.100784, 123.993179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.454712, 42.345196, 100.948547, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.571033, 57.356201, 150.570984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.304482, 55.216850, 151.417862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.113060, 56.823566, 191.221069, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.058884, 55.278248, 143.906418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.773232, 48.285912, 155.548477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.166550, 49.865639, 74.718452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.432297, 51.678909, 87.332741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.098320, 48.875435, 75.065170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.143730, 59.490005, 78.265450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.377922, 44.330078, 130.574432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.169579, 44.106537, 130.386093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.143463, 54.169704, 106.052872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.322388, 54.924107, 184.590073, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.798225, 43.411076, 104.886528, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.880043, 67.458412, 296.623932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.188293, 56.939262, 245.259857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.376389, 55.812046, 253.175720, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.216965, 52.296589, 260.076874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.545639, 36.017284, 235.457108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.294846, 38.279060, 237.271759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.790344, 57.019611, 269.565765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.965454, 56.715187, 268.115601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.187881, 34.652035, 207.873764, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 224.039474, 36.268261, 204.835510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 196.098526, 47.213280, 225.738007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 227.140305, 29.550524, 166.387589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.416321, 44.062424, 196.894440, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.006363, 43.680195, 196.869965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.137177, 47.895237, 228.178833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.964737, 64.167671, 315.198730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.200058, 63.085449, 309.499878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.957993, 63.655045, 311.873932, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.903336, 68.743546, 300.661255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.897453, 68.324715, 295.133606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.350342, 58.937344, 274.565033, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.742783, 55.044521, 261.096619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 216.307541, 51.503906, 257.291656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.699219, 52.011250, 257.106445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.165085, 38.392544, 233.739548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.012482, 45.573689, 216.676331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 229.088959, 35.555225, 208.886688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.446045, 30.751472, 160.489532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.104324, 31.385826, 159.672028, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.646469, 37.279289, 176.293274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.782684, 44.458412, 196.410294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.618759, 64.436661, 316.207001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.824402, 58.862495, 273.164246, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.480591, 55.605923, -19.244616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 411.791534, 54.457600, -15.883924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.543945, 47.122749, 2.214485, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.583160, 59.172894, -66.581017, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'rivertoad_313' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.464691, 38.519886, 10.684659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.973785, 37.234180, 46.013535, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.570610, 38.011002, 11.701272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.236008, 38.309334, 7.205370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.442062, 34.370682, 80.349533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.666260, 27.524975, 92.516258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.294083, 33.590755, 69.887001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.883469, 34.846092, 74.288155, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.986801, 44.935120, 43.373550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 224.098328, 52.458633, 24.242342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 225.999817, 50.733646, 30.041693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 216.458954, 52.403118, 26.247066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.880951, 44.155113, 49.234337, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.263702, 41.858246, 62.531952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.989014, 38.185940, 43.552074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 144.362808, 37.922974, 41.341286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.468414, 43.743702, 48.086830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.534637, 41.262024, 52.110279, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.437561, 44.447548, 45.937778, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.753876, 43.332886, 47.189186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.019852, 36.014511, 69.926308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.753937, 35.597179, 70.454971, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.136200, 50.403240, -13.734234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.027985, 66.161713, -72.315598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 449.639343, 65.303894, -30.821619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 442.088135, 64.160156, -40.026783, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.870239, 55.518864, 3.272704, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 452.671356, 58.115013, -5.166701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.943329, 54.652969, 9.564107, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.063202, 63.229794, -82.102165, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 406.717987, 63.644306, -86.204910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.379822, 49.732506, -10.085771, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.224060, 47.922523, 0.497604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.791046, 48.713047, -2.706928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 343.845428, 52.141602, -31.888533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 360.562195, 62.739830, -82.151413, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.901367, 59.727901, -61.852295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.609436, 58.438030, -55.536110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 378.224823, 59.231499, -57.050884, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.581940, 54.029053, 19.279335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.587646, 43.731007, 50.083656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.658096, 42.179863, 52.989445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 198.983627, 30.358673, 80.954002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.884781, 51.949562, 26.155874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.354279, 39.774525, 40.408192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.209137, 43.212093, 55.520477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.975784, 40.889244, 55.307251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.336929, 42.171211, 53.502865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 237.494446, 35.801193, 69.936287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.746399, 46.054150, 36.030727, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.832550, 66.125008, -151.399826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 420.032501, 66.434593, -160.272156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 441.862000, 65.614815, -126.050018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 420.231934, 66.234299, -158.144501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 440.404388, 65.763298, -128.258789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 434.575104, 65.704308, -127.933617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 477.989105, 66.571220, -146.671173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 467.847137, 66.867813, -148.765076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 396.368256, 67.786751, -122.644615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.902344, 68.438660, -120.238037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 388.816010, 68.861168, -123.025856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.695587, 69.927399, -125.725754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.954834, 69.522141, -123.606110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 338.487183, 69.478577, -132.456451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.440216, 68.663689, -118.765343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.010651, 70.166397, -134.019211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.114655, 70.161736, -143.352936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.056458, 69.155167, -140.515961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.822540, 70.397919, -137.378250, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 5, 91 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.897919, 71.613380, -144.669220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.686157, 71.083435, -140.461899, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'nestingbuzzard_12' ) , 6, 108 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 563.318542, 74.410683, -271.810699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 558.802734, 74.299782, -270.912262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.022949, 67.962524, -227.877182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 561.874817, 68.546982, -232.569168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 568.347595, 73.577438, -268.564087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 528.827637, 77.612038, -287.096863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 529.415894, 79.599213, -294.353790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 538.748596, 75.058891, -274.535675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 526.682312, 69.835686, -239.749542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 530.122192, 69.797562, -239.787460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 519.848328, 69.790367, -238.733307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.513336, 71.486565, -253.849579, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 636.123718, 70.413269, -279.500397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 630.403748, 72.509262, -286.077087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.160156, 79.890434, -358.783234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 406.324982, 88.096336, -399.940216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.124756, 87.158852, -397.583557, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 608.237366, 70.946320, -265.898285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.655884, 69.939163, -263.038879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 605.864258, 71.952057, -270.677063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 486.796844, 72.703178, -272.439667, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.271698, 69.652451, -264.843475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 386.010254, 71.401779, -254.654022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.482727, 72.436256, -254.333282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 698.577209, 67.180229, -298.386536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 660.052246, 67.938362, -279.966827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 650.803711, 68.715714, -280.011780, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.492828, 76.159920, -292.720673, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 496.124176, 76.771576, -299.405273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.801544, 71.142204, -298.075897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.050293, 72.245720, -301.558533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.919464, 72.041763, -299.617920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.943481, 73.582802, -315.218323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.780762, 74.740341, -316.816895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.961578, 74.875626, -321.563171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.296844, 74.692383, -319.988922, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'cavebat_38' ) , 7, 126 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 233.810730, 73.586388, -273.787872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 230.908157, 73.656395, -274.500061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.013351, 75.401123, -303.494843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.320435, 75.578819, -265.805176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.612335, 75.364700, -256.060822, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.321503, 73.597031, -235.935959, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.102783, 75.624527, -255.437775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.342987, 74.367447, -276.038605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.543701, 74.295868, -280.026184, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.170349, 75.241707, -332.495361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 269.015045, 73.683670, -309.586090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.723572, 76.246216, -320.254028, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.432831, 76.617851, -316.516144, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 604.106567, 66.095642, -214.137878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 600.394043, 66.002831, -201.103607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 612.743591, 61.863049, -153.264847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 627.916016, 61.467808, -169.797104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 624.263489, 62.610977, -172.166809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 648.127930, 61.767151, -181.579208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.136414, 61.900654, -178.588196, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 681.631470, 64.906136, -221.895981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 683.687561, 64.748779, -220.552322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 680.251587, 65.090805, -224.182343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 679.503357, 65.023972, -222.532898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 677.820679, 65.290237, -226.927368, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 660.814392, 66.431412, -234.368591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 664.211182, 66.330055, -236.155014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 659.342285, 66.287399, -229.376236, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 624.711792, 66.610771, -233.029205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 638.439331, 65.977501, -211.567291, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 631.613281, 66.114395, -213.538193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.585144, 66.187698, -214.315826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 631.768738, 65.430511, -205.114731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 623.746887, 66.586647, -229.050339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 597.572388, 65.932281, -202.829224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 642.739258, 60.376305, -174.569244, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 612.511047, 62.265327, -155.992722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 609.297729, 62.941418, -152.494919, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.223999, 61.760101, -159.124969, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 581.315125, 63.941509, -162.398743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 577.759399, 63.908821, -161.433121, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 724.959839, 64.510010, -239.044235, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 638.208984, 66.948196, -227.057037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 614.043091, 61.041290, -146.291199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.407227, 62.909519, -172.249405, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 669.547180, 61.896049, -188.504135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 680.076843, 63.297722, -203.122406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 676.648438, 60.998432, -187.351532, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'galago_5' ) , 8, 143 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 398.594391, 86.938850, -395.725555, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.238983, 81.717377, -370.002289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.627106, 81.745964, -371.062988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 408.861298, 82.580498, -374.672211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 415.871094, 84.370522, -384.927032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 421.558533, 84.224174, -378.451904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 474.853149, 87.663361, -351.449249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 461.404541, 85.193039, -345.374939, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 453.884369, 83.996025, -351.491241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 428.101532, 77.176521, -330.722809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.978424, 76.234848, -331.036102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.122162, 76.014748, -329.418121, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.105896, 76.976234, -336.823914, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 532.470581, 91.520287, -385.161407, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 530.146362, 91.061691, -381.784119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 585.778381, 89.363602, -386.939697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 656.953186, 78.282013, -356.964355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 659.677429, 79.926849, -363.085175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 652.882446, 78.775528, -358.058838, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 513.869385, 87.221413, -358.488800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 595.020081, 99.359871, -474.622345, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 596.605957, 101.166290, -483.939484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 570.725525, 90.486488, -409.461853, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.963989, 75.507866, -317.423309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 632.261536, 76.737450, -319.611938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 633.949402, 75.880203, -312.780609, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 582.750244, 77.316277, -287.949646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 587.057617, 78.599426, -296.115112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 583.232727, 83.028053, -322.348724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 553.331421, 86.246201, -343.383331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 549.962036, 86.221115, -335.880371, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 560.620544, 86.314621, -334.075378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 592.004578, 86.690178, -364.584747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 596.683838, 87.444733, -370.492584, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'kobolddustman_752' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 517.050964, 96.222397, -459.080231, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsupplicant_754' ) , 9, 160 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 540.745300, 96.927368, -467.733673, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 515.891357, 96.243935, -466.257721, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 372.246185, 28.720036, 741.938660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.128510, 32.244225, 708.033936, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'apkallu_314' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 431.721527, 13.975726, 655.738708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.286865, 13.533363, 675.021545, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.038330, 13.436191, 672.796204, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.155792, 13.959119, 667.944580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 428.893768, 15.403847, 728.476685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 431.970032, 15.034657, 728.005493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.314087, 17.541180, 740.629883, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.655792, 14.955267, 728.253418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.256073, 26.918362, 711.608459, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.824738, 27.036375, 715.442749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.857025, 27.687635, 714.824097, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.999573, 24.816513, 693.751343, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.215973, 25.120920, 694.781433, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 348.497864, 31.759195, 729.429321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 350.386688, 31.448929, 728.785889, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.810486, 34.494507, 699.025513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.758575, 37.825691, 702.853455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.597412, 43.343941, 745.739685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.732147, 42.956852, 744.136902, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.556915, 34.175179, 254.676575, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.056396, 32.084148, 523.375427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 519.251038, 40.352879, 551.294434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.082275, 41.854961, 545.003601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 408.845581, 27.656450, 488.111481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.707428, 36.504086, 423.652527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.726166, 42.087921, 402.735870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.623688, 38.916473, 327.954041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 232.209991, 55.331787, 617.594421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 309.601624, 36.440109, 593.929993, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 467.868073, 31.961191, 556.752197, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'largebuffalo_322' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 401.396179, 35.054623, 222.734406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.158844, 41.639423, 554.037903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.222351, 23.840349, 526.231934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.445770, 29.053875, 521.701782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.082886, 32.692612, 546.509521, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 338.258728, 30.744928, 455.014282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 312.520599, 37.736408, 434.084412, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.192932, 43.570984, 369.160370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.216888, 40.808041, 354.268921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.005096, 41.719658, 655.549744, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.784027, 17.786268, 593.056213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.085052, 20.037975, 767.870605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 445.827515, 13.115939, 700.180786, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -251.967834, 55.243580, 192.459091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.392525, 84.774948, -71.764091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.050049, 53.990719, 636.436096, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.149033, 63.531036, 694.353882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.800804, 59.829895, 661.897278, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.161118, 75.339279, 18.111082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.705627, 73.825974, 6.568444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -82.297890, 49.768051, 284.502075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.242683, 41.477894, 294.645935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.170158, 77.173737, -19.728859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.733305, 41.245575, 346.205017, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.307009, 42.160084, 346.931152, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.975067, 50.036945, 336.339355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.466690, 43.644550, 256.877136, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'giantpelican_178' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.625664, 38.006046, 460.946198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.058182, 40.457481, 509.719421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.960896, 52.462914, 571.532043, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.922276, 51.980762, 578.434753, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.414613, 49.896057, 509.611755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -68.915504, 44.210693, 544.967285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.563282, 46.516109, 523.413330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.638638, 44.899216, 519.204956, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'grassraptor_2' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.816727, 50.680946, 207.230743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.673279, 55.549320, 634.470032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.612160, 57.008339, 639.203064, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.393372, 43.843601, 239.024277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.185379, 45.833904, 224.204086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -310.033844, 53.365177, 253.411087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.968750, 77.336281, -36.169071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.729279, 91.027161, -76.475929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.107803, 90.189934, -75.294937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.663414, 87.537735, -90.260155, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -273.921112, 52.281662, 219.633392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.839310, 71.614166, 17.244806, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.747353, 60.368134, 674.293457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.673538, 62.803711, 683.443542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.672653, 76.129517, -8.622675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.922867, 62.861301, 680.264038, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.975220, 83.588005, -59.488007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.992828, 62.249355, 682.125305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -162.238342, 61.626869, 681.015198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.699371, 78.790428, -59.445129, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'snipper_325' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 504.239563, 9.219303, 685.512695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 472.254883, 10.564069, 726.620361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 463.649567, 11.310349, 698.085510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 465.627777, 12.656516, 602.219116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 505.001068, 9.415708, 632.124390, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 484.161926, 10.010633, 644.091370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 479.783447, 9.435391, 763.075867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 491.271393, 9.295449, 757.102295, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'corkbulb_384' ) , 32, 1003 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.711227, 48.139221, 183.802261, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.758163, 47.074829, 192.599335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.419083, 48.265182, 173.729431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -156.414856, 49.196289, 171.626007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.229843, 48.627834, 172.936539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.152237, 46.671131, 177.070511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.935814, 46.450417, 178.284103, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.492027, 43.030487, 199.119522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.821083, 39.551929, 204.728775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.937134, 48.119797, 170.243561, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.902214, 42.397972, 199.993027, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.683254, 41.885715, 202.716248, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.895386, 14.607802, 272.320496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 464.343353, 13.820408, 277.345978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.958099, 16.836380, 332.653015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.443237, 36.219193, 127.508369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.561188, 34.641438, 198.739212, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.906540, 45.180805, 408.725342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.086990, 51.171707, 568.910889, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -308.923279, 45.098831, 464.539001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.912323, 44.708927, 461.839172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -241.525604, 44.868385, 494.086975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.489197, 45.362839, 567.486084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -193.868896, 53.098679, 610.272888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -198.784103, 52.273563, 605.728699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.964813, 44.047970, 328.564941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.194763, 41.863541, 383.252441, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.964371, 41.149185, 379.679016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.629547, 34.494732, 256.320251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.019539, 34.731869, 223.876038, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'gigantoad_26' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -323.569305, 46.080910, 364.520782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.242493, 34.694187, 264.061066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.788895, 35.770496, 242.080597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -131.930069, 35.678688, 237.568268, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.206055, 34.845417, 295.551453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.805229, 35.052498, 220.223587, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'Bloodshorebell_312' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 539.988159, 10.728779, 201.962463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 508.702332, 9.843376, 210.636063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 488.300049, 11.344833, 231.362061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 512.723206, 9.212793, 222.065933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.537384, 11.387406, 252.843628, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 525.416382, 9.520628, 250.390350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.614746, 9.196991, 265.035309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.098602, 9.718414, 210.246414, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'goobbue_320' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.779907, 45.538643, 390.789978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.204351, 40.733112, 387.741608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.786427, 44.073502, 393.556488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.590973, 54.865368, 620.933411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -220.394562, 52.914051, 601.973694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.082657, 48.086334, 541.116150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.088623, 39.729519, 368.213989, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.953491, 47.186401, 443.753571, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.193054, 47.639656, 498.962738, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.234406, 44.030235, 334.434814, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.839233, 45.907104, 522.402100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.695114, 46.416176, 571.984924, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'colibri_386' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.765137, 30.365868, 187.004410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.769836, 31.304415, 186.869141, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.407501, 36.752094, 115.708374, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.489563, 36.679100, 101.818298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.955902, 36.557060, 103.377113, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 475.375275, 31.951229, 214.381836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.411194, 43.005402, 164.453827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 511.686005, 49.788960, 136.333237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 500.406738, 46.853142, 143.340286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 415.773193, 35.943077, 154.037125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.130280, 34.927956, 166.278198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.614624, 35.188046, 171.682129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.695526, 36.421738, 194.230072, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.050262, 13.037590, 185.272095, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.832764, 12.846014, 149.105515, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'junglecoeurl_117' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.302818, 61.613789, 350.757111, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -121.799904, 52.516403, 326.409454, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.978989, 46.322708, 283.227692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -143.837524, 40.508278, 285.981903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.847992, 38.187733, 344.288849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.481018, 40.745045, 317.857147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.847977, 48.664265, 344.132172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.912247, 48.245762, 314.641449, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.649597, 38.490589, 164.717346, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.680969, 39.330353, 169.159546, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.352127, 45.814068, 567.012634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.314640, 52.265717, 546.747131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.086487, 37.975540, 475.008118, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'mildewedgoobbue_321' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.688431, 44.764317, 553.852051, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.476135, 36.519455, 219.916962, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.658203, 37.686790, 233.860397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 322.804413, 37.674561, 206.378204, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.557495, 38.419243, 219.506363, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.863403, 37.460819, 205.065903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.045197, 38.194221, 236.654907, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldmissionary_331' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.655701, 36.864342, 239.408051, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.073486, 38.121010, 233.173004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.614807, 40.290474, 194.957336, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorthoplomachus_55' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 472.982330, 76.196999, -58.989597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.606262, 76.322876, -20.744659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.608551, 74.710724, -2.765123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.295349, 76.650215, -0.718120, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortlaquearius_61' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.150146, 76.196999, -8.852811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.365143, 76.319992, -19.353390, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 431.955353, 76.196999, -108.918213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.328918, 73.958359, -23.871384, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorteques_62' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.466187, 76.065430, -67.588791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.015991, 76.084824, -102.386803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.615387, 77.197006, -107.208000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.465088, 76.203674, -63.431820, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.628632, 76.196999, -101.585655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.454910, 75.939194, -8.190249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.298004, 74.848045, -23.727840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.697388, 76.196999, -39.613617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.136505, 76.397003, -61.814331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.997803, 76.325714, 0.872293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.799988, 76.196999, -11.489540, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsecutor_63' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 452.249542, 76.228813, -128.922562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.524933, 76.289238, -16.579481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.523087, 75.581001, -33.315983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 411.744904, 76.196999, -5.216177, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsignifer_64' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.907318, 76.619888, -39.989422, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 401.510406, 79.863983, -80.450699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, 1.148477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, -34.551071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.275253, 74.969193, -10.168123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.107452, 76.457809, -22.407925, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.375610, 79.997002, -55.369541, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 474.943909, 76.196991, -97.530579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.056213, 79.863983, -48.739960, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortvanguard_201' ) , 50, 2778 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.095093, 76.213654, -93.768280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.403473, 76.478249, -103.176918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.683380, 76.196999, -97.358223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 465.146515, 76.196999, -78.248222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.725006, 76.196999, -41.925694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.013885, 76.262604, -41.708679, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 661.376892, 16.868380, 444.546478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 600.877197, 5.880996, 485.953308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.322144, 5.898227, 483.624512, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'roseling_22' ) , 10, 192 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 747.951599, 50.427887, 357.928772, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 750.353027, 50.083611, 360.748383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 743.340820, 44.356922, 397.143066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 678.437561, 19.654554, 435.200378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 667.057800, 20.397568, 429.583344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 741.121460, 28.184546, 441.007660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 734.497192, 26.854353, 442.302002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 672.214539, 14.595839, 442.895569, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 719.658081, 40.786228, 365.821228, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 715.957581, 39.597771, 371.410339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 657.032166, 41.796482, 338.018616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 687.857300, 42.032818, 339.103790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 677.403137, 41.886250, 357.998016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 696.959045, 28.637814, 408.641937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 694.449768, 34.261051, 390.357208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 706.790405, 28.210888, 410.849121, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'sewermole_205' ) , 11, 217 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.036804, 35.572445, 344.129456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 608.844360, 34.301891, 347.554077, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 589.346008, 29.897394, 350.330688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 619.494202, 27.583639, 374.089874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 621.858521, 29.944971, 367.900574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 619.407898, 29.057913, 369.502777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 586.461548, 28.951075, 351.303070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 585.813171, 28.438513, 352.369751, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 12, 243 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.800171, 41.141388, 327.561768, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.963623, 41.739059, 320.949005, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 602.817566, 30.726345, 355.777466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.181580, 32.516930, 357.289886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 643.447693, 23.634590, 398.243011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.017883, 24.391804, 392.765808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.004395, 20.669270, 404.579987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.226685, 25.550039, 368.222595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.595825, 42.144840, 321.818115, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'arborbuzzard_12' ) , 13, 268 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 506.149567, 2.814311, 418.210938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.260681, 1.855386, 421.547974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.871796, 9.227687, 418.364410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 511.570709, 3.457108, 411.553375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 461.846924, 12.663937, 362.355682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.908691, 9.735098, 386.559052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.675018, 10.103431, 384.870239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 490.583740, 8.330388, 397.629272, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.636200, 16.715385, 353.222382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.888367, 5.203311, 276.677948, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.148376, 23.025820, 338.460297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 549.980774, 37.888100, 297.108398, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 560.540100, 24.185499, 348.622803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.885254, 29.173893, 333.929108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 554.530212, 29.420858, 329.752747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.316833, 33.890800, 318.024475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.762207, 17.623161, 322.609985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 514.717102, 22.343367, 297.317657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 529.777893, 26.199690, 320.881897, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_348' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 611.903076, 43.327553, 310.701385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 607.670898, 42.955601, 306.352112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 601.489197, 43.952782, 299.576599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 607.933411, 44.651409, 294.689972, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_349' ) , 14, 293 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 590.237366, 46.126652, 286.961273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 585.551025, 44.082901, 293.967102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 600.182373, 43.941280, 299.534485, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 604.942139, 46.820461, 284.395782, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'hedgemole_206' ) , 15, 319 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.009308, -11.875637, 94.363434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.622910, -12.374062, 95.346664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 270.845459, -9.754198, 101.272354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.099945, -9.356598, 95.027283, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.954834, -8.345027, 88.461983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.214783, -13.903976, 118.906860, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.788513, -12.784965, 108.927460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.353348, -13.125180, 119.497467, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.270966, -15.558857, 108.854996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.898697, -14.414904, 103.984398, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 15, 319 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.762268, 3.169765, 70.885086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.185822, -11.798216, 131.701752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 346.115662, -19.054857, 220.172867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.560944, -7.906649, 201.375565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.154724, -8.001914, 208.562607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.206299, 3.224269, 66.798668, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.874359, -13.722762, 140.560760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.710693, -14.609919, 146.761963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.000458, -20.029356, 160.336914, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 15, 319 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.115234, -12.237656, 93.315231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.200012, -9.068469, 105.533852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.399048, -16.985626, 162.506134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 266.914124, -16.392138, 157.156372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.282349, -4.017180, 105.255798, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rothlytpelican_181' ) , 16, 344 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.495255, -15.960920, 55.492996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 162.879456, -14.323977, 79.460434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 173.172256, -12.719238, 113.497765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.181580, -8.629279, 65.083954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.722115, -17.771116, 161.300476, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.570320, -15.437970, 163.421646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.031578, -15.878393, 123.544548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.459404, -14.926886, 94.082710, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 16, 344 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.393642, -1.974696, -13.929848, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.976189, -2.045702, -13.768462, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.400002, -2.953552, -16.400000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 384.199646, 14.428646, 32.482605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.820511, -14.820461, 60.165451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.016516, -22.292753, 53.719463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.071075, 4.564421, 80.886124, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.787872, 4.598518, 83.138847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.129349, -12.239421, 101.233078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.609390, -12.477910, 100.059769, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'killermantis_397' ) , 16, 344 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.943352, -3.992505, -26.552906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.919285, -3.706397, -31.336760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.056923, -3.885968, -62.313755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.506714, -10.486404, 8.971105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.148802, -22.535498, 50.525768, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.729313, -22.401009, 41.722015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.571882, -23.505068, 112.018021, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.203632, -24.387508, 109.371689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.153160, -22.274078, 64.863579, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 19, 420 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.519829, -0.915667, -68.345375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.276382, -2.694968, -61.816307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.460457, -1.391993, -58.048004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.436523, -0.989940, -60.869198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.697441, -2.455795, -50.182808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.607559, -2.221285, -61.116398, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'preyingmantis_396' ) , 40, 1732 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.919220, -39.905281, 656.459167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.170227, -39.782280, 655.657288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -253.976105, -37.625439, 564.579956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -314.709747, -38.249912, 623.179077, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -343.226685, -40.837242, 665.661011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -389.110626, -40.132030, 655.361572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.610077, -39.364208, 701.057129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.819107, -37.835190, 663.537170, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 40, 1732 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.344208, -39.756889, 693.627441, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -258.862610, -38.845234, 656.123657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.473724, -38.221050, 625.219788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.641068, -38.717575, 499.031586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.695206, -37.244095, 497.706360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -221.257446, -38.644001, 506.923462, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.924347, -36.732006, 477.895660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -259.013824, -39.834621, 440.567963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.734344, -39.829880, 425.177887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.641113, -40.615318, 415.293915, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.500275, -39.220528, 433.955505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.037277, -38.624527, 514.310486, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.434479, -37.127861, 547.532959, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lammergeyer_403' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -450.986206, -37.787945, 738.352051, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -476.749207, -37.986050, 757.037903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -483.847992, -37.370193, 736.790588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.547180, -37.671715, 733.113403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -502.139069, -36.506023, 743.624451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -448.947144, -36.675556, 703.180054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -474.291046, -36.357124, 712.860901, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.666382, -41.931458, 742.759705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.599945, -41.347382, 708.581604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.698303, -41.775959, 714.647217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.457306, -41.281891, 688.647827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.258255, -40.055676, 710.315002, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'deadmansmoan_20' ) , 42, 1941 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.771606, -41.212288, 735.835693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -346.306793, -41.448574, 720.441650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.640503, -41.655495, 697.187317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -308.085052, -41.953552, 708.300720, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -286.262238, -41.513474, 697.558167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -262.640625, -41.512302, 722.137085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.341949, -41.249001, 734.726685, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 42, 1941 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -438.858093, -34.486282, 671.690613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -444.367584, -36.737885, 712.967957, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.395172, -37.043217, 719.711182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -469.749176, -37.181816, 722.876709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -469.493256, -37.631023, 748.576294, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'whelkballista_2835' ) , 44, 4300 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.910004, -30.450001, -92.839996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.264221, -30.197689, -128.465698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.733398, -29.587280, -110.399101, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.730499, -32.303410, -133.012894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.441002, -31.479370, -116.075401, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.464432, -35.424061, -11.169662, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -204.166534, -39.734409, -90.640930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -192.958786, -40.200939, -43.811974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.541470, -23.889269, -92.920448, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.317398, -40.194572, -88.486130, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.070892, -33.927280, -101.886833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.532974, -29.059402, -141.626770, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.227985, -24.572134, -117.284523, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -129.817825, -32.226665, -109.254219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.200836, -38.028507, -83.829842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.513153, -30.945234, 1.708608, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleSahagin_765' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.979187, -40.301193, -87.161430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.060734, -21.651909, -161.480682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.913696, -28.427610, -146.562897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.277664, -34.216839, -89.592522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -143.651108, -26.894556, 20.560968, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.166702, -32.339401, -135.991302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.014999, -31.623831, -118.950104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.565796, -38.010250, -31.357361, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawSahagin_766' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.944153, -27.532305, -144.487701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.024223, -30.306547, -149.355865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.973221, -36.762527, -111.709793, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.365509, -31.385445, -102.356194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.840622, -29.611879, -107.485497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.610504, -38.071289, -31.235229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.234207, -38.051666, -76.633934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.165466, -30.458733, -8.729252, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfspineSahagin_767' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.161926, -30.635151, -89.379402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.966251, -22.665247, -124.681503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.523300, -31.509951, -130.479904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.765900, -32.578060, 5.874695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.871918, -40.822292, -67.836021, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.256203, -30.084669, -124.693199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.534233, -26.784563, 18.541813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.201096, -32.487724, -113.122444, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsaelbst_2832' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -274.764923, -40.703537, -336.407104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.360535, -41.199173, -352.245148, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.346191, -41.214268, -330.312500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.294724, -40.989071, -291.742096, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -181.207321, -41.844490, -270.081940, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.028442, -41.727314, -288.479828, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'freshwhelkballista_2836' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.392303, -41.489319, -349.569000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -283.527893, -41.916561, -357.747803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.894806, -41.733459, -359.090607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.720886, -41.641911, -367.788208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.062988, -42.038639, -367.910309, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalscaleSahagin_765' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.208710, -41.764877, -196.344330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -168.981369, -40.908073, -290.732086, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalclawSahagin_766' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.990204, -41.031559, -289.265289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.413269, -41.816219, -228.919693, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalspineSahagin_767' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.445602, -41.977600, -231.189499, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.732407, -41.032051, -179.705597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.476196, -42.008121, -307.362488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.619598, -41.428280, -317.036713, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.472000, -42.008121, -244.739395, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoaltoothSahagin_768' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.081696, -41.031559, -291.035309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.826675, -41.672653, -219.247238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.340927, -40.254555, -214.701431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.427094, -41.483276, -281.547546, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.955750, -40.404739, -240.812851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -265.469360, -42.719551, -266.499634, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.116913, -42.008121, -359.151611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.307190, -42.008121, -365.072113, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.720886, -41.580872, -346.913910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.652802, -41.672421, -327.657013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.652802, -41.733459, -365.011108, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.354919, -39.483036, -345.774384, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.453400, -41.580872, -359.822998, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'axolotl_139' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.927277, -34.285240, -295.150085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.479279, -36.514393, -288.353485, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.290802, -37.204941, -296.766418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.628601, -37.750099, -302.916290, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'reinforcedwhelkballista_2837' ) , 48, 5138 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -423.105713, -33.005535, -367.492004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.392700, -33.236031, -358.443909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.528412, -33.066349, -357.686798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -395.040802, -38.559631, -343.953613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.859192, -39.444641, -348.989105, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'seawasp_312' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.559967, -39.256435, -203.779465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.283478, -39.316368, -202.468887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -393.575012, -41.767242, -203.534607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.035217, -38.911335, -222.539642, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.089874, -39.660213, -201.978973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.678864, -37.158779, -241.068436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.930023, -37.643482, -237.743713, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'trenchtoothSahagin_768' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.263550, -26.108219, -70.908691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.338928, -25.642410, -74.728661, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.901482, -25.768646, -86.375961, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleReaver_773' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -441.402222, -40.701698, -233.601974, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawReaver_774' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -441.245209, -39.475101, -220.111496, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfeyeReaver_776' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -441.435974, -38.926212, -213.282013, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfscale_765' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.721344, -33.686390, -326.296539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.514801, -33.350899, -355.147888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.364044, -39.466038, -361.109711, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfclaw_766' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.589386, -33.107040, -354.529510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.484436, -35.257927, -411.014862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -352.739044, -38.351639, -377.168549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.625488, -39.391800, -300.050995, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelfspine_767' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -440.940002, -32.821819, -363.149506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.913300, -32.916882, -368.407501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -458.416687, -32.786930, -362.740295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.546295, -37.902161, -342.084900, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Sapsashelftooth_768' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.843597, -35.153549, -405.412476, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -370.744995, -35.287498, -414.281708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -375.469208, -39.479321, -346.811401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.930511, -39.354549, -298.395599, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'wildwolf_303' ) , 20, 445 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -381.951752, -1.865713, 212.042023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.391357, -0.687764, 196.625290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.788086, -4.146658, 249.937302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -424.664642, -4.389118, 254.018524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -462.297302, -7.249224, 236.271515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.920288, -2.606930, 180.822937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -448.650696, -11.947705, 209.230209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.708191, -3.109433, 174.303268, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 20, 445 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.501465, -7.614745, 201.604248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -388.824432, -2.578248, 177.678131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.077728, 0.536767, 174.858154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -465.114685, -3.054204, 249.472595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.935242, -2.167278, 250.799210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -439.207886, -7.911947, 241.229767, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 21, 483 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.281189, -1.188653, 102.061584, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -435.544128, -0.955348, 123.893471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -437.993896, -1.031299, 126.314613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -414.902252, -2.773921, 160.474014, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'stoneshell_382' ) , 21, 483 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.713104, -2.312514, 137.219559, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.282501, -2.801552, 149.988815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.671844, -2.430629, 156.019821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -396.004242, -2.555122, 148.152954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -383.427673, -2.876643, 160.658722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -403.971313, -2.240242, 157.015625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.759705, -2.889138, 139.678970, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -391.970581, -2.744184, 146.105545, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -380.797363, -2.897662, 146.567444, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'forestyarzon_159' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -414.757141, -3.022781, 28.021654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.892303, -2.628568, 43.051041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -515.360107, -3.022781, -9.979798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -522.299805, -3.022781, -10.434307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -483.240540, -3.022781, -1.752226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -426.197021, -2.781258, 25.197863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.669647, -2.654341, 20.002827, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.868530, -2.043492, 62.119469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.415741, -2.053370, 23.742413, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'coeurlpup_28' ) , 23, 558 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -592.409119, -0.896684, 0.386436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -564.974304, -0.983113, -13.998669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -591.289734, -2.385894, -32.616730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -626.554626, -2.556157, -3.032897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -644.733398, -2.579175, 5.788857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -592.026917, -0.139966, 8.961593, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 23, 558 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -589.191589, -1.701380, -16.803839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -581.001099, -1.248399, -12.149311, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -555.803711, -1.936794, -2.565444, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldfootman_328' ) , 24, 595 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.173157, 38.711910, 29.792322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -404.069885, 35.812199, 36.532841, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.859711, -2.618297, 38.082218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -396.071106, 43.296131, -2.805411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -439.528412, 32.168262, 55.036327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.465546, 36.479664, 26.908142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -484.342163, -1.634364, 24.240206, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpickman_329' ) , 24, 595 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -491.041992, -2.412468, 34.461601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -428.479553, 38.496067, 14.828461, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.817291, 36.296867, 33.293110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -391.328400, 44.270889, -5.423687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -476.028992, 29.465151, 52.901867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -477.677368, 27.532982, 57.619347, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -480.850861, -1.622468, 35.452560, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 24, 595 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -380.239441, 40.455021, 15.811886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.829315, 31.729000, 45.958958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -427.287354, 35.776600, 40.411327, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'mudpugil_383' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 561.284851, -1.738799, 205.528839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 623.663635, -2.932235, 132.726913, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 640.196655, -3.022781, 174.134933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 645.843750, -2.975219, 170.168198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 638.579102, -2.995459, 186.706192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 584.620300, -2.303465, 169.148834, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 593.450562, -2.844428, 139.766556, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 574.049438, -2.987645, 137.301453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 580.756775, -2.611646, 131.970093, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 664.319397, -2.598749, 162.226898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 542.460022, -2.149217, 151.568039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 541.605957, -3.010482, 157.341522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 601.389954, -2.892532, 128.130249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.788452, -2.952927, 183.668243, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 661.936829, -1.528112, 134.098465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 595.966858, -1.835564, 221.160812, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 695.272278, 0.237290, 145.195099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 570.693848, -1.735677, 191.361359, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 685.403076, -0.007515, 122.931915, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 593.693115, -2.607079, 207.171448, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 619.854187, -3.022781, 198.036560, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 705.063721, -0.073885, 131.977234, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'uragnite_389' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.240051, -2.881454, 177.001404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.457977, -2.500741, 180.186234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.507446, -2.849627, 192.575226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.095184, -2.668610, 187.743286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.489441, -2.988054, 127.097084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.101715, -2.852393, 141.769638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.360138, -2.946918, 141.727402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 415.567535, -3.022781, 152.113510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.055237, -2.438254, 31.307247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 373.647980, -2.204629, 21.426832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.822510, -2.764290, 20.605335, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.111664, -2.359983, 141.265671, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.486603, -2.883696, 54.215927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 386.960846, -2.544994, 180.465637, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.662354, -1.706533, 0.576895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 299.033508, -2.221566, 89.648232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.212128, -0.687913, 207.471146, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.650604, -2.761652, 82.931305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.731079, 2.535215, -15.226002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.894470, -0.917974, 206.625656, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.525208, 2.440526, -4.988740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.317413, -0.445646, 214.080124, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 338.428162, -2.649891, 100.926704, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.069305, 0.455040, 2.362295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.613068, -2.510823, 96.570503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 352.498535, -2.229944, 192.390152, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.326050, -3.022781, 220.717575, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.186829, -3.022781, 246.639771, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.964752, -3.022781, 218.849091, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'salamander_139' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.537537, -2.184135, 153.375824, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.825378, -3.022781, 146.717667, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.616180, -3.013719, 160.163116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.898376, -3.022781, 81.090591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.759888, -3.022781, 38.590855, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.494293, -3.022781, 38.362095, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.467896, -2.961442, 28.651447, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.232941, 22.459917, -94.937210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.338654, 28.810354, -152.997025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 369.648438, 23.634579, -124.963051, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.573517, 13.179729, -64.033875, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.261505, 24.531950, -141.892105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.362488, 26.421909, -92.842506, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsidesman_330' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 374.994720, 25.746836, -131.705902, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 261.838196, 34.373199, -145.137985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 259.484711, 26.393141, -94.860497, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.082611, -2.220537, 16.427921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 304.273346, -3.022781, 127.453300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.051987, -2.988935, 83.435684, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.946030, -2.814081, 36.932377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.924103, -2.738626, 94.117409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.596893, -3.008550, 85.275566, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 154.950455, 25.137733, 220.499100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -98.540382, 85.807083, -350.417999, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.565582, 82.029961, -330.553619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -187.955566, 82.418648, -242.364868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -68.849266, 77.210121, -228.975296, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -32.679142, 78.788490, -197.195984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.138035, 76.590508, -179.011887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.190628, 74.867424, -197.155426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.129318, 69.254097, -164.934433, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.724625, 28.303354, 58.724297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.029358, 37.028255, -21.424707, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.821182, 37.507317, -27.008282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -261.132935, 64.443398, -90.575928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.294601, 66.193542, -115.411652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.072603, 12.420581, 249.430618, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.859401, 26.299496, 161.978531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.519424, 76.680183, -189.318375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.378353, 4.594343, 327.925201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.113718, 9.739895, 301.944397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.697968, 84.737694, -278.522827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.354134, 17.421412, 203.354218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.481019, 31.876749, 95.327995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.454002, 21.556597, 133.843796, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.482941, 83.303230, -182.044739, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'basilisk_173' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.600920, 24.342901, 176.407578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.477421, 23.268620, 166.940125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.336456, 29.613770, 53.853245, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.270794, 31.794752, 85.501617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.731804, 27.457956, 86.951363, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.025681, 26.303059, 60.375832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.607170, 19.393501, 136.708725, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.706234, 12.549705, 269.077087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.741432, 17.201839, 269.658844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.052513, 9.488839, 260.401764, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'ahriman_183' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.796097, 37.025734, 1.178478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.859512, 37.629654, 2.002243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.627159, 33.635292, 21.377235, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.859192, 17.383774, 184.972321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.422623, 18.933929, 252.523972, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.614525, 21.238791, 254.591293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.948357, 22.440674, 195.022736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.687889, 16.169958, 214.933899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.220345, 16.107920, 239.544205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.353172, 16.866383, 248.478348, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'magitekvanguard_200' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.913391, 85.775131, -336.263336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.471313, 86.578674, -250.622040, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.031189, 86.589439, -210.045593, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.797012, 82.544693, -315.692413, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.703522, 84.883377, -294.410217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.729172, 73.905502, -152.126556, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.444275, 79.656067, -224.448868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.075104, 80.036079, -227.536377, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.136047, 25.071756, 107.612526, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorthoplomachus_55' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.872368, 75.002228, -228.461075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.630829, 81.257980, -181.372650, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortlaquearius_61' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.689713, 79.861855, -285.206177, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.244980, 83.404892, -326.932861, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.613144, 85.306969, -271.404236, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorteques_62' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.073380, 76.635963, -224.310577, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.944687, 77.407257, -185.684372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -177.328827, 74.465652, -181.077026, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsecutor_63' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.915619, 79.662804, -321.463623, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.025040, 83.300125, -278.188354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -224.933304, 84.489143, -253.589706, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsignifer_64' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.623947, 79.470093, -288.801514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.367599, 84.477493, -253.589706, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -122.910088, 77.754440, -253.873520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.763550, 81.019020, -190.646881, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.051605, 83.428810, -347.554321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.474274, 75.299904, -194.970032, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.578611, 4.975241, 26.377096, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'kedtrap_23' ) , 22, 520 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.868296, 7.106042, -17.171526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.205910, 5.484024, 47.603928, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'riveryarzon_159' ) , 25, 633 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.399139, 6.263747, 26.419214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.402847, 5.237850, 17.936674, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.709412, 5.807860, 10.336679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.642181, 5.755404, 51.438736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.720840, 4.971702, 52.386410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.767986, 4.761376, 66.993118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.680748, 4.953293, 72.245308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.079338, 5.674155, 66.390022, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 25, 633 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.758194, 8.080178, -56.307663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.938576, 14.116609, -81.036194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.920952, 7.607679, -55.427074, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 25, 633 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.284698, 4.644264, 45.026176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.348400, 5.031322, 66.236412, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 26, 671 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.061035, 12.450743, -152.553329, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.477966, 10.586761, -169.728119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.365814, 9.617976, -178.429169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.224182, 9.269560, -169.353790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.623962, 11.894608, -161.868713, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 295.196777, 10.541725, -183.692078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 238.942795, 18.960083, -144.317749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.637482, 10.876761, -164.807648, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.632477, 14.262453, -394.524506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.580444, 25.003616, -457.214355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.669510, 25.396883, -469.948120, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.876251, 33.179375, -531.375732, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.444611, 29.387190, -557.825806, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.476227, 32.986965, -580.984131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.406036, 36.740250, -593.969604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -326.460938, 37.536251, -597.999878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.849640, 33.818455, -481.190399, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -374.081909, 35.475296, -484.046387, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.944244, 35.019844, -487.927612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -323.445374, 27.251024, -480.311096, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -318.842468, 26.529778, -471.926849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.396149, 24.733049, -476.782074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -321.318604, 26.724133, -522.998108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.162201, 22.502029, -434.296936, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.579002, 46.302719, 136.330963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.277904, 45.958427, 89.831421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.373032, 46.830406, 136.811768, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.630188, 33.284374, -562.802307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -331.671478, 28.954283, -468.071960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -289.281952, 25.531479, -534.289124, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.551788, 25.483965, -535.692383, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -221.423065, 33.260006, -508.795624, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -258.155182, 33.656048, -595.986572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.737015, 32.900944, -534.774719, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.601257, 31.270628, -507.494110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -253.176514, 34.081833, -600.018372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.243698, 29.901766, -568.369141, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'megalocrab_326' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -356.232300, 13.367952, -313.518707, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.790436, 24.519091, -382.447144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -370.241608, 25.123201, -388.656769, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -345.935852, 16.643759, -343.528595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -352.046814, 17.659555, -349.897217, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wespe_385' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -270.811096, 33.180580, -584.978638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -204.400558, 33.691841, -560.175659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.972076, 28.178400, -522.827271, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -383.083313, 13.583163, -323.224487, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.079239, 29.303089, -564.556519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -375.856689, 26.441006, -393.485809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -347.793030, 19.214540, -359.546417, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -428.562866, 12.289565, -314.695221, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -423.095123, 12.191257, -306.691467, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.459808, 12.385678, -308.873810, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -30.180510, 47.027378, 12.784531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.008659, 51.533749, -31.664383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.886040, 54.600922, -263.414673, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.731861, 23.661076, 204.562988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.016368, 35.099998, 163.830719, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.641629, 26.810532, 190.754227, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.454597, 42.976189, 113.839752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.012451, 44.385124, 139.043472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.423431, 45.889622, 145.067398, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.835480, 43.484474, 154.071686, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.363383, 23.143206, 200.119553, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.294884, 43.361660, 111.288300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.473485, 23.589346, 203.556610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.786334, 45.329361, 96.517563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.161414, 29.134892, 178.685349, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.147864, 29.146116, 179.532257, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.632212, 45.301182, 96.967239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.133400, 44.330608, 115.136566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.981113, 43.687714, 108.712296, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.107932, 46.042328, 77.476730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.481239, 45.081741, 150.092957, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.873688, 44.051514, 160.252258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.736515, 44.017147, 142.342926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 43.914749, 45.119297, 146.800415, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 13.142145, 43.529034, 110.186653, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.210701, 27.690407, 217.402222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.309614, 32.836544, 185.042557, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.545460, 34.655739, 182.922638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.660500, 43.329624, 145.106323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.046512, 29.098654, 176.504395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.103287, 44.328880, 101.398026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.694211, 46.129498, 92.730927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.878178, 44.330265, 149.463898, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.774567, 47.540539, 107.388519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 159.889664, 47.431347, 108.330070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.052597, 47.118847, 106.192291, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.561737, 47.145977, 107.036568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.288307, 48.259750, 62.811817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.470749, 46.933422, 106.390732, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.517159, 47.722393, 70.257515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.813454, 48.145638, 66.945900, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.282341, 46.664196, 83.426262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.065308, 49.132767, 61.574669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.981583, 48.400425, 74.234680, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.333969, 48.254456, 79.320755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.767609, 46.476234, 119.860565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.848404, 46.347179, 115.419701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.781715, 46.364143, 116.708534, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.176544, 44.655468, 96.448257, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 39.812160, 44.979256, 94.367928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.905632, 47.650303, 55.632393, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.847397, 47.624672, 58.280781, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.870117, 48.092091, 48.467918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 106.461876, 46.473701, 108.118568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.729523, 46.327087, 101.884705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.160110, 48.610489, 73.614281, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.589314, 44.923477, 100.693321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.036175, 47.728592, 62.147556, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.275890, 62.276653, 280.330811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.393841, 61.934650, 277.944275, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 55.748829, 57.116402, 238.578323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.564796, 51.639057, 185.418686, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.885849, 57.124508, 216.315903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.507950, 57.191601, 214.181427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.427338, 50.863556, 180.189285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.806290, 49.885899, 173.044128, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.125015, 50.398483, 180.739792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.493004, 46.537899, 150.136261, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.593819, 46.540844, 147.683060, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.423653, 57.350300, 229.693344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 39.270386, 50.072704, 206.503067, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.727348, 51.166588, 217.350525, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.301666, 57.450714, 232.595230, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 55.711681, 47.603344, 189.302795, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.963795, 46.741600, 186.539597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.490932, 49.122814, 192.835571, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.258034, 46.933235, 178.033234, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.179604, 61.357574, 261.847473, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.864029, 57.302895, 222.911011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.337551, 48.641586, 203.757858, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.893715, 47.863098, 184.184570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.286522, 48.131924, 185.016525, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.786911, 46.660172, 151.838699, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'lostlamb_338' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.272522, 61.816093, 209.208542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.378403, 58.593189, 194.887985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.571884, 55.666573, 191.486298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.804138, 57.049568, 187.654816, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.328705, 57.963001, 223.486679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 142.900436, 56.968338, 219.604263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.178146, 56.990185, 231.923904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.424438, 58.035606, 228.723206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.824005, 53.772987, 206.522491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.060883, 61.051876, 265.598724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.599197, 60.962376, 264.089813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.403656, 60.077000, 251.003403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.181137, 48.114662, 150.232208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.999313, 47.781944, 144.144470, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.752869, 48.446835, 149.026245, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.883813, 51.649990, -103.576378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.601048, 52.335876, -109.139053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.310030, 53.460983, -115.968292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.127865, 49.762062, -91.193512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.602348, 48.661625, -85.810738, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.288257, 50.456486, -56.699429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.769259, 50.553490, -56.633259, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.429778, 47.202480, 24.911612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.252251, 48.993488, -31.224022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.689426, 48.820152, -26.091892, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.901205, 47.835781, -29.854734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.845871, 49.535797, 1.020960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.759415, 49.253456, 5.844504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.817707, 49.309433, -2.502621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.969727, 50.291496, -27.108908, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.775833, 57.186680, -52.900967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.871330, 56.455254, -70.492790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.666687, 55.411270, -60.208988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.816055, 62.911079, -101.286621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.982086, 63.152512, -94.651260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.247849, 64.631615, -105.485771, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -71.904892, 39.021957, 75.060997, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.153442, 44.526516, 25.384666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.157337, 40.907158, 65.473549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -33.176159, 41.184235, 67.647400, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.570331, 42.700001, 54.898056, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.771469, 42.900009, 36.930901, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.453321, 42.909824, 37.001194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.184493, 42.967644, 45.382553, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.345761, 43.263519, 45.798283, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.538612, 44.537842, 34.699539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.264824, 44.129055, 33.048660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.665848, 43.268738, 30.722244, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.400940, 55.607468, 193.319229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.451569, 50.098648, 149.091019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.656845, 50.096828, 147.920059, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.634842, 58.923622, 225.616882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.366821, 61.058308, 280.821869, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.860992, 59.986004, 250.667664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.040421, 59.861511, 221.174942, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.407074, 51.388374, -17.204609, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.797469, 49.753666, -67.309891, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.511536, 46.711739, -32.711185, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.260452, 47.518181, 22.076773, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.869972, 56.200687, -71.013557, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.494286, 62.625416, -165.739075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.233376, 62.890347, -170.285385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 59.147640, 63.796188, -168.319336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.451111, 63.418686, -170.066605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.535679, 54.288269, -153.325455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.694853, 56.179790, -158.473068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.748583, 55.466850, -150.295563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.061856, 54.675930, -148.082504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.198866, 54.578049, -157.733429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.812799, 61.360905, -190.280746, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.067789, 60.292828, -183.608658, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.106598, 55.248795, -120.635345, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.617790, 55.198704, -121.482445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.215248, 55.159809, -122.368248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.661213, 61.571171, -192.870209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.657776, 73.085945, -206.233261, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.003942, 57.393898, -190.329819, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.072847, 58.014038, -193.903305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.486526, 73.817039, -168.227951, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.554665, 70.415909, -145.326981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.183441, 76.688736, -186.868301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.458588, 66.799889, -161.670242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.009644, 66.022507, -164.210098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.279770, 87.549683, -183.108475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.581230, 81.384987, -215.119690, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.684822, 77.109184, -190.357040, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.744141, 78.365181, -197.438538, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.474792, 87.128471, -213.734756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.448174, 67.894669, -128.750015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.077179, 68.014374, -144.393539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.745865, 71.020630, -146.962265, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 1.637570, 56.398060, -163.165619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.939270, 61.739025, -194.317062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.712162, 51.282845, -123.338188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -31.247005, 50.776382, -119.371780, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.896622, 58.627319, -211.458221, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.400726, 86.560204, -217.529419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.536385, 65.806290, -159.908600, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.755356, 76.003296, -193.064423, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblinfisher_769' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.630295, 52.191109, 0.493474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.425201, 49.484989, 10.177730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.187698, 52.657040, -17.502140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.565399, 49.175140, 13.275840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.709000, 52.181438, 1.958378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.385597, 49.234230, 11.315280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 106.485985, 49.069504, 12.090261, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.691986, 51.362583, -4.647203, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.868835, 44.560413, -39.105984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.342072, 46.194141, -82.156837, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.856956, 46.326416, -75.676338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.745079, 46.274441, -79.205025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.680473, 47.408348, -102.197701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.213577, 42.608311, -33.994537, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.275162, 42.133709, -30.405054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.514290, 43.546738, -20.661009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.669479, 43.655354, -22.574450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -83.950882, 41.620068, 31.435547, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.019928, 42.150249, -28.266453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.953049, 45.617867, 27.841829, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.752907, 46.494484, 18.667154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.902935, 46.432888, 30.632761, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pugil_383' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.067581, 44.654510, -129.329956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -110.756264, 44.420502, -130.757858, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -71.063225, 45.823952, -173.768906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.357929, 48.037205, -216.265564, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.266495, 41.114708, -108.932144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.064804, 40.700005, -66.193069, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -163.551376, 40.691860, -64.839310, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.583542, 45.700001, -163.037247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.250282, 45.794891, -170.344879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.943092, 57.021660, -253.610474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.373447, 55.304802, -252.639816, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.591105, 54.745075, -253.853500, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.475319, 45.710564, -77.498833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.733589, 43.079575, -41.503971, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.823639, 42.508015, -3.421261, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -39.545799, 45.535061, 45.050991, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.018173, 45.698727, 4.680328, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.483944, 46.071774, -346.390167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.750397, 45.590187, -355.197235, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -109.832199, 40.493553, -327.126007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.270653, 40.290581, -322.167053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.981972, 41.329067, -325.891052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -121.046898, 42.696621, -290.838226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -152.571640, 41.642223, -258.028961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.960556, 41.586990, -255.659836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.521942, 39.615871, -350.244019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.405464, 38.840076, -358.638306, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -56.707485, 44.942493, -374.945618, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.537674, 45.260014, -371.216949, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.741741, 45.923832, -356.883698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.185287, 45.547401, -311.545349, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.649803, 45.129978, -291.564819, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -71.037689, 53.372925, -254.668945, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.857521, 47.852798, -263.410156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -76.711746, 51.913376, -252.973755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.470970, 46.484192, -241.164505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.853516, 46.834717, -238.944489, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.037437, 52.156349, -251.734039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.207336, 52.251644, -246.714981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.625233, 54.784733, -273.289337, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.326626, 53.947102, -279.948456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.461426, 54.673340, -241.702972, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -39.232708, 55.208588, -244.539566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.323067, 50.313816, -266.397400, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.850533, 48.482300, -196.227295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.270882, 48.552269, -198.037018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.451256, 48.365513, -202.751999, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.309576, 58.327408, -267.815887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.586647, 47.789253, -271.408386, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.088913, 44.770199, -289.537079, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -39.622337, 54.579426, -261.872467, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -39.002579, 55.053753, -242.669632, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.458018, 57.721428, -263.328308, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'bogy_342' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.042118, 26.434660, -141.567322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.581841, 26.191332, -148.586304, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.823967, 25.266302, -156.286758, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.748421, 25.648920, -159.202942, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.313339, 27.375238, -132.230255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -56.168411, 28.770184, -106.277733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.088058, 27.109352, -131.528122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.476223, 27.257706, -127.671783, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.992149, 46.621784, -320.279449, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.272228, 46.292400, -317.640259, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.897835, 46.484447, -360.757782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.110481, 50.385708, -269.203949, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.695389, 40.059208, -289.757538, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.425964, 40.207573, -292.737610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.925922, 54.240845, -242.550812, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'goblingambler_769' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.503899, 49.330059, 5.172480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.973587, 55.239212, -7.700588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.246231, 52.017315, 15.169677, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.273178, 50.731594, 6.752262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.274048, 49.782257, -0.848571, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'woundedaurochs_323' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.487823, 45.774521, -216.851669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.791916, 45.625839, -204.073730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.620773, 44.984394, -212.142273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.186371, 45.696972, -219.915649, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.067963, 39.969368, -264.570404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -185.715164, 41.744507, -243.245865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.974609, 41.117317, -254.499191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.649742, 47.499996, -168.992538, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.048874, 48.221626, -166.108597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.767822, 47.737617, -166.441193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -181.419312, 42.904758, -187.287781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.345200, 37.947273, -179.053879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.904724, 42.527912, -139.157120, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -188.997589, 42.209450, -145.630234, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'beecloud_57' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -179.734818, 41.483917, -249.543243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -174.548996, 44.116032, -200.080963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.138306, 39.034805, -151.014130, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedpirate_348' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -71.643723, 50.040466, -222.957214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.299820, 50.321152, -220.334595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.444130, 51.133343, -228.663345, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.565269, 51.362320, -226.270996, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 134, ( SELECT id FROM bnpctemplate WHERE name = 'groundedraider_349' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.276390, 50.332390, -220.639801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.636803, 53.218609, -238.138611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.599991, 52.900009, -236.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.599823, 50.762180, -225.515579, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.520477, 48.978989, 85.119926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.709465, 52.136890, 163.452972, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 198.847336, 44.533867, 46.714577, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'mosslessgoobbue_1447' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 563.707275, 84.092758, -314.004272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.225952, 67.847412, -124.112106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.172363, 79.358009, -347.228699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.515900, 67.106621, -110.092201, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.916197, 60.716721, 146.313339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.009014, 64.117569, 64.150169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.771515, 63.872021, 71.497284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.662863, 60.371620, 126.713242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.466755, 64.624504, 67.854362, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.007267, 63.887379, 72.604797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.432383, 64.874329, 63.427479, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.254086, 64.915436, 104.146622, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.494453, 54.715496, 106.259918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.722973, 59.275185, 102.089981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.633492, 54.621197, 110.598335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.348351, 55.308243, 104.995171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.569650, 64.269142, 103.174004, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.958265, 64.357643, 72.756767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.002611, 64.851471, 67.580421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.216500, 65.307701, 92.650581, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.980753, 64.048355, 99.779839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 13.985167, 64.647377, 93.622849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.602680, 60.511314, 100.787941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.744072, 59.650726, 131.413681, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wharfrat_347' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.221268, 62.042149, 72.297455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.332108, 47.055599, 157.997559, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.691399, 47.809818, 157.992111, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.532116, 56.409939, 152.623367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.690186, 56.613407, 148.004532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.440361, 41.885426, 108.027702, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.414001, 41.900452, 106.670898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.788857, 41.656944, 108.585037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.786339, 50.238026, 75.322945, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.802109, 42.820206, 144.111496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.860977, 44.613991, 130.650070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.097237, 53.633926, 109.696114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.104874, 55.156792, 84.312637, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.253525, 52.465530, 86.808594, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.956696, 53.950336, 179.983109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.942692, 60.913414, 75.686951, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.057419, 46.317200, 154.471436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.125969, 56.087383, 156.880859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.523792, 56.254055, 140.493607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.816303, 57.165283, 155.420288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.615417, 43.462231, 128.439377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.067993, 44.149277, 133.487228, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.447159, 42.066437, 108.635132, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.107857, 49.034706, 73.884544, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 92.852737, 51.566437, 70.319206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.893890, 54.428802, 104.919304, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.155479, 52.431778, 89.570999, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.731857, 32.506802, 168.673019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.891434, 43.358509, 200.149002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.901138, 43.579578, 200.677719, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.018219, 37.031994, 175.462402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.580170, 32.328014, 164.474243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.377899, 30.585899, 160.532349, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.336670, 34.043797, 201.093536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.616898, 43.118244, 194.632889, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.194672, 47.099918, 1.888668, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 343.956146, 60.216846, -71.944847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.016479, 55.117226, -17.193724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 418.138916, 57.351116, -23.052483, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'rivertoad_313' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.737450, 37.739044, 16.051737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.687134, 38.531654, 10.432497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.664635, 38.761612, 3.636368, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.558075, 36.581043, 47.400150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 198.763367, 28.137863, 93.380295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.544052, 32.847466, 75.029411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 156.255524, 34.608242, 78.988182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 154.492371, 34.888306, 71.363861, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'aurelia_324' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 225.081253, 52.263409, 24.574612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.517456, 51.088158, 30.080524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.027435, 50.111191, 32.663101, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.832306, 43.244701, 49.525848, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.493118, 41.064919, 51.910580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.888763, 43.871349, 47.657894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.342529, 42.973698, 55.895695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.765549, 44.245422, 45.477222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.612732, 38.616558, 41.336758, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.868851, 40.272617, 41.298016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 182.561386, 40.957935, 52.696888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.660263, 44.478020, 45.478687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 234.358673, 36.276134, 68.959831, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.134186, 38.718204, 63.955700, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.800201, 63.130806, -84.775078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.362915, 50.247875, -13.523794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.148346, 55.611485, 2.787222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.218597, 57.893337, -4.278357, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.054413, 55.001904, 7.132930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.478149, 58.988144, -57.325966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.725311, 58.351700, -54.586235, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.569183, 64.181458, -28.631693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 443.518524, 64.607430, -34.817146, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.737610, 66.189697, -74.113396, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.522095, 50.759735, -14.023604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 309.414459, 48.791954, -3.791578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 304.958496, 47.758831, 0.953015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.083344, 63.713451, -88.050529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 408.029083, 63.005074, -80.563271, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.289886, 50.930775, -27.551414, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.094940, 58.296124, -55.134441, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.421768, 54.241119, 18.977077, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.526077, 41.749401, 54.424164, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.695404, 38.861641, 42.083420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.521103, 45.543827, 44.646008, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.873489, 53.062775, 23.399588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.348724, 32.232147, 77.736404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.816010, 43.143028, 56.584328, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.288818, 46.388695, 33.790966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.408783, 37.147427, 67.710571, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.033401, 40.701782, 57.616493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.702911, 41.235081, 53.626133, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 380.622498, 70.246849, -141.464813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 380.550354, 70.266815, -140.589005, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.400635, 70.157051, -140.867416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 477.479614, 66.597771, -142.589798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 472.596039, 66.876633, -149.534363, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.825043, 70.124992, -139.614426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 417.948914, 66.089348, -157.965424, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.606659, 66.172523, -156.331116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 418.834595, 66.488335, -160.934219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.047394, 67.288803, -118.359344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.942139, 68.064751, -127.881569, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 392.877960, 67.922607, -119.000290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.890656, 65.065147, -118.815918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 434.758820, 65.734489, -128.353104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 337.428650, 70.121071, -138.058868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.795044, 69.926262, -125.548866, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.366119, 69.583214, -123.833481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.608002, 69.986290, -126.135391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.935638, 65.926300, -130.945190, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.821075, 71.324783, -139.742188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.473663, 71.444519, -142.790955, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'nestingbuzzard_12' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 526.465515, 78.800354, -292.257721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 526.971680, 78.023567, -289.232727, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.471680, 74.452820, -272.191528, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 534.689392, 74.968597, -275.219269, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.510620, 75.958351, -278.171417, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 567.830505, 74.282425, -271.650726, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 507.802917, 72.082581, -258.450287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 526.328308, 69.882721, -240.080872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 528.398376, 70.347511, -243.893829, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 561.558105, 68.125473, -229.163986, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 561.041992, 68.687424, -233.656509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 525.478516, 69.400528, -236.250198, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.368011, 87.692116, -398.476318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 406.053772, 88.196365, -400.371277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.798767, 79.078354, -353.764862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 636.305542, 71.157471, -283.066467, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 631.170898, 73.595642, -291.549469, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.422272, 72.143112, -302.979462, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 431.083374, 71.725746, -301.065430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 440.562805, 74.180466, -307.044678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.812378, 70.181664, -264.543274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 607.902344, 70.368347, -263.571411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.119141, 71.524094, -271.122894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 650.266174, 68.213875, -276.976776, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 695.698914, 67.189156, -297.329865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 659.421204, 68.301704, -284.334290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 499.032196, 76.469223, -297.054108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 507.059937, 78.411415, -301.477173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 485.793793, 72.503822, -274.495911, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 362.579193, 74.094772, -317.438782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 360.985870, 74.757294, -320.865295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.258942, 72.667435, -253.095200, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.210175, 70.528702, -258.373779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.903900, 70.259445, -263.859558, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.380554, 74.469505, -319.400452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.543030, 75.335442, -325.462616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.944641, 73.961372, -316.851318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.497986, 73.275612, -313.808380, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'cavebat_38' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.154526, 75.415268, -302.474640, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 246.290009, 74.278061, -328.429962, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.755554, 74.231094, -279.361694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.948761, 74.149261, -279.882660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.710861, 73.749962, -272.697021, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 233.452744, 73.451477, -275.917358, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.682800, 74.563805, -268.666901, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.948883, 73.326317, -232.849640, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.617279, 74.647270, -245.464569, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.071808, 75.019012, -257.100647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.314819, 73.616829, -311.259155, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.758606, 76.989525, -322.206909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.976715, 76.378532, -315.052063, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'tinymandragora_118' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.244812, 62.599201, -151.904495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 615.752380, 61.307377, -154.050751, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 615.909607, 61.289349, -154.147369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.456604, 63.270096, -173.710831, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 629.580811, 61.927479, -172.612106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 687.953247, 64.900391, -226.652832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 630.504089, 66.755577, -233.983429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.583618, 65.566711, -206.673035, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.613647, 65.784950, -209.357834, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 630.603516, 66.758064, -232.625183, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 611.426758, 62.175373, -151.224609, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 583.816589, 63.812851, -161.428101, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 580.313782, 64.361633, -166.443390, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 623.554199, 66.057755, -213.178711, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 602.534119, 66.056328, -197.366196, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 597.319763, 65.991791, -206.936401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 602.844177, 66.067886, -214.333893, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 632.294922, 65.812126, -209.789444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 646.164307, 62.150177, -182.979691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.264160, 61.783348, -178.412216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 643.870361, 62.150955, -182.630478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 675.260681, 64.967140, -220.052032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 687.195251, 64.825058, -224.047852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 665.313110, 66.141937, -233.154327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 663.307800, 66.257874, -233.393707, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 661.676147, 66.363892, -233.875961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 686.078796, 64.925667, -225.522598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 678.974243, 65.234863, -226.596603, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 614.690063, 60.611382, -142.455536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 722.700012, 64.739128, -245.335526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 636.959595, 66.916962, -236.450912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 681.110657, 60.746681, -188.646606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 672.000000, 61.548008, -185.964554, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 616.998108, 63.642872, -171.947540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 675.114380, 64.082191, -210.585907, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'galago_5' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.897522, 83.197807, -377.884918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.512299, 82.718948, -374.235229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 392.727142, 86.595573, -394.768890, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.901306, 82.775887, -376.538605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 383.281311, 81.563545, -369.319458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.015625, 82.531319, -374.098297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.893555, 78.015106, -335.276764, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 463.194061, 85.473427, -347.098694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.785156, 83.453850, -349.889191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 466.127350, 86.678177, -353.041870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.707153, 75.437180, -325.325562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 392.298309, 76.056091, -329.690002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 398.891510, 76.846695, -335.685181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 395.553345, 75.911232, -328.783844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 395.575531, 76.543106, -332.892670, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.423737, 76.499069, -333.035767, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 595.179810, 91.233162, -390.332123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 527.361145, 91.624405, -384.443237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 532.407410, 91.183319, -383.236877, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 658.276245, 78.828644, -359.061920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 660.031128, 77.015770, -353.038025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 654.794373, 79.749718, -361.729309, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'wilddodo_339' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 555.433289, 86.333717, -336.567139, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 588.381226, 98.295441, -479.515533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 568.430603, 90.784363, -411.758392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 591.321655, 98.860695, -478.478149, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 554.739441, 86.277000, -343.268829, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 548.470764, 86.171547, -338.712372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 582.669434, 78.800476, -295.593811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 579.598877, 77.889015, -289.779083, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 579.854675, 83.492142, -320.351471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 595.346436, 86.445511, -365.197205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 592.932678, 87.374374, -368.263550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 519.849182, 87.575882, -360.376190, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.035706, 75.546951, -317.063904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.385742, 75.104202, -313.686127, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 633.730652, 76.028061, -313.677185, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'kobolddustman_752' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.112183, 96.215790, -461.741760, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 135, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsupplicant_754' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 532.929382, 96.018616, -463.291870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 514.586426, 96.181610, -462.996216, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.943237, 30.411835, 743.247009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 329.377411, 32.017921, 701.458740, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'apkallu_314' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 398.033875, 24.747860, 712.352539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 386.001404, 26.363014, 709.484924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 388.957275, 27.568388, 714.037964, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 392.599121, 25.373924, 699.375183, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.534729, 25.019714, 697.746521, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.259735, 15.257207, 730.365540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.590668, 15.344368, 731.300964, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.713409, 15.523403, 725.975830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.516266, 18.289516, 744.408569, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 350.455597, 30.943064, 725.597290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.670166, 30.757586, 730.504578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.694946, 43.795193, 748.876221, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.085693, 42.554966, 742.341736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.369293, 38.664070, 702.729980, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.720734, 31.483700, 696.545959, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 424.456329, 14.514975, 658.568115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 423.756622, 14.282126, 667.194153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 428.326447, 13.731042, 671.630127, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.560669, 13.386756, 670.861267, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 233.617752, 54.696808, 612.001099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.974670, 32.182510, 526.395691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 372.566742, 34.253368, 251.438644, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.905396, 37.845165, 430.416412, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.836884, 41.975361, 407.754578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.703003, 27.358929, 482.600616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.276093, 34.354637, 594.634888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 332.468567, 38.916241, 325.927765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 471.311798, 33.351456, 552.860352, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.920288, 40.045429, 554.425110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 520.917053, 41.215374, 548.023682, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'largebuffalo_322' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.033051, 41.073044, 660.960449, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.957642, 33.344639, 543.205872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.909393, 42.375214, 548.253418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.497375, 31.172983, 451.820587, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.489868, 37.216896, 437.410004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 388.181641, 25.194447, 518.975830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 415.565063, 29.351675, 516.830688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 401.648560, 35.042168, 219.009995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.462433, 43.414124, 363.499817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 300.744446, 41.695026, 348.489532, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 426.992218, 18.043739, 590.898865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.078796, 13.079614, 707.740601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.162170, 21.023014, 776.224426, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.968658, 73.973946, 11.323692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.282791, 74.850304, 12.069229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.219925, 50.398727, 287.803894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.125351, 54.403214, 198.444733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.211691, 40.295891, 347.051331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.716187, 53.684002, 633.767151, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.379700, 63.112774, 694.253540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.599998, 79.397003, -12.800000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.356346, 59.693123, 661.746948, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.328781, 43.852863, 255.456207, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.204324, 41.876545, 342.060211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.784665, 40.673908, 300.115967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.487968, 82.971359, -65.355934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -137.891876, 48.905342, 329.205627, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'giantpelican_178' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.178169, 37.588188, 456.818542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.980019, 44.123444, 546.801575, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.923431, 52.839302, 586.828613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.573772, 52.570553, 573.257813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.848034, 47.364422, 528.481140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.269730, 40.339928, 506.336639, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.553032, 44.566494, 518.273376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.946935, 50.353054, 509.164948, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'grassraptor_2' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -311.244568, 54.102238, 251.691620, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.714813, 45.431358, 225.154282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.671722, 45.316364, 232.024765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -280.082764, 53.290184, 220.484055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.903992, 51.712524, 201.507202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -168.108810, 55.592293, 635.323730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.564362, 60.679104, 678.249329, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.296036, 62.108791, 681.263672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.238617, 57.518993, 635.457825, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.940437, 63.185318, 682.319763, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.096672, 64.696007, 693.756714, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -109.266182, 59.319481, 668.447632, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.142509, 78.496155, -60.952473, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.041054, 88.838974, -91.117599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.588913, 89.144913, -71.945816, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.124619, 90.856186, -77.241501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.086449, 76.919075, -8.224215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.506851, 74.747993, -28.643429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.778542, 85.725723, -68.054611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.964340, 71.092415, 18.089144, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'snipper_325' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 467.947144, 12.508534, 598.638062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 462.797394, 11.419182, 697.048340, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 501.247070, 9.533019, 626.145264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 488.882263, 9.919420, 639.705383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 480.661163, 9.392863, 731.849426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 487.607819, 9.328456, 755.131409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 502.908112, 9.230279, 687.385437, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 480.097931, 9.396113, 765.060852, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'corkbulb_384' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.029877, 46.805298, 187.491531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.063843, 47.080818, 185.822739, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.608887, 48.966293, 171.541672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -156.969116, 47.857903, 179.260574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.382980, 48.156105, 176.447220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.737061, 49.797035, 160.221497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.345375, 41.672718, 201.978867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.365433, 41.217678, 202.295944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.592255, 47.504143, 175.029602, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.501320, 46.424129, 177.758530, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -109.284584, 42.491043, 199.681564, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.015556, 41.879929, 197.930267, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 438.978607, 35.289642, 196.420792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 428.113281, 36.674263, 131.480499, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 463.073883, 14.008018, 276.716461, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 458.634308, 14.439973, 277.424316, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.567444, 18.043064, 333.603088, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.248337, 44.253998, 410.162018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.589615, 50.843952, 566.526062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.342636, 44.907818, 560.528137, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -192.930557, 52.676037, 608.856506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.280518, 52.674961, 609.959290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.665955, 44.603313, 470.972107, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -312.293579, 45.535461, 466.613983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.353210, 44.927868, 489.730682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.981499, 34.607243, 225.997330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -273.966003, 44.694962, 323.393402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -204.899612, 41.604313, 383.299744, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.830872, 41.397915, 381.857819, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.958786, 34.886864, 259.779205, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'gigantoad_26' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.496552, 34.819939, 264.691956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.089077, 34.551640, 220.379929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.677841, 35.769428, 233.357391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -125.987366, 35.064560, 241.210358, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -324.696838, 46.185116, 366.444733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.344849, 34.963799, 296.424072, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'Bloodshorebell_312' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 506.013947, 9.999478, 214.822510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 508.599731, 9.916330, 208.071320, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 498.682526, 9.850472, 227.334579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 462.902618, 13.924405, 221.026779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 515.462036, 9.201304, 223.403900, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 532.730652, 10.463955, 194.791229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.373413, 9.308819, 266.889709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 525.567444, 10.599649, 247.179520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 475.550659, 12.114610, 256.397064, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'goobbue_320' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.911987, 46.723923, 563.661133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -192.213303, 47.607143, 494.635254, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.036758, 46.956684, 442.530334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.544083, 44.722500, 390.774872, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -222.595398, 53.651810, 603.908691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -141.300110, 48.290043, 545.323181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.096420, 39.636707, 369.721466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.678345, 45.866787, 529.043457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.531158, 43.485477, 333.168549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.182877, 54.812775, 615.944702, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.967909, 41.498726, 384.539886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.235374, 43.584667, 392.715363, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'colibri_386' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.518768, 35.184807, 160.791183, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 424.391479, 35.989933, 157.879028, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.326019, 36.444523, 106.126572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.327423, 36.705833, 116.732712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.454926, 36.585091, 107.858543, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.523712, 34.808647, 172.358658, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.582092, 30.273300, 188.175461, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 518.734009, 31.572489, 185.489685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 441.487793, 36.209080, 190.717712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 473.706055, 31.309484, 205.078903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.525757, 42.944893, 165.079254, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 500.979706, 47.253742, 142.158600, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 511.670349, 50.567940, 134.250397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.311920, 13.140470, 180.342148, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 454.598236, 12.948121, 151.204773, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 454.568451, 13.125692, 146.196671, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'junglecoeurl_117' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.833313, 61.860649, 343.494324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.091049, 47.457386, 282.175110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.995316, 50.125973, 320.916443, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.321213, 52.808727, 328.877045, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.722061, 38.668686, 340.225006, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.237411, 40.843819, 318.809723, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.357071, 48.516911, 346.697906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.295120, 41.553963, 293.715729, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 332.769287, 38.627895, 164.296387, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 332.291687, 38.677589, 166.051926, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'dungmidgeswarm_136' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -32.165962, 50.564468, 546.506775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -82.273041, 38.389381, 480.647034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.769554, 45.120163, 561.170105, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'mildewedgoobbue_321' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.126053, 44.758728, 547.571289, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.658203, 37.686790, 233.860397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 329.820190, 36.708775, 214.244400, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 322.804413, 37.674561, 206.378204, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.045197, 38.194221, 236.654907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.433044, 39.709900, 220.881058, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.863403, 37.460819, 205.065903, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = 'koboldmissionary_331' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 329.001373, 38.084869, 238.636719, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.073486, 38.121010, 233.173004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.330536, 39.741608, 201.301178, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorthoplomachus_55' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 475.162140, 76.196999, -65.447197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.896545, 76.216492, 0.896987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.023880, 74.196785, -6.796603, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 372.364105, 76.294594, -17.988377, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortlaquearius_61' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 447.282318, 76.197006, -18.067156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.357941, 75.721855, -33.325745, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.434235, 76.291534, -17.661331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 433.068420, 76.197006, -103.029526, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohorteques_62' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.615387, 77.197006, -107.208000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.465088, 76.203674, -63.431820, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.466187, 76.065430, -67.588791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.015991, 76.084824, -102.386803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 411.856293, 76.196999, 3.619245, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.136505, 76.218750, -61.814331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.288361, 76.197006, -104.583038, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.849396, 76.161110, -11.489540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 233.655579, 76.155586, -3.952644, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.298004, 74.479248, -23.727840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.220184, 76.196999, -40.267742, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsecutor_63' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.643921, 76.196999, -122.342476, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.856308, 75.163643, -31.110403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.089081, 76.279625, -14.961029, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.787048, 76.461037, 1.615679, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortsignifer_64' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 469.919586, 76.196999, -95.671555, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 401.510406, 79.863983, -80.450699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.056213, 79.863983, -48.739960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 216.806122, 75.307137, -10.971825, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.365662, 76.657791, -20.273458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, 1.148477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.851501, 79.863983, -34.551071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.226044, 76.255104, -30.640118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.375610, 79.863983, -55.369541, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 137, ( SELECT id FROM bnpctemplate WHERE name = '2ndCohortvanguard_201' ) , 50, 2778 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.903564, 76.196999, -99.884727, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 460.690460, 76.196999, -77.826706, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.243805, 76.306938, -48.270836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 433.525970, 76.196999, -35.378128, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.095093, 76.140678, -93.768280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.046265, 76.388672, -101.417992, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 657.004395, 17.368681, 443.307617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 608.437622, 6.874037, 483.624908, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.092957, 5.624268, 485.841370, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'roseling_22' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 743.810669, 28.486433, 443.094849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 732.801880, 27.192383, 436.734955, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 751.034180, 49.293427, 365.884003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 678.184875, 12.579115, 451.152496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 672.374451, 20.020576, 430.694153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 683.049622, 21.505512, 429.393127, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 745.880432, 49.606308, 364.105072, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 741.192810, 43.412918, 401.072021, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 719.931824, 40.770763, 366.043945, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 716.588379, 39.744038, 370.804169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 656.996582, 40.698101, 343.223419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 688.271423, 42.393299, 334.157410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 674.529846, 40.743046, 352.379181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 712.213318, 28.681044, 411.158905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 703.297668, 26.622908, 414.841644, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 692.607056, 32.192436, 397.476685, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'sewermole_205' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 614.799011, 36.202713, 346.197815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 589.705078, 31.312195, 346.954620, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 605.654846, 35.576542, 343.014435, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 587.583862, 26.726681, 358.939362, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 590.501038, 32.395397, 344.623199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.865173, 26.123547, 377.839600, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.201477, 30.187380, 364.998322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 618.913208, 30.684265, 364.257690, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.595825, 42.144840, 321.818115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.963623, 41.739059, 320.949005, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.732727, 41.628902, 324.355103, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.226685, 25.550039, 368.222595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 594.187866, 29.405296, 354.589539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 617.181580, 32.516930, 357.289886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.787903, 24.549667, 392.769928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.004395, 20.669270, 404.579987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 643.447693, 23.634590, 398.243011, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'arborbuzzard_12' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.587006, 1.051038, 425.578125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 490.298950, 7.970772, 405.618469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 517.436707, 2.339736, 418.028870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 513.149048, 4.746355, 408.135315, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 463.269379, 12.985873, 359.531738, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.845001, 8.795874, 392.230164, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.357269, 9.440628, 389.464264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.814880, 9.224236, 418.365997, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.345581, 16.371487, 356.638947, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 442.852814, 5.813713, 285.207611, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'fatdodo_340' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.148376, 23.025820, 338.460297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 569.967773, 36.832466, 315.448456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 549.980774, 37.888100, 297.108398, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.436218, 31.274172, 328.104767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.652405, 30.174381, 335.077301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 560.540100, 24.185499, 348.622803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 504.152618, 18.017019, 320.767883, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 513.995728, 21.905985, 301.430267, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 529.777893, 26.199690, 320.881897, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_348' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 610.951721, 45.291042, 292.944641, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 614.071289, 43.317787, 311.833557, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 601.489197, 43.952782, 299.576599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 607.670898, 42.955601, 306.352112, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rhotanobuccaneer_349' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 606.436035, 45.457214, 289.224731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 586.842285, 44.523304, 290.586853, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 580.325989, 44.005836, 292.210266, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 600.182373, 43.941280, 299.534485, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'hedgemole_206' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.827179, -13.705018, 112.721565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.463867, -13.938252, 115.254585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.194031, -7.971107, 91.445923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.405945, -9.450314, 100.746597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 260.882416, -9.479098, 86.509323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.135361, -14.091815, 122.016670, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.356918, -14.604814, 103.779152, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.283783, -14.701883, 105.725792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.371048, -12.298371, 94.927170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.179520, -12.494881, 97.890442, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'pukhatchling_341' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.549072, -8.084236, 198.349197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 343.547150, -20.819576, 221.554092, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 406.804932, -8.912496, 204.511398, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 310.066132, 3.979212, 61.599541, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.271942, 3.215408, 69.605576, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 295.582397, -14.396211, 146.398376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.063263, -12.094148, 133.471710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.202240, -20.865870, 164.054749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.402802, -13.123147, 139.423691, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.351807, -8.836630, 100.647888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.702301, -16.667194, 156.825119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 261.961761, -18.991142, 168.344955, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.532211, -13.997048, 100.031502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 326.644409, -4.131938, 104.013733, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'Rothlytpelican_181' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.767944, -9.780312, 66.181999, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.696579, -15.939011, 51.519615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.895844, -14.250706, 79.683289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.167610, -17.022415, 171.601913, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 178.624680, -13.061819, 115.803726, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.335793, -15.385089, 95.921272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.930557, -15.900168, 123.740311, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.872498, -18.657330, 163.153763, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'duskbat_38' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.149704, -3.653494, -16.345657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.568344, -1.704098, -10.601416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.074207, -2.038181, -12.459220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.670887, -22.138065, 48.434181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 170.833771, -14.563396, 67.946289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.351990, 16.993977, 25.189274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.939545, 6.450073, 79.478783, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.424103, 5.344580, 83.595963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 150.297958, -12.896513, 98.393936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.025726, -11.842587, 104.012558, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'killermantis_397' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.420861, -22.691521, 71.720894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.526397, -22.481514, 47.029919, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.796715, -22.510216, 51.259472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.192041, -23.454264, 109.299332, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.632263, -24.057436, 106.656876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.775871, -10.198902, 7.465402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.104790, -4.891737, -30.372355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.644646, -2.623933, -69.674629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.014824, -3.445723, -29.440344, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 19, 420 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.688599, -2.336746, -61.448326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.041916, -1.870520, -57.631100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.003410, -1.288228, -58.280697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.633675, -1.707821, -55.243763, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.588829, -1.336391, -58.665497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.618637, -2.077911, -59.392395, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'preyingmantis_396' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.229858, -37.934452, 662.779663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -274.557770, -39.071556, 647.018433, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -278.861542, -39.754841, 652.675781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.313538, -38.622566, 629.100586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -345.678711, -40.303226, 660.740540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -363.421783, -39.786888, 695.661865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.508423, -39.543919, 654.552795, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -258.129791, -37.586475, 568.134094, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -374.046631, -39.790859, 689.106506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -256.936737, -39.339005, 661.075745, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.600281, -39.120235, 630.294006, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.299210, -38.453133, 497.112946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -259.771942, -39.876102, 444.647125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -309.042145, -40.904171, 417.387207, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.991730, -39.666859, 429.906219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -283.312195, -40.112728, 431.316406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.016403, -36.999790, 504.336334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.983429, -36.860287, 483.397125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.460037, -38.404160, 513.101929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.547546, -38.779144, 513.332336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.805618, -37.219120, 547.341797, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'lammergeyer_403' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -472.880676, -37.944370, 761.081055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -506.829773, -36.366119, 735.218811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -443.145111, -37.035763, 730.804382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -451.199036, -37.593052, 730.379883, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -479.084900, -37.694351, 742.679443, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -452.487549, -36.791161, 704.543091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -477.823334, -36.270195, 713.878357, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -334.013062, -41.439625, 710.262573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.316345, -41.565933, 710.397095, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.166931, -41.569130, 695.213257, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.890076, -41.953548, 744.200012, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.231506, -40.195026, 708.656433, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'deadmansmoan_20' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.808533, -41.567513, 720.813110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.155579, -41.640957, 720.676636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.455460, -41.417553, 738.392761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.263412, -41.366783, 737.019897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -311.722870, -41.953548, 709.911621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -321.297699, -41.175224, 688.248962, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.517731, -41.749794, 699.480042, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -439.283081, -34.331913, 671.793457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -471.863129, -37.052464, 722.286804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.708221, -37.826336, 744.686829, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -439.810822, -35.891434, 714.277954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -466.337250, -37.133499, 719.715393, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'whelkballista_2835' ) , 44, 4300 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.264221, -29.928743, -128.465698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.441002, -31.191349, -116.075401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.910004, -30.450001, -92.839996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.730499, -32.303410, -133.012894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.733398, -29.304998, -110.399101, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.365387, -33.956795, -97.778336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -65.040550, -25.701822, -112.658699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.579906, -23.056885, -95.180130, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.125305, -32.371189, -113.921349, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.799789, -35.724945, -15.357382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -141.256836, -31.314682, -2.205954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.653976, -40.073246, -51.765221, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.477036, -37.889233, -85.424019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -199.566254, -39.540298, -91.333366, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -217.380173, -40.401752, -87.147987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.431229, -28.933855, -138.298645, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfscaleSahagin_765' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.995445, -21.884605, -159.829468, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.891159, -40.533752, -84.432030, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.565796, -37.585857, -31.357361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.066406, -35.271103, -85.843086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.014999, -31.240551, -118.950104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.166702, -32.339401, -135.991302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.913696, -28.427610, -146.562897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.285202, -27.447048, 18.632601, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfclawSahagin_766' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -193.199829, -37.656906, -110.313446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.521759, -31.288570, -3.978702, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.610504, -37.808823, -31.235229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.685837, -39.160027, -74.769562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.840622, -29.359774, -107.485497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.944153, -28.244450, -144.487701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.452835, -30.365240, -142.395813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.432777, -31.651533, -108.885483, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shelfspineSahagin_767' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.795975, -31.806580, -115.732170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.331635, -40.953548, -71.524643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.765900, -32.099857, 5.874695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.161926, -30.635151, -89.379402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.523300, -31.509951, -130.479904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.256203, -30.084669, -124.693199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.966251, -22.781740, -124.681503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.512009, -26.621153, 27.748713, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalscaleSahagin_765' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.385223, -41.260593, -193.437286, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalclawSahagin_766' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.631119, -40.216190, -229.671234, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoalspineSahagin_767' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.732407, -41.367310, -179.705597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.445602, -41.977600, -231.189499, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'shoaltoothSahagin_768' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.406281, -40.466656, -216.125931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.685349, -40.028702, -244.119995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.681793, -41.504192, -221.129578, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 138, ( SELECT id FROM bnpctemplate WHERE name = 'trenchtoothSahagin_768' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.202354, -25.252371, -87.752235, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.823166, -25.679239, -73.956024, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.263550, -26.108219, -70.908691, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'wildwolf_303' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -399.963013, -2.593951, 172.149048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -386.632416, -3.094246, 212.581497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -469.315460, -8.370351, 229.056213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.483276, -3.353436, 174.017899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -430.151733, -4.209939, 252.725204, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.923340, -4.452601, 253.669266, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -447.462128, -11.811593, 207.381439, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -366.752228, -0.477297, 197.440613, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.643921, -0.252257, 169.514084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -419.159485, -8.618117, 202.864288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -434.815674, -7.283551, 240.109985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -466.738770, -3.765230, 246.375946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -463.817902, -3.408179, 249.032669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -385.919098, -2.004575, 179.630890, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -414.854950, -3.084553, 163.339508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -423.037201, -1.573701, 106.529961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -444.345306, -0.800698, 125.768532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -437.874329, -0.708115, 120.024284, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'stoneshell_382' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -410.276764, -2.779786, 149.452469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.331268, -2.356661, 157.195450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.863556, -2.982907, 149.851410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -387.012054, -2.883863, 156.213531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.136658, -2.948145, 143.214462, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.332336, -2.665001, 145.417374, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -408.627655, -2.847382, 143.295654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.506104, -2.247178, 139.498947, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'forestyarzon_159' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -511.271484, -2.877078, -6.817360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -523.743225, -3.022781, -11.141374, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -409.921387, -3.022781, 26.057182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -433.403625, -2.779149, 16.152559, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -411.006500, -2.664725, 36.579662, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -431.704773, -2.596823, 23.318489, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -483.693481, -2.996806, 1.324723, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -431.036346, -1.861258, 65.004272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -477.746277, -1.513515, 21.153439, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'coeurlpup_28' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -648.262146, -2.589449, 4.658347, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -589.121765, -0.959394, -1.788302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -589.512634, -0.116075, 8.695585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -632.006775, -2.708929, -3.060220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -559.642578, -1.484024, -9.069724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -588.414185, -2.159060, -39.774429, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -557.989746, -1.843499, -1.074752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -585.969482, -1.561126, -15.984694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -585.874512, -1.629109, -17.883661, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldfootman_328' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -440.920837, 30.468151, 63.316032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -461.728577, 36.668659, 34.901878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -401.017914, 43.853096, -6.055201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -381.218323, 38.771244, 24.947515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -404.069885, 35.812199, 36.532841, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.859711, -1.413108, 38.082218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -485.398102, -1.233985, 19.980440, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpickman_329' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -478.043793, 29.265388, 51.485188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -477.024384, 27.540518, 57.723557, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -428.984100, 37.887581, 19.708645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -491.041992, -2.412468, 34.461601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -481.084778, -2.234457, 32.011478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.817291, 36.137718, 33.293110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -391.328400, 44.270889, -5.423687, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -473.813660, 31.595440, 44.083755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.370178, 35.165001, 38.073444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -385.892670, 40.187538, 12.788408, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'mudpugil_383' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 568.278198, -1.853197, 206.880676, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 626.420044, -2.942010, 131.304550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 637.734558, -3.022781, 169.160385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 644.119446, -3.022781, 168.883255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.512695, -3.022781, 183.388657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 573.758423, -3.002139, 135.945755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 594.864746, -2.798157, 141.690338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 584.305481, -2.260647, 164.805756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 572.286621, -2.934438, 126.321159, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 533.594360, -3.022781, 154.079971, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 661.617249, -2.590199, 159.400162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 616.926575, -2.773323, 180.421677, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 539.675354, -2.441824, 151.688293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 605.704773, -2.681829, 128.622864, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 667.161011, -1.063845, 140.894440, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 590.514221, -2.477987, 214.035919, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 698.512695, 0.200548, 145.477539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 566.779480, -2.052615, 188.277481, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 590.680054, -2.734337, 205.680695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 688.749390, 0.234145, 121.745003, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 609.782410, -2.947150, 195.897034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 700.731567, 0.033245, 141.122345, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'uragnite_389' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.012970, -2.845351, 123.386749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 383.615143, -2.302974, 22.247391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 373.374817, -2.236211, 20.208181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.051941, -2.232438, 37.766304, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.914307, -2.902595, 140.266129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 442.727264, -2.967286, 196.861069, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.260529, -2.870690, 198.635162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 418.548279, -2.886929, 156.926483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.820557, -2.320590, 144.750793, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.272247, -2.996202, 181.563477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.133972, -3.022781, 175.314377, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.400269, -2.879202, 53.059139, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.148743, -2.997633, 145.824448, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.711304, -3.022781, 172.193954, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJabreeder_343' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.254761, -2.359517, 92.006157, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.045013, -0.560520, 209.060959, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.101563, -1.461589, 1.823075, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJaexecutioner_344' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 323.026428, -2.710696, 79.434731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 373.807068, 2.821242, -11.275184, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.660431, -0.937182, 206.924744, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJainfiltrator_345' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.141479, -0.283206, 1.610093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.230652, -1.234547, 208.342453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 332.796600, -2.429541, 104.093323, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'MamoolJasophist_346' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.956940, -2.153399, 191.588837, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 300.631042, -2.337128, 86.584427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.682251, -0.095059, 1.141446, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.526093, -3.022781, 223.919037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.548584, -3.022781, 225.818253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 245.600006, -3.022781, 249.738434, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'salamander_139' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.957062, -2.978830, 29.275167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.477295, -2.993704, 39.887897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.687073, -3.016507, 77.950378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.746063, -3.022781, 147.616531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.349792, -3.022781, 158.338409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.037476, -2.484233, 148.065796, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.138184, -2.871111, 29.703274, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpatrolman_328' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.904877, 23.456797, -127.060875, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.014465, 22.326096, -95.667023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.406555, 27.263988, -150.143967, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpitman_329' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.261505, 25.701416, -141.892105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.362488, 26.421909, -92.842506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.686920, 13.762062, -71.895325, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'koboldsidesman_330' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 259.484711, 26.393141, -94.860497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 259.445740, 33.897736, -144.446793, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 378.407684, 24.602100, -139.026627, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 139, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 245.325684, -2.379590, 44.140923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.873306, -2.960423, 82.499550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 246.044342, -3.018618, 80.287590, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.557037, -2.208508, 19.669523, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 304.052094, -3.022781, 128.465851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.435577, -2.621470, 85.461044, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'sunmidgeswarm_136' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.362946, 57.878689, -29.786932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.564255, 57.017956, -33.925926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.683281, 54.868725, -50.581268, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.365768, 58.052677, 2.143167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.987350, 63.529976, -123.588524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.869171, 52.848286, -56.454174, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.732819, 54.902134, -53.362572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 182.870316, 51.839558, -161.362061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 163.352936, 51.194023, -99.910034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.849411, 53.108635, -60.214973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.532848, 61.846325, 21.052542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.031486, 60.784248, 36.980217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.815140, 53.103539, -132.624802, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'dustymongrel_138' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.813576, 58.569042, 35.187431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.103859, 54.412777, 21.324905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.128319, 58.501022, 27.853186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.815205, 60.136868, -2.888081, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.091949, 57.713444, 40.039589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.128345, 60.255199, 28.328548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.083114, 62.982018, 21.516644, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.087555, 59.949104, 32.507141, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.252269, 60.076294, 44.025448, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'desertpeiste_172' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.019913, 64.188225, -110.453613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.339157, 63.663452, -128.340515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.305084, 56.245262, -38.932583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.296509, 50.607651, -25.799883, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.666153, 52.288956, -84.248810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.841919, 53.481869, -109.915512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.297241, 52.181160, -82.929817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.186386, 52.949856, -75.747604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.766594, 56.739906, -56.648029, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.247437, 56.599625, -51.180813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.713814, 56.766445, -36.407833, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'sunmidgeswarm_136' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 269.399048, 63.687740, -220.987549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.606079, 62.708714, -188.867828, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'bomb_17' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.504272, 63.964970, -189.740524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.904205, 63.188160, -173.473679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.196350, 62.489777, -212.080597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.381378, 63.268383, -191.093918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.015381, 63.016182, -256.289917, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 312.877899, 63.216038, -254.674255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.374512, 63.960533, -252.048309, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'coppercoblyn_187' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.906738, 63.990822, -220.645203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.031097, 62.853329, -252.227066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.950806, 62.697662, -233.945404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.526642, 62.654705, -225.621490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.755707, 62.794189, -233.036789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 322.412201, 63.233589, -202.325775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.029022, 62.663834, -195.368164, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 300.776428, 62.714092, -189.469070, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'sunmidgeswarm_136' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -188.185226, 15.683825, -281.877960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.563171, 16.704737, -288.828583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -171.506668, 15.097980, -251.375732, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.068359, 15.812678, -262.994507, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'gianttortoise_1445' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.832550, 74.976295, 189.649277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.395569, 54.607376, 127.792107, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'orobon_302' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -135.822968, 15.823594, -286.871033, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.273834, 15.552418, -275.547363, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -181.105621, 15.753315, -273.036774, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.639679, 15.229375, -255.477844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.286331, 15.263555, -239.428009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.937408, 14.986830, -243.591232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.983032, 15.647796, -243.629059, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.246628, 16.461535, -272.849823, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.901871, 16.609177, -269.763580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.131767, 15.712878, -248.392181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.554253, 15.124751, -261.593079, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'arborbuzzard_12' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.858673, 14.986830, -267.300232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.222351, 15.030583, -268.570007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -260.868256, 15.352041, -286.834869, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.199951, 15.221350, -262.706879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.139709, 15.572870, -246.400986, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.101227, 15.157563, -270.235565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.225403, 15.511198, -236.463699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -280.757660, 14.986830, -258.315033, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'sunmidgeswarm_136' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.362869, 15.162018, -245.425674, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.897675, 15.350551, -289.367920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.542084, 15.610629, -218.101578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -283.281921, 15.068916, -252.716583, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'thickshell_382' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -285.219086, 15.124865, -292.237610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -291.344818, 15.370173, -295.864227, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -278.758362, 14.986830, -288.515930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.602570, 16.823776, -204.922607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -253.168503, 15.074906, -267.783295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.155975, 14.989344, -265.494690, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.426239, 15.732086, -245.722214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.239685, 16.270042, -216.676147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.649902, 15.679144, -230.560593, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'sunmidgeswarm_136' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.283325, 15.196787, -365.370789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -289.466339, 15.412482, -321.257721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.738632, 14.986830, -319.806091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.824615, 14.986830, -345.373749, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'scaphite_389' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -219.501633, 15.334006, -381.460052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -224.881012, 15.126434, -382.547882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.883209, 14.986830, -351.834930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.765823, 15.285220, -339.660431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.798248, 14.986830, -344.871765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.094467, 14.986829, -328.084503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -266.814545, 14.986830, -324.871246, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.468948, 15.054999, -305.227814, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -258.006805, 14.986829, -327.108948, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'gianttortoise_1445' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.477722, 53.933983, 237.885986, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 18.961184, 55.155243, 256.131409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.765362, 57.801758, 356.161682, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'starmarmot_351' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.389008, 89.042519, 100.449532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 407.665375, 88.481476, 100.987282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 407.750183, 88.797562, 97.059380, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.179962, 87.094978, 112.551384, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.873840, 87.601807, 186.132874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 398.755096, 87.447830, 179.861176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.203400, 87.267311, 183.293076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 410.134247, 88.858070, 189.627411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.055054, 86.920731, 131.728973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.407074, 88.280922, 158.475494, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.552643, 89.133110, 159.030655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.322357, 85.118454, 151.810898, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.917572, 89.533798, 118.689026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 423.424133, 89.115753, 119.204964, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.600983, 87.036957, 113.900253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.024170, 85.519951, 136.799225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 405.258240, 87.986847, 180.366989, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.082184, 88.061966, 176.248825, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.822784, 87.715111, 188.975372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.697205, 89.143417, 163.378571, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.299103, 52.038120, 166.290298, 0, 4296868 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.254303, 52.038120, 162.449799, 0, 4296867 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 237.477707, 52.017941, 108.608101, 0, 4296858 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 246.709503, 52.038120, 124.038902, 0, 4296863 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.172607, 52.038120, 112.691498, 0, 4296864 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'leadcoblyn_187' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -382.884735, 24.117081, -556.268555, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.730377, 24.586840, -581.369202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -385.009186, 23.111408, -596.734863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -380.622467, 23.480238, -599.083679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -376.264099, 24.436598, -530.908264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.943054, 24.534470, -533.483276, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -383.591553, 23.833412, -542.733643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.524689, 24.414841, -554.813538, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'yarzonscavenger_42' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -368.706055, 17.494400, -624.338745, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -343.946106, 15.186830, -652.463684, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -368.560913, 15.410963, -677.185303, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -378.020050, 15.127582, -683.060303, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -339.686646, 15.120122, -698.585449, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -331.969757, 15.186830, -703.837524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -357.870453, 15.108557, -723.183105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -338.006348, 15.103650, -708.907593, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'laughingtoad_26' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.749268, 15.358088, -718.142761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.077820, 15.186831, -707.281372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.077148, 15.224851, -771.809631, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.843109, 15.413390, -783.588623, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -335.340271, 15.168776, -767.416687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.116272, 15.454859, -773.293579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -304.581451, 14.992727, -737.065857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.706726, 13.386830, -738.382446, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'Moondripstonehauler_109' ) , 24, 1190 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.821518, 15.008770, -735.877625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.398468, 15.217943, -732.547668, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'Moondrippiledriver_110' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.275238, 15.392570, -738.933289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.346649, 15.186831, -725.061890, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.735229, 15.388600, -740.634521, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'Moondripblastmaster_111' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.242920, 15.186831, -750.385376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.257278, 15.587485, -740.245056, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'starmarmot_351' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.688599, 76.876884, 211.531418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 374.105316, 77.792480, 198.858215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 369.485535, 82.036636, 128.080322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 377.084747, 84.616287, 108.789406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.580261, 84.750168, 112.930344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.887085, 85.170654, 99.615250, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.760559, 84.367920, 99.599068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 350.151184, 79.575348, 121.144356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.504211, 80.159409, 118.561562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 348.667603, 80.101921, 116.652542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.280487, 76.697456, 208.630035, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.793640, 77.546120, 212.715851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.602875, 76.288712, 146.871292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.695007, 75.441162, 147.973145, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.328247, 77.386948, 214.265350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.374512, 78.043961, 196.363434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.138885, 77.288124, 210.792526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 364.422180, 76.422302, 192.851349, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 352.083466, 82.273712, 95.127480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.373505, 81.716942, 157.878601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 377.561768, 79.798492, 162.358063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.085602, 77.790436, 142.908432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.182892, 82.170029, 116.361198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 369.851776, 83.218834, 113.282593, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'cactuar_175' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.395325, 65.555565, 132.698669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 319.659668, 67.441933, 206.012695, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.087280, 65.892410, 136.456726, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.873840, 66.121727, 133.923264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.873413, 62.828804, 143.082336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 329.873566, 69.168564, 151.207550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.945953, 67.444283, 168.557068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 323.380920, 66.959396, 173.455048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.904449, 66.432648, 182.718567, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 329.720184, 69.911812, 193.588425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.207520, 69.655319, 187.129074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 343.823364, 73.823715, 175.368500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.431244, 73.265747, 178.598236, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.533203, 72.060814, 185.989456, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.748871, 73.451508, 184.654541, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.108276, 65.764122, 149.063217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.683624, 65.999367, 128.928513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.361206, 66.642479, 150.195862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 323.000549, 66.616356, 127.706322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.014465, 67.793121, 177.618622, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.996521, 66.534859, 186.106415, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = '4thCohorthoplomachus_55' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -441.832184, 50.871376, -705.717712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -531.079834, 52.075893, -773.161987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -456.002014, 51.014610, -752.579285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -619.753174, 59.589306, -798.950195, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = '4thCohortlaquearius_61' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -404.575348, 49.000999, -744.323181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -624.231934, 61.740665, -744.003052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -574.043945, 53.386829, -736.145386, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -501.557220, 51.161560, -741.717041, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = '4thCohorteques_62' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -539.219543, 55.256348, -740.893066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -518.314270, 50.452862, -714.412109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -514.378784, 51.697456, -759.622498, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -599.843384, 57.253597, -784.518921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.159485, 44.462021, -712.226013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -656.681274, 62.116219, -804.503601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -642.406189, 61.025417, -797.639160, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = '4thCohortsecutor_63' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -483.828033, 51.738083, -757.700500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -517.815491, 50.450741, -713.017395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -574.717346, 54.950596, -787.677612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -595.289551, 63.665363, -751.590881, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = '4thCohortsignifer_64' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -494.698364, 50.399204, -708.061279, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -570.622925, 53.691685, -775.880798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -605.065002, 63.094318, -754.225647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -454.328613, 50.848831, -752.713074, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = '4thCohortvanguard_201' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -634.960266, 59.039497, -777.019409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -555.351624, 53.445580, -752.459229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -466.984497, 50.670948, -723.799744, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -410.956299, 50.414986, -763.727966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -626.511536, 60.120979, -814.057739, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -546.916931, 56.377281, -805.473389, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'cactuar_175' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 257.057739, 56.351803, 219.084427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.339844, 60.627789, 171.870178, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.277588, 57.897289, 173.276642, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.039551, 59.582722, 170.812241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 256.675110, 55.534565, 175.494080, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 259.550354, 55.746025, 173.968994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 257.165710, 56.202602, 225.145172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.368591, 55.701454, 232.144531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 258.058075, 56.127468, 223.317703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.601807, 55.888966, 109.514389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 261.491730, 55.489803, 109.289391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.280975, 56.329464, 109.621246, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.440887, 55.728809, 133.362823, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.916809, 55.323189, 137.590149, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 266.039551, 56.767578, 174.639359, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.892944, 55.782864, 232.593109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 245.091385, 57.145382, 241.737213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.272110, 55.896389, 228.601379, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 270.748108, 54.885086, 133.576477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.633972, 55.684399, 112.369080, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -25.143955, 44.177044, 174.537827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.982864, 56.917221, 318.417511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.785152, 48.830349, 178.263474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 43.864765, 52.657127, 245.705170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.158569, 56.503048, 238.946960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.453560, 56.806915, 263.695343, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'yarzonfeeder_42' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.854935, 60.276432, 304.299225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.476929, 61.032520, 301.493958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.344055, 56.118526, 274.188599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.894310, 55.818336, 287.392090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.426117, 59.560295, 281.447815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.864365, 55.691021, 262.080414, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.377365, 57.807888, 275.822601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.682816, 60.083164, 289.550812, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.586159, 60.003593, 286.378387, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'hammerbeak_431' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.045639, 46.864952, 158.096100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.584439, 45.777466, 148.414703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.012629, 48.605392, 178.471466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.557934, 51.428593, 204.494553, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.833475, 51.136341, 196.485123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.052513, 49.932262, 191.209305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.799057, 51.148090, 212.751785, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.434380, 47.942570, 174.132797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.086227, 49.378880, 181.922089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.064072, 50.799091, 195.341721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.283997, 51.449207, 216.795975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.946396, 54.322884, 225.481308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.344921, 51.150177, 213.160645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.232910, 53.982983, 215.127243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.405243, 54.329166, 224.158554, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'nestingbuzzard_12' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.425274, 50.129452, 219.870728, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -30.504934, 49.748901, 212.749344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.836624, 47.423523, 193.916061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.522020, 51.690231, 219.624725, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.142912, 51.647934, 211.832947, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.788450, 51.708107, 203.934937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.090078, 51.566109, 203.576797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.472204, 52.106628, 210.925369, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.387239, 53.548248, 251.823593, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.742771, 58.293602, 360.496765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.595654, 54.321415, 250.872284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.704807, 55.781029, 330.115234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.406578, 55.421589, 323.505127, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'rustycoblyn_187' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.307931, 54.218685, 236.600082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.204052, 54.558956, 301.804871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.482357, 55.559170, 316.581421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.522076, 58.166504, 353.728424, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.147402, 54.634384, 307.018951, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.940275, 57.724049, 344.877441, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.956335, 58.376316, 358.752289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 13.563601, 54.727650, 238.391327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.660229, 58.292553, 361.164734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.105354, 56.656372, 308.184662, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.232339, 55.985054, 318.689697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -10.775599, 56.098049, 317.646118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.104965, 53.403831, 262.835938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.358086, 53.597591, 261.722198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.817325, 53.721111, 262.083649, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.503174, 52.125618, -0.082753, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 225.139221, 51.744270, 6.439182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.991440, 50.431175, 73.257027, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'hammerbeak_431' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 173.785248, 50.891171, 70.453064, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.629578, 50.834221, 67.065903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.573502, 51.738613, 78.248955, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 237.553696, 51.656364, 71.979782, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.248566, 51.388229, 67.681290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 256.975128, 52.017986, 19.820318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.137756, 50.941696, 25.290976, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.147484, 66.266045, 399.097626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.547949, 67.615616, 365.142578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.979401, 48.299389, 383.079285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.141602, 57.342918, 288.597565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -113.978149, 53.739441, 288.654663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -137.854919, 46.374153, 336.578888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -187.124557, 37.738495, 341.879089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.677048, 41.915394, 401.111755, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'rustycoblyn_187' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.262378, 68.909454, 370.683472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.455279, 68.998543, 379.007629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.751709, 67.264221, 390.642120, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.810997, 66.000244, 389.905457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -125.840111, 51.202984, 314.281647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -131.761612, 51.850426, 310.777985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.178223, 52.095619, 308.523743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -111.628517, 52.917213, 264.034607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.081810, 52.962093, 241.474503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.389206, 53.920219, 272.884888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.427536, 41.793110, 349.237946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.645874, 40.800976, 345.000885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -179.216888, 39.329014, 393.125946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.653824, 40.785412, 353.835907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -77.540878, 56.312889, 362.028198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -112.038986, 48.547070, 358.278046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -42.031586, 64.551018, 365.496582, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -83.808243, 55.492188, 369.072083, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'hammerbeak_431' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.458023, 33.110733, -441.960785, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'goblinmugger_769' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -152.708801, 50.439430, 225.901962, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.341133, 49.499725, 212.134918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -121.259323, 49.150318, 209.047531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.879105, 50.598660, 225.798996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -141.250000, 50.637089, 227.672501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.239197, 50.788750, 226.800369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.305801, 49.998920, 219.510193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.580704, 50.071732, 219.991806, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.404484, 22.522034, 62.307392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.441742, 16.020668, 128.138702, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.676804, 15.760381, 169.980637, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.144615, 16.512531, 167.752258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.531380, 17.441198, 133.901688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.122185, 19.596285, 89.063515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.285603, 19.636349, 99.837990, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 140, ( SELECT id FROM bnpctemplate WHERE name = 'sandtoad_313' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.359482, 22.282566, 61.104462, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.118103, 24.934511, 44.197083, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.135132, 17.986830, 2.245242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.475182, 17.424469, 88.015686, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.059723, 16.651197, 97.222717, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.482552, 17.213715, 93.908943, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.381737, 22.347158, 58.001335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.572502, 18.476463, 16.029045, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.204239, 17.986830, -6.797384, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 178.295074, 17.986830, 7.939592, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.750217, 22.451992, 107.558098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.982216, 21.138380, 112.136604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.896690, 21.071253, 95.151382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.595184, 16.570642, 127.513367, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'eft_160' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.317963, -1.165905, -188.232162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.466858, -0.136303, -139.674576, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.721359, -1.687370, -108.115471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.040367, -1.669906, -96.106468, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.046310, -3.266732, -31.652222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.571884, -2.392881, -49.928017, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.701424, -3.256397, -30.419973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.535339, -1.687370, -275.474915, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 197.613388, -1.687370, -286.000183, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.452499, -1.247753, -213.603455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 165.267853, -1.687370, -244.374710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.709717, -0.809511, -213.737610, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'antlingsoldier_197' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 258.785400, 11.886861, -202.225662, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.625671, 6.714606, -192.929611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.556320, 7.075986, -189.294647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.167770, 5.486621, -184.068756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 192.025330, 3.521654, -163.479538, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 196.647537, 2.287169, -154.598160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.780701, 3.454069, -130.197876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.103470, 2.876902, -129.375961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.662186, 0.630193, -120.090347, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.980850, 4.096877, -129.117706, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.365845, 2.476953, -138.221100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.802734, 2.178777, -172.214218, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'sunbat_38' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 212.381546, -1.566008, -307.883087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.972946, -1.669141, -305.839111, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.227692, 1.598073, -165.329132, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.628601, 9.609035, -198.794052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.627090, 7.348972, -181.738541, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.646561, 1.863142, -125.187531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.396301, 0.249111, -190.529114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 174.164841, 6.166096, -208.881775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.429680, 3.673528, -131.654022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 182.745605, -1.687370, -268.504700, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 162.711365, -1.687370, -237.827469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.873871, 0.352801, -153.226593, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 144.400620, 1.287721, -165.066238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 174.287170, 2.965053, -167.919968, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.084709, 6.454357, -124.551498, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'cochinealcactuar_175' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.954102, 19.872227, -109.696388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.980453, 19.586889, -107.833214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.671753, 16.355024, -46.775188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.705200, 17.379549, -47.095615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.623947, 21.269522, -99.859749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.229988, 21.657568, -97.443985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.855919, 21.364822, -100.793694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 150.951050, 18.070759, -61.208858, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.942581, 5.754190, -40.436474, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.047363, 7.193097, -45.752647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.895233, 0.564799, -17.761211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 186.548996, 6.470027, -11.748389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 182.706696, 4.848518, -21.671053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.464676, 6.504350, -13.421595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.457184, 0.582203, -16.487110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.948654, 19.558901, -72.971085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.685776, 18.736345, -75.948265, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.148560, 20.397184, -81.653526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.057114, 21.562983, -90.913788, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'antlingsoldier_197' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.185242, -12.185346, -3.634977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.125732, -7.270465, 3.735350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.238434, -3.190615, -52.263821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.392738, 31.931646, -72.179665, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.721523, 28.381290, -86.174660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.895901, 30.779264, -74.205223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.832901, 28.992264, -110.199524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.103638, -13.975206, -33.716408, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.365051, -1.735680, -88.080757, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.966805, 30.463255, -88.708885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.800323, -0.795686, -109.902290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.493256, -0.977907, -108.417580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 169.772827, 2.926476, -82.803047, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.137039, -1.308364, -101.623215, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'Quiveronguard_352' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.790604, 28.751122, -15.152280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.571014, 29.149429, -32.464714, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.007233, 29.540972, -19.660963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.998703, 28.662880, -17.350370, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'Quiveronattendant_353' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.791397, 28.213881, -14.786040, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.435417, 30.386259, -38.183147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.128754, 28.961983, -21.724655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.299660, 29.776699, -49.910431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.401093, 28.610600, -15.610050, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'sunbat_38' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.785339, -7.258123, -3.556571, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.419418, -2.798912, -49.868896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.971443, 30.957779, -69.957573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.125404, 29.961285, -98.775574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.592178, 31.343275, -85.451653, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.537621, 20.357344, -105.267334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.419800, 21.001585, -87.090698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.256180, 19.494431, -56.185108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.657211, -0.375196, -32.008640, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.114876, 23.954308, -61.684052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.879379, 3.594278, -88.321251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.600006, 12.312630, -55.399990, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.845291, 7.478282, -25.197289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.097427, -1.598797, -97.632507, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'gianttortoise_1445' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.195206, 10.326872, 441.296875, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.036789, 11.567005, 612.941223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.328239, 6.438030, 238.985977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.439594, 5.123513, 278.447388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.927704, 12.154896, 452.000092, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.181721, 13.213046, 440.801208, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'antlingsentry_197' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.737686, 0.805563, -377.694946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.040207, -0.107224, -383.030914, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.105820, 3.429567, -396.707092, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -251.794006, -1.267901, -386.990295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.114563, -3.528678, -368.096710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.463409, -3.309677, -359.755066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.719879, -1.648945, -344.178101, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.537643, 2.030085, -313.443024, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -262.307526, 3.082225, -314.470093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.222107, 0.687642, -325.399811, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'orobon_302' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.786469, -19.279236, -84.602875, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.422546, -19.287373, -93.380470, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.367279, -19.287373, -85.127342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.934540, -18.985165, -74.879967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 312.820343, -19.226448, -56.883072, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.581451, -19.088863, -63.526638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 252.791321, -18.311853, -98.901375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.129929, -18.688391, -120.960609, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.494843, -18.655554, -100.651924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.091064, -18.947048, -128.349960, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'sunbat_38' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.577698, -18.050556, -89.830620, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.822784, -18.948578, -107.921959, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.953400, -19.287371, -74.660225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.640991, -19.209934, -124.902550, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'antlingsoldier_197' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 388.529358, -17.753366, -100.019745, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 441.174438, -15.417088, -97.080559, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.217285, -14.489692, -118.389198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 434.497955, -14.433805, -107.303909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.755371, -13.449295, -60.659534, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 367.429291, -16.153448, -60.517349, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.284912, -14.688212, -50.520935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.520721, -13.862247, -32.601498, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 323.868134, -13.727184, -31.085527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.531525, -18.566017, 9.467869, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.391937, -17.462542, -137.940536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.491669, -17.767740, -90.793671, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 396.968903, -14.220932, -32.701488, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'sunbat_38' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 383.551575, -17.660118, -130.498917, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 449.097107, -12.024187, -123.699890, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.190918, -16.396107, -61.420734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.827545, -18.796280, -10.548698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.172211, -14.007333, -39.606686, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.702301, -20.909592, 0.586188, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'toxictoad_26' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 332.302826, -18.577339, -136.994446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.631073, -18.172041, -134.239075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.126343, -18.754692, -179.541382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.970001, -18.522854, -83.082108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.504364, -19.030172, -117.712013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.423248, -18.842793, -132.835846, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.732086, -19.287371, -79.344177, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.597290, -19.056744, -89.002281, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'orobon_302' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.339996, -19.045889, -106.640076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.621643, -18.786987, -105.400925, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.183502, -19.287371, -120.962143, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.936768, -19.287371, -140.377869, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.497803, -19.102837, -143.337112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.908539, -19.018908, -145.594055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.920776, -18.236301, -138.750046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 312.901886, -19.025372, -168.566666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.709351, -19.006962, -149.436874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 310.511810, -18.931107, -171.176727, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'sunbat_38' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 343.037994, -18.327412, -87.197243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.126526, -19.287371, -108.864944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 260.386139, -17.456427, -166.527679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.615906, -17.618288, -168.175003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.238464, -19.127840, -152.614975, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'gianttortoise_1445' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -135.470047, 28.670164, -419.590881, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.224838, 2.699236, -118.225876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -110.921562, 0.412751, -236.404755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.979348, -3.027161, -74.448112, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'starmarmot_351' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.132088, -0.830669, 201.631592, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.147560, -3.294404, 183.307251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.588104, -2.192851, 179.789841, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.576221, 7.620778, 306.484680, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.388714, 10.764454, 314.159058, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.421753, 9.580258, 320.756927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.630257, 1.344174, 208.056931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.679886, 2.505999, 207.012268, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.738930, -4.681663, 201.177994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.463608, -0.063744, 223.178589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.193832, 10.811487, 270.015961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -141.092300, 10.893873, 265.857605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -125.918709, 13.032800, 284.798859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.610207, 8.807741, 268.232330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.522835, 5.933615, 245.138672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.184700, 8.765226, 273.554779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.701550, 7.920088, 280.999146, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -33.272747, 3.804565, 277.206787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -77.643669, 10.467034, 285.109680, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.292953, 9.661130, 275.120758, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.861851, 3.483287, 249.451416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.311630, -0.678766, 237.591400, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.114380, -0.351166, 244.103668, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.492167, 1.312411, 258.657898, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'hugehornet_385' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.907471, -3.571720, 219.243805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.718153, 5.451878, 301.894287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.059456, 11.571009, 437.029022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.989937, -1.690629, 196.724426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -98.574768, -3.166113, 177.319946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.221661, -4.524842, 197.873322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.894516, 0.839635, 206.144241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.587852, 11.689942, 306.759338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.864689, -0.608879, 219.315063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.694717, 7.765455, 250.819580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.281471, 1.775036, 219.440277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.971764, 4.860685, 292.619232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.237152, 14.523499, 274.601074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -62.510185, 12.217365, 295.750916, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -113.435028, 4.471564, 229.436203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.442757, 5.596817, 247.354599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.250259, 0.743027, 224.516617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -131.127899, 6.875826, 254.238861, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.798729, 9.261072, 269.827026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.173138, 10.748014, 290.876617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.768524, 6.594630, 268.781647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -42.127663, 2.327297, 243.374619, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'starmarmot_351' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.781837, 14.651251, 669.321472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.359709, 14.894112, 395.458313, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.701683, 14.855042, 391.761932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.409471, 12.507113, 356.361053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.738061, 12.499704, 353.422516, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.437883, 12.348068, 354.726654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.385303, 10.040910, 355.210175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 144.675583, 3.620145, 656.068542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.988068, 3.957043, 649.779724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.201996, 3.709966, 651.812317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 106.757111, 9.695004, 673.369324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.417152, 9.607377, 663.583374, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.372337, 9.634759, 667.174438, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.272270, 10.469758, 619.963623, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 39.092484, 15.774632, 620.959656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.232311, 15.999292, 624.787720, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.822330, 15.876580, 623.607727, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.112305, 12.563763, 632.846008, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.809380, 14.387797, 625.939331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.678493, 13.977177, 502.199097, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.831474, 10.266142, 518.589539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.580246, 11.780632, 495.500763, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 46.172245, 14.325772, 510.318573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.788620, 8.259278, 555.055725, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.958824, 7.919072, 554.096985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.997444, 6.136663, 519.846680, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'hugehornet_385' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.620827, 14.612107, 667.884277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.606979, 4.081238, 627.820313, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.877231, 13.615626, 363.381775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.040424, 11.795031, 388.193512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.870335, 14.724174, 419.960144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.825455, 8.400401, 616.184326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.928337, 7.781808, 607.554565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.298714, 9.343278, 672.693665, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.191315, 9.548332, 678.953552, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.697060, 14.094070, 614.355408, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.031380, 13.567678, 521.799500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.086319, 12.297340, 509.745117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.912727, 4.945649, 482.360016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.407799, 4.273463, 484.751678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.583496, 6.545595, 519.189026, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'snappingshrew_205' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.998642, 7.118342, 214.938965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.988998, 18.148701, 156.375671, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.856079, 0.864347, 188.346634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.998817, 1.357087, 194.430435, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.291412, 4.543108, 443.690582, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.802704, 4.079570, 437.752869, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.881271, 15.910508, 172.408722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.277328, 19.488789, 148.662613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.168274, 12.436956, 174.105209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.814926, 5.529444, 416.189911, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.458847, 4.084651, 410.876373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.766350, 3.995774, 399.245483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.294464, 5.000326, 391.724487, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.839973, 3.355674, 385.360779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.350800, 6.035253, 401.967224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.543274, 15.981478, 268.632599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.723206, 14.708333, 281.154755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.252823, 14.332496, 308.223877, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.716537, 0.839609, 215.068741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.178265, -1.547267, 212.598114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.828777, 3.218596, 279.158722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.126835, 4.979368, 299.000702, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.690193, 1.958333, 299.042206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.291428, 2.160212, 292.237701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.333908, 2.986871, 323.785309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.215195, 3.397606, 329.086060, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.356453, 2.064967, 309.819580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.462738, 1.711851, 259.637878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.146549, 2.291308, 261.737396, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.029797, 0.759700, 236.502197, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'hugehornet_385' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 154.899536, 9.782428, 432.289276, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 163.749908, 13.249993, 402.076843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.082184, 6.998433, 391.464294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.414711, 15.102674, 170.824905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.624680, 20.129055, 150.056442, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.286270, 7.945267, 258.346527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.893745, 8.418118, 250.248871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.572422, 1.725515, 211.626709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.475426, 10.318566, 194.904953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.464970, 15.675315, 145.210022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.135872, 3.520420, 321.376068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.668945, 5.162446, 406.542450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.659348, 7.828197, 434.532013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.262604, 15.263828, 276.155731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.409973, 14.276332, 290.152313, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 20.384861, -1.388451, 218.726242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.250977, 3.618062, 361.547394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.193108, 6.985967, 401.533325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.641546, 2.186462, 261.691833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.031227, 1.989501, 315.129547, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.663902, 1.086089, 320.265533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.619003, 2.013515, 265.924622, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'snappingshrew_205' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 212.258286, 13.125544, 576.897644, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.307144, 10.684145, 606.535767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.092346, 11.393424, 597.792480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.315872, 10.921528, 619.139099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.152390, 10.892845, 612.435669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.819473, 12.526879, 510.025391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.340530, 12.429687, 522.777466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 173.160736, 11.566209, 524.117798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.693138, 11.135562, 504.030792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.792953, 16.537683, 387.454102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 182.712738, 12.810107, 407.560608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.206299, 10.239838, 415.688110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 159.063431, 11.521556, 407.843262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.331299, 13.434283, 451.513397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 241.723328, 15.164034, 475.223694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 233.073654, 15.494044, 459.337463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.878204, 14.875070, 467.820557, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 186.741547, 13.106076, 481.490204, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.944992, 18.921860, 422.087891, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.496735, 21.018387, 413.806244, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.653351, 15.331147, 501.079346, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.621521, 10.984225, 487.070648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.218124, 11.886612, 512.258850, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 178.539856, 10.749427, 565.575134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.855530, 12.587099, 582.057678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 199.167542, 12.427143, 601.201843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.541946, 8.544447, 484.919403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.782852, 9.589719, 536.118408, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.246628, 9.324942, 456.188721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.286987, 9.248465, 458.491608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.115677, 12.254954, 481.014984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 165.215942, 12.257030, 479.717438, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.565079, 12.493283, 481.362427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.021057, 10.178137, 600.886536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.277679, 7.702478, 544.200928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.267120, 8.876033, 558.221924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 157.345062, 8.563926, 554.235779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.595886, 6.497559, 566.207703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.182800, 8.325212, 581.167053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 142.774979, 7.591152, 583.888611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.509796, 5.909552, 605.887817, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'hugehornet_385' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 196.900360, 18.446592, 527.129272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.015793, 15.328307, 502.550446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 265.371399, 16.502869, 525.063660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 258.878937, 13.694697, 567.167297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 260.390625, 15.126431, 556.181213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.264465, 15.964714, 496.781921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.550003, 16.704090, 499.550293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 265.941132, 16.418941, 525.251831, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.785736, 13.118353, 448.505951, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 230.005951, 15.134412, 471.413696, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.504791, 13.098309, 480.896393, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.266037, 11.740788, 521.091675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.121994, 12.725099, 508.515991, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.343430, 11.030483, 495.614105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.776962, 11.239170, 607.635010, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.814560, 6.595161, 634.641541, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.908020, 7.764597, 626.226624, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.369141, 17.072481, 561.166443, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.604401, 16.865252, 559.998169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.611099, 12.557126, 581.760376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.898743, 9.841074, 608.941040, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.289505, 8.618523, 625.023499, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.500046, 12.600811, 594.490967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.153351, 15.199907, 501.706635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.192986, 7.545269, 464.524933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.376160, 11.163703, 469.630646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.750580, 8.495440, 543.235718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.313354, 10.356873, 586.242432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.458221, 16.701763, 545.661316, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 199.982162, 16.281801, 541.067505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.088409, 17.030666, 555.317505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.777893, 6.832203, 586.982300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.112747, 4.498141, 598.777100, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'orobon_302' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.671890, -5.812543, 136.228577, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.860905, -5.928177, 108.802963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 13.171816, -5.780242, 115.627808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.193864, -6.687370, 142.990326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.495399, -6.687369, 152.691483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.578224, -5.396751, 167.349640, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.216805, -6.202558, 151.391937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.553169, -5.670652, 146.642685, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.834076, -5.760743, 151.085037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.845631, -6.617375, 159.460037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -51.352818, -6.048653, 169.783157, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.928562, -6.501933, 118.357712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.232611, -6.687370, 148.945953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.706760, -6.544453, 169.219193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.629375, -6.320920, 150.430145, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 1.376432, -6.431837, 163.946106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.738632, -6.563811, 165.023895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.158860, -6.687257, 161.648239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.510571, -5.822853, 137.741272, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'syrphidcloud_41' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.745617, 11.664762, -229.661652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.915657, 0.784127, -208.201538, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.171028, 0.069792, -200.240112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.055233, -6.144990, 4.812652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.744278, 1.133011, -237.582520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.839657, 1.544590, -191.658173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.773842, 8.469147, -216.930405, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.233879, 3.770367, -208.780090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.115700, 3.535342, -202.578690, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.659208, 1.885491, -40.210419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.759754, -6.575808, -70.365150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.718639, 6.296513, -132.878937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.456947, 0.432563, -152.496597, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.082401, 14.469296, -129.908646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.713852, 1.435835, -236.996765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.621788, -1.968755, 121.580048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.630272, -1.027033, 105.000916, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.412865, 1.787126, -204.141739, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.140063, 11.320907, -298.604126, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -74.422630, -4.631270, 26.572216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.309331, -0.501844, -202.697876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.897972, 5.603918, -237.664307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.256142, 14.679240, -275.372681, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'antlingworker_432' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -68.117996, 12.566562, -239.765198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.455795, 10.501761, -224.876816, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.593353, 8.487895, -234.047760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.566635, 1.618612, -233.436401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.910463, 11.854109, -283.469116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.956008, 8.533451, -247.540466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.598175, 1.694249, -188.811493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.826326, 0.225419, -222.496124, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.712059, 8.363413, -247.978119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -17.619656, 7.148906, -239.940216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.307961, 8.238957, -209.274521, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.111885, 3.283652, -216.581909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.942444, 1.940440, -233.367432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.877617, 0.679963, -182.853180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.277550, 1.360019, -175.104919, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.065495, 6.548012, -149.945313, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.807383, 10.121017, -133.410751, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.021042, 15.923297, -111.995705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -10.600470, -3.574974, -83.229507, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 13.504713, 2.464338, -38.354126, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.353378, -2.798462, -85.107544, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.207628, 2.423386, -110.910767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.680536, -3.097924, -93.610481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.705696, -0.625961, 110.627457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.126144, 1.053093, 88.866135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.271574, -3.449548, -56.706383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.644728, 0.709381, -27.072062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -36.820358, -4.425104, 24.577980, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -36.056725, -3.205539, 35.216789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.103447, 0.375181, -196.803650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.875809, 1.189918, 71.765923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.911522, 0.985137, 66.710670, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'syrphidcloud_41' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -174.468109, 19.115213, -125.338837, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -110.471130, -0.537652, -168.935211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.790268, 3.347808, -138.357941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.235672, 3.883178, -126.912987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.675522, 9.452148, -29.751484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -65.050079, -0.113263, -115.859344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.054703, 12.273926, -60.369213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.960083, 15.340821, -188.681152, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -117.949181, 11.767560, -65.087570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -122.582817, 11.198878, -65.281563, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'hammerbeak_431' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.132462, 11.256601, -32.651081, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.753723, 9.860044, -31.733425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.072800, 6.475171, -19.586803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.904358, 9.230814, -27.321465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.938004, 8.912346, -161.776810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.657852, 4.540196, -194.241333, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.965881, 12.719676, -189.215698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -56.758118, -4.028542, -105.878067, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.833687, -2.745871, -106.717339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.153114, 0.455269, -101.453857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.298645, 9.913610, -67.934662, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -162.382309, 17.889938, -96.520218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.515152, 18.485138, -95.555511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.390610, 10.041080, -78.760681, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaaimpaler_735' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.891548, 19.908630, -233.898605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.145218, 19.852844, -255.847229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.056973, 20.372236, -298.794312, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.075630, 19.825541, -258.167999, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaastriker_736' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.101620, 19.979660, -229.510406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.453423, 19.721775, -278.135376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.218941, 19.809231, -261.464111, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.641180, 19.827999, -262.593201, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'spriggangraverobber_100' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.285706, -30.639889, 100.659332, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -153.746185, -31.521635, 109.572319, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.912827, -31.560745, 114.211540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.124924, -31.650459, 117.030487, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -209.918854, -29.263367, 122.909149, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.000000, -28.087360, 121.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.561066, -28.439131, 89.026329, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.793625, -30.258345, 95.008110, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'spriggangraverobber_101' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.746063, -31.275227, 99.159760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -253.332245, -31.016640, 82.823921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.355026, -31.131470, 109.242416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.172867, -27.795612, 128.031372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.535385, -30.566776, 97.437675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.847794, -30.994158, 110.904938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.657761, -25.690193, 77.928909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.002594, -26.014444, 76.528809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.481079, -24.500380, 72.624008, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.796280, -24.799749, 74.366158, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'syrphidcloud_41' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.560226, 8.769100, -42.823318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.515686, 10.141810, -42.636036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -340.534363, 2.979852, 89.331467, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.402191, 9.110394, 0.857142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.269806, 7.445292, -28.041258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.964035, 7.105038, -26.203512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -241.027557, 7.168646, -25.286453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.821426, 0.498789, 27.290764, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.595093, -2.038183, 49.544174, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.633865, -0.844712, 47.052341, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.344849, -31.354811, 97.560005, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.364380, -28.002857, 121.176292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.679474, -30.969820, 107.763519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.422623, -28.568213, 90.166145, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -168.624771, -24.559311, 73.175056, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.488419, 4.989126, -12.505265, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.069672, 1.312630, 0.800000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -209.778152, -28.509418, 124.644913, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.660950, -13.139356, 68.169518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.526077, -30.365080, 96.233894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.052338, 0.159323, 44.267715, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -338.130280, 0.112633, 46.599998, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -129.436829, 0.656171, 14.080331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.624420, 0.069183, -0.496667, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'hammerbeak_431' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -369.829193, 15.069108, 35.708076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.639099, 19.034811, 23.197189, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -349.274536, 6.536371, 109.095245, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.398926, 2.467660, 84.230064, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.567932, 1.125090, 31.142580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -375.911346, 1.051809, 74.666779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.546661, 1.604612, 22.896580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -199.485275, 2.158093, 6.506456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.707428, 0.095981, 43.603157, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.017365, 1.315657, 34.652439, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.620270, -2.576677, 9.671551, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.372589, 1.401986, 9.738690, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.311005, 2.988596, 2.444945, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'syrphidcloud_41' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.466049, 27.535706, -415.632294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -112.311241, 29.659466, -452.898926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -111.140228, 29.489735, -456.632935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.947807, 18.630487, -368.788391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.946095, 22.901558, -338.375122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -65.293419, 22.134720, -310.756500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.677475, 21.938700, -308.097961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.349937, 9.487349, -305.346405, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -113.466446, 28.024633, -397.309448, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.140484, 18.383497, -349.105286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.269302, 22.172178, -344.895966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.704227, 16.218281, -317.405396, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'hammerbeak_431' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.702316, 33.872025, -446.510010, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.646355, 10.480783, -324.141663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.368797, 26.791588, -289.778503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.286171, 16.276838, -340.310242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -121.318733, 25.104271, -380.967377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -122.229584, 24.877123, -377.505188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 18.747263, 16.215797, -349.247772, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.479435, 20.838026, -351.218750, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.510614, 20.519810, -347.030090, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -30.572090, 20.599014, -347.295410, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'syrphidcloud_41' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.545792, 4.048837, -288.528625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.170517, 15.278139, -253.580109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.921768, 31.102160, -134.397171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.640320, 18.527098, -425.756500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.898544, 5.768130, -399.291046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.994934, 7.472522, -291.442963, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.742828, 8.675222, -388.937225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.972778, 28.430258, -97.456123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.553162, -1.335998, -355.868011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.530197, 27.563112, -98.981491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.118622, 21.543591, -76.168953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.472351, 22.300694, -66.976128, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.199478, 20.674025, -68.542526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.559006, 27.282198, -116.293648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.320663, 16.213512, -411.069977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.604935, -4.920741, -317.281403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.478394, -1.102257, -378.153717, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.023590, -1.069958, -323.555908, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.588623, -4.211949, -316.253418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.550674, 3.683212, -249.466064, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'antlingworker_432' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.672668, 5.725224, -380.353394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.486115, 0.382593, -352.609497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.576035, 15.891566, -256.654694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.449860, 19.024891, -250.827515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.024704, 4.437086, -289.745239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -179.785187, 15.512178, -411.665558, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.869888, 16.793764, -410.182617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.026993, 20.398464, -443.788635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.056122, 19.603687, -425.392517, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.036758, 22.574421, -449.634033, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.454971, -2.713586, -327.377380, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.019165, -1.322632, -317.811493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.170593, -1.746717, -350.219360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.630142, 16.496622, -409.291626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.773361, -3.983918, -344.796509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.575333, -3.974144, -310.972046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.679825, 7.299078, -254.417648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.747940, 2.271596, -284.101563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.334564, -2.889948, -288.446289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -156.831696, -4.948355, -290.167999, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.969879, -4.270676, -312.507568, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 141, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirnshellsweeper_771' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.712357, 32.179573, -134.272324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.933212, 26.360641, -123.227745, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -484.991241, -25.187517, 201.670319, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -329.342896, -33.934418, 297.992279, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -318.308746, -30.914782, 177.337891, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -424.536438, -33.283409, 239.491302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -456.727295, -28.000910, 316.989502, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'dustymongrel_138' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.911530, -28.999681, 264.300781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.743607, -27.619967, 247.057297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -225.296005, -29.151970, 234.316254, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.771042, -28.740837, 255.437057, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -187.361252, -33.775242, 216.512009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.393036, -28.873592, 250.467804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.179962, -25.747940, 211.827621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.710510, -25.874268, 224.707611, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'tuco-tuco_206' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.678558, -33.616066, 300.312164, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -303.868683, -34.359276, 289.449341, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.651367, -31.280107, 205.473053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.382599, -31.038023, 198.058395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.642944, -31.578020, 207.164032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -507.679688, -20.569572, 337.038849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -499.235199, -22.309088, 333.848206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -424.403564, -31.286730, 301.295868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.184235, -29.008957, 314.151062, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.957764, -29.996052, 309.365234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -419.208740, -29.508144, 313.621094, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -273.777527, -35.258747, 137.535233, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -508.997345, -22.112411, 279.362152, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.639832, -35.407772, 148.410736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.426910, -35.501396, 147.168854, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.451172, -35.265522, 133.717224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -305.099731, -33.749275, 301.115814, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -392.863983, -32.881630, 297.657043, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -389.407684, -31.785336, 305.213654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -495.145081, -23.811481, 284.782135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -496.574371, -23.561522, 273.631775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -502.490631, -22.843765, 275.757538, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -487.431183, -25.043034, 265.572235, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.511841, -35.618446, 126.654160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -495.211609, -25.499161, 310.095642, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -485.739563, -25.898212, 312.546967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -486.865112, -25.530273, 315.123505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.873932, -30.354820, 216.113907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -362.939209, -35.152466, 215.493805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -363.506683, -34.636967, 205.680450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -374.480957, -37.692600, 262.140778, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.271271, -37.090099, 255.922150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -370.988586, -37.904465, 262.441589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -439.181396, -30.376070, 235.686996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -434.435852, -30.331448, 236.261108, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.834000, -31.706461, -67.328369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.165573, -26.173424, -55.797081, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.624481, -33.022179, -42.650204, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.458221, -32.725704, -44.317646, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'myotragusbilly_193' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.146774, -26.706688, 16.668758, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.638397, -32.341824, 103.193886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -301.051910, -39.132874, 30.185776, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.659622, -31.126200, 57.981880, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.230606, -31.469805, 8.866949, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'myotragusnanny_194' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.908386, -37.875786, 16.742508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.107735, -27.696709, 23.377899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -291.343140, -33.267673, 97.862312, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -273.037842, -34.323540, 89.681931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.513672, -33.604614, 94.919838, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.862793, -38.567112, 33.248394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.443405, -29.326656, 4.887208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.798996, -32.216972, 50.753544, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.341660, -33.248970, 68.851402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.419235, -37.095924, 39.347988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -222.852219, -37.343269, 36.708420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.841232, -29.003389, -4.135243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -187.212479, -28.667593, -11.253172, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'vandalousimp_21' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -364.092621, -16.086731, -134.470932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -335.121429, -12.310300, -146.503418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.660828, -16.950497, -121.999985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -357.916199, -13.559976, -145.579025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.828156, -8.161343, -222.491608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.001099, -12.161416, -163.291885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -329.731110, -11.344488, -141.097626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -385.424774, -7.739377, -226.486572, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'blowflyswarm_41' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -529.005371, -20.296566, 115.723396, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -409.923004, -30.964329, 50.385559, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -427.733551, -27.899689, 5.703920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -452.606354, -27.019609, 78.664604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -450.648926, -27.317963, 79.126144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -481.048523, -25.345230, 87.828316, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -485.405090, -16.382105, 5.979623, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -479.359344, -20.699858, 49.399818, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -461.533112, -19.991516, 8.722773, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -460.610138, -19.959024, 16.283731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -495.771057, -17.256380, 22.231327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -505.891876, -19.540010, 47.416748, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -550.252502, -17.063587, 82.358772, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -539.513855, -18.112019, 75.370293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.179962, -28.716864, 31.954006, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.427460, -35.463146, 30.167294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -548.459839, -11.228683, -114.085464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -549.478088, -10.367211, -121.207787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -507.344696, -5.328842, -149.964249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.804260, -32.056366, -47.423195, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'rottingcorpse_18' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -323.307404, -5.856354, -210.780762, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.644592, -12.273813, -263.138733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -312.740692, -8.968553, -241.169891, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -324.759399, -10.752277, -244.811203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -351.532471, -10.740891, -234.398849, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'rottingnoble_19' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -299.817566, -9.541530, -247.074829, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -322.715576, -8.995357, -226.656616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.668427, -11.842318, -261.122406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -329.615051, -12.056370, -228.737091, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'tuco-tuco_206' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -452.206543, -8.374084, -97.009766, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -456.835571, -8.327034, -97.224922, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -508.915070, -8.144362, -106.849747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -498.490875, -9.246281, -111.842346, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -500.925110, -8.065235, -106.325256, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -529.930359, -5.254326, -158.924606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -433.683044, -1.377185, -278.104187, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -463.289490, 1.913277, -277.107483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.423950, 1.998846, -287.840515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -464.792419, 2.070801, -280.055084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -445.890808, -0.501097, -258.405731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -466.084137, -8.760872, -134.507736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -412.274963, -14.629063, -123.086098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.326508, -13.628244, -128.333420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -417.743195, -11.475676, -136.692627, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -316.518402, -27.066162, -65.823196, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -313.421753, -26.403278, -66.796478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -364.770599, -19.993786, -48.161289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.112549, -20.375036, -51.276566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.338806, -26.541945, -0.368022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -375.277161, -24.883547, -7.235680, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.337311, -25.094240, 1.966228, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.386292, -29.348072, -41.733345, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -318.111542, -27.160318, -66.372932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -428.251740, -1.542237, -282.473877, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -526.710144, -4.604022, -159.191193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -524.716797, -4.472753, -156.816269, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.887634, -15.438148, 364.300751, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.815994, -17.860256, 365.976135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -34.281574, -19.345608, 366.615509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.584923, -16.069715, 368.177246, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.271667, -28.467062, 250.825638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.736450, -27.796406, 253.737991, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -132.088898, -40.237690, 109.988831, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.099541, -54.793976, 186.776688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.347713, -21.817692, 325.778137, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'myotragusbilly_193' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.033478, -23.383842, 270.089294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -251.875397, -36.464954, 355.037933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -188.349762, -29.238123, 284.410980, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.283539, -38.474163, 171.637787, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'myotragusnanny_194' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.203461, -24.581959, 292.276520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.558434, -23.737591, 297.012238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.074471, -25.012722, 296.553375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -220.626770, -33.268154, 364.314484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.721840, -36.393597, 158.874588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.374695, -35.473305, 165.655716, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.316299, -29.696871, 323.104340, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.694321, -30.739241, 317.769073, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.108994, -28.618093, 285.133636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -177.474213, -29.202887, 292.421173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.759262, -42.309391, 196.634842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.191559, -37.673050, 206.133942, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.524445, -38.939838, 205.554306, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 19, 420 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.952667, -32.593742, 433.704773, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.064301, -23.813620, 391.106354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.622894, -34.389584, 401.777100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.944168, -36.841331, 408.199554, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -321.627716, -22.423767, 430.467133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -329.618469, -21.524384, 398.891266, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'tuco-tuco_206' ) , 19, 420 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.625046, -33.955879, 444.113373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -414.527435, -24.722118, 372.622650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -411.635345, -24.929766, 375.622223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.510254, -35.633194, 444.918365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.227966, -38.731392, 450.520203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.377441, -35.755024, 456.193848, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.637207, -35.008701, 440.019806, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.285034, -33.459488, 442.363739, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.246155, -22.767551, 419.346985, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -352.676910, -21.276344, 415.302704, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -346.035797, -21.647738, 407.514465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.031464, -22.948454, 372.585510, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 19, 420 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.814056, -7.363220, 402.451660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 142.417358, -6.013386, 406.818542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.706802, -5.085683, 404.621460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.486176, -9.641673, 403.349426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.679642, -6.367616, 412.895142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.801483, -5.514339, 415.776520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.714233, -5.766311, 409.883545, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'chasmbuzzard_12' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.429844, 6.096233, -90.885643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 46.909683, 6.038020, -106.818878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.992106, 1.136188, -77.042572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.428836, 1.135599, -81.120918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.962696, 1.282207, -68.845734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.565632, 2.706309, -67.367546, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.208549, 1.956167, -53.140327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.750057, 4.113204, -88.710487, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'axebeak_181' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.103653, 10.362114, -116.409111, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.817749, 9.256701, -140.621918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.657646, 11.338365, -140.108582, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.426117, 3.901125, -191.832199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.434158, 3.743622, -183.984589, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'phurble_203' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.012466, -2.656372, 33.173153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.735611, -0.269737, 20.213810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 106.827316, -1.419361, -14.397512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.823868, -1.052194, -11.347628, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 150.893890, -2.959147, 38.616627, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.637772, -3.086644, 41.056332, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.158691, -3.330426, 45.657276, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.662201, -3.141382, -0.669094, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.343834, -5.448619, 25.655672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.981079, -3.603084, 28.575338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.382442, -11.482869, 57.932354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.684780, -13.262908, 41.934837, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.752884, -12.787717, 40.441483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.200226, 8.138439, -89.086197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.774261, 11.209060, -49.655876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.682510, 11.205635, -45.911793, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.594933, 3.377338, -63.015484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.594749, 3.077654, -58.888950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.809525, 3.894166, -64.439400, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 229.549194, 4.700777, -233.226471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.497482, 2.813300, -163.636047, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 165.335526, 6.628993, -137.983932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.833221, 7.021600, -141.903610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.970024, -1.785703, 38.579987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.266953, -2.305713, 34.628284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.175667, -9.578513, 40.719746, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.103333, 8.563081, -70.364990, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.400002, 9.943634, -104.725891, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 72.595512, -5.594739, -2.399326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.516129, -3.295207, 54.802887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.990120, -2.520883, 18.508915, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.107597, -3.085790, -47.860992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.597878, -0.985435, -46.101570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.666069, 6.658454, -78.786514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.436775, 9.910349, -103.659454, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirnroerunner_170' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.297249, 2.500169, 75.817917, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.621094, 2.091204, 83.127548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.513313, 3.431219, 83.543091, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'axebeak_181' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.971008, 23.860987, -192.556824, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.965729, 16.335798, -229.082153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 373.370117, 21.001823, -239.947159, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.809235, 4.948678, -176.027298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.223877, 8.225854, -220.383621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.818542, 11.820333, -244.057159, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.906830, 9.033947, -92.687920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.292984, 11.769240, -93.169754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 360.162109, 17.069096, -198.839828, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 367.716217, 17.483278, -202.369522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.240936, 6.239344, -197.825821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.527832, 11.406107, -226.573944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 269.140320, 7.657880, -227.893311, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 270.692474, 8.477456, -232.665054, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.761597, 14.526194, -63.249428, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.598770, 11.764691, 6.670747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.253693, 12.286627, 4.690894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.210846, 4.681228, 5.912809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.971516, 1.544646, -58.938843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.868454, 3.286330, -74.433182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.960129, 3.847299, -82.594696, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'bandittrapper_352' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.149200, 7.832132, -121.814507, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.250153, 7.425583, -117.148819, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.946014, 16.629387, -159.003784, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'banditarcher_353' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 252.805573, 8.143165, -110.037048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.666763, 8.045337, -120.896767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.752808, 17.365179, -153.768158, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'banditmage_354' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 255.702896, 10.444925, -133.856613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.059204, 8.081619, -114.215233, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.195984, 16.954216, -156.047668, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 229.430206, 6.290583, -133.613724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.949768, 7.940729, -130.528976, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.226898, 7.565547, -136.333984, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'phurble_203' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.778137, 0.284409, 24.048899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.781082, -1.815820, 35.538292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 224.956009, 3.288124, 29.590294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 251.532928, 10.957792, -2.426377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.516724, 12.238542, -6.506516, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.951050, 11.789901, -4.733750, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'bumblebeetle_36' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.287567, 10.992482, 11.515173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 266.327637, 9.818665, 10.560208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 241.530197, 9.143084, 7.788676, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'goldenfleece_204' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 438.447174, 14.981830, 119.057930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 407.329865, 7.785298, 138.902893, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 404.780731, 7.140129, 140.676254, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 407.674103, 8.365909, 134.401047, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 433.261719, 5.646908, 163.707321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.744324, 14.407484, 137.404663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 461.093567, 15.694507, 135.974991, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'mirrorknight_399' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 453.449524, 12.238844, 147.294937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.008972, 12.026990, 127.154160, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.551147, 2.849841, 220.490952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.230530, -7.157960, 248.519028, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.046967, 2.253586, 239.829697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 386.268005, -7.850298, 210.047943, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.974152, -8.712187, 201.061829, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.496216, -6.169793, 193.508133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 328.139160, -0.957204, 222.227661, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.047333, -0.146038, 232.506882, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'mirrorknight_399' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.452179, -3.336429, 245.358948, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.626251, -9.356419, 196.715912, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 462.282684, -41.734840, 272.434937, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 438.799805, -32.313110, 293.936768, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 466.766510, -42.383240, 279.832733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 489.856232, -53.608055, 267.318604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 494.171722, -63.775795, 235.969818, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.657654, -64.221817, 255.395981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.442688, -64.269775, 240.372803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.751678, -64.790436, 249.730850, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 395.183441, -19.850119, 255.316437, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 399.050873, -19.599689, 259.573761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 384.783997, -18.387295, 277.796265, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'goldenfleece_204' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 233.701202, -44.282707, 274.014404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.699997, -43.795216, 275.533844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 186.764206, -30.602200, 257.407257, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 224.159866, -2.044894, 184.268387, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.558014, -3.821499, 186.065369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 238.254990, -15.797669, 154.910095, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 227.631393, -15.421698, 154.252182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.508408, -15.438535, 159.015457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.112900, -14.476564, 153.974579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.033295, -16.599995, 137.826294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.097473, -16.817944, 138.943665, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.210663, -16.955101, 140.750946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.222565, -10.778378, 161.037933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.550415, -10.331572, 159.398483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.415802, -20.319990, 111.112953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.613464, -20.236130, 108.895203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 343.689056, -7.436459, 147.937241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.355988, -7.168438, 155.882507, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.669617, -11.453640, 173.856171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.242981, -14.804549, 162.290604, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'mirrorknight_399' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 319.996765, -21.125742, 116.999382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 443.110687, -63.587006, 206.607239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 388.656891, -18.258707, 262.557495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.888123, -19.480589, 128.800354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.258331, -63.628407, 212.745209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 255.740097, -16.554155, 168.694962, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.876038, -63.319862, 205.396240, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 443.811462, -63.286488, 199.766144, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.710358, -20.490881, 229.019791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.676514, -17.350208, 219.142181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 490.652618, -6.790624, 229.868713, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 486.885712, -7.209616, 236.287659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.740356, -20.526875, 226.544983, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 145, ( SELECT id FROM bnpctemplate WHERE name = 'mirrorknight_399' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 484.698792, -7.375312, 254.274094, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 459.535492, -13.523539, 215.478180, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sabotender_176' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -341.637085, 15.248937, -369.547394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -346.753113, 14.632287, -367.786255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -352.496124, 15.143094, -376.132904, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -403.704224, 14.415089, -397.821411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.979431, 13.427110, -381.696014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -403.571777, 13.655423, -385.639709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.541382, 12.458455, -349.999512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -301.948059, 20.806694, -343.346527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -304.512543, 20.637697, -349.514374, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.563370, 18.185057, -283.109314, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.150772, 19.364697, -288.569977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.075333, 19.599781, -289.872253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.258453, 20.512615, -301.388428, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.727753, 20.619194, -300.036346, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.429916, 20.102016, -292.526855, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.830505, 14.100457, -306.136353, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.538300, 12.465477, -273.346954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -336.673645, 12.351367, -272.477112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -367.908661, 12.565961, -311.766724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -362.793396, 12.856035, -318.004181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -366.404633, 12.726810, -322.908661, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'potterwaspswarm_57' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -382.758759, 13.726509, -372.601440, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -325.927917, 17.958885, -393.933655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.227081, 12.105808, -273.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.109406, 4.529190, -241.368805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.699722, 4.325295, -241.154373, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaabruiser_167' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.174934, 16.337717, -279.724518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.742153, 14.339200, -330.423615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.968165, 15.539780, -293.998108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.754883, 15.457340, -292.500214, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaaseer_169' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.172852, 15.518430, -288.410797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.880569, 16.603331, -306.262177, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.867146, 14.588022, -326.988495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.294027, 17.117447, -339.271637, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sandskinpeiste_174' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 1.703295, 7.590187, -536.395752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.003557, 6.297407, -591.194946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.345047, 14.672602, -543.803162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -125.636925, 15.845934, -591.975586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.557884, 14.025711, -625.867859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.444565, 18.585466, -567.216980, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.196949, 5.440549, -544.580688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.589753, 7.526525, -532.481445, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'fallensoldier_18' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -75.178520, 14.496999, -216.672791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.461090, 15.902476, -250.280731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.489983, 14.831576, -238.253891, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'fallenmage_19' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -110.942314, 15.675309, -250.188339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.341881, 15.392420, -237.287003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.635643, 14.480289, -207.420853, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'temperedsword_2259' ) , 26, 6039 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.000237, 15.189289, -230.438416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.057976, 15.246635, -229.829453, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'temperedbrand_2260' ) , 26, 6039 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.033096, 14.625609, -222.886642, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.966988, 15.189769, -217.586121, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'potterwaspswarm_57' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -156.889648, 20.725876, -533.183167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -109.671623, 21.149654, -488.154846, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -65.190979, 5.195847, -579.018921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -71.552124, 16.732939, -266.645203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.952515, 16.603691, -265.845032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.176331, 6.025636, -480.301727, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.676399, 6.171919, -485.482910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.842543, 8.333550, -515.615540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -29.735718, 3.146374, -552.813232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -192.497482, 20.943213, -298.499512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.478844, 18.252909, -271.848511, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sabotender_176' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.150547, 8.041116, -648.016907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.191765, 3.281225, -683.554016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.303432, 3.347896, -685.575378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.847412, 4.300720, -661.052612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -11.873814, 4.075322, -661.723145, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -29.046093, 4.724108, -643.456482, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.035313, 6.777255, -613.198730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.902639, 6.752831, -615.032898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.415493, 6.472792, -620.134338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.025322, 5.021073, -639.474182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.776642, 7.660436, -675.639282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.377548, 7.963757, -676.130859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.402561, 7.782623, -670.331299, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.784859, 14.643532, -716.568237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.348373, 14.574419, -715.631104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -76.552818, 13.243704, -713.007568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.773186, 14.474371, -718.843567, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.795776, 9.046797, -714.967712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.057232, 9.454026, -717.463318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.356262, 11.267091, -719.176208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -25.001568, 5.933284, -692.732666, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'potterwaspswarm_57' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.569916, 13.625988, -692.940430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.455441, 4.199953, -677.880371, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.488113, 4.564605, -635.682861, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sandskinpeiste_174' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.165131, 25.067472, -470.628754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.027023, 23.394819, -500.301514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.685059, 23.105383, -515.495972, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -231.411407, 23.979979, -422.153656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.539398, 20.283255, -409.838745, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.117401, 23.670439, -424.076599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -274.116791, 26.772181, -450.126251, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'rockskinpeiste_2188' ) , 28, 6714 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.253418, 25.279840, -448.596497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.940979, 24.143250, -481.751343, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'CorpseBrigadeknuckledancer_363' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 154.758194, 4.221159, -538.420471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 157.473602, 3.439358, -566.348633, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.494278, 2.644275, -612.663025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.284698, 2.822876, -604.577820, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.811409, 3.981382, -641.041382, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'CorpseBrigadefiredancer_365' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.623222, 4.398694, -655.155884, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.769608, 6.196021, -525.639038, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.263565, 3.255352, -594.161682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.864502, 3.048638, -606.225708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.221619, 3.050266, -610.632446, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'potterwaspswarm_57' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 169.683044, 8.914387, -521.328308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.245499, 3.730744, -681.089966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.977226, 2.696516, -667.625244, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.155174, 2.723143, -672.675476, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.447769, 20.940304, -539.291321, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.534149, 24.382538, -450.402863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.618927, 21.723251, -410.969055, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sandstonegolem_30' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.285141, 14.031194, -465.552490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.901810, 10.457961, -468.261444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.616154, 11.546996, -485.890137, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.237967, 9.004092, -485.614227, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.610054, 11.354488, -429.192810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 142.041260, 10.432861, -448.978912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.007725, 6.058152, -433.481140, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'potterwaspswarm_57' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.484131, 3.781368, -352.528961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.012569, 3.972790, -354.171326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.860119, 7.139668, -438.591888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.107391, 10.057013, -454.467743, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'firesprite_134' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -420.561157, 6.119120, -24.841024, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.329071, 4.686082, -60.768394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.495453, 5.086989, -90.344429, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'angler_356' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -394.017303, 4.791004, -44.808750, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -409.121918, 3.708094, -46.633347, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.283722, 5.007236, -73.923218, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -285.345703, 4.687445, -64.785225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -261.327698, 4.535207, -141.611847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.296387, 4.820094, -157.085388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -224.669327, 4.138251, -166.487625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -217.325714, 3.668946, -171.291916, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -395.609406, 4.660939, -44.472633, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -278.121063, 4.849409, -59.821224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -256.179474, 4.453109, -96.875435, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'firesprite_134' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.684631, 12.601675, 667.370972, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -299.866577, 5.548285, 806.432190, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -174.263855, -3.505442, 850.275940, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.827942, 6.342593, 880.352661, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.840027, -1.759316, 889.026367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -253.007797, 2.837920, 697.425354, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'duneangler_2268' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -117.050583, 7.017793, 484.323761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.771515, 7.345415, 491.677887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.430984, 9.836941, 474.048553, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -198.288666, 9.965641, 455.557739, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.370468, 9.119872, 423.690063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -117.780418, 7.976282, 450.519836, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sandworm_357' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -408.211731, 3.262074, 640.299377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.210938, 5.585324, 616.339722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -369.904541, 1.470382, 832.272827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -384.078705, -0.742431, 897.945007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.580048, 9.488121, 856.222656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -224.999695, -0.824747, 780.274475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.020782, 2.253085, 695.594849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.894928, 15.951363, 600.319336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -280.694519, 8.655359, 673.722656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -300.155334, 1.210423, 739.073425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -325.037415, 1.126598, 736.725403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.606232, 16.449139, 597.034241, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'russetyarzon_42' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -368.446472, 7.079077, 548.377747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -386.341644, 5.892193, 581.836365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -408.777100, 9.377183, 480.405640, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -430.868256, 7.637902, 524.583679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -434.151520, 7.418620, 526.732300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -428.133240, 6.389795, 568.580627, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -311.121521, 7.708793, 543.937317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -394.593506, 8.462166, 529.714233, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'firesprite_134' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.621212, 14.405364, 501.829407, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.816879, 9.778998, 438.623199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.908875, 7.130990, 511.457581, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.659332, 7.624303, 580.384583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.938904, 5.167058, 806.075195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.432465, 4.370359, 797.631470, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 142.249069, 7.074224, 632.121582, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.287848, 1.652231, 674.602295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.575623, 15.969944, 575.116882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.726723, 8.047317, 476.976929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.920685, 8.077539, 898.669678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -62.161049, 8.957856, 369.100189, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.554071, 17.036455, 583.447998, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaahalberdier_166' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 329.217773, 7.210039, 663.189209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.579697, 8.834900, 694.209229, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaasniper_168' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.206451, 8.976408, 718.176514, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaadivinator_169' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.062347, 8.689137, 622.257813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.314667, 8.224250, 725.866455, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.469025, 7.006060, 666.662964, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'smokebomb_17' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.861313, -1.443766, 787.843567, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.283966, -7.100940, 673.698914, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.124119, -1.645207, 693.384277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -42.304230, -1.230455, 674.710938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -29.125389, -0.075589, 758.180969, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.369633, -0.763578, 771.949463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.123611, -5.725849, 701.820007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.106903, -0.080513, 681.678772, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.764603, 0.884840, 740.086853, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.181778, -0.461543, 770.968079, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.632187, -1.305815, 782.926636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.451012, -5.433787, 693.237671, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.180862, -0.852001, 684.498718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.521179, 0.284155, 731.218750, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.900406, -0.416264, 768.694031, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sundrake_190' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.637024, 5.312876, 918.295715, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.008537, 4.474587, 851.856934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.060822, 5.402318, 821.557617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 199.309921, 5.171023, 860.329529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.732697, 5.800343, 869.839417, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 229.483826, 4.685165, 905.245483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.311859, 6.210077, 817.914368, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.606125, 3.169069, 756.310730, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'angler_356' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.308365, 8.451810, 417.437927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.465866, 12.394971, 549.543701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.070523, 10.603338, 466.204926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -34.128860, 8.285004, 408.654663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.990744, 8.227112, 416.061676, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'sandworm_357' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.980301, 14.692114, 537.528442, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.608803, 19.052532, 513.785461, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.914835, 25.467201, 549.466309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 156.095917, 8.271113, 584.728333, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.751390, 0.646676, 708.559143, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.306107, 9.027570, 618.961975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.760128, 12.244857, 620.913269, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.158424, 10.739512, 629.228577, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 100.541542, 5.774489, 656.338074, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'firesprite_134' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.832245, -5.246658, 867.725220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -42.541096, -4.043981, 852.046387, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.607573, -2.413896, 819.853699, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'fallenpikeman_18' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.895882, -4.957826, 847.381348, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.694870, -5.392631, 839.152222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.610128, 0.594987, 836.949585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.254620, -4.733998, 818.668579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.064323, -3.446026, 885.889832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.329031, 4.742103, 842.769043, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.401953, 13.248557, 863.071045, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'fallenwizard_19' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.825668, -4.996397, 849.412354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.412384, -2.633514, 870.829956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.467678, 5.540044, 876.900452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.727427, -3.291145, 829.680115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.259717, 13.372457, 862.419312, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'flamingbeacon_2452' ) , 43, 4092 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.789200, 7.827881, 41.184078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.600403, 7.156433, 195.910507, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.088593, 16.372860, 105.149902, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.508598, -1.658285, 50.827759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.309811, 4.196167, -48.355900, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'bronzetortoise_358' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.399730, 1.977385, -28.298733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -181.654190, 7.786726, 21.221775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.621262, 5.675678, 96.065308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.169006, -1.989179, 27.018183, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.116562, -2.351030, -3.361914, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.756050, -0.385014, -22.766054, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'wildfiresprite_134' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.142700, -16.056576, -170.844162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.148460, -13.947739, -170.307663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.576111, -14.467867, -140.796417, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -99.919853, -14.516395, -141.793182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.228043, -14.572890, -152.611633, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.228798, -1.742130, -50.460953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.735497, 1.344494, -138.473465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.404961, 4.148643, -262.911652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.433735, 0.029302, -159.958862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -64.087242, -1.054137, -104.986603, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaalancer_739' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.650208, 14.867290, 104.792099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.418045, 8.960932, 196.856201, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -17.239441, 3.551795, -44.301022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -158.980392, 7.004421, 30.758135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.376999, 7.622232, 46.231140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.417614, 5.007117, -297.900543, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 55.832760, 2.914429, -254.505203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.335579, -1.704363, -70.573563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.589996, -1.294506, 54.013149, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.673996, 6.331677, -100.276588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.289246, 6.701437, -37.104916, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.094299, 6.971589, 5.938132, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaapugilist_740' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.912399, -1.627557, -59.626724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.658810, 2.883911, -257.434998, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.576065, 10.083600, -74.354652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.145729, -1.087839, 11.518380, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.857368, 3.227112, 15.065477, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaascavenger_741' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.388474, 10.364731, -66.997131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.421150, -1.457429, 12.315417, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.554953, 1.917071, 11.004889, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaathaumaturge_742' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.834267, 3.632653, -37.418789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -117.742378, 6.413233, -91.360420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.055893, 8.728711, 200.963898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.293884, 15.419995, 113.310310, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -105.390503, -1.053115, 46.289669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.702461, -1.374928, -149.206711, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.989525, 0.089759, -62.506634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.946030, 6.346056, -42.631248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.735237, 4.376378, -275.076965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.313454, 4.177588, -279.141144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.893539, 7.614229, 33.332115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.883812, 13.508634, 78.084023, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'wildfiresprite_134' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -143.013733, -0.592308, 41.740612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.948830, -1.911550, -18.411327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.118629, -1.746160, -10.671707, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.587555, 9.706877, 206.937103, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.293388, 5.826110, 248.873886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.291634, 5.968055, 250.556946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.407642, -1.249332, 6.089018, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'infernalbeacon_2452' ) , 46, 4720 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.839230, 7.949890, 350.362305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.342300, 15.152160, 25.375731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.016403, 9.690581, 194.451294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.155090, 7.522644, 120.195297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.458000, 7.766785, 222.339096, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'irontortoise_358' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.680191, 41.579773, 238.646957, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.038116, 7.429049, 165.419800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.810207, 35.419151, 163.705551, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.364502, 9.304556, 215.790024, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.180153, 9.005600, 125.016129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.812363, 13.239532, 86.309166, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'wildfiresprite_134' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.073685, 12.298316, 75.412491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.168711, 4.685289, 35.507931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.296327, 5.906263, 41.927876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -47.543144, 12.888443, 192.945587, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.729973, 29.195835, 122.962425, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaalancer_739' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 24.765381, 2.935364, -0.717224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.215103, 18.539671, 118.211700, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaapugilist_740' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.199997, 8.107705, 377.782074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.098549, 8.290431, 358.887665, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.110596, 8.312845, 225.041367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.874367, 12.161098, 177.435791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.475019, 7.854693, 126.699791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -110.631783, 12.370812, 71.109428, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Amaljaaarcher_741' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -39.757469, 8.053680, 353.966003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.793884, 8.501403, 330.349365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -40.202156, 7.328951, 46.249523, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.193817, 29.555590, 125.733536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.614960, 7.846071, 118.196198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -109.675301, 7.278503, 224.872192, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'wildfiresprite_134' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.000244, 14.317109, 136.725510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.686241, 45.827126, 181.504791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.043915, 37.286160, 186.639313, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.434013, 38.643044, 210.884857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.493774, 40.027107, 153.948532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.211464, 45.827122, 207.091202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.059128, 40.027111, 140.885635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 225.193863, 8.391061, 88.093117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.167091, 9.983710, -10.440239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.303162, 8.730277, -22.490503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 252.749008, 8.027106, -34.523930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.456970, 8.180751, -27.886890, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zaharakbattledrake_190' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.034088, 18.243265, -87.551544, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.083038, 12.749393, -100.036491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 516.161255, 9.640808, -123.212944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.886963, 9.023446, -136.208267, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zanraklancer_739' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.528801, 14.027109, 143.175400, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.905880, 45.302959, 212.664902, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.827759, 45.827126, 199.145401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.005997, 8.290737, -31.478350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.853271, 43.381351, 152.910599, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zanrakpugilist_740' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.016876, 39.417065, 203.709488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.628304, 45.792240, 195.269699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.879784, 16.027109, 14.440109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.267319, 8.271753, 105.897232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.596291, 26.120790, 210.481308, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zaharakarcher_741' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.505280, 9.562332, 80.051132, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.678680, 10.340173, 15.870884, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zanrakthaumaturge_742' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.072525, 44.210785, 221.914124, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.839142, 45.827122, 192.293228, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.105103, 15.030030, 20.462339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.082199, 13.908605, 154.763260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.326508, 8.950879, -44.180370, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'wildfiresprite_134' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.070587, 8.500033, 196.277740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.806656, 14.325973, 242.050598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.029892, 14.027109, 233.203278, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.394547, 9.821754, 312.606354, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Ifritsbeacon_2453' ) , 49, 5346 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.138977, 7.599622, -162.231705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 554.650085, 7.583679, -67.246582, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.672913, 8.000000, -42.948238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.712006, 9.286700, -45.325851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.717804, 17.929260, -60.318909, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zaharakfortune-teller_2457' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 449.282867, 18.623535, -90.035805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 553.487549, 7.816592, -88.991714, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 445.805450, 17.459652, -108.979927, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 186.678925, 8.791388, 122.226891, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.563324, 8.075365, -35.431042, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zaharaklancer_739' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 549.767212, 8.101091, -67.267418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 569.926575, 7.679561, -77.731194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 445.548096, 16.930063, -115.800697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.709015, 8.027107, -40.641960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.771210, 8.027107, -31.998230, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zaharakpugilist_740' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 534.650330, 7.666656, -75.784973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 359.487671, 10.546420, -39.838196, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 484.977386, 7.614197, -157.701996, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zaharakarcher_741' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 551.979187, 7.748689, -87.737953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 417.063385, 17.715700, -63.623531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.528900, 7.614197, -157.915604, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 146, ( SELECT id FROM bnpctemplate WHERE name = 'Zaharakthaumaturge_742' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 552.483398, 7.688183, -164.965302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 405.248047, 13.053968, -130.411453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.391602, 9.231154, 192.303696, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 533.592712, 7.583679, -79.881042, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.665466, 7.823730, -67.334938, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'earthsprite_131' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.346649, 26.259094, 14.642432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 232.858307, 25.632786, 14.955478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.924042, 74.971878, -202.032852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -187.285172, 82.665749, -246.584930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.597565, 81.648216, -329.199585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.501595, 86.456268, -349.405518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -34.358799, 78.512024, -196.636612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.571785, 77.054176, -182.964096, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.578163, 69.538994, -169.659973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.078644, 67.190193, -118.325851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.842507, 25.616442, 164.051804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.771095, 17.647955, 202.804016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.738251, 22.061142, 219.128433, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.077728, 27.914995, 62.406277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 192.330444, 35.835247, 19.689339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.857788, 32.042034, 95.480743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.526546, 77.684761, -227.584824, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.795624, 65.244659, -92.804619, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.372234, 4.636005, 328.819397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 154.605530, 37.865871, -24.933550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.656250, 38.166508, -15.688833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 22.651194, 13.451909, 241.516846, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.692810, 75.537476, -182.811188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.377419, 23.088291, 136.286377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.977472, 8.868483, 301.567749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.277985, 83.600578, -178.720932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.468658, 81.996193, -172.338501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.935974, 84.649086, -274.661774, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'basilisk_173' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 150.453583, 27.128872, 54.885288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.284470, 31.440422, 48.775787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.711401, 31.254837, 91.673286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -22.262447, 24.348066, 171.001144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.365470, 23.606548, 180.301910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.601257, 19.542013, 131.429626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.008354, 27.618736, 82.069031, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.510628, 11.202947, 271.445587, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 55.694408, 16.873295, 265.157410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -25.266243, 11.833083, 253.714188, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'ahriman_183' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 199.150482, 39.068298, -32.129677, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 208.474136, 43.766556, -66.055115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 174.022675, 35.356552, -49.180737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.205338, 37.562992, -3.528185, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.927391, 37.525364, -0.135278, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.141998, 32.739376, 18.655071, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'quartzdoblyn_188' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.320732, 17.268885, 246.863098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.086929, 16.506996, 212.374573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.842575, 22.799400, 258.606964, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.609512, 20.479364, 256.873932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.140289, 21.188807, 199.365036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.411377, 16.311975, 193.273621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.223076, 16.391766, 238.424759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.124290, 15.835924, 215.355652, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'magitekvanguard_200' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -280.370941, 85.128975, -342.669586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.039352, 82.803452, -311.552490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.529449, 74.561211, -161.044113, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.655823, 79.736610, -226.101517, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.676758, 86.081673, -249.953674, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.982803, 84.872787, -296.114166, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.829193, 78.923370, -217.777039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.001892, 85.625580, -209.143982, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.578445, 26.181999, 86.762772, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.653030, 26.069843, 89.225342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.075180, 25.109739, 68.360191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.116760, 25.510574, 66.628998, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.621033, 24.552204, 104.644302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.352570, 25.641911, 98.068253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.394241, 23.285707, 81.178917, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorthoplomachus_55' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.361855, 75.995209, -237.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.171371, 81.210640, -181.057037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.581039, 74.035225, -137.754211, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortlaquearius_61' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.431381, 83.468681, -321.822327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -141.470108, 79.503258, -285.622284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -225.353302, 84.852760, -271.862854, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorteques_62' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.793793, 81.195198, -184.122299, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.621918, 74.364586, -179.232422, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.339554, 77.724770, -226.318283, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsecutor_63' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.277405, 79.074280, -311.302856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.730972, 83.621918, -273.177856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -224.933304, 84.489143, -253.589706, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 147, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsignifer_64' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -185.029236, 83.130669, -345.158630, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -152.762573, 79.673561, -293.347260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.546707, 78.508194, -256.979431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.367599, 84.489143, -253.589706, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.376755, 75.401794, -195.596054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.989059, 81.125122, -187.777740, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'diremite_10' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.628685, 1.061885, -137.422470, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -121.822311, 10.889467, -171.708679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.000000, 13.577934, -164.798004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.173904, 3.043425, -102.049179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -111.489006, 6.341215, -143.777435, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.803215, -4.827935, -88.829384, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.013268, 0.083621, -166.178970, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.153580, 1.041577, -164.378342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -82.199898, 1.694072, -142.144104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -76.462738, 1.296831, -145.068008, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -77.473900, 1.008707, -137.105881, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.553284, -2.327822, -119.974693, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'roselet_22' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 92.963821, -27.435154, 270.669739, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.274307, -24.632656, 295.424225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.803177, -25.286867, 283.650604, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.837082, -22.388355, 293.875549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.492561, -22.994869, 282.575226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.401665, -26.877176, 251.655502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.955597, -28.829510, 290.412109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 55.501083, -23.877287, 268.858612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.453354, -24.698858, 262.820648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.990419, -23.865816, 230.163635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.474773, -18.248474, 194.654251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.179913, -26.373119, 259.201996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.401993, -24.890810, 241.436737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.396263, -24.856871, 241.098450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.639015, -26.263350, 272.387512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.997978, -20.864256, 215.338074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 72.956024, -10.983517, 156.957138, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.185547, -19.389683, 206.446136, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.626221, -10.944998, 168.910522, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.582161, -12.419448, 163.349792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 46.162750, -17.224142, 189.141357, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.079430, -18.299120, 187.545395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.989685, -11.588077, 173.469421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.889450, -8.618326, 160.544571, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.350967, -7.611373, 153.676712, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.230057, 1.903774, -13.731684, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -178.179077, 5.516150, -119.062088, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -199.247559, 2.972281, -21.075798, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.393768, 1.128686, -138.798370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.301628, -24.018532, 292.677338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.405472, -20.056805, 219.437836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.007538, 1.498474, -65.815094, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.702942, -24.807083, 242.654404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 38.844570, -23.761169, 234.167419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.791592, 0.482847, -163.756653, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.049255, 8.475297, -152.844223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.679504, 2.066510, -117.595428, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.907829, 1.960494, -118.052917, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.777473, -15.205773, 190.824478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.223724, 17.572083, -68.077675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.820824, -13.008604, 173.216446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.354004, 26.867769, -85.326767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.288040, 27.260298, -85.899101, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.400000, -1.692394, -105.400002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.026630, -4.655549, -93.328072, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.249790, -14.996393, 177.209091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.102264, -12.208728, 170.790237, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirnscrambler_771' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.568405, 1.504992, -84.178993, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.856293, 1.439267, -83.871033, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -222.971802, 0.685278, -66.537102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.471252, 3.402261, -106.832718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.325211, 2.934023, -97.279800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.316330, 1.852328, -92.422066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.172699, 1.359615, -82.278023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -193.905304, 2.329746, -41.069290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.513901, 2.810355, -40.186169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.485855, 2.525317, -62.684227, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.165512, 2.934123, -78.306992, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'arborbuzzard_12' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.871674, -32.401142, 412.022308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.340912, -28.733643, 423.597931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 214.529922, -32.015060, 388.627380, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.119202, -32.812939, 410.921906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.283875, -31.398991, 408.073364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.956757, -32.091961, 436.908508, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 377.352844, -31.827904, 447.103149, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 384.155212, -31.663025, 436.299469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.948853, -30.222733, 402.539429, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'treeslug_39' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.673355, -22.947695, 454.014984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.439377, -22.593443, 450.299408, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.868286, -20.297173, 455.159607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 198.445663, -25.744005, 437.670288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.035538, -31.805525, 414.145264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.062286, -21.793236, 465.750458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.907990, -25.828238, 457.407288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 170.063431, -27.721090, 443.054413, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.210205, -24.042336, 407.719543, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.037720, -23.966667, 501.846741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.785156, -20.947470, 517.044128, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.812714, -22.009941, 517.973572, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 173.288422, -30.252390, 392.219788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.999023, -32.778576, 370.144958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.260681, -29.262089, 390.371765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.326401, -29.031742, 397.002136, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 173.665894, -30.627438, 391.092224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.766571, -28.642542, 424.349548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.412415, -27.950277, 422.768738, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.525162, -31.581652, 395.687103, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.270355, -32.527424, 371.755768, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.349457, -28.371782, 358.761475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.636566, -32.096828, 366.900238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.986450, -27.078384, 338.739105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.859375, -31.857883, 331.353821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.710297, -31.769693, 354.468109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.231232, -31.009758, 392.433319, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.985840, -31.339169, 390.300018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.988922, -32.292389, 395.732330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.894775, -32.433437, 409.564178, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.958191, -30.812187, 440.105194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.146240, -31.570524, 412.483978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.070190, -31.518383, 404.851624, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 178.322464, -22.760355, 462.363007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 152.464340, -25.277473, 446.155548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.154541, -20.902292, 489.347412, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.838974, -19.703629, 415.125610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.600006, -28.092390, 398.534088, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.339462, -32.190460, 368.880737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.940552, -31.227783, 401.603241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.642197, -29.904444, 409.563843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.153229, -30.626743, 344.506226, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'diremite_10' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.338577, -27.788364, 377.030365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.695499, -28.946325, 393.566162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -65.314896, -31.808357, 347.798553, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -131.726898, -29.710154, 336.497589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.996429, -24.364408, 264.629181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.169128, -31.637348, 346.756592, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.657040, -24.550268, 266.611420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.899203, -23.649124, 262.723785, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.308218, -27.439459, 351.381256, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.200935, -26.319284, 294.082031, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.991608, -30.299643, 271.951141, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.358397, -27.830235, 281.243225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.000000, -35.892399, 313.799988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.713101, -27.106274, 326.286743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -10.412036, -28.364920, 333.574677, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.735062, -26.539701, 298.739655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.555740, -27.375446, 287.336456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -56.487461, -27.324949, 295.789703, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'treantsapling_1446' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.644939, 1.910532, -222.656082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.029297, -0.733251, -346.565125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.999542, -0.676019, -278.587769, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.277710, 4.292109, -167.523819, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.695900, 9.628961, -246.828232, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'firefly_306' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.765442, -39.467369, 298.124542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.033188, -39.877441, 322.611816, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.810493, -39.894100, 301.496857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.546356, -39.752750, 325.814392, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.879131, -31.773855, 350.113678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.183121, -30.871151, 365.910309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.683823, -30.205681, 271.887878, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.840358, -30.212530, 276.275146, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 1.602265, -27.095432, 316.985504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -21.404165, -30.012411, 285.749634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.467873, -24.859665, 358.070404, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -164.976135, -27.615164, 297.350220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.515106, -28.940987, 308.539520, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'magickedbones_20' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -119.995438, -38.550632, 310.434265, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -98.390495, -39.841999, 296.969635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.191437, -38.825581, 314.576813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -107.986366, -39.247913, 302.945679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.858032, -39.903397, 319.021149, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.556740, -39.984810, 303.427277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.904602, -39.529846, 286.260223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -94.953033, -39.893120, 312.189362, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'roselet_22' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.687691, -31.346540, 422.569794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.372658, -35.789463, 468.108215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -62.727562, -35.406391, 450.055908, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.928879, -33.671478, 431.249451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -76.665840, -35.810150, 462.182556, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.396050, -33.291988, 435.106445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.264236, -30.635447, 410.295898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.578239, -36.469425, 468.561157, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.835999, -35.663269, 468.651733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -61.334869, -32.817913, 434.129944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.977884, -32.469051, 410.050476, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.920985, -33.477440, 431.857513, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'treeslug_39' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -206.910126, 4.808809, 6.238858, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.075775, 21.450588, 167.214005, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.803802, 21.822042, 164.594513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.753510, 14.285810, 57.554123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.057785, 13.020657, 51.510540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -241.487534, 14.996897, 59.638355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -251.611023, 8.764174, 14.704113, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.098724, 21.497131, 165.442032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.336273, 20.383064, 91.554504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -334.946686, 21.881182, 166.610153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -352.745850, 21.307608, 196.555359, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.487976, 21.102627, 125.369781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -291.525635, 20.444477, 130.491730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -301.484161, 21.516384, 135.435883, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.065857, 17.431211, 56.067650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.414795, 21.546160, 202.315430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -331.383759, 21.253107, 208.568344, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.148743, 21.376703, 208.266205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -338.915009, 21.307611, 156.285309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -241.669235, 8.185644, 3.426115, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'treantsapling_1446' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.469940, 18.444693, 82.340118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.518402, -2.576491, 59.584904, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'groundsquirrel_37' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.167007, 15.307610, -259.953857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.144295, 15.124450, -259.230743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.491623, 17.928190, -266.097076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.258797, 15.556482, -265.650421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.743187, 16.881918, -260.347870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.310646, 18.418665, -250.166595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.352554, 17.825777, -247.641937, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.757286, 16.642553, -259.313324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.254471, 11.407258, -243.113861, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.954445, 15.044180, -259.695038, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.793892, 14.264322, -256.205750, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.593689, 17.858650, -243.403168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.021400, 25.101040, -311.604492, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.628906, -2.029270, -42.382439, 0, 2280260 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.418900, -6.971872, -84.529358, 0, 4295664 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.695297, -6.948534, -90.459633, 0, 4295663 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.910706, -6.438695, -96.608414, 0, 4295662 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.951797, -6.332520, -100.114502, 0, 4295661 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.641701, -6.332520, -100.389198, 0, 4295658 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.146896, -1.968804, -48.332958, 0, 2280263 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.467598, -2.005454, -46.176739, 0, 2280262 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.693558, -2.029731, -43.942860, 0, 2280261 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lightningspark_2267' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -286.146332, 59.530861, -122.253304, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.260284, 62.401405, -173.847031, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -300.941650, 59.946960, -127.583969, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'toadstool_48' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.206238, 61.086544, -110.185509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.247803, 67.603218, -219.369263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -297.000000, 68.907608, -227.800003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.329651, 68.054695, -181.488235, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -241.623581, 69.088776, -183.513229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -289.361572, 60.892815, -169.598358, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -304.102295, 62.585384, -169.120514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.212830, 61.045906, -159.708511, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'groundsquirrel_37' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.528153, 5.176176, -235.953568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -11.479017, 4.058876, -233.589691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.314774, 1.404344, -200.577591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.282665, 5.194685, -250.797653, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.726212, 3.730412, -142.597839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.575045, 2.095117, -195.439224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.175835, 4.496076, -187.542358, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.709656, 4.596783, -180.847031, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.182411, 4.455481, -171.789734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.764153, 8.261503, -235.314056, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.642900, 3.209663, -174.285065, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.151902, 1.660734, -188.397446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 72.863739, 5.607924, -211.782242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.545700, 4.935702, -212.107346, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 40.578846, 7.413813, -227.456131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.994431, 6.967479, -224.553848, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.408363, 6.947949, -225.869202, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.620067, 3.505695, -232.457352, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -11.901383, 3.809819, -222.309692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.215290, 4.685366, -248.414154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.126127, 5.354530, -251.916016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.018568, 3.559257, -142.131882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.843504, 2.669379, -146.886734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.296951, 2.111675, -187.778305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.561131, 4.788309, -179.359787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.901348, 3.998760, -188.162079, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.618702, 6.037545, -220.384094, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.880280, 62.611732, -53.752232, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'broodziz_178' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.293823, 52.758022, -45.333527, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -261.914154, 62.657578, -43.638744, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.433990, 57.628166, -75.207260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -217.328003, 58.226143, -65.274490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.473053, 61.177063, -83.806122, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.544525, 62.065811, -102.909180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.109558, 62.439728, -47.456741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -309.692657, 62.788967, -44.174625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.649811, 61.133385, -80.512054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.113770, 62.712627, -44.141258, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -305.905365, 62.793114, -45.590145, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -418.251160, 61.672665, -133.374435, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.066376, 57.516376, -84.005844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.167786, 54.518047, 71.123154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.385101, 53.060257, 38.368351, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'floatingeye_182' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -538.111877, 65.672928, 44.564358, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -513.384155, 65.483177, 40.096611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -525.788696, 65.579468, 62.222652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -461.700409, 64.726295, 73.442909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -500.955963, 65.522057, 93.421356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -523.628479, 65.585747, 104.671616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -534.147278, 65.528175, 103.231544, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'halitostroper_2193' ) , 31, 8208 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.819763, 57.696182, -8.929182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -305.340637, 59.271221, -14.566124, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'stroper_304' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.851074, 49.648529, 38.221916, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -443.478394, 50.433273, 39.598923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.981415, 49.750061, -4.351254, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -381.120361, 52.293827, 54.740486, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -395.664764, 51.307610, 70.650505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.118134, 49.507610, 10.714074, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lindwurm_53' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -458.150574, 62.857433, -110.070641, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -349.154510, 62.766556, -148.890518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.189789, 62.034351, -146.958237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.482025, 62.270634, -84.152245, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -364.383331, 61.784962, -88.643425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -430.475494, 60.711987, -150.932205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -435.276550, 61.817631, -143.543671, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.433929, 60.715908, -118.554680, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -460.987854, 63.258846, -109.206444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -417.604492, 60.832336, -96.873138, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -381.971161, 64.893814, -231.869965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.491089, 66.967545, -229.602722, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'revenant_305' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -507.166077, 40.730812, -55.123989, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -512.589783, 40.451389, -57.263180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -521.051331, 41.095329, -64.560547, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -504.136841, 42.000988, -79.365364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -517.490295, 40.473141, -80.252365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -516.832581, 40.340240, -79.248672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -482.618500, 46.192268, -63.448048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -483.666351, 46.634438, -65.671326, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'toadstool_48' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -349.420074, 66.982285, -253.600815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.007874, 65.781898, -252.972595, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -399.194092, 64.243942, -219.335800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.065125, 66.106239, -245.332535, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -364.309692, 67.191872, -230.971756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -347.182648, 66.323082, -216.547180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -347.029022, 67.257912, -223.775009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.727081, 66.979897, -219.891495, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_100' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -481.528931, 73.831612, -316.010773, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -484.184418, 59.057884, -214.198959, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_101' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -452.424774, 56.082920, -204.369934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -487.150085, 67.084915, -264.065277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -486.103607, 58.589809, -218.526840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.544220, 55.706600, -205.484741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -450.707855, 55.081936, -200.056580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -453.394989, 63.400047, -237.669342, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -311.619995, 63.842651, 59.931488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -363.378754, 57.600697, 64.623650, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lindwurm_53' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -448.624268, 58.943466, -21.592375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -454.034515, 61.003143, -25.180174, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -420.449615, 60.864471, -39.857586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -422.445862, 65.107483, -54.479034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -417.758667, 64.429436, -55.815784, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'deathgaze_58' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.058502, 58.330593, 54.437634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -188.994675, 77.723534, 40.851051, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.918060, 59.876083, 38.685356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -220.992752, 68.536743, 9.121392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.403503, 76.980164, 37.403389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.271057, 62.208015, 21.751917, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.616211, 54.147041, 35.823227, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_98' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -504.119598, 73.229721, -287.511475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -459.161133, 64.497185, -263.253479, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_99' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -471.336487, 76.728569, -315.519531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -506.240906, 73.924149, -292.194061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.716370, 71.613297, -301.749329, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -486.700165, 66.754646, -261.870972, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_100' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -505.629547, 57.854435, -255.961960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -533.410522, 44.839771, -230.782425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -553.736572, 47.516403, -246.737274, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_101' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -570.061707, 50.518024, -221.209656, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -484.362457, 68.261650, -278.199463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -525.565186, 49.125813, -241.042847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -572.891113, 52.771267, -212.991180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -504.273041, 73.515327, -290.644348, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.293365, 63.694317, 27.566612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.261719, 74.748039, 20.972414, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.008850, 58.857979, -211.494324, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_98' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -563.650818, 49.536648, -206.461700, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -552.559143, 52.042721, -199.673050, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -549.064087, 51.594975, -199.783020, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -508.603546, 53.689476, -227.801895, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_99' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -546.693542, 47.480297, -244.264114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -530.769409, 49.600502, -248.386780, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'forestfunguar_47' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.736008, 0.556020, -116.883057, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.233536, 0.170292, -146.627121, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.308609, -0.206951, -111.697632, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.917053, -0.473681, -116.542183, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 196.927078, -2.465995, -156.309906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.487976, 2.054899, -159.595490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.564407, 0.015139, -143.008926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.146866, 0.496262, -143.743286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.732224, -0.806292, -143.377182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.156067, 5.573397, -184.313446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.653671, 5.380612, -184.893066, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 144.125809, 3.159899, -161.654007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.716003, 4.182068, -188.699982, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.706215, 5.804169, -199.727386, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 127.145210, 3.926286, -179.552734, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.242340, -3.015833, -91.115181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 168.161575, 1.272134, -157.713287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.125992, -0.926730, -133.980331, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.712326, 5.598165, -187.152130, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.363525, 1.752334, -169.338562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.499687, 3.491999, -190.844223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.885643, 0.926015, -165.263443, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 143.926758, 1.974709, -159.078049, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 144.163559, 1.340955, -121.404167, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_100' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -578.904724, 11.431134, -133.284775, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -563.888000, 20.098658, -186.063736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -578.919861, 21.708845, -217.575699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -531.328369, 25.160585, -257.297577, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_101' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -615.543762, 22.639528, -192.264648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -538.517761, 19.883238, -193.815613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -597.619446, 21.408043, -226.737762, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -514.655701, 22.295750, -222.432373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -558.318115, 25.191368, -259.209198, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'cratergolem_30' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -520.319946, 23.071487, -231.693390, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -494.949768, 22.547203, -245.225250, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -572.461975, 11.442620, -134.661057, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_98' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -572.304932, 11.340007, -132.510910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -485.387878, 18.743610, -230.645233, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -524.742371, 19.634649, -192.416138, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -586.259216, 22.336105, -242.424484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -555.724304, 29.067717, -230.939896, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'spriggan_99' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -570.673767, 11.352617, -131.598907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -525.354004, 19.994576, -195.493134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -581.916077, 22.630146, -241.140320, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -524.657593, 25.309645, -249.380753, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'forestfunguar_47' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.662292, -1.021191, -348.412140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.269989, 0.940447, -253.961487, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.576050, -0.158596, -295.815887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.096985, -0.928347, -304.392242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.200928, -0.873611, -312.043793, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 258.980072, 2.263419, -243.335648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 261.958679, 2.672313, -226.650192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 259.825317, 2.130591, -244.423141, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.987244, -0.631505, -285.484436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.167175, -1.046319, -291.732452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.575195, -2.241875, -107.708168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 246.724380, -1.479862, -188.387253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.038422, 1.471552, -312.112305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 225.100677, -7.262755, -133.689789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.060532, -6.936258, -135.638458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 196.831360, 1.392886, -178.362076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 209.008728, -2.032586, -173.396881, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.855988, -1.690521, -171.252060, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 230.372772, -3.769577, -183.646286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.460724, -1.069127, -190.718079, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.416809, 0.223279, -325.853546, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.380035, 1.760138, -247.215637, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 328.354675, 0.987279, -254.909210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.329468, 1.977545, -264.194916, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.216858, -0.885993, -257.717224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 259.705139, 2.424769, -228.256317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.308380, -1.928065, -187.499252, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 325.309998, -0.882787, -312.222015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.135193, -1.087055, -317.080627, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.962891, -0.034693, -327.069885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.053864, -0.434454, -328.816528, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.200531, -0.468665, -334.166656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.538818, 0.446356, -297.760315, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.475006, -6.609851, -123.111938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.005142, -5.646709, -158.370895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.131866, -2.193239, -170.202881, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'chigoe_43' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.233459, 0.613522, -193.467270, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.869965, 0.157746, -180.838699, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 323.540527, -0.883288, -190.566910, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.287018, -2.830923, -187.875610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 299.026642, -5.584953, -121.246628, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.262604, -3.291201, -189.874756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.229858, -2.119687, -187.766403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.000000, -3.819348, -171.631302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.181305, -1.143342, -171.203598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.916412, -0.292610, -174.434128, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.591125, -6.942686, -125.807846, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.251404, -6.163513, -149.044464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.440704, -6.361675, -146.645264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.149689, -1.040577, -180.583679, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.357513, -2.953406, -151.840576, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 328.247589, -3.172609, -147.523209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 208.181061, -9.296268, -10.411785, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 270.837921, -8.639899, -115.911400, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.505585, -7.490836, -59.856461, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.384094, -7.438202, -63.378551, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.123581, -7.626600, -63.967369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.062592, -6.544302, -75.893188, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.329437, -7.267363, -66.431221, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.415039, -8.669317, -26.152889, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.701904, -8.972980, -40.749123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.295898, -6.202855, -58.265945, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.673309, -5.574018, -190.999634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.888153, -8.053074, -144.305984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.948837, -8.447237, -48.509205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.143921, -9.264481, -46.063717, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'blackeft_160' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 258.783234, -11.349408, -190.315155, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.254761, -11.593641, -144.884491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.194702, -11.504831, -164.250656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 256.812103, -11.628697, -175.497269, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.730453, -11.526602, -19.194292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.781387, -11.182795, -110.800591, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.800522, -11.692389, 28.832262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.850540, -11.457581, 8.588143, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 212.071182, -11.588571, 18.438723, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 252.415298, -10.526624, -73.310196, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 258.769623, -11.271407, -72.741806, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.808487, -11.631793, -58.362598, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'microchu_32' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.817780, -2.380129, -1.972529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.095245, -2.255435, -148.021194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.154236, -4.761759, -78.371590, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.348480, -5.043727, -80.032097, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.713867, -5.243200, -74.953217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.547821, -1.672768, -130.556580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.028564, 1.556683, -124.524635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.173218, -4.932594, -105.698776, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 339.207642, -5.050605, -78.434830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.936157, -3.077143, -26.366526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 348.769073, -1.921324, -28.791388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.838043, -4.039585, -40.977337, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 367.789856, 0.049862, -38.110950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 372.431000, 1.609074, -28.299686, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.344086, -7.991405, 27.426712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.603287, -10.902637, 17.734653, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.662781, -10.729365, -183.365585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.697693, -11.655851, -158.948883, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.364929, -10.738122, -89.782700, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 260.276611, -11.155910, -93.329063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.232025, -10.836307, -61.489841, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 234.431534, -11.692390, -2.064034, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'bogyarzon_159' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.094658, -3.492393, -178.066116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.943729, -3.492393, -181.722839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.539597, -2.121591, -208.572952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -69.649757, -3.445135, -201.444565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.935490, -11.403753, -39.089687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.346420, -11.393628, -75.021034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 22.525948, -11.521127, -69.671989, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.444212, -11.053284, -108.971825, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.723526, -10.465998, 122.086159, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 191.877533, -11.692391, 51.169125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 192.367874, -11.530526, 76.312683, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.008987, -11.407657, 93.455399, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.390198, -11.625326, 107.052254, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 165.482605, -11.208490, 121.841263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 144.394287, -11.692389, 124.722542, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.194092, -11.422572, 141.006027, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'chigoe_43' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.238403, -5.082119, 18.039581, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.641663, -5.223628, 15.458561, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.640594, 6.891025, 89.819016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.659546, 3.151285, 72.228638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.733612, 5.763306, 57.338543, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.029602, 3.690393, 68.391296, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 310.729889, 3.829218, 100.381714, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.691650, 3.409940, 87.259094, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.999603, 1.906760, 90.915855, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.746765, 0.794945, 29.754431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.453644, 4.086077, 51.007965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.666199, 3.260879, 53.432526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.608826, -0.222734, 24.127121, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.493439, -4.696930, 47.932442, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.253021, -1.585612, 62.708767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.861755, -6.629392, 21.513515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.251923, -4.726089, 47.201977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 367.964264, 8.079945, 59.077457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 371.590607, 6.378487, 48.575005, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.532207, -3.492393, -183.480911, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.362671, -2.521288, -207.506180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.824173, -11.118093, 103.376045, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.943970, -11.692391, 62.494408, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 98.912674, -11.588365, 103.349068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.814499, -11.556159, 113.313568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.143238, -2.632284, -137.923370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.013982, -10.964988, -123.532799, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.810508, -3.181231, -139.965515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.137161, -11.692389, 129.102509, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'hoglet_14' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 440.445648, 33.240917, 99.734444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.364319, 32.685429, 123.358475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 433.976593, 31.638565, 101.751160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 411.182404, 26.315029, 122.887962, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 378.267151, 12.657194, 81.281189, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.368744, 14.819519, 84.489403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.840454, 19.738405, 102.376328, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.952423, 20.693201, 64.327431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 417.549347, 23.964783, 79.423454, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.181335, 27.737553, 108.166237, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'microchu_32' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.438812, 6.148210, -73.119606, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.778259, 5.580954, -65.780167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.008606, 3.723548, -97.523209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.684723, 4.562220, -89.027565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.253967, 6.728226, -106.147934, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 400.643768, 5.380632, -105.250557, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 410.817352, 5.846823, -112.569466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.626099, 0.400426, -69.956879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.060638, 2.475254, -86.477562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 401.691956, 3.534089, -45.266487, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 420.634033, 6.517999, -39.367981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.196686, 8.362243, -43.533318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 417.931519, 5.548330, -39.705776, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'syrphidswarm_41' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.989883, 23.507608, 225.120621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.461945, 7.953541, 129.505371, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.435150, 24.180822, 178.418503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.454086, 23.537071, 169.221191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 229.960220, 23.696301, 215.005569, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.855469, 23.507610, 229.394638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.611633, 8.892811, 129.881866, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 323.082733, 9.456532, 132.123871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.168640, 18.555271, 164.277100, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.550354, 19.352026, 171.034729, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.680481, 24.507610, 196.747406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.008026, 24.245691, 187.869003, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'anole_142' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 505.611786, 43.417732, -30.073311, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 478.921173, 24.250208, -121.875801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 482.156555, 31.361853, -49.103958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 489.050354, 32.369301, -45.255116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 491.917145, 31.897884, -54.863464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 502.874817, 42.243210, -46.672058, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 517.604980, 45.097282, -40.586594, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 437.769592, 9.962354, -109.898323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.074799, 15.413954, -86.382790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.414307, 31.739744, -12.684105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 484.050018, 24.845512, -89.707993, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 479.578583, 23.557650, -91.003860, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 461.006226, 26.053926, -34.465263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 453.758850, 27.872454, -29.958651, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 460.244629, 26.670668, -32.016369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 447.806885, 29.902573, -14.827885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 480.732666, 41.373207, -11.362085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 485.393951, 41.960804, -10.944053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.731201, 29.441204, -89.311058, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'tricksterimp_21' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.169693, 23.507610, 156.064682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.639709, 23.507610, 230.940445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.474167, 23.507610, 224.669327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.472366, 23.630144, 171.304016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.893356, 23.655724, 170.137970, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 319.777130, 14.101140, 159.498215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.344971, 18.107611, 160.978500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.868835, 16.759907, 165.955276, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.551727, 21.573780, 185.827164, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.842560, 22.419706, 190.588272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 232.547607, 23.688934, 214.163193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 209.818222, 23.747705, 211.078262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.371765, 25.061598, 203.609802, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.607925, 23.709152, 218.891388, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'chigoe_43' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.883591, -5.191360, 10.396137, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.019302, -8.842469, -3.215608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.552780, -7.888278, -13.179175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.912720, -7.345370, -22.551830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 128.703705, -5.300603, 8.121663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.117569, -4.432164, 19.477554, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.060272, -7.281980, 57.795414, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.850037, -7.302916, 55.745506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.641930, -6.955222, 45.195335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.045570, -7.312560, 48.311047, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 148, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.748947, -6.458734, 18.077217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.885735, -5.979955, 7.387532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.750793, -7.612096, 2.741805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.039116, -7.263025, 73.501709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.993553, -7.988765, 77.247459, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'treeslug_39' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -455.887421, 12.486808, 267.419342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -417.313110, 9.347687, 294.530731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.296143, 9.868149, 292.592163, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -386.929840, 5.419418, 281.922516, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -411.347839, 4.169642, 269.100983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -428.222504, 8.455313, 277.710846, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -427.102386, 7.476604, 274.712799, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -454.833466, 3.241852, 238.591034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -457.034821, 5.039994, 241.860733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -471.434967, 8.722139, 243.265854, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -423.794769, 12.970410, 311.081909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.345398, 9.158700, 247.387299, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -456.520599, 13.089064, 269.231171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -410.628204, 5.588542, 276.812653, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.557709, 6.999351, 267.703400, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'northernvulture_12' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -479.414825, 8.379493, 104.014137, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -473.033112, 6.058814, 104.083206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -486.743439, 8.622768, 63.309109, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -515.687927, 12.383446, 117.593300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -502.318115, 9.481767, 101.175140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -502.774139, 10.105593, 109.241531, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.105347, 3.910781, 124.273293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -507.143951, 10.503958, 107.664307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -501.351135, 11.019590, 122.884933, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'goblinhunter_769' ) , 11, 217 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -401.218414, 11.367920, 318.654388, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.236786, 11.123780, 318.544708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -389.459137, 12.356929, 323.339172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -388.532471, 9.014496, 309.416382, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -399.718811, 10.832540, 315.967102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -407.562225, 11.363725, 314.531250, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.941528, 9.100619, 308.374817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -409.809326, 12.212138, 316.929230, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'treeslug_39' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.707397, -0.033791, 185.347153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -406.744110, 1.123732, 244.710190, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -433.212494, 1.686168, 237.426041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -427.717407, 1.600861, 233.611084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -440.226105, 2.026883, 209.294586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -435.446381, 2.809651, 186.282867, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.353180, -0.033791, 190.932587, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.913849, 0.779894, 183.709442, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -382.668365, 0.218106, 182.710632, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -433.769592, 2.103829, 213.454010, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'mandragora_118' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -366.920837, 0.080455, 191.902405, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -362.939056, 0.630107, 209.708176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -368.031128, 0.746524, 202.731445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -375.642792, 0.790439, 204.174179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -360.816528, 0.494692, 211.857025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -357.870178, 0.365697, 195.724472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.758759, 0.481367, 199.431046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -376.068481, 0.740044, 203.421402, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'northernvulture_12' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -382.923248, 1.608193, 236.432175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -386.954956, 0.196421, 226.548492, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -356.099731, 4.632757, 289.609406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.005432, 3.507107, 291.465424, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -363.413116, 0.407165, 233.731842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.805267, -0.839401, 243.402267, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -339.275330, 1.245934, 193.657410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -378.583191, 6.792902, 296.742981, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.447144, 8.960446, 315.910950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.744934, 2.187344, 274.222839, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 13, 268 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -345.120789, -0.041097, 265.634186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.316376, 0.782450, 207.218765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.801392, 0.455116, 234.998322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -371.460876, 4.556480, 282.798248, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'wildhoglet_14' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -393.467865, 1.044611, 109.297333, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -382.996674, 0.995502, 134.795792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -435.436859, 0.923809, 92.855949, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.372681, 0.183877, 90.199524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -409.974609, 0.423914, 92.952286, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.187683, 0.447537, 164.606186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -411.781799, 0.289565, 149.618027, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.675385, 0.752986, 146.215408, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'treantsapling_1446' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -405.233002, 0.754129, 98.793472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -417.321930, 0.422892, 76.540977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -396.755646, -0.094973, 151.673172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -392.007904, -0.131214, 205.565994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -420.397522, 0.658672, 195.552017, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'hornetswarm_57' ) , 14, 293 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -430.882538, 1.894843, 126.107140, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -416.782501, 0.318148, 70.307693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -392.617950, 0.993306, 73.597610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.553101, 0.360399, 76.964264, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'boringweevil_36' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.374222, -5.438763, 204.847519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.403473, -4.693077, 206.132629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.662598, -3.458369, 229.030350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -322.824005, 9.970474, 337.774475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -329.515717, 6.919007, 314.133087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -320.484253, 8.865358, 334.483887, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'lemur_6' ) , 15, 319 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -242.734543, -5.304779, 227.649811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -256.366089, -2.918437, 217.821426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -266.582123, -2.942757, 239.966599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.559570, -4.117649, 201.455032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.851715, -6.825181, 235.009308, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -194.494217, -7.153209, 219.000412, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -198.602768, -7.619131, 222.627182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -322.644287, 8.732259, 329.832855, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -322.095062, 8.377511, 328.377502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -331.820251, 4.540683, 302.573456, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'boringweevil_36' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -135.463516, 4.871188, 372.047577, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.471230, -7.367242, 293.672241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -122.186081, 2.004307, 352.013977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.953781, -7.885828, 274.979919, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -122.201218, -6.425428, 292.356506, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'faeriefunguar_47' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -93.392921, 3.184630, 367.220245, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.524597, 3.438208, 365.629639, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.396141, 2.395185, 353.704163, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -116.414330, 2.320663, 354.238251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -113.590958, 1.890718, 351.185547, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.570511, -0.194040, 342.094971, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.456886, 2.853508, 359.138153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.911316, 6.278300, 379.355133, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'giantgnat_7' ) , 16, 344 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.400002, -7.033791, 288.399994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.581276, -5.112325, 295.251678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.516579, -7.783601, 273.336761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.193726, -7.633670, 268.721283, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.839355, -7.592839, 224.921127, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -130.287415, -7.256685, 225.909195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.080116, -7.811160, 256.203705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.305946, -4.462152, 314.378143, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'boringweevil_36' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.313906, -4.682285, 312.787292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -63.659065, -3.490743, 321.341370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -45.713486, -7.754845, 223.295532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.230179, -3.234549, 193.488495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.342591, -3.237420, 327.080200, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.872982, -3.165742, 326.748993, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'lemur_6' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.035702, -4.767752, 312.529449, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -30.297110, -4.583733, 314.218353, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -65.482742, -2.631300, 331.812897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.056221, -3.823496, 319.087402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.947664, -3.868430, 321.562408, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.859877, -5.359243, 311.907837, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'wolfpoacher_311' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -96.997169, 10.884758, 426.835480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.318466, 10.895230, 429.915894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.149544, 13.501781, 438.499268, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'boringweevil_36' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.696811, 1.290513, 359.111053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.296814, 7.626923, 411.195465, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.756256, 7.583344, 410.807220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.391167, 5.935596, 400.399902, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'lemur_6' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.817787, 3.833124, 384.154022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.994213, 1.363226, 361.208496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 1.351199, 0.184506, 352.100647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.099859, 3.197721, 375.074097, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -20.532963, 7.846949, 415.337463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -65.859764, 11.775428, 434.647247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.687801, 12.539723, 435.213531, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -33.363071, 16.042053, 446.722992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -48.688046, 11.844405, 430.661652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.706413, 8.137104, 415.945129, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'raptorpoacher_79' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.791931, 12.234617, 436.258484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.327423, 11.154300, 431.082611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -91.226921, 11.092580, 430.953491, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'boarpoacher_81' ) , 18, 394 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.426071, 11.490000, 427.695099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.402939, 11.068160, 430.739899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -88.120903, 11.001710, 430.441711, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'wildboar_15' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.290405, -2.522352, 180.034119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -152.955994, 2.466712, 141.711304, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.176926, 3.655318, 132.521912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.439423, -2.484959, 180.230255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.168304, -0.566886, 165.117950, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'zizgorlin_179' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -37.227814, -6.357570, 210.827576, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.451801, -3.352395, 190.537979, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.900387, -3.583145, 191.661072, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.686134, -3.766137, 194.143646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.735298, -5.255075, 200.762543, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.261932, -9.309211, 242.242645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -32.650261, -8.127075, 248.769272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -31.852196, -8.027632, 260.574310, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'blackbat_38' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.958405, -0.786216, 171.466858, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.421555, 2.518240, 135.971420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -131.043411, 1.244557, 152.653885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.067062, 2.501975, 134.803284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.550034, -0.752436, 167.339630, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.095657, -1.241835, 171.248993, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'wildboar_15' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.118805, 9.308059, 67.338341, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.405670, 3.494077, 115.140778, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.918427, 3.564765, 115.928490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.485580, 12.166210, 8.909656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -278.724213, 6.770812, 92.955093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -343.070251, 6.940239, 62.691952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -218.526215, 5.216444, 91.052475, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'diseasedtreant_24' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -304.363037, 7.658040, 104.534546, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -260.921722, 8.768896, 63.367764, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.948120, 7.526089, 86.330658, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -217.976257, 3.356658, 120.139114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -192.086044, 16.326868, 41.738968, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.639069, 12.004830, 33.291042, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'overgrownivy_33' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.213776, 10.346369, 461.102173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.706291, 7.972787, 415.884521, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.131592, 10.130627, 431.990173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.403450, 11.504984, 422.540558, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 113.328835, 9.747307, 406.118805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.769447, 8.886319, 414.455048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.803703, 8.107851, 387.779327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.123749, 6.744253, 377.898834, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'boringweevil_36' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.344737, 11.269548, 437.186554, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 0.152875, 15.946892, 479.210999, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.589287, 11.197457, 437.451935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.004768, 8.005452, 429.337830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.182610, 8.490121, 388.689697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.433895, 7.966209, 460.915283, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.198090, 7.966208, 477.874023, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'blackbat_38' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -198.651169, 13.475699, 51.538628, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.273331, 4.869504, 108.442253, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.134308, 6.697902, 117.836380, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.941162, 7.582508, 67.966515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -291.926086, 8.872799, 65.128197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.175903, 7.726088, 57.489082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.986237, 4.800822, 96.938255, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.457275, 9.635449, 60.444023, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'gallgnat_7' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.117415, 17.361170, 471.176636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.065050, 15.200567, 467.878784, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 22.299868, 10.303681, 476.664856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.394852, 7.651558, 435.780273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.139137, 7.966210, 443.395905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.190559, 7.966209, 474.223755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 39.330688, 7.984480, 462.396210, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 39.260143, 8.056946, 471.725311, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'blackbat_38' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -226.316620, 12.166209, 7.029383, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'swollendjigga_2264' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.661713, 12.173899, -13.079095, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.011902, 12.950163, -35.349613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -274.767273, 13.154112, -46.112896, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'glowfly_306' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.289612, 12.320527, -18.939009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -278.020416, 12.229430, -24.224037, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -315.455475, 12.239582, -26.276901, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -315.707550, 12.355980, -32.810833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.405853, 13.071445, -44.931942, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.202179, 12.724946, -40.315479, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'blackbat_38' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.694534, 33.374176, -66.269150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.000000, 29.566210, -46.399990, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.009537, 45.856525, -103.578896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.614243, 46.027973, -104.067123, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'jumpingdjigga_44' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.364197, 12.220203, -25.153299, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.438919, 12.146344, -6.150392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -256.544586, 13.309358, -36.023285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -283.021637, 12.213216, -26.218313, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -280.368347, 13.628804, -54.146996, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 255.808304, -0.399872, 160.039291, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 214.515198, -3.371162, 65.189941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 216.518890, 0.499672, 112.504745, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'moltedziz_178' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 295.438110, -0.380055, 169.735107, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.820587, 1.091271, 177.787399, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.808670, -2.542850, 88.986847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.743744, 1.110016, 156.579666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.682495, -0.309679, 136.297836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.124893, 3.382972, 118.541496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.823013, 0.306530, 106.592438, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 241.259705, -1.394508, 98.333000, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'ochu_33' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.178375, 7.237118, 154.441269, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 232.032440, 5.652274, 176.304977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.619843, 6.053995, 186.309082, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.338348, -4.690456, -60.831661, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 309.656952, -6.400949, 14.339506, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.948975, -3.032565, -14.112598, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'old-growthtreant_24' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.804825, -4.660694, -28.829727, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.379074, -4.339086, -54.010689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.503906, -5.170451, 50.267490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.796539, -4.890404, 32.480923, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.072113, -3.429554, -40.686047, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.769958, -3.454570, -17.592953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 269.421631, -6.212573, 10.187524, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'banestool_2660' ) , 41, 3674 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 295.063599, 0.717163, 180.926102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 221.648804, -2.880372, -13.690810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.378998, -4.542100, 48.923759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.189499, -4.405000, -55.771381, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.728302, 6.775696, -29.255630, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.661133, 19.302610, -20.096189, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 198.657104, 2.212463, 118.242104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.762802, -2.334717, 93.644531, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'ochu_33' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 295.538422, -5.045496, 41.769234, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.264008, -3.673266, 44.287617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.310242, -3.462224, -22.396955, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.629227, -3.280379, -19.900665, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.974243, -2.887925, -56.235977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.336243, -11.481641, -0.884091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.430389, -2.526030, -25.869102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 332.290894, -2.968380, -50.829773, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorthoplomachus_55' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.248779, -2.187914, -33.517601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.093994, -2.365173, -37.277828, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortlaquearius_61' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 378.578766, -2.293990, -36.923931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.622070, -2.240838, -34.085915, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorteques_62' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.979004, -2.206444, -36.209721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.934296, -2.304138, -35.904541, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylvanscreech_762' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.156189, -2.829856, -35.286289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 350.270203, -2.804400, -50.397419, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylvansigh_763' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.566498, -3.629025, -6.971761, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.737762, -3.547725, -42.101601, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylvansnarl_764' ) , 42, 1941 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.049408, -2.477600, -51.221401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.685913, -4.324158, -38.521492, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 350.148193, -2.774287, -52.136921, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.560837, -2.947893, 17.901039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.212128, 10.260871, -48.757732, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.217491, 14.309670, 10.004061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.921770, 19.764318, 10.419274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.830970, 20.224039, -11.514130, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'morbol_140' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 125.006157, 5.136684, -53.258545, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.426720, 11.513833, -41.213436, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.224243, 9.863551, -28.773863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.833115, 6.371977, -15.300014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.059456, 5.949201, -31.147589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.282326, 8.250611, -40.328613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.356750, 11.135279, -49.756580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.673149, 4.441387, 13.576529, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylvanscreech_762' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.453812, 6.773195, -41.293217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.558739, 11.184820, -24.826481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -10.318174, 19.011681, -17.723881, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.744751, 0.001228, 56.070038, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.277939, 0.420585, 9.064156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.649436, 19.552452, 11.866985, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylvansigh_763' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.740028, 18.165810, 11.084339, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.094597, 10.766210, 14.206050, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.687866, 11.001710, -24.643370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.970978, 7.404476, -43.495312, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.019806, -4.055645, -3.018583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.512604, -3.915480, -4.205355, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylvansnarl_764' ) , 43, 2046 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.874420, 10.427279, -14.849191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.406097, 6.393494, -42.557430, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.424891, 19.709511, -18.332621, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.500153, 0.140394, 59.934616, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 549.345825, -11.944624, -60.394230, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 523.235046, -11.973587, -34.292690, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 566.073303, -11.876583, -6.693420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 620.758362, -12.233695, -9.795013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.515808, -12.723608, -8.344092, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'greaterbanestool_2464' ) , 44, 4300 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 514.976685, -20.248779, -360.982697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.778900, -34.470150, -460.959808, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 405.020111, -28.000311, -500.633209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.335602, -19.760500, -293.202087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.873993, -15.610050, -260.578400, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'ochu_33' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 518.060913, -11.507825, -28.309788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 592.367126, -10.995948, -10.463862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 535.712402, -11.581553, -2.638214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 537.505981, -10.906045, -10.730215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 527.081604, -11.812749, -1.723952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 504.697418, -11.390347, 4.060000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 452.585449, -9.946992, -3.511348, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohorthoplomachus_55' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.056824, -11.978380, -48.966251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 553.607788, -11.865685, -42.090031, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsecutor_63' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 547.437866, -11.796315, -53.949894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.927612, -10.904299, -38.429867, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = '3rdCohortsignifer_64' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 566.063782, -11.947860, -47.776039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 546.187500, -11.671138, -51.996540, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylpheedscreech_762' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 442.687622, -24.430859, -393.840729, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.927399, -28.671749, -421.042206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.544312, -19.337677, -291.495911, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 503.450684, -17.857704, -312.259247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.337585, -13.750115, -127.448120, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 498.771515, -17.898861, -313.954407, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylpheedsigh_763' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.683105, -27.939548, -419.913086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 404.097198, -27.509384, -401.386688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.754761, -18.033953, -234.773087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.322998, -15.246734, -279.865692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.856201, -20.248779, -184.771500, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylpheedsnarl_764' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 350.148865, -28.176918, -409.363678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.203613, -17.155939, -375.108276, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 528.219849, -22.011179, -321.611725, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 445.841675, -18.563538, -236.658844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 368.581512, -18.749878, -183.856003, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'dreamtoad_27' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.415436, -12.391830, -179.044495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.337982, -17.668869, -183.933563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.199585, -18.961945, -146.889938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.018311, -12.787296, -72.325378, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 258.534088, -10.978604, -156.903625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 197.315231, -5.857587, -142.369720, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'Sylphlandscondor_403' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.799347, -18.650612, -288.697815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.709320, -17.470163, -227.041885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.617798, -19.213781, -288.552979, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.554779, -19.151974, -210.418594, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.373199, -17.340836, -242.390213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.413788, -16.079439, -256.821625, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylpheedscreech_762' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 553.652527, -23.961533, -379.476715, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.562500, -28.073183, -445.575043, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.724609, -28.355101, -485.747284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.566345, -28.150576, -487.523773, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 384.859497, -27.500000, -514.937012, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 384.935638, -33.306114, -414.179993, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.405212, -22.088120, -350.810913, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 545.774963, -23.782000, -351.293945, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylpheedsigh_763' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 573.484985, -24.123560, -374.310089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 552.422424, -23.945164, -379.629211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 559.856079, -22.433788, -343.965973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.887909, -34.493279, -462.935608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.162109, -27.877609, -499.533905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 427.173248, -28.064762, -459.411316, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.496094, -33.657745, -448.400146, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.374161, -5.732884, -187.956207, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylpheedsnarl_764' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 383.576294, -27.500000, -515.033020, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.322601, -28.245850, -509.974213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.631042, -27.861708, -480.602386, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 362.799988, -25.833790, -441.799988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 558.639648, -22.985334, -359.636078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 514.823975, -20.085262, -358.783813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 514.602966, -19.777376, -364.233215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.494507, -15.011683, -259.491211, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'milkrootsapling_23' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.524750, -23.276850, -307.526855, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.791916, -26.184340, -353.525116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.491379, -24.814341, -342.972198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.375221, -25.278620, -331.507416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.997467, -26.257889, -338.692383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 92.907768, -26.247259, -320.799042, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.045837, -26.097254, -336.655029, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'Sylphlandssentinel_24' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.459675, -34.254768, -532.822449, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.770569, -25.483585, -569.645874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -8.228651, -34.887226, -551.017639, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.286713, -23.202356, -476.972015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 173.270340, -25.584213, -514.757324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.224808, -23.545368, -547.487549, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'giantbanestool_2465' ) , 48, 5138 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.848099, -22.110350, -563.561523, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.078705, -29.800461, -246.062698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 252.338394, -24.643370, -435.141510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.658707, -23.403219, -470.115204, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 119.127197, -25.162230, -324.086395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.078705, -29.800461, -246.062698, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'milkrootcluster_33' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.780670, -29.990423, -170.677429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.108101, -30.261238, -144.284683, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.198395, -29.109890, -225.331924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 142.678635, -28.978273, -235.778793, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.996796, -28.522976, -238.348526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.830551, -28.599304, -244.962921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.991104, -29.535959, -245.124496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 146.903900, -29.527519, -215.189804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.825104, -29.775539, -226.307693, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'sylphbonnet_48' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.979324, -22.720304, -381.577209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.174011, -18.745571, -392.958954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 214.454498, -20.545761, -407.026154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 251.690536, -23.420307, -395.253998, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.071930, -24.020927, -428.343262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.776001, -20.802799, -409.690094, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'violetscreech_762' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -30.431604, -33.940910, -540.510803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.460602, -26.388874, -543.541626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.198593, -23.411840, -467.790009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.408096, -31.479370, -219.684097, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.324303, -25.430050, -324.881592, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.427490, -26.410093, -348.913696, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'violetsigh_763' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 165.575607, -26.373127, -542.717712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.072906, -21.293886, -564.551880, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.157801, -33.836670, -547.717590, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.559601, -28.504568, -244.522903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.879395, -21.909185, -298.471649, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.007233, -24.860823, -390.669006, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 139.559601, -29.771700, -244.522903, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 152, ( SELECT id FROM bnpctemplate WHERE name = 'violetsnarl_764' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.708099, -30.033794, -194.688599, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -35.631920, -34.027218, -537.097107, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 156.908401, -24.429689, -455.588593, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.626694, -24.511021, -435.444397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.849045, -29.072056, -229.451965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 251.759842, -23.218893, -520.547546, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.595703, -23.001791, -517.169067, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -339.998535, 23.961269, -175.759720, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.331879, 25.542410, -181.089752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -304.310303, 27.098581, -214.619125, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirnbeater_170' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.839386, 22.280479, -182.574203, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.384399, 22.233410, -181.710205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -271.431000, 22.514244, -174.250992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -283.217041, 24.600134, -193.606689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.441498, 24.263420, -202.146301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.877686, 24.122616, -193.354202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -301.991302, 24.106640, -200.335693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -285.009125, 23.856024, -174.677628, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopedoe_3' ) , 20, 445 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.956482, 22.175058, -153.469391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -338.000000, 24.518162, -189.248978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.583313, 18.778667, -161.815079, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.956665, 20.464605, -162.702560, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -313.099243, 26.821878, -213.617279, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -325.743011, 27.615030, -217.699127, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.144196, 12.497387, -73.679169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.359406, 9.193031, -15.103757, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -145.702393, 6.826308, -14.807010, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'kedtrap_23' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -235.642303, 8.798358, -31.935034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.742950, 16.382404, -82.098030, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.259521, 13.158815, -64.892563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -262.274414, 12.685486, -68.640160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -128.393265, 7.879173, -22.627447, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'smallmouthorobon_302' ) , 21, 483 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.091446, 8.518772, -137.883514, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.373962, 10.161859, -146.978043, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -310.472321, 12.006616, -133.953217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.241516, 10.840481, -145.082977, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.159470, 2.315055, -78.294449, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -105.927368, 3.538450, -31.930330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.917862, 2.761866, -31.859909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.454697, 2.960680, -29.782326, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -116.920013, 8.714793, -141.970215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.734713, 7.845801, -36.666557, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.080889, 5.137837, 27.342144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.971439, 6.558482, -74.529564, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.018822, 5.850356, -118.907303, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.575909, 3.369393, -49.028721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -105.528076, 5.568587, -73.931503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -144.289993, 11.501799, -124.215195, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'kedtrap_23' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.315075, 8.921567, -99.021149, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.819855, 6.326989, 44.009064, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.539149, 7.379492, -28.258354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.551861, 4.054628, -41.583065, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.746156, 7.186642, -18.634499, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -87.688354, 4.786760, -72.478333, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.957710, 3.881001, -32.707451, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'overgrownoffering_33' ) , 22, 520 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.230965, 4.670376, -127.963348, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.534027, 8.569367, -100.193596, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.215134, 7.029538, -104.630051, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.396072, 11.329749, -128.563370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.877792, 11.588495, -142.436279, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -166.240311, 8.811557, -125.742409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -134.342651, 13.600004, -130.390839, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.998657, 5.561626, 103.608658, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.812256, 11.620298, 108.617004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -188.015335, 8.882719, 25.322458, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'barkeft_161' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.694794, 0.336653, 60.103729, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.647194, 0.713887, 57.697540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -85.018768, 0.153294, 49.993504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.666939, 1.681570, 75.730415, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -78.266876, 0.153294, 57.522301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -177.544586, 1.286469, 149.097244, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.520218, 1.005446, 157.936890, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -184.718124, 0.350221, 138.745026, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'scarredantelope_2187' ) , 23, 3348 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -174.244156, 4.778137, 126.029503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.079483, 3.497354, 135.965607, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopedoe_3' ) , 23, 558 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -201.401672, 11.347859, 83.060669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -131.492935, 6.005808, 111.025520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.956894, 6.264873, 115.746399, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.487129, 5.960038, 94.432495, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.591110, 7.169066, 109.261993, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.313049, 6.482693, 114.588982, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.723877, 9.861254, -1.076116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -215.633331, 9.897048, 2.690895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -177.466873, 4.313876, 127.650650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -159.495163, 6.690948, 10.598223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -175.118713, 11.264847, 45.588669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -162.054047, 7.983317, 58.252594, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.463242, 11.920287, 71.830231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.272858, 12.567184, 74.408363, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'windsprite_133' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.122101, 19.684469, 50.829895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.889343, 15.258645, 88.634491, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'kedtrap_23' ) , 24, 595 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.637527, 16.940334, 14.146435, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.483093, 17.064312, 61.392807, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -253.087723, 16.186489, 77.457962, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'riveryarzon_159' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.654480, 4.771154, 68.480888, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.418583, 4.850471, 66.245697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.799942, 5.470443, 15.121700, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.015976, 4.863391, 20.451998, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.063446, 6.226398, 24.339624, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.402435, 4.986527, 53.635834, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.463493, 4.513731, 55.831722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.401016, 5.220296, 66.620415, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.760260, 7.429297, -102.325920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.770376, 7.310660, -102.062416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.766159, 9.806877, -77.800613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.622614, 5.915463, -73.400307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.107980, 7.057783, -86.141953, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.579900, 6.589401, -69.594353, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.219887, 11.931175, -72.196236, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.712753, 8.865553, -59.357475, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.315796, 7.736876, -54.132778, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.367828, 4.474969, 47.881115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.185539, 4.904713, 66.192078, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.862427, 13.592612, -155.693970, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.571930, 9.431927, -185.042603, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.424500, 9.527298, -175.577805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.220764, 10.562439, -166.739624, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 246.566940, 10.518194, -174.818481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.725586, 9.205351, -173.770233, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.399246, 14.557305, -149.267365, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.780304, 17.568481, -142.051392, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 26, 671 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.622810, 7.818439, -111.865150, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 26, 671 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.660446, 7.607049, -108.592979, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.906487, 7.766785, -112.382797, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 26, 671 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.243660, 8.847745, -90.705162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.137863, 8.508118, -105.323936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.866234, 7.953293, -107.132462, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 157.845596, 16.789454, -140.097214, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.626282, 17.473413, -145.147446, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.518982, 19.229555, -146.295181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 170.907196, 17.193430, -151.395401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.376198, 19.198467, -146.837601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.090240, 20.705063, -111.209366, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.185997, 20.035912, -97.032173, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.000183, 19.030325, -159.014297, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.188995, 19.796492, -142.951370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.414299, 19.054943, -145.398300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.760773, 18.225830, -160.113007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.843201, 20.218161, -96.971130, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 27, 708 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.717804, 17.307770, -150.139297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.838219, 20.272621, -160.238190, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 28, 746 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.901642, 3.911347, 46.565025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.412292, 5.306582, -42.944809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.498230, 8.256850, -41.135147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.340118, 3.846904, 13.428856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 264.393372, 2.637880, 23.084396, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'goblinthug_52' ) , 28, 746 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.515686, 2.215992, -18.509239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.883972, 2.904445, -16.655821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.658691, 2.299638, -15.389510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.199188, 0.290855, 13.417520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.366119, 2.005001, -17.149740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.698792, 2.227228, -15.091220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.945190, 0.195134, 8.234367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.018890, 0.478852, 12.307590, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.225494, 0.411926, 13.809330, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 28, 746 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 311.033295, 0.517801, -0.204813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.959686, 0.228231, 2.388638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 300.585052, 0.253785, -0.255648, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawcutter_311' ) , 29, 783 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.521759, 1.297850, -25.194082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.940704, -0.982693, 5.487583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.723999, -1.106398, 3.907724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 399.968506, 4.714575, -41.852612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 362.637268, 1.761672, 9.493670, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.912415, 2.690911, -10.183659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.075500, -1.022401, 21.408360, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawpoacher_79' ) , 29, 783 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.405365, 2.269864, -31.143581, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.545288, -1.022401, 4.501364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.771088, 2.792354, 1.937849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 400.476288, 4.241707, -40.787842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.814392, 4.773165, -33.204460, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawhunter_81' ) , 29, 783 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 438.216705, 0.502468, -19.721241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 392.419891, 5.388818, -31.738232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 404.366333, -0.462935, 16.939405, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.472290, -0.900329, 20.340231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.160797, 2.597828, 2.700800, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'midlandcondor_13' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.824707, 1.375012, 337.180084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -120.189743, 1.298543, 297.432922, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.129181, 1.586027, 290.873566, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.149811, 1.329228, 259.241241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -174.450653, 0.826647, 326.032074, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -233.590225, 0.609150, 303.478058, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.225418, 1.091709, 321.095123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.756714, 0.523384, 276.984833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -154.484329, 0.228401, 290.810242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.577454, 1.781374, 344.390350, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -243.982834, 0.294519, 312.494995, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'bigmouthorobon_302' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -136.303848, 0.235673, 470.061859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -135.688385, 0.209063, 466.644989, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -186.763107, 0.368787, 478.433899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.772980, 0.564238, 437.816650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -163.358063, 0.632972, 460.179504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.338089, 0.343685, 474.522247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.257813, 0.435515, 480.663116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.713257, 0.153294, 446.080353, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.343994, 1.574708, 411.567749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -252.784439, 0.284077, 461.137482, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.081299, 0.939354, 467.506958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -316.329285, 0.085494, 443.564148, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.251495, 1.132652, 434.677643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.932007, 0.811789, 409.177917, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 31, 912 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -293.701935, 0.574562, 415.584351, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -239.102600, 1.174322, 487.598419, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.729065, 0.371793, 454.892212, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -301.002502, 0.971183, 477.373108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -223.200058, 0.360053, 432.863922, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'revenant_305' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.600006, 1.953293, 461.799988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.479858, 1.895434, 458.000153, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -341.376892, -0.246708, 431.042175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -334.172821, -0.142858, 441.960754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -362.200012, 2.353294, 450.799988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -334.659546, 0.086901, 455.306061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.223297, 0.167704, 454.781830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -345.804718, 0.536044, 449.956573, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.595444, 0.654059, 440.756439, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.552437, 0.556002, 337.963379, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.910637, 0.399478, 426.748169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.549438, 0.759574, 446.906830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.783997, 0.153294, 343.045929, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.156303, 0.622273, 390.338318, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 33, 1094 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.271049, 0.153294, 336.635468, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.907066, 1.110574, 385.834503, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.304504, 0.220831, 460.319794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.513351, 0.254719, 441.550232, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.048363, 1.260202, 382.858948, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -73.559479, 0.927049, 383.122620, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'stroper_304' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -18.452950, 0.207803, 361.804718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.646904, 0.492321, 373.455322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.496044, 0.153294, 322.616821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.369980, 0.620001, 331.898956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.584179, 0.468473, 399.977570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.705612, 1.004676, 377.104370, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.331188, 0.153294, 341.051147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.701607, 0.650173, 324.390594, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.597773, 0.336645, 382.682190, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -28.498209, 0.238283, 382.024170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.815331, 0.878316, 326.413666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -17.169430, 1.614668, 343.095428, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -67.169716, 0.450503, 346.946411, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 35, 1277 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.278320, 9.626074, 42.293156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.231918, 13.938748, 18.245020, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 208.655640, 12.012166, 40.583130, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 35, 1277 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.538208, 6.369292, 43.698978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.841019, 9.326168, 42.316071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.659210, 9.621600, 21.393459, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.666031, 7.852551, 27.424515, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 205.594772, 11.920905, 12.274120, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.294479, 14.422457, 15.546280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.509689, 13.172311, 15.140548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.165024, 15.262697, 20.420422, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 36, 1368 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.671593, 18.664917, 103.629242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 122.636292, 19.212322, 85.012367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.593910, 19.753290, 81.778809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 166.242508, 17.621466, 71.034737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.215240, 16.190983, 24.241163, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.059692, 15.553300, 58.400002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.453125, 15.622672, 59.301884, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 36, 1368 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.602325, 17.591097, 64.458740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.585899, 19.560278, 116.602638, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.674263, 26.419935, 135.548584, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 37, 1459 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.238647, 23.642693, 202.599472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.212658, 20.345995, 218.766418, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.663757, 12.027298, 281.284607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.175465, 11.474810, 285.991211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.829185, 25.959589, 143.245911, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.810070, 26.042759, 138.357468, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 37, 1459 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.381493, 23.541809, 246.465607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.844872, 10.819162, 285.051788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.966400, 5.725693, 299.167664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.123070, 22.513016, 213.663788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 88.113548, 23.136980, 172.128036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.183640, 22.950760, 172.328491, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 38, 1550 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.987141, 26.500879, 130.803696, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.066334, 25.258486, 122.712532, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 38, 1550 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.075527, 18.440212, 254.309052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.862797, 26.633394, 135.292236, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'will-o-the-wisp_45' ) , 38, 1550 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.220726, 24.047203, 202.930588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 75.620148, 23.101341, 173.372421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.131577, 22.574894, 147.871826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.647774, 24.132235, 202.558289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 134.761444, 28.608131, 167.188324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 129.156998, 25.553301, 181.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 130.522385, 28.263964, 163.548691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.503143, 32.914188, 178.984558, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 39, 1641 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.917995, 20.827244, 200.469391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.165949, 21.876945, 190.043381, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.875324, 23.129019, 189.192474, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 39, 1641 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.467606, 20.028774, 208.815323, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.018549, 21.832933, 191.113770, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 458.028564, 1.207998, 166.398666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.177734, 0.977621, 169.305634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.045959, -3.000765, 87.875648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 380.607117, -1.714232, 96.928268, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 364.208771, -3.970027, 67.266266, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.628906, -4.532925, 65.597023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.016663, -3.561828, 81.993332, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.104309, 4.103601, 130.404922, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.245178, 3.991643, 157.491852, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 441.558441, 1.072546, 192.598175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 458.455750, 4.506071, 200.943817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.870850, 2.925568, 198.553757, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.338837, 0.778188, 117.291611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.043579, 2.042016, 137.151703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.318726, 3.714472, 154.953125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 393.102020, 4.861976, 164.145691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 473.094635, 0.853687, 151.026642, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 495.067139, 3.394598, 169.433228, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 372.369049, -0.252312, 145.539474, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 507.013977, 5.353294, 208.204666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 498.367493, 7.215365, 187.338974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 545.736084, 11.106025, 197.726318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 556.766907, 22.091091, 102.551453, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 501.207977, 5.114982, 172.674042, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.206665, 5.295686, 204.618622, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 531.545410, 9.615707, 194.108994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 545.011475, 10.566165, 202.816986, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 552.279114, 10.250693, 218.189026, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 509.520203, 5.797393, 203.292374, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.008789, 22.103556, 119.079933, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 523.467896, 17.700638, 110.807457, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 537.433899, 15.900310, 149.338684, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 521.968994, 18.131744, 102.781433, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'ked_8' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 559.085510, 22.032907, 130.158432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.397766, 22.323153, 98.222397, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 540.623718, 22.001871, 120.312935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 538.782227, 13.122617, 164.472412, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 510.703217, 14.727483, 136.516693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 506.451019, 15.708985, 115.746490, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -328.214935, -1.382104, -562.018494, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -388.065887, -6.709208, -538.175354, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.945206, 7.083276, -662.385864, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.218628, -13.288798, -504.089905, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.662155, 17.365246, -621.277710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -90.671295, 0.858022, -621.603394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -157.870773, -1.739383, -601.380615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.650543, -15.724052, -485.586731, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'mudpuppy_139' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -466.278961, -9.345193, -536.730896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -415.876953, -0.624770, -563.817444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.362549, -6.366338, -521.945862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.668152, -1.889767, -554.169678, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.576813, -4.208381, -544.994019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -393.795471, -14.137053, -498.157990, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -419.072571, -6.750120, -525.624817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -364.357361, -16.055626, -485.979156, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'morbol_140' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -400.447693, -16.800800, -359.738800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -430.408478, -16.474775, -380.616394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -305.019958, -16.239365, -455.824524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -382.151276, -16.695229, -437.809906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -340.258087, -16.800798, -435.010925, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -368.801117, -16.799139, -384.071411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -399.663300, -15.824222, -469.566040, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -392.769775, -16.800800, -355.330872, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'nix_27' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -270.115723, -5.564771, -530.555054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.074890, -9.268876, -515.046387, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.879089, -3.662974, -551.692932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.126770, -0.551605, -641.217102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -100.280334, 2.170384, -585.664856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -168.402740, 6.150620, -671.770264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.364151, -2.393888, -579.431946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.987137, 2.095308, -618.217896, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.234894, 14.862438, -595.883179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 221.954544, 20.428785, -614.556824, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.700058, 0.592923, -555.540466, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lakecobra_777' ) , 45, 2255 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.281021, -22.899044, -448.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.274078, -25.327501, -425.410950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.878082, -26.339148, -406.439697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.547302, -22.023846, -404.229553, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 214.777313, -22.923229, -424.896454, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.022980, -23.576593, -420.736481, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.975128, -26.967882, -439.738098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.692841, -27.403070, -429.507172, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.337982, 15.031981, -649.709106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.565247, 26.081779, -728.244263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 380.336121, -3.791148, -690.031677, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 337.717163, 4.031579, -690.909851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 560.117798, -6.999856, -657.073792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 573.328003, -1.667467, -623.888733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 341.486481, -7.720042, -454.207611, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorthoplomachus_55' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -556.903625, -2.485354, -455.298401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.370392, -13.977342, -423.385071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.289978, -10.910893, -468.692657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.984589, -4.141672, -466.825958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -465.682953, -3.579284, -251.795898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -532.359619, -2.044634, -291.235474, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortlaquearius_61' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.484222, -4.199565, -501.470306, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.636261, -4.000793, -276.630219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -542.703735, -3.200111, -329.053131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.353668, -3.883567, -478.330811, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -640.300476, -3.558564, -367.160309, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorteques_62' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -592.797729, -2.945007, -432.211792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -446.294891, -3.984699, -219.651199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -431.483154, -1.764804, -303.251862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -635.341492, -2.933044, -396.278687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -546.838928, -1.655508, -293.503632, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -557.301758, -3.677437, -381.385284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -558.028809, -3.625569, -364.324585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.250092, -3.627208, -282.124115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -482.683105, -5.597062, -441.493073, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -479.714355, -4.413937, -417.199463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -437.867004, -2.581742, -273.708099, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsecutor_63' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -566.502625, -2.782105, -424.495209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -429.060333, -3.250240, -244.869003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -563.040833, -2.800797, -326.335052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -470.802673, -6.755476, -449.609680, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsignifer_64' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -600.921204, -3.536839, -364.490417, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.175293, -3.463209, -246.931213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -450.320038, -10.954619, -443.615082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -527.848938, -3.884468, -328.329559, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hippogryph_645' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.388214, 35.697899, -691.959290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.593445, 22.060387, -684.986938, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.112274, 21.745182, -725.411682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.257690, 21.586653, -742.933533, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.948944, 22.898510, -736.725281, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 360.181458, -0.605726, -693.488159, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.813049, -3.384825, -641.108826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 265.096130, 31.913975, -655.052612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.069336, 32.070313, -656.951233, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasshramana_727' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.364746, -5.760643, -519.664429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.097046, -13.677204, -430.790649, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasbonze_728' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.880981, -0.431493, -568.846741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.587311, -4.908767, -464.247131, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigassozu_729' ) , 46, 2360 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.073486, 6.867375, -558.511169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 357.963623, -24.465349, -377.861969, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortvanguard_201' ) , 47, 2464 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -582.038574, -3.258524, -375.911133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -541.600830, -3.747990, -410.381073, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -551.768066, -1.774953, -306.972473, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -498.718903, -3.551362, -255.750671, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 485.397308, 5.016501, -833.477112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.436981, 5.220707, -835.526794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 471.936218, 3.177799, -816.784912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 499.297638, -2.805530, -776.088135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.334198, -8.178817, -750.712708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 555.593201, -8.565275, -754.109070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 482.898956, 2.257884, -809.709290, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hapalit_647' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 555.226746, -8.898793, -734.929565, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 453.029816, -4.964316, -753.367249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.815704, -4.557326, -760.564636, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 473.033081, 1.239610, -802.416260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 484.811157, -0.451689, -793.427063, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.354614, 2.609100, -811.419617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 495.249084, -4.774260, -758.666748, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.906487, 7.766785, -112.382797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.031654, 8.382126, -109.312462, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.253563, 7.766795, -107.438797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.363419, 8.723187, -89.751022, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.579697, 7.831109, -105.370468, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.358231, 16.762192, -143.526764, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.254044, 16.992121, -138.768112, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylookout_84' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.082748, 21.531290, -108.673607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.308212, 19.124540, -148.603928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.376198, 19.407740, -146.837601, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.000183, 18.234480, -159.014297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 170.907196, 17.193430, -151.395401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.185997, 20.035912, -97.032173, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellylarcener_86' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.414299, 19.130779, -145.398300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.760773, 18.225830, -160.113007, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.574188, 19.568178, -147.790741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 121.843201, 19.657021, -96.971130, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Redbellysharpeye_87' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.022751, 17.685242, -160.638855, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.717804, 17.307770, -150.139297, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'antelopestag_4' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.831696, 7.691807, -46.406120, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 265.506958, 4.411418, 11.037241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 265.280396, 3.800973, 15.152361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.214294, 4.019607, 47.951607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.534271, 5.418306, -43.638466, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'goblinthug_52' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.515686, 2.215992, -18.509239, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.658691, 2.315050, -15.389510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.698792, 2.227228, -15.091220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 292.225494, 0.411926, 13.809330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.018890, 1.331932, 12.307590, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 288.588348, 0.879824, 15.756058, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.147186, 2.709898, -14.054202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.945190, 0.409452, 8.234367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.199188, 0.290855, 13.417520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 304.396423, 2.924789, -21.686890, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.342682, 0.037199, 3.295926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 303.703857, 0.268654, 0.926814, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.633820, 0.409673, -7.136538, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawcutter_311' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.940704, -0.871704, 5.487583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.704803, 2.251096, -6.478794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 443.449249, 1.206185, -27.191357, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 435.723999, -1.106398, 3.907724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.075500, -0.808707, 21.408360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 399.968506, 4.262952, -41.852612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 365.959564, 1.495418, 11.476063, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawpoacher_79' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 376.814392, 5.572972, -33.204460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 400.476288, 4.415656, -40.787842, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 443.225128, 1.132449, -23.629194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.506531, -0.968450, 4.484751, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.771088, 2.792354, 1.937849, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'Coeurlclawhunter_81' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.160797, 2.597828, 2.700800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.472290, -0.696626, 20.340231, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 385.971649, 5.061934, -31.659348, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.385895, -0.553056, 17.377296, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 441.388062, 0.497021, -19.399742, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'midlandcondor_13' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.865509, 1.809588, 263.583954, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.996582, 1.426737, 342.653564, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -141.560959, 6.272810, 198.275650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -181.334198, 0.393388, 252.029144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.512657, 1.324417, 289.104156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -113.304680, 1.687379, 294.816193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.560150, 0.475182, 307.199982, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -179.978348, 0.719709, 329.209045, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -237.583450, 1.661793, 261.490448, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.843338, 4.089278, 183.776520, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.589493, 1.154449, 324.982727, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -192.167038, 0.415485, 278.080688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.696136, 1.398886, 282.261627, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.375153, 2.374717, 345.585815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.443726, 0.593220, 305.520172, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.993988, 4.160473, 212.311966, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.840790, 2.666260, 213.122116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.619110, 0.431141, 245.956497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -165.678986, 3.625934, 215.356796, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -143.034546, 0.423322, 251.276260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.994171, 4.454423, 211.479813, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'bigmouthorobon_302' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -139.280334, 0.258331, 457.113464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.969055, 0.362278, 478.022034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -179.666992, 0.332963, 444.138184, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -185.408615, 0.266403, 449.922852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.103333, 0.300919, 474.658325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.171661, 0.748118, 457.431763, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -202.472046, 0.153294, 470.119843, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -182.465149, 0.692689, 486.804260, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.738220, 0.430243, 400.522858, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.715607, 1.946162, 410.582825, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -291.772858, 0.900326, 472.309082, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -310.777985, 0.162769, 445.172241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -207.096771, 1.071835, 441.479340, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.266296, 0.153294, 448.889465, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 31, 912 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.150986, 1.656634, 491.590485, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.354309, 0.177688, 420.871155, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.614014, 1.017294, 475.941895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -222.174683, 0.245277, 422.346466, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -272.775970, 0.262740, 458.944794, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'midlandcondor_13' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.503571, 8.312009, 599.378967, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.101288, 6.837176, 577.566589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.734238, 6.599647, 575.416992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.333344, 7.674835, 627.477600, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -220.020691, 4.445139, 553.418213, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.407837, 8.195292, 559.585327, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.116119, 7.772100, 543.292297, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.916077, 6.598433, 542.015564, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 32, 1003 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.238327, 6.714292, 643.844238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -304.976715, 11.406525, 607.278809, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.356644, 4.147506, 536.301086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -258.996460, 6.352378, 575.726501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.968506, 7.203197, 586.438416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -265.090637, 7.714521, 615.028564, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.765808, 9.084420, 649.488220, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'revenant_305' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -359.571838, 2.618863, 452.217041, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.619415, 1.547869, 459.698456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -359.894470, 1.704200, 450.634918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -341.039917, -0.246708, 434.567810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.396973, -0.072292, 433.112183, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.931854, 0.644351, 449.011383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -338.630157, 0.015721, 464.793152, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -339.323822, 0.100279, 458.544617, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'adamantoise_34' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -102.853882, 0.919991, 444.065735, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.147224, 0.684962, 422.009094, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.019958, 0.586246, 433.157928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -122.896088, 0.230155, 396.459869, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -124.711922, 0.153294, 329.033081, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -104.857994, 0.277952, 336.546631, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 33, 1094 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -105.483780, 1.028373, 386.442139, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.539383, 1.108556, 387.542206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -95.773643, 0.350429, 456.111206, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -156.503342, 0.293183, 436.030182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.389481, 0.153294, 330.804016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -70.834503, 0.876224, 383.165375, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'stroper_304' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -38.923328, 0.463687, 396.443451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.523119, 0.153294, 321.834167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.093653, 0.153294, 340.524994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -83.193642, 1.056305, 374.900818, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -55.078377, 1.117311, 334.602478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -47.895683, 0.550648, 323.515076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.164146, 0.197421, 368.848450, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.203939, 0.567452, 376.808319, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'hoverflyswarm_41' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -66.229385, 0.470740, 347.624969, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.964665, 0.945460, 342.394318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -25.739456, 0.237568, 388.307068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -39.707355, 1.465754, 331.610229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -34.489265, 0.189519, 381.213776, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.964661, 11.353290, 46.488895, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.642715, 11.650244, 11.869540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.804718, 12.405178, 33.941341, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.444275, 12.926345, 14.271735, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 192.581512, 14.598205, 15.761089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.358261, 13.567279, 15.541267, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 221.324707, 7.175955, 20.020166, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.467056, 10.574434, 45.225460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.834488, 6.335375, 43.592045, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.914536, 12.972029, 15.819272, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.604614, 5.173750, 26.640421, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.147835, 19.753290, 83.307610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.994148, 19.753290, 82.153656, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.343025, 18.452957, 103.391800, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.098480, 15.507181, 58.926193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.282440, 14.762327, 55.081429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.596497, 16.780977, 31.200932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 157.266510, 18.092510, 71.019943, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.540764, 20.548759, 119.398781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.088455, 25.621527, 138.486755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.536133, 17.720877, 59.170906, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.383949, 13.003560, 277.658752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.525326, 13.447519, 277.748291, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.324982, 23.011427, 206.204132, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.850285, 19.619558, 226.488358, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.387905, 25.835718, 146.029312, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.327812, 26.435793, 147.477768, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'deepvoiddeathmouse_143' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.424385, 21.123337, 216.775421, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.876198, 22.852333, 171.219681, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.650352, 7.656987, 295.602875, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.400002, 24.153290, 243.600006, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.889751, 5.897223, 298.823547, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.834991, 23.290342, 169.415237, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.378372, 26.235823, 125.493034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 36.875820, 24.711195, 123.689690, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.082722, 20.187195, 249.869583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 43.372524, 25.252363, 127.906715, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'will-o-the-wisp_45' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.565353, 32.581528, 168.852661, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 123.972107, 25.520151, 174.161850, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 133.863083, 28.355707, 166.732483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.316284, 27.648630, 166.942749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.835373, 24.025297, 199.365784, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.490097, 23.521835, 197.232773, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.696983, 22.855371, 173.167511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.423866, 23.661100, 143.255524, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 13.807843, 22.458664, 189.305191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.401884, 21.692461, 191.166870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.774662, 21.492319, 202.744736, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'treant_24' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.120174, 20.668344, 208.371841, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 26.181091, 21.849955, 199.178192, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.104797, 3.900063, 154.302032, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 411.833557, 3.604383, 142.915298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 460.735657, 1.445295, 166.065445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 452.854462, 0.989017, 162.816437, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.026337, -0.833541, 95.128105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.488892, -4.516891, 68.496490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.930603, -3.548059, 68.991745, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 377.577789, -3.551390, 80.920975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 381.041290, -2.115168, 93.648079, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 477.625641, 1.147643, 151.936920, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 501.000000, 1.950299, 161.404984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.773895, 0.077442, 121.162926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 375.394470, -2.688785, 139.208099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.742157, 1.509500, 137.437698, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 395.710022, 4.599590, 167.296249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.906097, 4.414481, 157.988266, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 436.129211, 0.903567, 186.491592, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 455.975189, 4.169324, 200.137070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.792572, 4.737974, 204.952255, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 559.713684, 22.255341, 104.042580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 495.646942, 5.945332, 181.850464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 540.102844, 9.753292, 200.415726, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 517.246887, 6.984753, 210.894669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 499.554596, 3.523035, 168.700134, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'wildhog_16' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 551.871521, 10.267349, 214.872589, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 546.916443, 10.735801, 209.083191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 480.241638, 3.555407, 199.448532, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 508.732544, 5.603448, 205.690750, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 530.580383, 8.312509, 200.672546, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 525.956177, 17.985266, 110.420319, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 525.131958, 18.214191, 104.757202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 575.822510, 21.953291, 118.040573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 599.400024, 24.353291, 128.800003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 599.400024, 24.353291, 128.800003, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 541.415405, 15.709756, 157.183395, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'ked_8' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 574.674805, 21.953291, 111.696815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.271729, 22.332457, 97.832085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 558.068970, 22.096968, 129.368500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 539.387390, 12.721354, 168.084351, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 538.911011, 22.129368, 119.979897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 517.600159, 14.353291, 135.087219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 507.100128, 15.949841, 120.654549, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 153, ( SELECT id FROM bnpctemplate WHERE name = 'watersprite_59' ) , 50, 2778 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 586.509155, 23.155062, 111.219131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 611.512207, 21.985785, 96.698593, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 633.610718, 22.217564, 99.797424, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 632.563721, 22.092108, 124.318573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 635.942017, 22.404177, 85.635574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 603.639404, 22.310717, 71.003387, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 647.492737, 22.129053, 73.999176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 624.314209, 22.050442, 62.299835, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 633.144775, 22.013826, 59.762001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 606.284058, 22.073412, 93.031006, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'treantsapling_1446' ) , 12, 243 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 448.665466, -2.200934, 262.911133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.635590, -15.716443, 274.543427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.110153, -40.847401, 347.687714, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'treantsapling_1446' ) , 17, 369 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 236.167938, -6.404164, 2.828103, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 336.211639, -4.972036, 12.597113, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'groundsquirrel_37' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 466.498260, -1.990633, 262.837921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 473.635254, -2.672412, 246.595718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 473.629547, -2.648290, 247.889191, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.569977, -2.540266, 243.568817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 387.588837, 1.475319, 193.655991, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 444.209747, -2.776396, 243.174316, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 450.206207, -2.514635, 246.747650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.799835, -2.325333, 233.298325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 422.207428, -1.125567, 191.561249, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 420.803101, -1.791042, 182.474380, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.838867, -1.461022, 182.552948, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 423.526489, -1.366936, 197.251129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 469.178772, -2.718938, 228.180115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 467.314667, -2.628238, 226.910995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 433.069733, -1.816541, 204.064377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 454.380188, -1.495000, 207.570404, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 470.807434, -2.737030, 246.605667, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.166962, -2.406608, 234.586411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.348267, -2.492271, 231.167053, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 422.384033, -2.013290, 175.614014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.733093, -1.667910, 199.294754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.377777, -2.590864, 213.449280, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.065033, -3.747003, 225.531647, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'banemite_11' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.912659, -24.880915, 156.759918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 178.496719, -24.434551, 156.867386, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.668167, -24.089746, 152.115814, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 162.592911, -24.463045, 162.217819, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 164.049011, -25.865692, 192.238968, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 204.626984, -24.704874, 150.106445, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.716644, -22.523417, 138.316956, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 227.972916, -21.987413, 137.596893, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 58.466400, -37.683338, 289.859741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.015686, -27.354259, 234.190048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 110.728439, -28.119913, 255.499268, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.679016, -27.463057, 289.750458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.896217, -28.451370, 271.261688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 92.316597, -27.504709, 286.103729, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.444923, -27.917391, 274.949432, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.347572, -27.136339, 290.448090, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'balloon_17' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 22.622007, -48.433090, 472.207275, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -29.867552, -54.317608, 499.576294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -46.327930, -48.491528, 425.025574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -11.874866, -51.833035, 443.467346, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.572247, -53.577740, 463.399109, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Shroudhare_40' ) , 25, 633 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -29.300205, -54.893799, 489.894562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -31.052341, -54.178596, 498.509583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -34.594063, -54.453823, 499.514801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -11.723125, -50.672173, 432.295502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.697838, -52.895653, 462.987579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -24.290831, -52.467823, 454.741791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.674862, -45.836910, 409.326996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.948016, -49.692017, 433.942200, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -36.635914, -47.720341, 413.658478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -44.466206, -48.621002, 424.178284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.307989, -45.839123, 407.179993, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.643781, -51.854145, 442.083740, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'yarzonscavenger_42' ) , 26, 671 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -41.787991, -53.044216, 483.659943, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -43.171856, -53.595791, 492.240692, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.466835, -51.397850, 484.754456, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 29.757238, -48.534210, 470.075470, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -9.200162, -51.846092, 454.941376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.400006, -46.724556, 468.927277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 1.955398, -49.731941, 481.876434, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 4.182874, -47.649422, 474.596558, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'banemite_11' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.176575, -40.401649, 200.219742, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.953308, -39.631363, 195.292511, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.790665, -54.555080, 295.732208, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.475861, -23.696390, 240.480194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.760986, -23.059324, 194.181839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -251.057816, -26.977282, 245.576523, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -146.303177, -44.421459, 245.826752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -270.144073, -15.826331, 256.003937, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalideftalon_113' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.547020, -40.461750, 336.659790, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.443611, -40.187721, 343.554413, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.557281, -40.634819, 351.460999, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalilightwing_114' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.208130, -40.756901, 339.009613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 90.043427, -40.634819, 352.315491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.970268, -40.324650, 335.009186, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalistraightbeak_115' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.996368, -37.848003, 316.020142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.346886, -38.478844, 331.501251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.498779, -42.087479, 359.175293, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'balloon_17' ) , 27, 708 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -151.490173, -45.443272, 247.351105, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.326904, -45.301071, 222.349167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.387939, -21.661444, 237.094513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.694855, -51.607178, 280.057373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.426102, -35.028866, 228.584045, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'balloon_17' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.376434, -78.809013, 483.165039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -262.589325, -78.299629, 491.105377, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.151093, -54.899208, 303.533600, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.049957, -51.606628, 333.685059, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.111145, -61.471825, 356.017334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.709900, -73.005264, 416.052246, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -185.606995, -58.959106, 346.852814, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.624725, -62.889030, 361.490326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.248711, -51.219498, 361.012451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -114.428009, -54.317028, 365.407928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -92.357559, -51.000797, 356.140869, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'ziz_179' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -200.652588, -30.550320, 338.611633, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.132965, -50.188366, 341.681946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.699600, -27.425776, 280.634857, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.079391, -26.757635, 285.141663, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.674103, -52.614944, 285.788452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.048401, -52.566494, 328.066833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -257.190704, -57.575130, 299.926117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.153229, -53.807686, 306.962952, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'pumicegolem_2265' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -295.432526, -78.740044, 470.949005, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -269.516510, -78.026421, 492.304718, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -302.792938, -78.296501, 465.506165, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'claygolem_30' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.327560, -70.956749, 402.699554, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -171.643738, -57.722458, 347.983002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -176.593933, -57.668221, 345.014984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -86.386276, -50.524769, 358.671356, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -106.452179, -52.205696, 387.757629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -173.453705, -58.488270, 346.267395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -180.289703, -58.090000, 341.292908, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Shroudhare_40' ) , 28, 746 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -190.493042, -31.036869, 325.691101, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.197678, -31.006178, 323.945740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.105881, -30.180990, 340.733215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -244.308945, -30.956570, 353.143829, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -227.122025, -26.816416, 298.291229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.784653, -26.288601, 293.661499, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.949265, -32.566513, 261.830780, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -238.620636, -26.640406, 274.734528, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.070114, -30.006771, 342.551880, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.013580, -30.952934, 325.869690, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -204.534821, -31.032219, 300.300812, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -213.426086, -29.440090, 279.167450, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Qiqirnbeater_170' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.855011, -46.612072, 437.906494, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 15.568058, -44.707146, 431.092987, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.489580, -47.098289, 439.071106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.131210, -45.159229, 446.378540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.420906, -46.250164, 448.252747, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.118601, -45.096272, 440.785797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.243629, -45.595200, 442.469513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.488041, -45.079990, 439.112488, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'brightballoon_2266' ) , 29, 783 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.002945, -32.368084, 260.770813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -219.063568, -30.960922, 326.969147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -189.969803, -33.172054, 284.736725, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -191.850067, -31.384821, 255.642868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.056107, -32.913761, 285.816711, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'groundsquirrel_37' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 447.252991, -1.133227, 283.642944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 446.113220, -1.652738, 280.493011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.806244, -2.593102, 266.749725, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 439.325073, -2.317467, 270.251251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.629272, -3.765873, 285.507080, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.551422, -3.871356, 264.624512, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.433685, -3.556587, 278.281403, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.095367, -4.338430, 277.659760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 422.342133, -2.985626, 253.651703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 418.535187, -3.143682, 252.115112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.889343, -4.782137, 264.528961, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 322.194092, -5.218106, 261.613312, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 388.566620, -8.158063, 268.401703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 404.968994, -5.545228, 231.950211, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.143799, -11.551130, 289.967102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.812195, -6.402293, 271.350494, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.143799, -11.551130, 289.967102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 346.657288, -9.506935, 281.873444, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 345.143799, -11.551130, 289.967102, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 2, 51 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.295380, 1.559244, 248.142197, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 327.631714, -4.010738, 260.342712, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.316010, -3.583593, 262.810577, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 410.876282, -4.452013, 276.185852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 382.681732, -8.432541, 277.547180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 418.173218, -3.293894, 249.385651, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.617279, -6.897844, 273.022186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.469727, -8.200389, 278.105164, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 346.218903, -6.677882, 272.394409, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.753906, -25.511141, 163.060287, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.133606, -26.408529, 166.705200, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 131.894653, -25.269260, 200.512894, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.940872, -28.934441, 208.233734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.422707, -22.723551, 185.438736, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.119209, -16.379000, 168.621429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 69.744812, -15.274917, 164.976410, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.037338, -13.450945, 148.275909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.934341, -16.896721, 161.463257, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.622391, -7.815698, 104.536781, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.786797, -8.167059, 76.579941, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'dryad_25' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 102.412933, -24.345034, 192.686157, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.908051, -26.410290, 171.575668, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 94.438576, -29.624483, 211.011658, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.001991, -14.035642, 155.960617, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.288971, -10.297372, 113.346924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.191046, -8.592063, 118.745567, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 28.141094, -7.084166, 77.074669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.860352, -6.413082, 41.667854, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.185486, -24.238043, 199.828568, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 230.735458, -26.772020, 320.790375, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.539886, -26.633743, 303.428406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.283188, -25.869627, 298.408691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.814682, -37.222305, 353.131866, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.987259, -33.715103, 320.927551, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 141.319626, -30.425896, 305.215118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 163.521210, -36.696163, 324.640381, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.916260, -37.939236, 334.073822, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.833328, -22.622082, 271.424866, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.288177, -14.406299, 287.548828, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.657196, -14.234612, 302.773743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 249.339157, -20.893364, 290.633484, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.440933, -40.917686, 358.430176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.198959, -24.034119, 354.113892, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.695526, -29.321188, 350.429810, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 212.259140, -29.018997, 349.704865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.271866, -29.748947, 330.747437, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 347.893127, -10.285907, 293.813110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 335.174713, -12.708176, 285.193939, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.632935, -11.581760, 288.675995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.574585, -14.779820, 286.915314, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'miteling_9' ) , 3, 59 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 237.291565, -23.197979, 269.435547, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.029037, -37.389481, 355.266876, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 181.175369, -31.967815, 315.198364, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.633224, -23.063074, 284.389648, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 228.552444, -27.238516, 314.645477, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 232.579910, -25.898275, 321.918701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.884079, -23.205677, 330.465271, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 227.220688, -27.784750, 319.593292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.494827, -25.105030, 363.779541, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.772263, -44.041264, 351.680634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.511124, -43.340069, 352.387207, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 149.405930, -30.123154, 303.305237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.286865, -30.785473, 307.067078, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 156.966461, -37.185364, 328.469696, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.130188, -36.486309, 326.404510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 162.473511, -35.556599, 320.550293, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 238.909348, -24.698296, 331.941223, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.434174, -14.587594, 289.130707, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 261.186127, -18.106544, 288.284119, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 241.505722, -22.529137, 276.124420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 246.306305, -21.307178, 271.658142, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 178.535553, -38.710983, 338.270416, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 235.758255, -23.231339, 363.418488, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 238.578552, -24.080196, 358.981171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.408096, -27.501806, 345.341858, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.802246, -27.676291, 347.098175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.229309, -27.714701, 348.696625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 201.429779, -31.631750, 321.272980, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.163803, -29.946514, 323.622284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.207123, -31.841236, 313.772858, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 105.225159, -23.942316, 166.073776, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.391098, -22.163919, 167.257355, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.381638, -20.774815, 174.667084, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 101.271164, -24.112495, 168.091171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.523018, -21.735163, 163.319031, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.585274, -21.834829, 159.166519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.904129, -23.784775, 170.714294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.328766, -22.997301, 164.047501, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.680470, -13.102538, 4.013079, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 17.143629, -13.135910, -22.856504, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'watchwolf_141' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.538161, -11.162991, -35.996574, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 145.461090, 7.787442, -57.104992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 160.140762, 4.836817, -43.951157, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 91.194160, 8.967226, -80.741615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.404259, 7.633532, -67.409668, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.206978, 7.122354, -59.072567, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 108.879822, 7.656955, -62.495335, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'dullahan_29' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.288193, 7.157057, -61.151047, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.115753, 6.856338, -42.083694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 99.521080, 9.112247, -78.552879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.674759, 7.148055, -49.267574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.844162, 8.066178, -57.291794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.681259, 6.972931, -54.158928, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 162.204865, 6.354493, -46.073467, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Ixaliboldwing_748' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -10.940770, -10.678302, -42.618488, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'lesserkalong_130' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.625496, 12.332692, -118.408035, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 31.821644, 1.210524, -86.718002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.421066, 0.366041, -86.321480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 35.674282, -11.942129, -36.255299, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.766075, 0.299008, -68.441666, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.674690, 7.223571, -88.340393, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'dullahan_29' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.061352, 12.334880, -105.240578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.884760, 0.464223, -89.395393, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.709709, 11.459209, -103.606270, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 37.075310, -11.887449, -35.989616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 42.841457, -1.706976, -60.704121, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 43.341743, -0.750899, -67.891327, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'littleladybug_49' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.137573, -26.974409, 275.352936, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.103256, -27.438736, 286.867950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.028107, -27.207596, 296.509918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.346161, -24.117504, 279.295380, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.153259, -21.281086, 250.462509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.680206, -23.168442, 243.457596, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.683807, -24.599781, 221.898926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 226.253677, -26.092764, 239.847168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 299.349182, -16.611303, 271.861664, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 263.544037, -25.846861, 223.461990, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'miteling_9' ) , 4, 68 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 195.126404, -26.921535, 276.677002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.490738, -26.464230, 274.733337, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 194.243866, -27.227835, 267.902893, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.079681, -26.944832, 283.535614, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 176.085419, -27.219917, 298.892120, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 227.690567, -26.362230, 245.871719, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 260.432861, -26.523909, 218.407486, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.169891, -24.552147, 239.221329, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.781799, -25.008877, 222.487000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 294.845154, -18.269661, 266.795868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.982117, -20.729939, 252.164108, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.194183, -20.141367, 255.055237, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 261.184357, -22.827213, 241.041580, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 246.067993, -24.250166, 237.872192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.862701, -24.275229, 246.622284, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 174.283417, -27.032242, 287.576385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.522949, -26.777786, 285.146118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 238.272568, -27.520794, 215.741821, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'midgeswarm_136' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 275.189758, -12.868624, 100.704025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.360626, -26.968781, 185.538086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 312.628174, -16.895617, 183.257721, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.034882, -21.262154, 208.316574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 305.064789, -9.643892, 108.035904, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'opo-opo_5' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.376892, -14.285279, 105.059807, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.426300, -22.026617, 133.031036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.102295, -20.351688, 128.443893, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 287.340240, -19.640957, 130.213440, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 274.101501, -19.604639, 125.548752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.394806, -12.321908, 111.223999, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.395508, -11.255126, 103.385796, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.195313, -13.551058, 101.571877, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 300.381256, -10.213514, 104.409752, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 306.081268, -8.325886, 100.122780, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 302.840179, -9.001265, 98.750832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 295.829926, -21.998280, 156.688248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.051971, -16.751501, 186.831741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.141785, -16.515368, 189.837143, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.708252, -16.368145, 185.316299, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.287842, -16.650148, 182.584259, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.668884, -13.791954, 189.410110, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.864380, -25.781574, 195.038147, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.260620, -25.938435, 194.503143, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.272491, -25.422060, 193.397995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.675842, -23.874384, 197.434509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 296.478149, -23.025946, 217.304291, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 299.746368, -20.736233, 226.406097, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalidulltalon_743' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 242.276093, -27.425688, 216.980225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 247.882797, -28.305531, 212.390305, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 215.472595, -27.237400, 253.040298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.315704, -26.199789, 217.486801, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalilostwing_744' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 212.019608, -27.601471, 252.518906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.751434, -27.202776, 218.911407, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.411407, -26.477131, 218.507996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.780106, -26.509901, 235.012878, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalislowbeak_745' ) , 5, 91 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 213.643143, -26.785412, 257.419373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 248.345520, -28.825550, 208.801743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 221.789795, -25.833570, 222.369705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 225.918106, -25.949650, 221.336227, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'midgeswarm_136' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.881683, -9.934970, 6.032243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 245.939240, -5.297892, -11.190616, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.304810, -5.284276, 23.217363, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 338.406403, -4.752516, 25.828402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.494171, -10.962522, 41.169361, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.717285, -11.727630, 46.247868, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.981537, -4.772184, -0.927610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.017242, -7.395024, -17.937799, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.104889, -5.832767, -50.042629, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'microchu_32' ) , 6, 108 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 362.156891, -4.258562, 24.300558, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 362.104675, -3.651026, 20.606325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 348.904602, -4.668022, 22.093134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.728882, -8.891088, 1.352348, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 312.794434, -6.841514, 25.821131, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.655823, -6.808291, 27.758856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 337.597931, -4.859971, 26.210247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.391113, -11.875398, 35.485832, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.490143, -7.067228, -28.227337, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.678528, -8.308248, 7.854243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.820374, -5.376875, -52.429478, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.653290, -7.225593, -25.937996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.690002, -7.400007, -24.719303, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 324.261353, -6.393096, -19.690958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 310.733002, -7.671255, -6.475940, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 316.388153, -7.460956, -4.543352, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 272.734772, -6.439068, -37.198612, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'midgeswarm_136' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 410.148712, -5.821678, 55.142704, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 409.242554, -2.460924, 96.917351, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 369.279205, -5.647965, 87.080414, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.204468, -7.150238, 53.035225, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 380.815582, -7.075089, 72.106461, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'opo-opo_5' ) , 7, 126 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 395.945129, -5.443278, 70.268852, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.000732, -4.458478, 93.691376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.025452, -4.543618, 92.892342, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 375.969696, -6.292360, 85.775238, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 370.086823, -7.312320, 79.230186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 407.753571, -5.403399, 64.277611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 383.155792, -7.008792, 67.004433, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 402.024139, -6.549650, 58.815468, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 406.443207, -5.919146, 61.461578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 426.452484, -1.982082, 72.134438, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 418.978058, -3.921031, 81.660141, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 420.252106, -3.888254, 82.093483, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 408.884491, -5.827724, 62.036102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 375.084778, -5.777528, 87.915588, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'midgeswarm_136' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 220.407944, -10.353599, 70.452797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.921249, -8.747519, 35.056480, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.536041, -5.182043, 22.215717, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 243.712677, -6.880908, 11.979882, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.502960, -4.188119, -3.029413, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'microchu_32' ) , 8, 143 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.353577, -11.764830, 65.806046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.132217, -10.299309, 71.811539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.395447, -9.517127, 57.155708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 240.977493, -10.807569, 44.424423, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.043274, -5.788846, 18.506189, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 255.650284, -8.706514, -0.022583, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.681152, -8.692828, 16.207722, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.784332, -13.499894, 49.831326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 251.587021, -13.410770, 51.637657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 239.286682, -10.883812, 45.472836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 218.003647, -5.833176, 19.700842, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'midgeswarm_136' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.580963, -0.268882, 186.486176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 326.526215, -7.833990, 133.685562, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 314.787628, -9.793298, 142.268997, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 379.200378, 1.767053, 178.913879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.916931, -4.548035, 174.693787, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 154, ( SELECT id FROM bnpctemplate WHERE name = 'opo-opo_5' ) , 9, 160 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.136444, -11.663385, 158.180984, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.904663, -12.598672, 160.887939, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.649933, -10.416337, 148.953766, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.352509, -8.363276, 128.012970, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 318.683868, -8.737525, 124.636429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 313.547729, -9.409240, 139.119247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.959412, -9.929617, 143.559265, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 352.410126, -0.772906, 185.705154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.744812, -6.814229, 152.445847, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 337.138733, -3.983467, 176.923523, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.482574, -4.009658, 171.799622, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.428375, -5.428444, 168.828629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 340.971313, -4.227253, 169.005402, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 1, 44 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -417.529114, 210.788193, -217.341202, 0, 4297229 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -413.101990, 210.788193, -212.035004, 0, 4297228 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -423.044800, 210.788193, -221.963104, 0, 4297227 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixaliwildtalon_113' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 462.373901, 232.907944, 320.440399, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 527.430542, 235.129349, 299.619202, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixaliboundwing_114' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 550.987366, 235.557602, 305.626678, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalistillbeak_115' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 539.909912, 235.309296, 290.943695, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalifearcaller_116' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 487.834229, 234.244415, 314.059570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 543.114685, 235.512100, 292.484009, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.675182, 262.243927, 260.232086, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.980587, 261.239624, 262.676849, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.706360, 252.546127, 270.619171, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 267.626709, 226.623337, 282.349426, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.757309, 232.334015, 265.771576, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 7.422953, 219.023529, 380.480438, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.235529, 201.353760, 511.747192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 397.417969, 226.328033, 348.034332, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.642254, 215.898407, 392.493439, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.428696, 240.480194, 331.733063, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'ornerykarakul_719' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 333.934814, 222.467636, 368.052826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 355.558685, 224.981644, 305.282196, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 416.578278, 226.736359, 369.277924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 425.202606, 228.738434, 368.267975, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 430.079041, 219.884720, 411.252930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 418.378723, 217.996384, 480.745941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.173645, 221.322296, 486.631409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 422.828857, 219.964218, 494.625366, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'highlandgoobbue_720' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.337889, 204.083527, 481.728180, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.406487, 222.600800, 424.827240, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 265.031250, 295.277771, -92.892166, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.552795, 243.828537, 219.756653, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.383698, 224.221405, 384.603394, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 337.264343, 263.193237, 106.898193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 167.036819, 277.778595, -51.413517, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.938614, 243.863098, 305.131165, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'snowwolfpup_731' ) , 35, 1277 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.140892, 217.098801, 386.722900, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 10.422348, 225.236618, 358.403290, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 111.286888, 240.089966, 295.171844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.826191, 236.510483, 325.665497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 8.497777, 223.819183, 362.026550, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.038208, 241.038330, 317.950500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.866928, 242.492111, 318.612549, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.308071, 255.671127, 278.395935, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.120773, 261.435303, 64.688011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.651184, 232.753128, 257.829376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.190216, 241.675568, 204.771988, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 192.785095, 284.457336, -80.264252, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.914124, 276.436127, 37.077682, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 191.357620, 257.041443, 98.856407, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 352.820740, 233.921524, 257.255676, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 231.725494, 276.700195, -44.714828, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'feralcroc_395' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 331.776001, 257.563812, 131.133133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.243958, 272.071594, 3.242833, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 169.305725, 273.809784, -16.184427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 289.569305, 269.505249, 41.685802, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.735657, 269.848877, 39.934162, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 202.333237, 253.556686, 154.028442, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 278.221436, 253.156296, 149.374634, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.500031, 248.613968, 183.827179, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 244.965820, 270.033539, 24.639282, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'ornerykarakul_719' ) , 36, 1368 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 161.077118, 293.443634, -100.608215, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 163.742310, 292.220795, -95.033646, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 138.663742, 298.850220, -101.741051, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.697479, 283.077942, -64.548347, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 250.711288, 295.505829, -112.946159, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 290.448822, 303.699463, -89.337227, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 262.557434, 290.234772, -65.879425, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.999634, 288.523743, -69.195091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 268.611969, 284.518951, -40.511913, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixaliwildtalon_113' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 523.590454, 308.895416, -302.179138, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixaliboundwing_114' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 551.476196, 322.326385, -309.006409, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalistillbeak_115' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 571.863403, 319.795624, -286.131836, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Ixalifearcaller_116' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 573.244080, 322.398438, -297.404999, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 501.863922, 310.903809, -359.707367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 497.545898, 342.264648, -432.923187, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 501.668488, 302.950745, -245.239563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 456.784210, 306.902496, -291.494446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 457.702637, 305.071930, -283.787415, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 342.435303, 311.762787, -402.972076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 348.522461, 309.895996, -273.534973, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 403.915497, 317.553528, -275.776611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 374.394775, 306.431519, -335.859192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 429.043823, 342.352600, -440.901703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 419.003113, 337.297546, -430.941254, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'ornerykarakul_719' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 330.063110, 319.769409, -435.677277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.135712, 304.701965, -390.678925, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 361.960236, 314.709045, -395.052277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 351.444702, 311.778992, -393.652740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 358.909149, 313.785156, -393.582886, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.200500, 317.416473, -418.741974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 317.226868, 308.090424, -422.265442, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 310.441010, 307.720062, -421.552490, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'snowwolfpup_731' ) , 37, 1459 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.637390, 305.191010, -318.671204, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 353.547150, 304.886627, -359.124786, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 320.805023, 302.852142, -335.988068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 364.291779, 317.988403, -259.718689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 496.114319, 306.809387, -351.640198, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 476.277863, 327.806549, -402.334106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 417.920593, 305.559021, -330.903748, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 407.109772, 306.594147, -328.104889, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 391.842133, 321.335327, -400.393188, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.496948, 353.598755, -660.127014, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.934998, 348.769745, -690.399841, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 432.581970, 365.652283, -539.851257, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 163.989243, 351.061829, -497.558807, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 120.827675, 352.960876, -335.466034, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.932404, 338.506897, -388.890137, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.700165, 330.215057, -469.465027, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.035400, 316.082275, -434.763702, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'vodoriga_388' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 477.233459, 248.456039, -301.901123, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 489.248993, 272.186829, -299.472046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 297.325378, 235.924286, -367.618164, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.228394, 236.937057, -328.558411, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.114685, 236.966843, -323.344513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 395.822144, 248.019958, -317.530151, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 461.727325, 251.037781, -313.176300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 470.054596, 249.105988, -254.382004, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'downyaevis_398' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 126.487556, 376.121887, -671.352844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.013039, 375.263519, -645.913879, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 356.829590, 356.530273, -597.487610, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.582626, 360.936371, -584.412598, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.727081, 358.679688, -563.639282, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 257.246979, 357.043854, -545.990479, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.361755, 357.848938, -557.438049, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'will-o-the-wyke_45' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 574.856079, 282.880585, -312.462463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 596.691467, 283.445496, -318.131195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 586.072815, 282.785126, -291.502167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 579.877991, 282.822540, -289.927277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 685.924988, 297.168396, -326.455322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 664.990967, 304.447815, -361.201050, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 686.013306, 296.904388, -324.822754, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 615.642090, 324.731323, -401.451813, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'redhornogre_646' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.891388, 338.693512, -468.232574, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 147.749207, 345.410767, -377.571594, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 257.777740, 343.245758, -494.076447, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 140.401611, 349.196381, -384.930573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.313812, 354.795105, -501.312134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 394.342346, 355.266541, -550.298950, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 536.989502, 349.073608, -733.111877, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 536.123291, 349.601379, -742.544189, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 471.058807, 350.520935, -666.132568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 293.890808, 329.915039, -479.212799, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.662964, 328.559235, -434.019531, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'ornerykarakul_719' ) , 38, 1550 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.232140, 358.878540, -386.829315, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 115.496727, 357.692322, -386.438385, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 89.897560, 362.264557, -351.091675, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 116.924232, 354.119171, -336.382996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 109.250580, 357.766388, -313.639587, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 124.310959, 354.106415, -322.231506, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.641235, 361.592621, -630.683777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.260040, 288.416382, -116.605751, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.716125, 256.205994, -159.261459, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -348.268188, 250.355408, -111.134613, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.207886, 265.060791, -51.396294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 209.536453, 359.522522, -664.916626, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 209.212524, 360.501038, -662.594360, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.119202, 273.183746, -134.746048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -137.833359, 299.344238, -235.870209, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -312.231445, 249.022888, 1.153427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 136.111832, 374.046265, -662.706482, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -148.682159, 292.171021, -186.524170, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.538483, 344.430023, -518.165283, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.541992, 260.109833, -74.893539, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 321.476105, 359.471161, -580.288391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.941452, 363.966309, -601.148560, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 62.606953, 292.382080, -154.577194, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.591560, 293.348297, -151.981262, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.070923, 288.130554, -211.987061, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -13.957865, 301.576355, -217.987778, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.098221, 298.641144, -162.133240, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'chinchilla_143' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -338.448822, 257.999054, -64.597092, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -421.544250, 240.946960, -109.992783, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -249.636810, 269.241638, -76.809296, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -260.228760, 263.985626, -66.514519, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.043427, 256.464569, -95.888741, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.572906, 255.662796, -39.230091, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -361.936523, 235.387253, -155.539169, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -358.447052, 236.547913, -156.106735, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'taurus_390' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 597.126526, 283.091064, -301.764801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 580.354492, 282.934967, -316.991028, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 564.278137, 283.636169, -305.855103, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 564.092957, 341.698669, -474.057831, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 622.602783, 326.449280, -433.020996, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 624.230103, 322.619415, -390.682251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 685.921326, 308.378113, -365.840240, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 672.854187, 294.435577, -323.289490, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'bateleur_403' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -214.537369, 285.058136, -51.887932, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.732971, 281.588623, -189.199890, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -167.044022, 291.228638, -192.297134, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -160.296509, 292.627899, -206.289688, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -108.635422, 301.706238, -131.203369, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -116.525169, 298.186615, -207.090408, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.599884, 283.138947, -114.945099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -286.452789, 263.121155, -158.605179, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'ornerykarakul_719' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.077877, 311.425934, -247.276367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.930019, 300.807098, -251.190903, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.212017, 310.219818, -246.159897, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.415130, 306.340942, -235.757263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.801912, 307.684052, -241.512924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -14.607471, 311.920868, -253.942581, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 6.942463, 311.798889, -241.633972, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'snowstormgoobbue_720' ) , 39, 1641 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.090225, 304.650146, -269.546906, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 1.727779, 310.386993, -146.170181, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 135.432892, 290.764099, -260.286163, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 107.526894, 289.521606, -167.856461, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -84.918716, 299.561249, -170.980911, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 65.169930, 289.178619, -213.938828, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -932.232056, 260.700409, 13.243055, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -760.924622, 240.981644, -149.837891, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -791.523743, 244.254044, -174.689102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -917.944519, 242.888000, 8.132694, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -494.742676, 230.150757, -114.903236, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -538.739807, 216.045654, -163.807373, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -748.742249, 227.517410, -72.684448, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -676.740356, 224.383682, -22.062744, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -534.677307, 226.352600, -114.963631, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -633.802795, 220.563080, -339.355347, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -800.357666, 226.632675, 14.909669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -895.005005, 249.046478, -40.031979, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -648.438660, 207.811646, -459.020935, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -650.523438, 208.620941, -455.252930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -583.442871, 206.928787, -389.181885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -532.666870, 208.075012, -362.664764, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -523.076111, 189.762070, -425.516510, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -864.494629, 228.501312, 26.624344, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'dragonfly_387' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -582.278198, 187.282700, -480.284821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -586.403625, 202.628387, -435.213135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -653.713379, 212.211060, -435.108093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -647.798279, 203.470001, -492.463654, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -554.290039, 207.443954, -356.293518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -601.049805, 209.605377, -355.993683, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -611.803040, 216.217697, -320.388275, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -623.946838, 211.976929, -374.316193, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -621.242126, 210.416702, -384.797211, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'baritinecroc_394' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -940.144531, 269.559204, 2.527544, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -954.024597, 276.568115, -34.718700, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -853.541382, 225.962921, 24.486401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -869.951660, 230.457199, 32.773064, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -862.816162, 225.524933, -6.974652, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -905.373230, 246.453918, -23.341742, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -909.778992, 249.901306, 30.506165, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'hippocerf_644' ) , 40, 1732 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -496.393890, 238.520020, -96.179955, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -474.079224, 229.449173, -120.211693, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -572.424377, 232.884766, -73.640396, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -576.600830, 226.681702, -121.808464, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -656.337708, 228.134872, -49.158978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -479.014038, 226.141785, -126.932625, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -521.321716, 241.742615, 304.694336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -438.502258, 245.378830, 362.363251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -521.129639, 237.639862, 377.629944, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -247.876587, 226.944244, 415.705139, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -488.658112, 281.952911, 192.861679, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'biast_191' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -346.654175, 238.691528, 379.766724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.473511, 226.994873, 431.678070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -183.928284, 225.964691, 401.942719, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.511353, 225.166077, 416.642273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -521.041626, 277.192566, 200.590500, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -533.846863, 240.435715, 331.611420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -473.987610, 235.608490, 408.959839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -374.834717, 238.336014, 384.787689, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -129.661850, 216.175781, 439.570831, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -459.892975, 286.018707, 200.298111, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -381.941254, 250.282166, 219.689529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -228.601151, 229.119217, 551.400146, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.580215, 224.526016, 580.460144, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.009705, 224.929611, 484.647614, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -286.526459, 221.623627, 666.361023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.835693, 222.989426, 672.876587, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -275.791443, 266.764587, 319.525909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -343.622070, 235.947632, 522.651184, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -418.900726, 233.858917, 460.887024, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -386.902863, 233.421722, 318.439728, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'giantlogger_721' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -355.793671, 274.167511, 254.849136, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.784851, 302.525299, 194.169983, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -281.325714, 260.007813, 335.151642, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'giantlugger_722' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -321.803925, 261.993500, 221.584076, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -461.849884, 269.465942, 264.433899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -359.411255, 249.556107, 286.982635, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'giantreader_723' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -286.297577, 294.229828, 251.342789, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -434.946106, 242.632126, 321.032135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -396.299713, 241.817520, 281.009369, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'snowwolf_731' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.415115, 224.746628, 521.873291, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.559784, 225.466248, 518.322998, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -282.823853, 225.213470, 505.043060, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.933273, 225.385696, 620.836182, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -208.730225, 230.714523, 560.231995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -304.840820, 226.886047, 557.799316, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -394.650421, 238.065781, 500.630859, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -502.610840, 243.067947, 446.797302, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -485.722290, 243.436295, 460.457214, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'icesprite_132' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -97.443146, 214.020966, 427.092865, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -155.898071, 220.965652, 419.068939, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -750.190308, 238.779251, 347.429779, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.026291, 216.953171, 485.981720, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -648.104248, 245.191254, 287.448395, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -606.855408, 245.267609, 336.895752, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'mudpuppy_139' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -197.867996, 216.785187, 481.169098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -455.683380, 231.560623, 437.461548, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -531.918274, 235.566162, 411.499817, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -554.590393, 235.996048, 405.631104, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -564.853638, 236.390228, 400.694336, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -115.737076, 206.017502, 470.519318, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -172.735596, 214.930786, 468.575043, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -262.903687, 222.085876, 466.213501, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -250.799042, 221.465118, 463.720001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.117706, 223.533340, 445.259796, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'biast_191' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -741.786377, 254.826660, 426.798737, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -765.416138, 255.040924, 420.440338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -708.307983, 237.748093, 303.138733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -633.960266, 244.929291, 301.204254, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Natalanwatchwolf_141' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.530151, 292.167267, -34.908226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 581.815613, 289.534271, -42.670319, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 556.419250, 298.132813, 79.147224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 569.233582, 287.274078, 119.093300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 633.218445, 287.026581, 113.530289, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 584.607239, 289.360779, -25.323557, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 573.773254, 292.712769, -48.949265, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 685.565430, 291.606934, 7.757469, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 637.367432, 288.047028, 36.666451, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 509.971863, 303.722931, -226.720856, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 498.967010, 308.593506, -166.805054, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 625.524048, 299.783325, -68.708473, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -702.152222, 253.974960, 503.020538, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -683.154785, 254.341812, 511.382050, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -699.516235, 253.836029, 503.724915, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -685.516724, 254.095825, 502.853241, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -685.696594, 254.173538, 505.888885, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -701.182556, 253.821014, 513.815186, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -709.671448, 253.998901, 504.171509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -677.383545, 255.094315, 503.066376, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Natalanwindtalon_747' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 715.067993, 285.913544, 80.239952, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 614.591492, 284.566467, 166.820251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 508.591888, 303.629822, -205.656296, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 524.144287, 302.339417, -192.503647, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.261047, 302.639069, -100.183243, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 654.409180, 286.791412, 37.999821, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 673.790527, 287.057343, 53.708977, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Natalanboldwing_748' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 558.831116, 300.338257, 59.949520, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 602.427917, 290.742889, -0.884406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 565.585571, 287.575226, 154.665298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 601.759216, 287.601593, 127.919098, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 644.013306, 286.571625, 153.338135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 642.707703, 286.198944, 132.877899, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 657.228088, 286.375885, 36.471931, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 664.371399, 287.443909, 73.074158, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 527.275391, 303.059296, -162.340805, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 561.266296, 304.677582, -150.888657, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 586.301575, 302.701202, -115.328102, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 669.497986, 301.708099, -29.924919, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 695.052246, 302.461975, -23.839048, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 654.442383, 298.421295, -12.551030, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Natalanswiftbeak_749' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.561707, 291.382629, 100.538834, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 639.859619, 286.264282, 135.124603, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 493.164307, 305.100525, -192.907608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 647.972717, 303.846649, -37.018333, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 652.776672, 287.208984, 33.839008, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 634.897278, 290.719818, 14.747633, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'Natalanfogcaller_750' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 714.614868, 286.017487, 46.294025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 636.997986, 287.129730, 80.415337, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 588.080933, 286.175751, 174.857452, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 637.342224, 302.667908, -45.614498, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 655.671082, 286.824310, 34.141949, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.441101, 302.674225, -161.035263, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 511.356689, 303.173004, -206.740097, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 155, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_901' ) , 50, 2778 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.251587, 210.788193, -228.848999, 0, 4128000 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.352997, 210.788193, -233.666794, 0, 4128001 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.424805, 210.788193, -238.255402, 0, 4128002 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -303.977417, -15.218186, -490.103729, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -322.071564, -0.865495, -562.286316, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.086899, 11.080338, -668.859192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -377.894623, -12.810008, -506.370056, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -389.254028, -7.327843, -534.378357, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -156.642319, -1.296353, -604.819458, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -58.082581, 17.343775, -622.541870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.384499, 1.025701, -620.517517, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'mudpuppy_139' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -414.466278, -2.299449, -554.721924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -468.623657, -9.292061, -532.347168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -417.403351, -7.714817, -518.341797, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -347.994385, -6.070023, -525.759460, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -349.574188, -1.550561, -555.300659, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.515076, -3.770710, -545.892029, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -362.881805, -15.856041, -487.389801, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -397.741791, -13.393529, -502.261108, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'morbol_140' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -425.434082, -16.636753, -382.689301, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.317932, -16.800800, -357.317383, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -407.361694, -16.135292, -458.337372, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.322754, -16.686203, -430.928680, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.696289, -16.800800, -348.696930, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.399323, -15.731747, -459.248505, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -339.796875, -16.800800, -428.212036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -373.678680, -16.644474, -390.722046, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -369.143799, -16.898170, -389.766815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.615662, -16.783527, -442.480804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -402.383331, -16.246403, -464.413513, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -336.279297, -16.898170, -437.756195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -390.139587, -16.898170, -350.704712, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'nix_27' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.080307, -2.061596, -575.033264, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -266.214294, -5.661924, -528.554749, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -276.728821, -8.547830, -516.347168, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -203.604965, 1.486738, -614.791443, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -101.258408, 1.885065, -589.908875, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -103.753494, -0.186328, -642.914734, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -168.383759, 5.595187, -668.745728, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -298.382477, -3.840054, -550.335754, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -277.081451, -8.401209, -333.098236, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -311.176056, -14.900937, -329.974304, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -187.461533, 34.567116, -196.483429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -220.454086, -1.075741, -277.235016, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -230.481354, 16.903595, -230.803070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 217.857697, 20.051857, -613.301819, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.166733, 14.903937, -596.540161, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 200.360336, 1.702518, -558.626465, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -125.951447, 46.293331, -183.339401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.948570, 46.135983, -197.778687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -133.199997, 46.999210, -192.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -147.452286, 41.806793, -207.880341, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.847839, 42.019035, -204.254242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -140.908890, 44.697800, -177.646912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -142.000122, 45.628403, -185.724472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -149.445313, 43.131622, -191.942474, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'daringharrier_724' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.115707, -1.383170, -289.682190, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -235.959198, 22.114910, -212.031006, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -232.202393, -4.186285, -305.458282, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'ragingharrier_725' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -222.330734, 5.693151, -256.171509, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.943207, 21.774599, -213.092300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.255753, -2.567472, -287.138916, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hexingharrier_726' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -254.444763, 0.609506, -306.494873, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.301407, 21.966511, -211.462402, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -205.091690, 24.674786, -218.570084, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lakecobra_777' ) , 45, 2255 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 151.085205, -24.951323, -444.920013, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 162.175613, -27.296377, -429.861755, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 301.139099, -26.399227, -410.203247, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 299.270691, -26.405828, -424.736298, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 269.932007, -23.239962, -411.525269, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.870865, -22.955191, -428.916260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 211.342316, -22.170155, -424.667023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.096100, -22.865566, -448.000000, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 571.826111, -1.247581, -620.876892, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 315.973877, 25.939857, -723.536804, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 298.110565, 15.631147, -651.689087, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 344.112427, -7.751473, -453.540222, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 599.081482, 8.961553, -520.174011, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 500.870300, 2.629945, -502.870697, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 334.465027, 4.794425, -695.558777, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 389.196014, -4.580150, -692.656921, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 413.702881, -15.597694, -357.496338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 512.644226, -7.784236, -371.760681, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 557.332642, -7.243786, -656.809448, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorthoplomachus_55' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -564.584839, -2.800797, -447.071655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -435.611115, -13.809805, -424.957581, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -463.960449, -3.640198, -249.241516, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -449.625519, -10.531788, -470.876099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -477.003510, -4.286805, -464.371582, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -526.574768, -2.782185, -289.250641, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortlaquearius_61' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -455.031860, -10.454103, -450.860992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -634.989868, -3.396238, -368.281830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -467.266113, -4.013132, -504.465118, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -542.341980, -3.303576, -329.811554, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -469.077148, -4.000793, -270.326691, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -469.328918, -5.155939, -481.366150, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohorteques_62' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -592.797729, -2.945007, -432.211792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -556.469055, -3.625808, -377.691071, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -635.341492, -2.933044, -396.278687, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -558.028809, -3.625569, -364.324585, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -446.294891, -4.000447, -219.651199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -431.758209, -2.150372, -301.421326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -471.824188, -6.144047, -433.737701, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -437.867004, -2.581742, -273.708099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -489.250092, -3.708008, -282.124115, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -455.741211, -7.188580, -484.428192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -547.105408, -1.683239, -295.466248, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -484.855499, -6.027344, -447.898102, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsecutor_63' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -570.931946, -2.800797, -422.089050, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -432.760742, -2.817041, -250.651367, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -559.921387, -2.420147, -321.828735, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -475.929382, -6.208005, -449.370270, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortsignifer_64' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -603.380615, -3.187741, -369.410156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -457.842072, -9.880449, -441.958862, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -488.413544, -3.617040, -242.025909, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -528.182495, -3.558550, -323.583954, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hippogryph_645' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.464050, 21.693750, -744.866760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 349.609161, 21.531591, -724.361389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 366.142975, 22.337353, -740.846924, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 363.010376, -1.049481, -694.392578, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 590.226440, 9.515460, -477.894226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 612.316223, 8.462365, -483.598358, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 276.356079, 32.676960, -655.391785, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 273.214020, 32.395222, -656.625366, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 291.417358, 35.715866, -687.826294, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 299.777557, 22.516516, -688.528137, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 562.304382, 15.582561, -521.899414, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 574.521240, 12.066303, -511.422089, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 559.422668, -4.863536, -645.617676, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasshramana_727' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 522.897888, 1.771607, -455.119629, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 310.518005, -5.701499, -517.838379, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 364.422760, -13.057137, -435.660309, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 451.150757, -17.230291, -352.315399, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasbonze_728' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.805145, -0.918655, -567.701660, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 515.534363, -8.709470, -383.690826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 352.770721, -4.834165, -463.461273, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 390.073608, -17.039326, -345.910248, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigassozu_729' ) , 46, 2360 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 309.407532, 6.247953, -563.733398, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 414.196625, -19.310278, -323.635834, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 478.351776, -12.445999, -384.714325, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 354.744110, -18.259932, -403.526672, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = '5thCohortvanguard_201' ) , 47, 2464 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -541.108704, -3.727405, -407.826080, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -521.522400, -2.254568, -303.751251, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -494.048157, -3.460580, -253.807129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -547.127563, -1.781404, -313.316772, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 482.730743, 5.504715, -839.886292, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 412.780487, -8.775566, -743.389526, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 485.918427, 5.110899, -835.108887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 501.562164, -2.013402, -778.711731, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 483.106079, 2.104050, -808.396851, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 471.033020, 4.563618, -821.620300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 554.380798, -8.677252, -751.789124, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'hapalit_647' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 447.502747, -4.764102, -756.637573, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 460.339722, -4.278372, -766.111023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 488.087097, 3.214123, -808.898315, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 498.235565, -4.729586, -758.059570, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 481.842224, -0.429031, -793.454590, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 468.914795, 1.483291, -800.138794, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 550.074097, -9.258121, -735.288452, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 585.855835, -1.307962, -325.354187, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 598.141785, -3.206517, -307.053680, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 156, ( SELECT id FROM bnpctemplate WHERE name = 'gigasbhikkhu_730' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 572.126831, -1.349033, -328.266052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 582.488342, -2.319668, -269.724945, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 582.958374, -2.881041, -278.033966, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 10, 192 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -53.968075, 40.626629, 577.494324, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -54.772152, 40.937740, 569.377563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -27.903179, 55.617722, 511.196289, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 10, 192 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -89.379288, 57.873600, 491.677826, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -80.299843, 60.484467, 498.957672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -79.367607, 57.337360, 534.587830, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -81.123886, 55.629345, 540.495178, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -15.353406, 60.152943, 476.861328, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -72.753616, 61.324738, 494.654724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -26.776743, 43.582298, 560.247437, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -50.769970, 40.481682, 588.929504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -52.828140, 40.217793, 600.331543, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.674686, 40.202091, 599.041870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -57.956455, 55.197498, 509.726349, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'wildjackal_138' ) , 12, 243 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 82.880508, 50.351704, 638.699036, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 68.658043, 46.920773, 632.664490, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 45.426044, 37.137592, 655.502625, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.656174, 49.286789, 644.880005, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'Morabymole_205' ) , 12, 243 ); @@ -9479,37 +10106,37 @@ SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngro SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 271.453613, 45.504711, -200.075607, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'foper_7439' ) , 60, 40160 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 9.523642, 53.720516, -217.046158, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 157, ( SELECT id FROM bnpctemplate WHERE name = 'spinner_7442' ) , 60, 40160 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 223.210526, 44.843811, -339.998749, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -346.389740, 62.519150, -126.275093, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.836487, 61.672997, -119.187897, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'pteroc_65' ) , 30, 821 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -354.420074, 56.423233, -96.513840, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -344.395325, 64.607246, -157.902496, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -341.323090, 64.578575, -160.182724, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.233124, 61.524578, -113.885941, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.546082, 60.104488, -124.223816, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.671509, 53.908203, -95.338379, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.611389, 60.075729, -128.127838, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'coeurl_117' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.764526, 65.494736, -305.070099, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -292.933563, 70.880463, -266.741791, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.481171, 60.137611, -369.996338, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.656219, 61.014076, -350.488831, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'highlandcondor_13' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -303.275574, 61.479023, -149.118958, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.915100, 63.041786, -183.808167, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -252.249084, 63.570446, -185.770676, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -216.185196, 66.569382, -242.893326, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -300.852142, 63.176342, -178.160568, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -263.679626, 63.708836, -251.339615, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -229.079773, 64.834488, -245.728836, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -210.108521, 67.672935, -243.264084, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -330.467377, 64.261154, -336.252960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -393.794373, 49.725521, -341.202271, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -322.923187, 64.709900, -184.963135, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -316.858765, 64.213211, -314.357330, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.307983, 55.575882, -263.303406, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -380.062164, 53.973499, -291.843719, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -153.678604, 82.767532, -307.626709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -170.819321, 78.937599, -266.836945, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -264.982056, 63.947887, -224.000000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -351.385284, 54.183876, -241.304657, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'velociraptor_2' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 25.128429, 71.268677, -189.144226, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.871716, 68.419571, -210.217117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -59.508007, 64.795944, -302.991058, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -126.917580, 81.681725, -323.143463, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -138.590454, 81.639252, -317.720551, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -161.965485, 79.463608, -261.348389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -196.249908, 71.570564, -273.608765, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -47.980247, 63.111557, -275.292786, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -51.387047, 64.510307, -309.933960, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -123.665451, 78.886292, -293.496613, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'youngcoeurl_2269' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -268.777344, 64.469254, -321.818024, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -246.820190, 64.967072, -319.323730, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -300.127502, 68.867729, -297.000824, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'basaltgolem_30' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -379.582794, 49.599728, -320.617401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -392.384827, 48.829506, -270.781586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -289.848114, 54.379707, -289.998871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -339.448914, 50.635178, -294.665192, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -404.812653, 46.717731, -310.487518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -324.328186, 55.788815, -224.676117, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -351.290314, 51.576576, -265.921173, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.076050, 59.615356, -148.851715, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 183.105377, 60.757282, -155.007202, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 184.878326, 61.323547, -156.019150, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 191.771393, 61.550873, -163.132507, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.650284, 60.073540, -150.433075, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 188.958481, 58.811165, -143.723083, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.057220, 60.347488, -160.257004, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 190.024429, 61.667694, -162.565582, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'ringtail_6' ) , 34, 1185 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -337.538879, 22.261187, -512.543579, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.067444, 15.837619, -526.381409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -284.631256, 15.979709, -524.325195, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -309.562897, 33.556576, -437.443756, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.216400, 33.860405, -452.127991, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -309.471985, 33.399452, -451.401154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -296.423798, 32.770798, -443.928497, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.180389, 33.152576, -443.576508, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.782619, 48.558388, -359.919220, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.883301, 50.040894, -366.288025, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.501572, 48.824192, -386.915070, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 52.480934, 48.723763, -384.418518, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.816909, 49.996655, -342.930389, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.917726, 50.031612, -336.814178, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.670258, 49.568516, -332.820740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.356415, 48.560959, -377.403534, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.316012, 48.751251, -308.807129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 2.967811, 49.255138, -301.323792, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.587284, 49.616844, -347.270569, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -6.205463, 50.334320, -341.626526, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 77.880554, 57.709564, -304.362427, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 64.891975, 57.670910, -316.025116, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.143547, 48.569462, -406.118896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.789307, 68.458755, -250.385300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 23.727297, 49.034428, -362.581635, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.388740, 48.944725, -320.026978, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -2.076543, 49.155315, -324.895752, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 70.334991, 67.581085, -261.801605, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.335938, 48.508419, -408.346710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 46.616211, 48.585762, -346.456085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 16.776409, 48.642620, -366.713409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.775769, 49.300411, -323.626160, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.524841, 48.325321, -324.818787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -7.160486, 48.940979, -321.393829, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 66.550941, 48.806358, -363.489288, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 80.058411, 48.957294, -398.777863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.175064, 66.270889, -239.485504, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 43.717041, 48.884872, -344.197815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -19.895678, 48.686302, -303.251129, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 41, 1837 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.801125, 53.776348, -341.428009, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 41.243237, 48.551842, -397.472931, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'bombincubator_2833' ) , 44, 4300 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.290409, 55.318249, -509.565887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.868221, 55.176491, -509.842285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.481640, 55.599010, -491.209015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.109711, 56.992210, -500.873199, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.011013, 56.871895, -476.327240, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 56.081234, 55.888691, -500.382965, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.261269, 55.470901, -451.263214, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.660034, 57.014153, -507.752472, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.135010, 56.961788, -498.527496, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.299801, 55.422451, -506.939392, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.829788, 55.176491, -510.031586, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 78.337578, 55.921329, -458.039429, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.985661, 55.599010, -492.126312, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 44, 2150 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 97.362740, 55.733959, -463.581757, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.672039, 24.659719, -611.021057, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.970928, 24.301811, -622.183655, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 84.582047, 24.139624, -710.028992, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 14.818369, 21.657869, -771.717468, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.921148, 26.625668, -802.449768, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'prototypebombincubator_2834' ) , 48, 5138 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.820007, 21.850000, -818.599976, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.380005, 22.062380, -807.590027, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.487915, 22.096889, -798.198914, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroroundsman_755' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.990967, 26.955635, -816.802246, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.540199, 24.338131, -605.890015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.905769, 25.186752, -589.007019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -11.884809, 25.236567, -663.126221, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.760902, 23.636169, -718.165894, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroquarryman_756' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 114.457634, 24.349905, -754.022217, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 44.950539, 24.971989, -675.010803, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.062794, 24.636602, -620.785767, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.762131, 25.395679, -678.056274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 33.112991, 21.874960, -777.966125, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.037354, 24.478621, -699.376709, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarobedesman_757' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 22.326897, 23.223667, -657.985352, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 83.358307, 40.804111, -574.260376, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.461895, 25.641956, -722.111023, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.246609, 21.618671, -784.161194, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaropriest_758' ) , 48, 2569 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.893402, 23.059460, -785.317871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 19.200001, 24.470900, -606.984863, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.990971, 22.995300, -758.266602, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.746227, 22.116056, -793.993530, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.624969, 24.173374, -679.869446, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 206.738022, 23.187981, -689.253052, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 203.890320, 24.761229, -742.728943, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 174.455490, 24.918858, -679.265625, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarogolem_2838' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.971466, 23.543526, -732.147705, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 284.018738, 21.924915, -701.318176, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 307.891937, 24.247149, -729.314880, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 256.669067, 21.883627, -813.910156, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 245.038605, 25.634367, -840.968018, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'eliteroundsman_755' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.156311, 21.832199, -815.852112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.686096, 23.920490, -654.072205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.829697, 23.483580, -792.629883, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitequarryman_756' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 219.098969, 25.198187, -654.522827, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 148.700470, 25.171375, -757.199341, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 163.440704, 23.438585, -715.525391, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.243195, 22.311359, -796.170898, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitebedesman_757' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.447388, 21.881470, -807.844788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.525894, 21.622009, -698.329224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.663101, 23.430275, -782.703918, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitepriest_758' ) , 49, 2673 ); -SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 254.038452, 21.881643, -798.051270, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 137.963898, 24.624701, -656.164612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.508408, 21.852791, -697.356995, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 250, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_8016' ) , 1, 10000 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -347.022949, 63.415745, -132.623322, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -363.580231, 61.701744, -119.534874, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'pteroc_65' ) , 30, 821 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -321.147461, 53.798512, -96.408524, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -356.290527, 55.899475, -93.841743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.635498, 61.158661, -113.309608, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -321.038055, 60.512489, -128.648529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -338.725647, 64.298172, -159.727295, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -342.011993, 64.446968, -151.891815, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -317.847687, 60.286209, -129.301788, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'coeurl_117' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.536163, 60.228157, -363.899536, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -365.234192, 66.724480, -308.385559, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -287.023132, 70.205620, -267.194946, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -372.261658, 61.095764, -353.771515, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'highlandcondor_13' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.386047, 62.096004, -152.895493, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.423218, 63.397869, -178.398529, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -245.583557, 63.578472, -257.752502, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -248.809372, 63.337116, -186.825409, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -251.319809, 63.656792, -187.358612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -212.960373, 67.387367, -246.228317, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -211.895126, 66.848137, -239.105133, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -240.211884, 64.022240, -259.751068, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -234.424393, 64.164063, -246.631607, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'lightningsprite_135' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -333.732941, 63.304878, -336.673401, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -289.034119, 55.491577, -263.069733, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -376.422943, 51.427441, -299.779205, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -327.283844, 64.145172, -189.731018, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.285767, 64.291924, -311.835114, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -150.499939, 81.828575, -315.151672, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -169.926010, 78.807106, -262.991974, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -267.575317, 63.455273, -224.136703, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -353.888123, 55.083958, -237.148224, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -389.761566, 51.191982, -345.163788, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'velociraptor_2' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.637678, 68.019386, -214.942612, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 18.129543, 72.171211, -191.453796, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -60.828506, 64.944656, -305.988861, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -118.311058, 76.875130, -291.439056, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -127.317406, 82.112389, -324.723633, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -163.437668, 79.264267, -259.714844, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -49.723907, 64.490059, -312.842926, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -135.645721, 81.998657, -319.504242, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -195.109604, 72.460823, -276.784637, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -47.599892, 63.600052, -266.309052, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'youngcoeurl_2269' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -303.078644, 68.361717, -297.737000, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -255.468460, 64.502861, -317.427307, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -270.888275, 64.940819, -327.112701, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'basaltgolem_30' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -316.771637, 57.003483, -220.300491, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -401.999390, 46.804279, -311.378540, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -332.464172, 51.144405, -290.102753, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -294.348907, 54.569733, -291.431671, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -350.620331, 51.565670, -270.637085, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -398.674957, 47.831573, -269.691711, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -383.325775, 48.834301, -323.202789, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'plasmoid_46' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 189.388718, 59.104839, -144.598907, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 171.776352, 59.953094, -155.035141, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 193.229309, 61.578178, -161.597870, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 196.296432, 62.011551, -161.851669, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 185.743362, 60.286526, -151.398743, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 179.391495, 59.890179, -150.509918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 187.047287, 61.563484, -157.218918, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 180.942902, 60.362854, -152.891006, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'ringtail_6' ) , 34, 1185 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -279.334503, 16.132767, -523.819031, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -288.485809, 14.193029, -530.573853, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -340.413513, 23.094437, -512.351563, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -290.487518, 32.696712, -443.029236, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -307.256683, 33.256664, -455.805420, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -311.870270, 33.398094, -442.865112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -306.853668, 33.476841, -436.960175, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -319.967285, 33.982246, -444.763367, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 34.178150, 48.461147, -375.468994, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.402393, 48.614826, -361.302643, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.007576, 50.536095, -367.253632, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 60.110020, 48.649105, -380.978607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 59.447346, 48.807461, -384.867065, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 22.966957, 49.832260, -333.084229, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.685125, 48.743439, -305.409912, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -1.144092, 49.648441, -345.438019, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.262372, 50.090794, -343.667755, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.200817, 58.297600, -320.988129, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 73.301140, 58.355816, -305.826813, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 79.789307, 68.458755, -250.385300, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.143547, 48.569462, -406.118896, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.590952, 48.626740, -362.158569, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -0.504146, 48.801586, -321.607025, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.303841, 66.912476, -268.914001, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 20.563553, 48.247536, -374.127106, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -4.635334, 49.549675, -325.262787, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.335938, 48.508419, -408.346710, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 46.616211, 48.294800, -346.456085, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 67.995995, 48.774105, -365.531311, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -12.964981, 48.964130, -302.668335, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 71.241028, 48.451752, -394.935760, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 63.253155, 66.446419, -240.525650, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 43.717041, 48.416870, -344.197815, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 41, 1837 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -23.857216, 52.665462, -346.535431, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 48.208912, 48.597782, -396.997925, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'bombincubator_2833' ) , 44, 4300 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 50.868221, 55.176491, -509.842285, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.290409, 55.318249, -509.565887, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.109711, 56.992210, -500.873199, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.481640, 55.599010, -491.209015, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'grenade_327' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.790012, 57.022041, -478.156219, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.793903, 55.909130, -503.626740, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 87.317947, 56.098694, -455.490509, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldroundsman_755' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 76.014214, 57.355419, -507.396759, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 47.135010, 57.608570, -498.527496, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldquarryman_756' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.829788, 55.176491, -510.031586, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 61.299801, 55.422451, -506.939392, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldbedesman_757' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 53.985661, 56.038452, -492.126312, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.608871, 56.647209, -461.278381, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'koboldpriest_758' ) , 44, 2150 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 93.031929, 55.670906, -468.065399, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.296045, 26.766218, -802.790588, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 85.382042, 24.643120, -715.722839, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 57.210907, 24.870911, -629.589111, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 20.565119, 25.070910, -604.010437, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 21.997051, 21.634665, -771.928223, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'prototypebombincubator_2834' ) , 48, 5138 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 285.487915, 22.096889, -798.198914, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.380005, 22.062380, -807.590027, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 280.820007, 21.850000, -818.599976, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroroundsman_755' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -16.255825, 24.526670, -668.165039, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 51.050919, 24.376001, -578.706970, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.540199, 24.505325, -605.890015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.046318, 24.956133, -820.638611, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 118.760902, 23.636169, -718.165894, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaroquarryman_756' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.591251, 21.779306, -777.160645, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 32.349167, 24.317146, -625.427795, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 112.994026, 24.862309, -750.547607, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 74.762131, 25.395679, -678.056274, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 86.037354, 24.478621, -699.376709, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 49.350254, 24.708147, -672.372375, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarobedesman_757' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 18.922966, 23.835314, -654.793762, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 54.950035, 26.048126, -722.882874, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 81.243698, 41.016026, -572.265015, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 27.764549, 21.624363, -783.434021, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamaropriest_758' ) , 48, 2569 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 117.893402, 23.059460, -785.317871, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 11.273822, 21.806263, -787.121216, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 12.355561, 24.670910, -604.740784, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 30.990971, 22.995300, -758.266602, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'syntheticdoblyn_189' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 207.942566, 24.711630, -741.470154, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 210.292221, 24.223930, -682.746277, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 208.449982, 23.665993, -691.032471, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 174.247070, 25.206915, -681.070374, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'UGhamarogolem_2838' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 256.240662, 22.044020, -822.947449, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 245.408157, 25.718151, -839.164795, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 308.813751, 23.907391, -727.725708, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 286.454437, 21.719885, -708.429260, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 282.155731, 25.110956, -735.153992, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'eliteroundsman_755' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 281.156311, 21.832199, -815.852112, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 175.829697, 23.483580, -792.629883, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 177.686096, 23.920490, -654.072205, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitequarryman_756' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 222.628784, 24.395672, -658.221313, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 283.243195, 22.311359, -796.170898, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 169.315552, 23.784765, -718.427002, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 153.011917, 25.991085, -749.276184, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitebedesman_757' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 172.444901, 24.988903, -784.642334, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 279.447388, 21.881470, -807.844788, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 158.525894, 22.116327, -698.329224, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 180, ( SELECT id FROM bnpctemplate WHERE name = 'elitepriest_758' ) , 49, 2673 ); +SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 253.727448, 22.013004, -797.213379, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 155.508408, 21.852791, -697.356995, 0, 0 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 132.211716, 24.414703, -655.873413, 0, 0 ); INSERT IGNORE INTO `spawngroup` ( `territoryTypeId`, `bNpcTemplateId`, `level`, `maxHp` ) VALUES ( 250, ( SELECT id FROM bnpctemplate WHERE name = 'strikingdummy_8016' ) , 1, 10000 ); SET @last_id_spawngroup = LAST_INSERT_ID(); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 96.160080, 2.359415, -4.634595, 0, 6483953 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 104.112198, 2.334595, -4.719133, 0, 6483956 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 95.987587, 2.359415, -24.583460, 0, 6483949 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 103.990997, 2.360248, -24.776320, 0, 6483952 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 5.759247, 25.616760, -51.532589, 0, 4833611 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, 3.004736, 25.616760, -51.484291, 0, 4833609 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -3.924433, 25.616760, -51.544392, 0, 4833612 ); INSERT INTO `spawnpoint` ( `spawngroupid`, `x`, `y`, `z`, `r`, `gimmickId` ) VALUES ( @last_id_spawngroup, -5.181253, 25.616760, -41.729118, 0, 4833610 ); \ No newline at end of file diff --git a/src/tools/mob_parse/main.cpp b/src/tools/mob_parse/main.cpp index f2ecf5d0..838ee51e 100644 --- a/src/tools/mob_parse/main.cpp +++ b/src/tools/mob_parse/main.cpp @@ -195,7 +195,7 @@ std::string delChar( std::string &str, char del ) int dumpSpawns() { - Logger::init( "mob_parse" ); + //Logger::init( "mob_parse" ); Logger::info( "Setting up EXD data" ); if( !g_exdData.init( datLocation ) ) @@ -250,7 +250,7 @@ int dumpSpawns() } - std::ofstream out("output_1.txt"); + std::ofstream out("spawns.txt"); int spawngroups = 0; for( auto entry : zoneToPacketList ) @@ -462,7 +462,8 @@ int dumpTemplates() } - std::ofstream out("output.txt"); + std::map< std::string, bool > mobDumped; + std::ofstream out("templates.txt"); for( auto entry : zoneToPacketList ) { @@ -530,6 +531,11 @@ int dumpTemplates() std::string name = delChar( nameStruct->singular, ' ' ); name = delChar( name, '\'' ); + if( mobDumped.find( name + "_" + std::to_string( instance.bNPCBase ) ) != mobDumped.end() ) + continue; + + mobDumped[ name +"_" + std::to_string( instance.bNPCBase ) ] = true; + std::string output = "INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) " "VALUES ( \"" + name +"_" + std::to_string( instance.bNPCBase ) + "\", " + std::to_string( instance.bNPCBase ) + ", " @@ -593,7 +599,7 @@ int dumpTemplates() int main() { - //dumpTemplates(); + dumpTemplates(); dumpSpawns(); return 0; diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index 5c0ac513..1b00e7b5 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -420,13 +420,13 @@ void Sapphire::Entity::Player::setZone( uint32_t zoneId ) return; } - sendZonePackets(); } bool Sapphire::Entity::Player::setInstance( uint32_t instanceContentId ) { - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); m_onEnterEventDone = false; + auto pTeriMgr = m_pFw->get< TerritoryMgr >(); + auto instance = pTeriMgr->getInstanceZonePtr( instanceContentId ); if( !instance ) return false; @@ -441,7 +441,6 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance ) return false; auto pTeriMgr = m_pFw->get< TerritoryMgr >(); - auto currentZone = getCurrentZone(); // zoning within the same zone won't cause the prev data to be overwritten @@ -453,35 +452,30 @@ bool Sapphire::Entity::Player::setInstance( ZonePtr instance ) m_prevTerritoryId = getTerritoryId(); } - if( !pTeriMgr->movePlayer( instance, getAsPlayer() ) ) - return false; - - sendZonePackets(); - - return true; + return pTeriMgr->movePlayer( instance, getAsPlayer() ); } bool Sapphire::Entity::Player::setInstance( ZonePtr instance, Common::FFXIVARR_POSITION3 pos ) { + m_onEnterEventDone = false; if( !instance ) return false; - m_onEnterEventDone = false; - auto pTeriMgr = m_pFw->get< TerritoryMgr >(); auto currentZone = getCurrentZone(); - m_prevPos = m_pos; - m_prevRot = m_rot; - m_prevTerritoryTypeId = currentZone->getTerritoryTypeId(); - m_prevTerritoryId = getTerritoryId(); + // zoning within the same zone won't cause the prev data to be overwritten + if( instance->getTerritoryTypeId() != m_territoryTypeId ) + { + m_prevPos = m_pos; + m_prevRot = m_rot; + m_prevTerritoryTypeId = currentZone->getTerritoryTypeId(); + m_prevTerritoryId = getTerritoryId(); + } if( pTeriMgr->movePlayer( instance, getAsPlayer() ) ) { m_pos = pos; - - sendZonePackets(); - return true; } @@ -512,8 +506,6 @@ bool Sapphire::Entity::Player::exitInstance() m_territoryTypeId = m_prevTerritoryTypeId; m_territoryId = m_prevTerritoryId; - sendZonePackets(); - //m_queuedZoneing = std::make_shared< QueuedZoning >( m_territoryTypeId, m_pos, Util::getTimeMs(), m_rot ); return true; diff --git a/src/world/Manager/PlayerMgr.cpp b/src/world/Manager/PlayerMgr.cpp index 23cc64e8..f2614f0a 100644 --- a/src/world/Manager/PlayerMgr.cpp +++ b/src/world/Manager/PlayerMgr.cpp @@ -67,6 +67,5 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Sapphire: player.setPos( terriPos->getTargetPosition() ); player.setRot( terriPos->getTargetRotation() ); - if( terriMgr->movePlayer( destinationZone, player.getAsPlayer() ) ) - player.sendZonePackets(); + terriMgr->movePlayer( destinationZone, player.getAsPlayer() ); } diff --git a/src/world/Manager/TerritoryMgr.cpp b/src/world/Manager/TerritoryMgr.cpp index 56e3a049..81c1aa96 100644 --- a/src/world/Manager/TerritoryMgr.cpp +++ b/src/world/Manager/TerritoryMgr.cpp @@ -535,7 +535,7 @@ bool Sapphire::World::Manager::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire // mark character as zoning in progress pPlayer->setLoadingComplete( false ); - if( pPlayer->getLastPing() != 0 ) + if( pPlayer->getLastPing() != 0 && pPlayer->getCurrentZone() ) pPlayer->getCurrentZone()->removeActor( pPlayer ); pPlayer->setCurrentZone( pZone ); @@ -544,6 +544,8 @@ bool Sapphire::World::Manager::TerritoryMgr::movePlayer( ZonePtr pZone, Sapphire // map player to instanceId so it can be tracked. m_playerIdToInstanceMap[ pPlayer->getId() ] = pZone->getGuId(); + pPlayer->sendZonePackets(); + return true; } From efab7386606c669a27a197e6b59c8e634cb57143 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 15 Jan 2019 18:20:21 +1100 Subject: [PATCH 376/385] fix some event debug message formatting --- src/world/Network/GameConnection.cpp | 2 +- src/world/Network/Handlers/EventHandlers.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/world/Network/GameConnection.cpp b/src/world/Network/GameConnection.cpp index d1f2a61c..13523dcd 100644 --- a/src/world/Network/GameConnection.cpp +++ b/src/world/Network/GameConnection.cpp @@ -315,7 +315,7 @@ void Sapphire::Network::GameConnection::processOutQueue() totalSize += pPacket->getSize(); // todo: figure out a good max set size and make it configurable - if( totalSize > 15000 ) + if( totalSize > 10000 ) break; } diff --git a/src/world/Network/Handlers/EventHandlers.cpp b/src/world/Network/Handlers/EventHandlers.cpp index 85cfe10d..1ac24e5d 100644 --- a/src/world/Network/Handlers/EventHandlers.cpp +++ b/src/world/Network/Handlers/EventHandlers.cpp @@ -48,7 +48,7 @@ void Sapphire::Network::GameConnection::eventHandlerTalk( FrameworkPtr pFw, std::string eventName = "onTalk"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X}", + player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X})", actorId, pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), eventId, eventId ); @@ -90,7 +90,7 @@ void Sapphire::Network::GameConnection::eventHandlerEmote( FrameworkPtr pFw, std::string eventName = "onEmote"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X}", + player.sendDebug( "Chara: {0} -> {1} \neventId: {2} ({3:08X})", actorId, pEventMgr->mapEventActorToRealActor( static_cast< uint32_t >( actorId ) ), eventId, eventId ); @@ -269,7 +269,7 @@ void Sapphire::Network::GameConnection::eventHandlerShop( FrameworkPtr pFw, std::string eventName = "onOpen"; std::string objName = pEventMgr->getEventName( eventId ); - player.sendDebug( "EventId: {0} ({0:08X}", eventId ); + player.sendDebug( "EventId: {0} ({0:08X})", eventId ); player.sendDebug( "Calling: {0}.{1}", objName, eventName ); player.eventStart( player.getId(), eventId, Event::EventHandler::UI, 0, packet.data().param ); From 30c329ee1f7b8f1cf0274b42b14017ea1828b456 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 15 Jan 2019 19:13:36 +1100 Subject: [PATCH 377/385] fix dismount actrl --- src/common/Network/CommonActorControl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 32a00705..757355f3 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -204,7 +204,7 @@ enum ActorControlType : uint16_t SetFestival = 0x386, // param1: festival.exd index ToggleOrchestrionUnlock = 0x396, - Dismount = 0x3A0, + Dismount = 0x3A1, // updated 4.5 // Duty Recorder BeginReplayAck = 0x3A1, From 3793b16b366763245c80d99a91af031d96026df3 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Tue, 15 Jan 2019 20:10:35 +1100 Subject: [PATCH 378/385] potentially fix shifted dutyrecorder actorcontrols --- src/common/Network/CommonActorControl.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index 757355f3..b853f07f 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -207,8 +207,8 @@ enum ActorControlType : uint16_t Dismount = 0x3A1, // updated 4.5 // Duty Recorder - BeginReplayAck = 0x3A1, - EndReplayAck = 0x3A2, + BeginReplayAck = 0x3A2, + EndReplayAck = 0x3A3, // Housing ShowHousingItemUI = 0x3F7, From 79daa7ac56198d2975a0ccd3f64fd88d42f0c877 Mon Sep 17 00:00:00 2001 From: Mordred Date: Thu, 17 Jan 2019 23:54:47 +0100 Subject: [PATCH 379/385] Make sure to reinit DB -> Various small fixes and refactors --- src/world/Actor/Actor.cpp | 6 +- src/world/Actor/Actor.h | 2 +- src/world/Actor/BNpc.cpp | 258 +++++++++++++++++++++++++- src/world/Actor/BNpc.h | 42 ++++- src/world/Manager/DebugCommandMgr.cpp | 2 +- src/world/Territory/Zone.cpp | 31 ++-- src/world/Territory/Zone.h | 2 +- 7 files changed, 318 insertions(+), 25 deletions(-) diff --git a/src/world/Actor/Actor.cpp b/src/world/Actor/Actor.cpp index 37dfa204..f3a70534 100644 --- a/src/world/Actor/Actor.cpp +++ b/src/world/Actor/Actor.cpp @@ -251,13 +251,13 @@ bool Sapphire::Entity::Actor::isInRangeSet( ActorPtr pActor ) const /*! \return ActorPtr of the closest actor in range, if none, nullptr */ -Sapphire::Entity::ActorPtr Sapphire::Entity::Actor::getClosestActor() +Sapphire::Entity::CharaPtr Sapphire::Entity::Actor::getClosestChara() { if( m_inRangeActor.empty() ) // no actors in range, don't bother return nullptr; - ActorPtr tmpActor = nullptr; + CharaPtr tmpActor = nullptr; // arbitrary high number float minDistance = 10000; @@ -270,7 +270,7 @@ Sapphire::Entity::ActorPtr Sapphire::Entity::Actor::getClosestActor() if( distance < minDistance ) { minDistance = distance; - tmpActor = pCurAct; + tmpActor = pCurAct->getAsChara(); } } diff --git a/src/world/Actor/Actor.h b/src/world/Actor/Actor.h index 5f20797d..62d47765 100644 --- a/src/world/Actor/Actor.h +++ b/src/world/Actor/Actor.h @@ -91,7 +91,7 @@ namespace Sapphire::Entity // check if another actor is in the actors in range set bool isInRangeSet( ActorPtr pActor ) const; - ActorPtr getClosestActor(); + CharaPtr getClosestChara(); void sendToInRangeSet( Network::Packets::FFXIVPacketBasePtr pPacket, bool bToSelf = false ); diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index 7b42324c..b9250e66 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include "Forwards.h" #include "Action/Action.h" @@ -17,6 +18,7 @@ #include "Network/PacketWrappers/ActorControlPacket144.h" #include "Network/PacketWrappers/UpdateHpMpTpPacket.h" #include "Network/PacketWrappers/NpcSpawnPacket.h" +#include "Network/PacketWrappers/MoveActorPacket.h" #include "StatusEffect/StatusEffect.h" #include "Action/ActionCollision.h" @@ -41,7 +43,7 @@ Sapphire::Entity::BNpc::BNpc( FrameworkPtr pFw ) : } Sapphire::Entity::BNpc::BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, float rot, - uint8_t level, uint32_t maxHp, FrameworkPtr pFw ) : + uint8_t level, uint32_t maxHp, ZonePtr pZone, FrameworkPtr pFw ) : Npc( ObjKind::BattleNpc, pFw ) { m_id = id; @@ -60,11 +62,17 @@ Sapphire::Entity::BNpc::BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX m_rot = rot; m_level = level; + m_pCurrentZone = pZone; + + m_spawnPos = m_pos; + m_maxHp = maxHp; m_maxMp = 200; m_hp = maxHp; m_mp = 200; + m_state = BNpcState::Idle; + m_baseStats.max_hp = maxHp; m_baseStats.max_mp = 200; @@ -121,3 +129,251 @@ void Sapphire::Entity::BNpc::spawn( PlayerPtr pTarget ) { pTarget->queuePacket( std::make_shared< NpcSpawnPacket >( *getAsBNpc(), *pTarget ) ); } + +Sapphire::Entity::BNpcState Sapphire::Entity::BNpc::getState() const +{ + return m_state; +} + +void Sapphire::Entity::BNpc::setState( BNpcState state ) +{ + m_state = state; +} + +bool Sapphire::Entity::BNpc::moveTo( const FFXIVARR_POSITION3& pos ) +{ + if( Util::distance( getPos().x, getPos().y, getPos().z, pos.x, pos.y, pos.z ) <= 4 ) + // reached destination + return true; + + float rot = Util::calcAngFrom( getPos().x, getPos().z, pos.x, pos.z ); + float newRot = PI - rot + ( PI / 2 ); + + face( pos ); + float angle = Util::calcAngFrom( getPos().x, getPos().z, pos.x, pos.z ) + PI; + + auto x = ( cosf( angle ) * 1.1f ); + auto y = ( getPos().y + pos.y ) * 0.5f; // fake value while there is no collision + auto z = ( sinf( angle ) * 1.1f ); + + Common::FFXIVARR_POSITION3 newPos{ getPos().x + x, y, getPos().z + z }; + setPos( newPos ); + + Common::FFXIVARR_POSITION3 tmpPos{ getPos().x + x, y, getPos().z + z }; + + setPos( tmpPos ); + setRot( newRot ); + + sendPositionUpdate(); + + return false; +} + +void Sapphire::Entity::BNpc::sendPositionUpdate() +{ + auto movePacket = std::make_shared< MoveActorPacket >( *getAsChara(), 0x3A, 0, 0, 0x5A ); + sendToInRangeSet( movePacket ); +} + +void Sapphire::Entity::BNpc::hateListClear() +{ + auto it = m_hateList.begin(); + for( auto listEntry : m_hateList ) + { + //if( isInRangeSet( listEntry->m_pActor ) ) + //deaggro( listEntry->m_pActor ); + } + m_hateList.clear(); +} + +Sapphire::Entity::ActorPtr Sapphire::Entity::BNpc::hateListGetHighest() +{ + auto it = m_hateList.begin(); + uint32_t maxHate = 0; + std::shared_ptr< HateListEntry > entry; + for( ; it != m_hateList.end(); ++it ) + { + if( ( *it )->m_hateAmount > maxHate ) + { + maxHate = ( *it )->m_hateAmount; + entry = *it; + } + } + + if( entry && maxHate != 0 ) + return entry->m_pActor; + + return nullptr; +} + +void Sapphire::Entity::BNpc::hateListAdd( Sapphire::Entity::ActorPtr pActor, int32_t hateAmount ) +{ + auto hateEntry = std::make_shared< HateListEntry >(); + hateEntry->m_hateAmount = hateAmount; + hateEntry->m_pActor = pActor; + + m_hateList.insert( hateEntry ); +} + +void Sapphire::Entity::BNpc::hateListUpdate( Sapphire::Entity::ActorPtr pActor, int32_t hateAmount ) +{ + for( auto listEntry : m_hateList ) + { + if( listEntry->m_pActor == pActor ) + { + listEntry->m_hateAmount += hateAmount; + return; + } + } + + auto hateEntry = std::make_shared< HateListEntry >(); + hateEntry->m_hateAmount = hateAmount; + hateEntry->m_pActor = pActor; + m_hateList.insert( hateEntry ); +} + +void Sapphire::Entity::BNpc::hateListRemove( Sapphire::Entity::ActorPtr pActor ) +{ + for( auto listEntry : m_hateList ) + { + if( listEntry->m_pActor == pActor ) + { + + m_hateList.erase( listEntry ); + if( pActor->isPlayer() ) + { + PlayerPtr tmpPlayer = pActor->getAsPlayer(); + //tmpPlayer->onMobDeaggro( getAsBattleNpc() ); + } + return; + } + } +} + +bool Sapphire::Entity::BNpc::hateListHasActor( Sapphire::Entity::ActorPtr pActor ) +{ + for( auto listEntry : m_hateList ) + { + if( listEntry->m_pActor == pActor ) + return true; + } + return false; +} + +void Sapphire::Entity::BNpc::aggro( Sapphire::Entity::ActorPtr pActor ) +{ + m_lastAttack = Util::getTimeMs(); + hateListUpdate( pActor, 1 ); + + changeTarget( pActor->getId() ); + setStance( Stance::Active ); + m_state = BNpcState::Combat; + + if( pActor->isPlayer() ) + { + PlayerPtr tmpPlayer = pActor->getAsPlayer(); + tmpPlayer->queuePacket( makeActorControl142( getId(), ActorControlType::ToggleWeapon, 0, 1, 1 ) ); + //tmpPlayer->onMobAggro( getAsBattleNpc() ); + } +} + +void Sapphire::Entity::BNpc::deaggro( Sapphire::Entity::ActorPtr pActor ) +{ + if( !hateListHasActor( pActor ) ) + hateListRemove( pActor ); + + if( pActor->isPlayer() ) + { + PlayerPtr tmpPlayer = pActor->getAsPlayer(); + //tmpPlayer->onMobDeaggro( getAsBattleNpc() ); + } +} + +void Sapphire::Entity::BNpc::update( int64_t currTime ) +{ + switch( m_state ) + { + case BNpcState::Retreat: + { + if( moveTo( m_spawnPos ) ) + m_state = BNpcState::Idle; + } + break; + + case BNpcState::Idle: + { + CharaPtr pClosestActor = getClosestChara(); + + if( ( pClosestActor != nullptr ) && pClosestActor->isAlive() ) + { + auto distance = Util::distance( getPos().x, getPos().y, getPos().z, + pClosestActor->getPos().x, + pClosestActor->getPos().y, + pClosestActor->getPos().z ); + + if( distance < 8 && pClosestActor->isPlayer() ) + aggro( pClosestActor ); + //if( distance < 8 && getbehavior() == 2 ) + // aggro( pClosestActor ); + } + } + + case BNpcState::Combat: + { + auto pActor = hateListGetHighest(); + if( !pActor ) + return; + auto pClosestActor = pActor->getAsChara(); + + auto distanceOrig = Util::distance( getPos().x, getPos().y, getPos().z, + m_spawnPos.x, + m_spawnPos.y, + m_spawnPos.z ); + + if( pClosestActor && !pClosestActor->isAlive() ) + { + hateListRemove( pClosestActor ); + pActor = hateListGetHighest(); + if( pActor ) + pClosestActor = pActor->getAsChara(); + else + pClosestActor.reset(); + } + + if( pClosestActor != nullptr ) + { + auto distance = Util::distance( getPos().x, getPos().y, getPos().z, + pClosestActor->getPos().x, + pClosestActor->getPos().y, + pClosestActor->getPos().z ); + + if( distanceOrig > 30 ) + { + hateListClear(); + changeTarget( INVALID_GAME_OBJECT_ID ); + setStance( Stance::Passive ); + //setOwner( nullptr ); + m_state = BNpcState::Retreat; + break; + } + + if( distance > 4 ) + moveTo( pClosestActor->getPos() ); + else + { + if( face( pClosestActor->getPos() ) ) + sendPositionUpdate(); + // in combat range. ATTACK! + autoAttack( pClosestActor ); + } + } + else + { + changeTarget( INVALID_GAME_OBJECT_ID ); + setStance( Stance::Passive ); + //setOwner( nullptr ); + m_state = BNpcState::Retreat; + } + } + } +} diff --git a/src/world/Actor/BNpc.h b/src/world/Actor/BNpc.h index f87f66eb..59cc750b 100644 --- a/src/world/Actor/BNpc.h +++ b/src/world/Actor/BNpc.h @@ -13,6 +13,21 @@ namespace Sapphire::Entity { + typedef struct + { + uint32_t m_hateAmount; + ActorPtr m_pActor; + } HateListEntry; + + enum class BNpcState + { + Idle, + Combat, + Retreat, + JustDied, + Dead, + }; + /*! \class BNpc \brief Base class for all BNpcs @@ -24,7 +39,7 @@ namespace Sapphire::Entity public: BNpc( FrameworkPtr pFw ); BNpc( uint32_t id, BNpcTemplatePtr pTemplate, float posX, float posY, float posZ, float rot, - uint8_t level, uint32_t maxHp, FrameworkPtr pFw ); + uint8_t level, uint32_t maxHp, ZonePtr pZone,FrameworkPtr pFw ); virtual ~BNpc() override; @@ -43,6 +58,26 @@ namespace Sapphire::Entity uint8_t getAggressionMode() const; + // return true if it reached the position + bool moveTo( const Common::FFXIVARR_POSITION3& pos ); + + void sendPositionUpdate(); + + BNpcState getState() const; + void setState( BNpcState state ); + + void hateListClear(); + ActorPtr hateListGetHighest(); + void hateListAdd( ActorPtr pActor, int32_t hateAmount ); + void hateListUpdate( ActorPtr pActor, int32_t hateAmount ); + void hateListRemove( ActorPtr pActor ); + bool hateListHasActor( ActorPtr pActor ); + + void aggro( ActorPtr pActor ); + void deaggro( ActorPtr pActor ); + + void update( int64_t currTime ) override; + private: uint32_t m_bNpcBaseId; uint32_t m_bNpcNameId; @@ -56,6 +91,11 @@ namespace Sapphire::Entity uint32_t m_displayFlags; uint8_t m_level; + Common::FFXIVARR_POSITION3 m_spawnPos; + + BNpcState m_state; + std::set< std::shared_ptr< HateListEntry > > m_hateList; + }; } diff --git a/src/world/Manager/DebugCommandMgr.cpp b/src/world/Manager/DebugCommandMgr.cpp index 4d234541..957b1320 100644 --- a/src/world/Manager/DebugCommandMgr.cpp +++ b/src/world/Manager/DebugCommandMgr.cpp @@ -439,7 +439,7 @@ void Sapphire::World::Manager::DebugCommandMgr::add( char* data, Entity::Player& player.getPos().y, player.getPos().z, player.getRot(), - 1, 1000, framework() ); + 1, 1000, playerZone, framework() ); diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 80ea84db..99cb2fad 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -376,8 +376,7 @@ bool Sapphire::Zone::checkWeather() return false; } -/* -void Sapphire::Zone::updateBnpcs( int64_t tickCount ) +void Sapphire::Zone::updateBNpcs( int64_t tickCount ) { if( ( tickCount - m_lastMobUpdate ) > 250 ) { @@ -385,7 +384,7 @@ void Sapphire::Zone::updateBnpcs( int64_t tickCount ) m_lastMobUpdate = tickCount; uint32_t currTime = static_cast< uint32_t >( time( nullptr ) ); - for( auto it3 = m_BattleNpcDeadMap.begin(); it3 != m_BattleNpcDeadMap.end(); ++it3 ) + /*for( auto it3 = m_BattleNpcDeadMap.begin(); it3 != m_BattleNpcDeadMap.end(); ++it3 ) { Entity::BattleNpcPtr pBNpc = *it3; @@ -402,29 +401,29 @@ void Sapphire::Zone::updateBnpcs( int64_t tickCount ) break; } - } + }*/ - for( auto entry : m_BattleNpcMap ) + for( auto entry : m_bNpcMap ) { - Entity::BattleNpcPtr pBNpc = entry.second; + Entity::BNpcPtr pBNpc = entry.second; if( !pBNpc ) continue; - if( !pBNpc->isAlive() && currTime - pBNpc->getTimeOfDeath() > ( 10 ) ) - { - removeActor( pBNpc ); - m_BattleNpcDeadMap.insert( pBNpc ); - break; - } + //if( !pBNpc->isAlive() && currTime - pBNpc->getTimeOfDeath() > ( 10 ) ) + //{ + // removeActor( pBNpc ); + // m_BattleNpcDeadMap.insert( pBNpc ); + // break; + //} pBNpc->update( tickCount ); } } } -*/ + bool Sapphire::Zone::update( uint32_t currTime ) { @@ -434,7 +433,7 @@ bool Sapphire::Zone::update( uint32_t currTime ) bool changedWeather = checkWeather(); updateSessions( changedWeather ); - //updateBnpcs( tickCount ); + updateBNpcs( tickCount ); onUpdate( currTime ); updateSpawnPoints(); @@ -832,8 +831,6 @@ void Sapphire::Zone::updateSpawnPoints() continue; } - uint32_t random = rand() % 20; - auto pBNpc = std::make_shared< Entity::BNpc >( getNextActorId(), bNpcTemplate, point->getPosX(), @@ -841,7 +838,7 @@ void Sapphire::Zone::updateSpawnPoints() point->getPosZ(), dist( mt ), group.getLevel(), - group.getMaxHp(), m_pFw ); + group.getMaxHp(), shared_from_this(), m_pFw ); point->setLinkedBNpc( pBNpc ); pushActor( pBNpc ); diff --git a/src/world/Territory/Zone.h b/src/world/Territory/Zone.h index 4a6a5197..657b99c9 100644 --- a/src/world/Territory/Zone.h +++ b/src/world/Territory/Zone.h @@ -142,7 +142,7 @@ namespace Sapphire bool loadSpawnGroups(); bool checkWeather(); - //void updateBnpcs( int64_t tickCount ); + void updateBNpcs( int64_t tickCount ); bool update( uint32_t currTime ); From 2743f4483e41febbdd4e6c8ddbd84d6141aee807 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Fri, 18 Jan 2019 20:05:45 +1100 Subject: [PATCH 380/385] remove utf8 bom from inserts.sql --- sql/schema/inserts.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/schema/inserts.sql b/sql/schema/inserts.sql index c8d0edf3..d3333460 100644 --- a/sql/schema/inserts.sql +++ b/sql/schema/inserts.sql @@ -1,4 +1,4 @@ - + INSERT INTO `accounts` (`account_id`, `account_name`, `account_pass`, `account_created`, `account_status`) VALUES (1, 'Admin', 'Admin', 0, 2); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "littleladybug_49", 49, 49, 0, 0, 1, 4, 4, 57, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); INSERT IGNORE INTO `bnpctemplate` ( `Name`, `bNPCBaseId`, `bNPCNameId`, `mainWeaponModel`, `secWeaponModel`, `aggressionMode`, `enemyType`, `pose`, `modelChara`, `displayFlags`, `Look`, `Models`) VALUES ( "beecloud_57", 57, 395, 0, 0, 1, 4, 4, 60, 0, UNHEX( '0000000000000000000000000000000000000000000000000000'), UNHEX( '00000000000000000000000000000000000000000000000000000000000000000000000000000000') ); From bb5224bcd64a5c60a7bb838e92fa4a2bdb3698dc Mon Sep 17 00:00:00 2001 From: Tahir Akhlaq Date: Fri, 18 Jan 2019 18:02:31 +0000 Subject: [PATCH 381/385] navmesh generation in pcb_reader - requires RecastDemo built from https://github.com/takhlaq/recastnavigation/tree/garbage - copy recastdemo.exe, sdl.dll, sdl2.dll into same directory as pcb_reader exe --- src/tools/discovery_parser/lgb.h | 32 +-- src/tools/discovery_parser/main.cpp | 205 ++----------------- src/tools/pcb_reader/lgb.h | 37 ++-- src/tools/pcb_reader/main.cpp | 292 +++++++--------------------- src/tools/pcb_reader/sgb.h | 2 +- 5 files changed, 117 insertions(+), 451 deletions(-) diff --git a/src/tools/discovery_parser/lgb.h b/src/tools/discovery_parser/lgb.h index 4b76ee61..8cfb3bc8 100644 --- a/src/tools/discovery_parser/lgb.h +++ b/src/tools/discovery_parser/lgb.h @@ -250,6 +250,22 @@ public: }; }; +struct LGB_POPRANGE_ENTRY : + public LGB_ENTRY +{ +public: + LGB_MAPRANGE_HEADER header; + std::string name; + + LGB_POPRANGE_ENTRY( char* buf, uint32_t offset ) : + LGB_ENTRY( buf, offset ) + { + header = *reinterpret_cast< LGB_MAPRANGE_HEADER* >( buf + offset ); + name = std::string( buf + offset + header.nameOffset ); + + }; +}; + struct LGB_GROUP_HEADER { uint32_t unknown; @@ -290,21 +306,9 @@ struct LGB_GROUP { const auto type = *reinterpret_cast( buf + entryOffset ); // garbage to skip model loading - if( !ignoreModels && type == LgbEntryType::BgParts ) + if( type == LgbEntryType::PopRange ) { - entries.push_back( std::make_shared< LGB_BGPARTS_ENTRY >( buf, entryOffset ) ); - } - else if( !ignoreModels && type == LgbEntryType::Gimmick ) - { - entries.push_back( std::make_shared< LGB_GIMMICK_ENTRY >( buf, entryOffset ) ); - } - else if( type == LgbEntryType::EventNpc ) - { - entries.push_back( std::make_shared< LGB_ENPC_ENTRY >( buf, entryOffset ) ); - } - else if( type == LgbEntryType::EventObject ) - { - entries.push_back( std::make_shared< LGB_EOBJ_ENTRY >( buf, entryOffset ) ); + entries.push_back( std::make_shared< LGB_POPRANGE_ENTRY >( buf, entryOffset ) ); } else if( type == LgbEntryType::MapRange ) { diff --git a/src/tools/discovery_parser/main.cpp b/src/tools/discovery_parser/main.cpp index 06c1326d..03ef65cc 100644 --- a/src/tools/discovery_parser/main.cpp +++ b/src/tools/discovery_parser/main.cpp @@ -42,6 +42,7 @@ std::unordered_map< uint32_t, std::string > eobjNameMap; std::unordered_map< uint16_t, ZoneInfo > zoneInfoMap; std::unordered_map< uint16_t, std::vector< std::pair< uint16_t, std::string > > > zoneInstanceMap; uint32_t zoneId; +std::string zoneName; std::set< std::string > zoneDumpList; @@ -138,103 +139,6 @@ void initExd( const std::string& gamePath ) eData = eData ? eData : new xiv::exd::ExdData( *data1 ); } - -void getMapExdEntries( uint32_t zoneId ) -{ - static auto& cat = eData->get_category( "Map" ); - static auto exd = static_cast< xiv::exd::Exd >( cat.get_data_ln( xiv::exd::Language::none ) ); - //static std::unique_ptr< Converter > pConverter = std::make_unique< Converter >(); - - static auto& rows = exd.get_rows(); - for( auto& row : rows ) - { - // fields from SaintCoinach https://github.com/ufx/SaintCoinach/blob/master/SaintCoinach/ex.json#L6358 - auto id = row.first; - - auto& fields = row.second; - - /* TYPES !! - case DataType::boolean: 1 - case DataType::int8: 2 - case DataType::uint8: 3 - case DataType::int16: 4 - case DataType::uint16: 5 - case DataType::int32: 6 - case DataType::uint32: 7 - case DataType::float32: 8 - case DataType::uint64: 9 - */ - auto territory = std::get< uint16_t >( fields.at( 14 ) ); - if( territory != zoneId ) - continue; - auto mapZoneIndex = std::get< int8_t >( fields.at( 2 ) ); - auto hierarchy = std::get< uint8_t >( fields.at( 3 ) ); - auto pathStr = std::get< std::string >( fields.at( 5 ) ); - auto sizeFactor = std::get< uint16_t >( fields.at( 6 ) ); - auto mapOffsetX = std::get< int16_t >( fields.at( 7 ) ); - auto mapOffsetY = std::get< int16_t >( fields.at( 8 ) ); - auto discoveryIdx = std::get< int16_t >( fields.at( 12 ) ); - auto discoveryCompleteBitmask = std::get< uint32_t >( fields.at( 13 ) ); - char texStr[255]; - auto teriStr = pathStr.substr( 0, pathStr.find_first_of( '/' ) ); - char discoveryFileName[255]; - sprintf( &discoveryFileName[ 0 ], "%s%02u", teriStr.c_str(), mapZoneIndex ); - sprintf( &texStr[ 0 ], "ui/map/%s/%sd.tex", pathStr.c_str(), &discoveryFileName[ 0 ] ); - - if( discoveryMaps[ territory ].find( mapZoneIndex ) == discoveryMaps[ territory ].end() || - discoveryMaps[ territory ][ mapZoneIndex ].find( hierarchy ) == - discoveryMaps[ territory ][ mapZoneIndex ].end() ) - { - std::string fileName( discoveryFileName ); - - try - { - std::string rawTexFile( texStr ); - auto pDiscoveryMap = std::make_shared< DiscoveryMap >(); - auto& discoveryMap = *pDiscoveryMap; - std::ifstream discoveryFile( fileName + ".img", std::ios::binary ); - if( !discoveryFile.good() ) - { - auto texFile = data1->getFile( rawTexFile ); - texFile->exportToFile( fileName + ".tex" ); - - auto tex = TEX_FILE( fileName + ".tex" ); - - int mipMapDivide = 1; - int h = tex.header.uncompressedHeight; - int w = tex.header.uncompressedWidth; - discoveryMap.img = DecodeTexDXT1( tex, tex.header.mipMaps[ 0 ], h / mipMapDivide, w / mipMapDivide, - ( h / mipMapDivide ) / 4, ( w / mipMapDivide ) / 4 - ); - discoveryMap.img.toFile( fileName + ".img" ); - } - else - { - std::stringstream ss; - ss << discoveryFile.rdbuf(); - discoveryMap.img = std::move( Image( &ss.str()[ 0 ] ) ); - discoveryFile.close(); - } - - discoveryMap.mapId = id; - discoveryMap.path = rawTexFile; - discoveryMap.mapOffsetX = mapOffsetX; - discoveryMap.mapOffsetY = mapOffsetY; - discoveryMap.mapScale = sizeFactor; - - std::cout << "Image Height: " << discoveryMap.img.height << " Width: " << discoveryMap.img.width << "\n"; - - discoveryMaps[ territory ][ mapZoneIndex ][ hierarchy ] = pDiscoveryMap; - } - catch( std::exception& e ) - { - std::cout << "[Error] " << std::string( texStr ) << " " << e.what() << "\n"; - } - } - } - return; -} - std::string zoneNameToPath( const std::string& name ) { std::string path; @@ -314,7 +218,7 @@ void loadEobjNames() void writeEobjEntry( std::ofstream& out, LGB_ENTRY* pObj ) { static std::string mapRangeStr( "\"MapRange\", " ); - static std::ofstream discoverySql( "discovery.sql", std::ios::app ); + std::ofstream discoverySql( zoneName + "_poprange.txt", std::ios::app ); uint32_t id; uint32_t unknown2 = 0, unknown2_1 = 0, unknown3 = 0; std::string name; @@ -340,89 +244,16 @@ void writeEobjEntry( std::ofstream& out, LGB_ENTRY* pObj ) bool found = false; float scale = 100.f; //pMapRange->header.unknown2 - if( pMapRange->header.mapId == 0 ) - { - auto it = discoveryMaps.find( zoneId ); - if( it != discoveryMaps.end() ) - { - for( const auto& mapHierarchy : it->second ) - { - if( subArea > 0 ) - break; - for( const auto& levelHierarchy : mapHierarchy.second ) - { - if( subArea > 0 ) - break; + std::string outStr( pMapRange->name + " " + std::to_string( pMapRange->header.unknown ) + " " + + std::to_string( pMapRange->header.translation.x ) + " " + + std::to_string( pMapRange->header.translation.y ) + " " + + std::to_string( pMapRange->header.translation.z ) + " " + + std::to_string( pMapRange->header.rotation.y ) + "\n" + ); - auto& map = *levelHierarchy.second; - pos = map.get2dPosFrom3d( translation.x, translation.z, scale ); - - mapId = map.mapId; - - for( int i = 0; i < map.tiles; i++ ) - { - auto colour = map.getColour( i, pos.x, pos.y, scale ); - auto a = ( colour >> 24 ) & 0xFF; - auto r = ( colour >> 16 ) & 0xFF; - auto g = ( colour >> 8 ) & 0xFF; - auto b = ( colour >> 0 ) & 0xFF; - if( a > 0 && ( r + b + g ) > 0 ) - { - if( r > 0 ) - { - // out of bounds - if( i == 0 ) - continue; - subArea = ( i * 3 ) + 1; - } - else if( g > 0 ) - { - subArea = ( i * 3 ) + 2; - } - else if( b > 0 ) - { - subArea = ( i * 3 ) + 3; - } - break; - } - } - } - } - } - subArea--; - } - else - { - mapId = pMapRange->header.mapId; - } - - subArea = pMapRange->header.discoveryIndex + 1; - - //if( discoveryIndex == subArea ) - { - //std::cout << std::to_string( id ) << " discoveryIndex " << std::to_string( discoveryIndex ) << " subArea " << subArea << "\n"; - } - - if( discoveryIndex == 0 ) - { - //std::cout << "\tUnable to find subarea for maprange " << std::to_string( id ) << " mapCoord " << pos.x << " " << pos.y << - // "\tzoneCoord " << translation.x << " " << translation.y << " " << translation.z << " " << "\n"; - return; - } - else if( mapId == -1 ) - { - //std::cout << "\tUnable to find subarea for maprange " << std::to_string(id) << " " << "\n"; - return; - } - if( exportedMapRange[ id ][ mapId ] == discoveryIndex ) - return; - exportedMapRange[ id ][ mapId ] = discoveryIndex; - std::string outStr( "INSERT INTO discoveryinfo VALUES (" + - std::to_string( id ) + ", " + std::to_string( mapId ) + ", " + std::to_string( discoveryIndex ) + - ");\n" //std::to_string( pObj->header.translation.x ) + ", " + std::to_string( pObj->header.translation.y ) + ", " + std::to_string( pObj->header.translation.z ) + //", " + std::to_string( subArea ) + "" + "\n" - ); + //); discoverySql.write( outStr.c_str(), outStr.size() ); //out.write( outStr.c_str(), outStr.size() ); } @@ -453,7 +284,7 @@ int main( int argc, char* argv[] ) auto entryStartTime = std::chrono::system_clock::now(); std::vector< std::string > argVec( argv + 1, argv + argc ); - std::string zoneName = "s1d1"; + zoneName = "s1h1"; bool dumpAll = ignoreModels = std::remove_if( argVec.begin(), argVec.end(), []( auto arg ) { return arg == "--dump-all"; } ) != argVec.end(); @@ -471,15 +302,17 @@ int main( int argc, char* argv[] ) } initExd( gamePath ); - std::ofstream discoverySql( "discovery.sql", std::ios::trunc ); + std::ofstream discoverySql( zoneName + "_poprange.txt", std::ios::trunc ); discoverySql.close(); if( dumpAll ) { - zoneNameToPath( "r1f1" ); + zoneNameToPath( "s1h1" ); - for( const auto& zone : zoneInfoMap ) - zoneDumpList.emplace( zone.second.name ); + zoneDumpList.emplace( "s1h1" ); + zoneDumpList.emplace( "f1h1" ); + zoneDumpList.emplace( "w1h1" ); + zoneDumpList.emplace( "e1h1" ); } else { @@ -489,6 +322,8 @@ int main( int argc, char* argv[] ) LABEL_DUMP: entryStartTime = std::chrono::system_clock::now(); zoneName = *zoneDumpList.begin(); + discoverySql.open( zoneName + "_poprange.txt", std::ios::trunc ); + discoverySql.write( ( zoneName + "\n" ).c_str() , zoneName.size() + 1 ); try { const auto zonePath = zoneNameToPath( zoneName ); @@ -517,7 +352,7 @@ int main( int argc, char* argv[] ) uint32_t offset1 = 0x20; //loadEobjNames(); - getMapExdEntries( zoneId ); + //getMapExdEntries( zoneId ); std::string eobjFileName( zoneName + "_eobj.csv" ); std::ofstream eobjOut( eobjFileName, std::ios::trunc ); @@ -590,7 +425,7 @@ int main( int argc, char* argv[] ) totalGroups++; for( const auto& pEntry : group.entries ) { - if( pEntry->getType() == LgbEntryType::MapRange ) + if( pEntry->getType() == LgbEntryType::PopRange ) { totalGroupEntries++; writeEobjEntry( eobjOut, pEntry.get() ); diff --git a/src/tools/pcb_reader/lgb.h b/src/tools/pcb_reader/lgb.h index 76039e66..902d89c3 100644 --- a/src/tools/pcb_reader/lgb.h +++ b/src/tools/pcb_reader/lgb.h @@ -278,33 +278,20 @@ struct LGB_GROUP { const auto type = *reinterpret_cast( buf + entryOffset ); // garbage to skip model loading - if( !ignoreModels && type == LgbEntryType::BgParts ) + switch( type ) { - entries.push_back( std::make_shared< LGB_BGPARTS_ENTRY >( buf, entryOffset ) ); + case LgbEntryType::BgParts: + entries.push_back( std::make_shared< LGB_BGPARTS_ENTRY >( buf, entryOffset ) ); + break; + case LgbEntryType::Gimmick: + entries.push_back( std::make_shared< LGB_GIMMICK_ENTRY >( buf, entryOffset ) ); + break; + case LgbEntryType::EventObject: + entries.push_back( std::make_shared< LGB_EOBJ_ENTRY >( buf, entryOffset ) ); + break; + default: + break; } - else if( !ignoreModels && type == LgbEntryType::Gimmick ) - { - entries.push_back( std::make_shared< LGB_GIMMICK_ENTRY >( buf, entryOffset ) ); - } - else if( type == LgbEntryType::EventNpc ) - { - entries.push_back( std::make_shared< LGB_ENPC_ENTRY >( buf, entryOffset ) ); - } - else if( type == LgbEntryType::EventObject ) - { - entries.push_back( std::make_shared< LGB_EOBJ_ENTRY >( buf, entryOffset ) ); - } - else if( type == LgbEntryType::MapRange ) - { - entries.push_back( std::make_shared< LGB_MAPRANGE_ENTRY >( buf, entryOffset ) ); - } - /* - else - { - entries[i] = nullptr; - } - */ - } catch( std::exception& e ) { diff --git a/src/tools/pcb_reader/main.cpp b/src/tools/pcb_reader/main.cpp index 30544613..a361951d 100644 --- a/src/tools/pcb_reader/main.cpp +++ b/src/tools/pcb_reader/main.cpp @@ -7,7 +7,10 @@ #include #include #include + +#include #include +#include #include #include @@ -15,8 +18,6 @@ #include "lgb.h" #include "sgb.h" -#ifndef STANDALONE - #include #include #include @@ -24,15 +25,11 @@ #include #include -#endif - // garbage to ignore models bool ignoreModels = false; std::string gamePath( "C:\\SquareEnix\\FINAL FANTASY XIV - A Realm Reborn\\game\\sqpack" ); -std::unordered_map< uint32_t, std::string > eobjNameMap; std::unordered_map< uint16_t, std::string > zoneNameMap; -std::unordered_map< uint16_t, std::vector< std::pair< uint16_t, std::string > > > zoneInstanceMap; uint32_t zoneId; std::set< std::string > zoneDumpList; @@ -116,75 +113,11 @@ int parseBlockEntry( char* data, std::vector< PCB_BLOCK_ENTRY >& entries, int gO return 0; } -void dumpLevelExdEntries( uint32_t zoneId, const std::string& name = std::string() ) -{ - static auto& cat = eData->get_category( "Level" ); - static auto exd = static_cast< xiv::exd::Exd >( cat.get_data_ln( xiv::exd::Language::none ) ); - - std::string fileName( name + "_" + std::to_string( zoneId ) + "_Level" + ".csv" ); - std::ofstream outfile( fileName, std::ios::trunc ); - std::cout << "[Info] Writing level.exd entries to " << fileName << "\n"; - if( outfile.good() ) - { - outfile.close(); - outfile.open( fileName, std::ios::app ); - static auto rows = exd.get_rows(); - for( auto& row : rows ) - { - auto id = row.first; - auto& fields = row.second; - auto x = std::get< float >( fields.at( 0 ) ); - auto y = std::get< float >( fields.at( 1 ) ); - auto z = std::get< float >( fields.at( 2 ) ); - auto yaw = std::get< float >( fields.at( 3 ) ); - auto radius = std::get< float >( fields.at( 4 ) ); - auto type = std::get< uint8_t >( fields.at( 5 ) ); - auto objectid = std::get< uint32_t >( fields.at( 6 ) ); - auto zone = std::get< uint16_t >( fields.at( 9 ) ); - - if( zone == zoneId ) - { - std::string outStr( - std::to_string( id ) + ", " + std::to_string( objectid ) + ", " + - std::to_string( x ) + ", " + std::to_string( y ) + ", " + std::to_string( z ) + ", " + - std::to_string( yaw ) + ", " + std::to_string( radius ) + ", " + std::to_string( type ) + "\n" - ); - outfile.write( outStr.c_str(), outStr.size() ); - } - } - } -} - std::string zoneNameToPath( const std::string& name ) { std::string path; bool found = false; -#ifdef STANDALONE - auto inFile = std::ifstream( "territorytype.exh.csv" ); - if( inFile.good() ) - { - std::string line; - std::regex re( "(\\d+),\"(.*)\",\"(.*)\",.*" ); - while( std::getline( inFile, line ) ) - { - std::smatch match; - if( std::regex_match( line, match, re ) - { - auto tmpId = std::stoul( match[1].str() ); - if( !found && name == match[2].str() ) - { - zoneId = tmpId; - path = match[3].str(); - found = true; - } - zoneNameMap[tmpId] = match[2].str(); - } - } - inFile.close(); - } -#else - auto& cat = eData->get_category( "TerritoryType" ); auto exd = static_cast< xiv::exd::Exd >( cat.get_data_ln( xiv::exd::Language::none ) ); for( auto& row : exd.get_rows() ) @@ -203,7 +136,6 @@ std::string zoneNameToPath( const std::string& name ) } zoneNameMap[ row.first ] = teriName; } -#endif if( found ) { @@ -221,101 +153,6 @@ std::string zoneNameToPath( const std::string& name ) return path; } -void loadEobjNames() -{ - auto& cat = eData->get_category( "EObjName" ); - auto exd = static_cast< xiv::exd::Exd >( cat.get_data_ln( xiv::exd::Language::en ) ); - for( auto& row : exd.get_rows() ) - { - auto id = row.first; - auto& fields = row.second; - auto name = std::get< std::string >( fields.at( 0 ) ); - eobjNameMap[ id ] = name; - } -} - -void writeEobjEntry( std::ofstream& out, LGB_ENTRY* pObj ) -{ - static std::string mapRangeStr( "\"MapRange\", " ); - static std::string eobjStr( "\"EObj\", " ); - - uint32_t id; - uint32_t unknown = 0, unknown2 = 0; - std::string name; - std::string typeStr; - uint32_t eobjlevelHierachyId = 0; - - if( pObj->getType() == LgbEntryType::EventObject ) - { - auto pEobj = reinterpret_cast< LGB_EOBJ_ENTRY* >( pObj ); - id = pEobj->header.eobjId; - unknown = pEobj->header.unknown; - name = eobjNameMap[ id ]; - typeStr = eobjStr; - eobjlevelHierachyId = pEobj->header.levelHierachyId; - } - else if( pObj->getType() == LgbEntryType::MapRange ) - { - auto pMapRange = reinterpret_cast< LGB_MAPRANGE_ENTRY* >( pObj ); - id = pMapRange->header.unknown; - unknown = pMapRange->header.unknown2; - unknown2 = pMapRange->header.unknown3; - typeStr = mapRangeStr; - } - - std::string outStr( - std::to_string( id ) + ", " + typeStr + "\"" + name + "\", " + - std::to_string( pObj->header.translation.x ) + ", " + std::to_string( pObj->header.translation.y ) + ", " + - std::to_string( pObj->header.translation.z ) + - ", " + std::to_string( eobjlevelHierachyId ) + "\n" - ); - out.write( outStr.c_str(), outStr.size() ); -} - -void loadAllInstanceContentEntries() -{ - auto& catInstance = eData->get_category( "InstanceContent" ); - auto exdInstance = static_cast< xiv::exd::Exd >( catInstance.get_data_ln( xiv::exd::Language::en ) ); - - if( zoneNameMap.size() == 0 ) - { - zoneNameToPath( "f1d1" ); - } - - std::ofstream out( "instancecontent.csv", std::ios::trunc ); - if( out.good() ) - { - out.close(); - } - out.open( "instancecontent.csv", std::ios::app ); - if( !out.good() ) - { - throw std::runtime_error( "Unable to create instancecontent.csv!" ); - } - std::cout << "[Info] Writing instancecontent.csv\n"; - - for( auto& row : exdInstance.get_rows() ) - { - auto id = row.first; - auto& fields = row.second; - - auto name = std::get< std::string >( fields.at( 3 ) ); - if( name.empty() ) - continue; - auto teri = std::get< uint32_t >( fields.at( 9 ) ); - auto i = 0; - while( ( i = name.find( ' ' ) ) != std::string::npos ) - name = name.replace( name.begin() + i, name.begin() + i + 1, { '_' } ); - std::string outStr( - std::to_string( id ) + ", \"" + name + "\", \"" + zoneNameMap[ teri ] + "\"," + std::to_string( teri ) + "\n" - ); - out.write( outStr.c_str(), outStr.size() ); - //zoneInstanceMap[zoneId].push_back( std::make_pair( id, name ) ); - zoneDumpList.emplace( zoneNameMap[ teri ] ); - } - out.close(); -} - void readFileToBuffer( const std::string& path, std::vector< char >& buf ) { auto inFile = std::ifstream( path, std::ios::binary ); @@ -340,11 +177,11 @@ int main( int argc, char* argv[] ) auto entryStartTime = std::chrono::system_clock::now(); std::vector< std::string > argVec( argv + 1, argv + argc ); - // todo: support expansions std::string zoneName = "r2t2"; - bool dumpInstances = ignoreModels = std::remove_if( argVec.begin(), argVec.end(), []( auto arg ) - { return arg == "--instance-dump"; } ) != argVec.end(); - + bool dumpAllZones = std::remove_if( argVec.begin(), argVec.end(), []( auto arg ) + { return arg == "--dump-all"; } ) != argVec.end(); + bool generateNavmesh = std::remove_if( argVec.begin(), argVec.end(), []( auto arg ) + { return arg == "--navmesh"; } ) != argVec.end(); if( argc > 1 ) { zoneName = argv[ 1 ]; @@ -357,15 +194,43 @@ int main( int argc, char* argv[] ) } initExd( gamePath ); - if( dumpInstances ) + + zoneNameToPath( zoneName ); + + if( dumpAllZones ) { - loadAllInstanceContentEntries(); + for( const auto& zone : zoneNameMap ) + zoneDumpList.emplace( zone.second ); } else { zoneDumpList.emplace( zoneName ); } + std::mutex navmeshMutex; + std::queue< std::string > exportedGroups; + + std::string exportArg( "RecastDemo.exe --type tileMesh --obj " ); + std::thread navmeshThread( [&navmeshMutex, &exportedGroups, &exportArg, &generateNavmesh]() + { + while( generateNavmesh ) + { + std::this_thread::sleep_for( std::chrono::milliseconds( 1 ) ); + std::lock_guard< std::mutex > lock( navmeshMutex ); + { + if( !exportedGroups.empty() ) + { + auto& currFile = exportedGroups.front(); + std::cout << "\nGenerating navmesh for " << currFile << std::endl; + system( ( exportArg + currFile ).c_str() ); + std::cout << "\nFinished generating navmesh for " << currFile << std::endl; + exportedGroups.pop(); + } + } + } + }); + navmeshThread.detach(); + LABEL_DUMP: entryStartTime = std::chrono::system_clock::now(); zoneName = *zoneDumpList.begin(); @@ -381,7 +246,6 @@ int main( int argc, char* argv[] ) std::vector< char > section1; std::vector< char > section2; -#ifndef STANDALONE const xiv::dat::Cat& test = data1->getCategory( "bg" ); auto test_file = data1->getFile( bgLgbPath ); @@ -392,37 +256,18 @@ int main( int argc, char* argv[] ) auto test_file1 = data1->getFile( listPcbPath ); section1 = test_file1->access_data_sections().at( 0 ); -#else - { - readFileToBuffer( bgLgbPath, section ); - readFileToBuffer( listPcbPath, section1 ); - } -#endif std::vector< std::string > stringList; uint32_t offset1 = 0x20; - loadEobjNames(); - dumpLevelExdEntries( zoneId, zoneName ); - std::string eobjFileName( zoneName + "_eobj.csv" ); - std::ofstream eobjOut( eobjFileName, std::ios::trunc ); - if( !eobjOut.good() ) - throw std::string( "Unable to create " + zoneName + - "_eobj.csv for eobj entries. Run as admin or check there isnt already a handle on the file." ).c_str(); - - eobjOut.close(); - eobjOut.open( eobjFileName, std::ios::app ); - - if( !eobjOut.good() ) - throw std::string( "Unable to create " + zoneName + - "_eobj.csv for eobj entries. Run as admin or check there isnt already a handle on the file." ).c_str(); - - if( !ignoreModels ) { for( ;; ) { - + if( offset1 >= section1.size() ) + { + break; + } uint16_t trId = *( uint16_t* ) §ion1[ offset1 ]; char someString[200]; @@ -431,10 +276,7 @@ int main( int argc, char* argv[] ) //std::cout << someString << "\n"; offset1 += 0x20; - if( offset1 >= section1.size() ) - { - break; - } + } } LGB_FILE bgLgb( §ion[ 0 ], "bg" ); @@ -477,15 +319,9 @@ int main( int argc, char* argv[] ) char* dataSection = nullptr; //std::cout << fileName << " "; -#ifndef STANDALONE auto file = data1->getFile( fileName ); auto sections = file->get_data_sections(); dataSection = §ions.at( 0 )[ 0 ]; -#else - std::vector< char > buf; - readFileToBuffer( fileName, buf ); - dataSection = &buf[0]; -#endif //std::cout << sections.size() << "\n"; uint32_t offset = 0; @@ -530,15 +366,11 @@ int main( int argc, char* argv[] ) { char* dataSection = nullptr; //std::cout << fileName << " "; -#ifndef STANDALONE + auto file = data1->getFile( fileName ); auto sections = file->get_data_sections(); dataSection = §ions.at( 0 )[ 0 ]; -#else - std::vector< char > buf; - readFileToBuffer( fileName, buf ); - dataSection = &buf[0]; -#endif + sgbFile = SGB_FILE( &dataSection[ 0 ] ); sgbFiles.insert( std::make_pair( fileName, sgbFile ) ); return true; @@ -550,14 +382,12 @@ int main( int argc, char* argv[] ) } return false; }; - auto pushVerts = [ & ]( const PCB_FILE& pcb_file, const std::string& name, + auto writeToFile = [ & ]( const PCB_FILE& pcb_file, const std::string& name, const std::string& groupName, const vec3* scale = nullptr, const vec3* rotation = nullptr, const vec3* translation = nullptr, const SGB_MODEL_ENTRY* pSgbEntry = nullptr ) { - if( ignoreModels ) - return; char name2[0x100]; memset( name2, 0, 0x100 ); sprintf( &name2[ 0 ], "%s_%u", &name[ 0 ], objCount[ name ]++ ); @@ -635,16 +465,13 @@ int main( int argc, char* argv[] ) } }; - if( !ignoreModels ) + for( const auto& fileName : stringList ) { - for( const auto& fileName : stringList ) - { - loadPcbFile( fileName ); - pushVerts( pcbFiles[ fileName ], fileName ); - } + loadPcbFile( fileName ); + writeToFile( pcbFiles[ fileName ], fileName, zoneName ); } - std::cout << "[Info] " << ( ignoreModels ? "Dumping MapRange and EObj" : "Writing obj file " ) << "\n"; + std::cout << "[Info] " << "Writing obj file " << "\n"; uint32_t totalGroups = 0; uint32_t totalGroupEntries = 0; @@ -652,6 +479,16 @@ int main( int argc, char* argv[] ) { for( const auto& group : lgb.groups ) { + max_index = 0; + std::string outfile_name( zoneName + "_" + group.name + ".obj" ); + + fp_out = fopen( outfile_name.c_str(), "w" ); + if( fp_out ) + { + fprintf( fp_out, "" ); + fclose( fp_out ); + fp_out = fopen( outfile_name.c_str(), "ab+" ); + } //std::cout << "\t" << group.name << " Size " << group.header.entryCount << "\n"; totalGroups++; for( const auto& pEntry : group.entries ) @@ -680,7 +517,7 @@ int main( int argc, char* argv[] ) if( it != pcbFiles.end() ) { const auto& pcb_file = it->second; - pushVerts( pcb_file, fileName, scale, rotation, translation, pModel ); + writeToFile( pcb_file, fileName, group.name, scale, rotation, translation, pModel ); } return true; }; @@ -720,12 +557,15 @@ int main( int argc, char* argv[] ) } } - if( pEntry->getType() == LgbEntryType::EventObject || pEntry->getType() == LgbEntryType::MapRange ) + if( pEntry->getType() == LgbEntryType::EventObject ) { - writeEobjEntry( eobjOut, pEntry.get() ); writeOutput( fileName, &pEntry->header.scale, &pEntry->header.rotation, &pEntry->header.translation ); } } + if( fp_out ) + fclose( fp_out ); + std::lock_guard< std::mutex > lock( navmeshMutex ); + exportedGroups.push( outfile_name ); } } std::cout << "[Info] " << "Loaded " << pcbFiles.size() << " PCB Files \n"; @@ -739,7 +579,7 @@ int main( int argc, char* argv[] ) { std::cout << "[Error] " << e.what() << std::endl; std::cout << "[Error] " - << "Unable to extract collision data.\n\tIf using standalone ensure your working directory folder layout is \n\tbg/[ffxiv|ex1|ex2]/teri/type/zone/[level|collision]" + << "Unable to extract collision data.\n" << std::endl; std::cout << std::endl; std::cout << "[Info] " << "Usage: pcb_reader2 territory \"path/to/game/sqpack/ffxiv\" " << std::endl; diff --git a/src/tools/pcb_reader/sgb.h b/src/tools/pcb_reader/sgb.h index cf03c12e..c6bbee1e 100644 --- a/src/tools/pcb_reader/sgb.h +++ b/src/tools/pcb_reader/sgb.h @@ -143,7 +143,7 @@ struct SGB_GROUP if( entryOffset > fileSize ) throw std::runtime_error( "SGB_GROUP entry offset was larger than SGB file size!" ); auto type = *reinterpret_cast< uint32_t* >( buf + entryOffset ); - if( type == SgbGroupEntryType::Model && !ignoreModels ) + if( type == SgbGroupEntryType::Model ) { entries.push_back( std::make_shared< SGB_MODEL_ENTRY >( buf, entryOffset ) ); } From 83a8fc4456b8a44d67e2df6184715b651a7a7eb8 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 19 Jan 2019 01:15:17 +0100 Subject: [PATCH 382/385] Cleaned up bnppc code, fixed effect packet --- src/common/Common.h | 33 ++---- .../Network/PacketDef/Zone/ServerZoneDef.h | 36 ++++-- src/world/Actor/BNpc.cpp | 103 +++++++++--------- src/world/Actor/BNpc.h | 16 +-- src/world/Actor/Chara.cpp | 32 ++---- src/world/Actor/Player.cpp | 4 +- .../Network/PacketWrappers/EffectPacket.h | 21 ++-- 7 files changed, 121 insertions(+), 124 deletions(-) diff --git a/src/common/Common.h b/src/common/Common.h index c688d088..6dfc5e70 100644 --- a/src/common/Common.h +++ b/src/common/Common.h @@ -531,8 +531,7 @@ namespace Sapphire::Common Unaspected = 7 // Doesn't imply magical unaspected damage - could be unaspected physical }; - enum class ActionType : - int8_t + enum class ActionType : int8_t { WeaponOverride = -1, // Needs more investigation (takes the damage type of the equipped weapon)? Unknown_0 = 0, @@ -546,8 +545,7 @@ namespace Sapphire::Common LimitBreak = 8, }; - enum ActionEffectType : - uint8_t + enum ActionEffectType : uint8_t { Nothing = 0, Miss = 1, @@ -568,8 +566,7 @@ namespace Sapphire::Common Mount = 38 }; - enum class ActionHitSeverityType : - uint8_t + enum class ActionHitSeverityType : uint8_t { NormalDamage = 0, CritHeal = 0, @@ -579,16 +576,14 @@ namespace Sapphire::Common CritDirectHitDamage = 3 }; - enum ActionEffectDisplayType : - uint8_t + enum ActionEffectDisplayType : uint8_t { HideActionName = 0, ShowActionName = 1, ShowItemName = 2, }; - enum class ActionCollisionType : - uint8_t + enum class ActionCollisionType : uint8_t { None, SingleTarget, @@ -601,32 +596,28 @@ namespace Sapphire::Common Unknown3 }; - enum HandleActionType : - uint8_t + enum HandleActionType : uint8_t { Event, Spell, Teleport }; - enum HandleSkillType : - uint8_t + enum HandleSkillType : uint8_t { StdDamage, StdHeal, StdDot, }; - enum InvincibilityType : - uint8_t + enum InvincibilityType : uint8_t { InvincibilityNone, InvincibilityRefill, InvincibilityStayAlive, }; - enum PlayerStateFlag : - uint8_t + enum PlayerStateFlag : uint8_t { HideUILockChar = 0, // as the name suggests, hides the ui and logs the char... InCombat = 1, // in Combat, locks gearchange/return/teleport @@ -642,8 +633,7 @@ namespace Sapphire::Common }; - enum struct FateStatus : - uint8_t + enum struct FateStatus : uint8_t { Active = 2, Inactive = 4, @@ -651,8 +641,7 @@ namespace Sapphire::Common Completed = 8, }; - enum struct ChatType : - uint16_t + enum struct ChatType : uint16_t { LogKindError, ServerDebug, diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index d4402fec..c1c3cf93 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -402,34 +402,48 @@ struct EffectEntry struct EffectHeader { uint64_t animationTargetId; // who the animation targets + uint32_t actionId; // what the casting player casts, shown in battle log/ui - uint32_t globalEffectCounter; // seems to only increment on retail? - float animationLockTime; // maybe? doesn't seem to do anything + float animationLockTime; // maybe? doesn't seem to do anything uint32_t someTargetId; // always 00 00 00 E0, 0x0E000000 is the internal def for INVALID TARGET ID uint16_t hiddenAnimation; // if 0, always shows animation, otherwise hides it. counts up by 1 for each animation skipped on a caster - uint16_t rotation; - uint16_t actionAnimationId; // the animation that is played by the casting character - uint8_t unknown1E; // can be 0,1,2 - maybe other values? - doesn't do anything? - + uint8_t variation; // variation in the animation Common::ActionEffectDisplayType effectDisplayType; uint8_t unknown20; // is read by handler, runs code which gets the LODWORD of animationLockTime (wtf?) uint8_t effectCount; // ignores effects if 0, otherwise parses all of them + uint16_t padding_21; - uint32_t padding_22[2]; }; -struct FFXIVIpcEffect : - FFXIVIpcBasePacket< Effect > +struct FFXIVIpcEffect : FFXIVIpcBasePacket< Effect > { - EffectHeader header; + uint64_t animationTargetId; // who the animation targets - EffectEntry effects[8]; + uint32_t actionId; // what the casting player casts, shown in battle log/ui + uint32_t globalEffectCounter; // seems to only increment on retail? + + float animationLockTime; // maybe? doesn't seem to do anything + uint32_t someTargetId; // always 00 00 00 E0, 0x0E000000 is the internal def for INVALID TARGET ID + + uint16_t hiddenAnimation; // if 0, always shows animation, otherwise hides it. counts up by 1 for each animation skipped on a caster + uint16_t rotation; + uint16_t actionAnimationId; // the animation that is played by the casting character + uint8_t variation; // variation in the animation + Common::ActionEffectDisplayType effectDisplayType; + + uint8_t unknown20; // is read by handler, runs code which gets the LODWORD of animationLockTime (wtf?) + uint8_t effectCount; // ignores effects if 0, otherwise parses all of them + uint16_t padding_21; + + uint16_t padding_22[3]; + + uint8_t effects[8*8]; uint16_t padding_6A[3]; diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index b9250e66..d95e9056 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -180,13 +180,13 @@ void Sapphire::Entity::BNpc::hateListClear() auto it = m_hateList.begin(); for( auto listEntry : m_hateList ) { - //if( isInRangeSet( listEntry->m_pActor ) ) - //deaggro( listEntry->m_pActor ); + if( isInRangeSet( listEntry->m_pChara ) ) + deaggro( listEntry->m_pChara ); } m_hateList.clear(); } -Sapphire::Entity::ActorPtr Sapphire::Entity::BNpc::hateListGetHighest() +Sapphire::Entity::CharaPtr Sapphire::Entity::BNpc::hateListGetHighest() { auto it = m_hateList.begin(); uint32_t maxHate = 0; @@ -201,25 +201,25 @@ Sapphire::Entity::ActorPtr Sapphire::Entity::BNpc::hateListGetHighest() } if( entry && maxHate != 0 ) - return entry->m_pActor; + return entry->m_pChara; return nullptr; } -void Sapphire::Entity::BNpc::hateListAdd( Sapphire::Entity::ActorPtr pActor, int32_t hateAmount ) +void Sapphire::Entity::BNpc::hateListAdd( Sapphire::Entity::CharaPtr pChara, int32_t hateAmount ) { auto hateEntry = std::make_shared< HateListEntry >(); hateEntry->m_hateAmount = hateAmount; - hateEntry->m_pActor = pActor; + hateEntry->m_pChara = pChara; m_hateList.insert( hateEntry ); } -void Sapphire::Entity::BNpc::hateListUpdate( Sapphire::Entity::ActorPtr pActor, int32_t hateAmount ) +void Sapphire::Entity::BNpc::hateListUpdate( Sapphire::Entity::CharaPtr pChara, int32_t hateAmount ) { for( auto listEntry : m_hateList ) { - if( listEntry->m_pActor == pActor ) + if( listEntry->m_pChara == pChara ) { listEntry->m_hateAmount += hateAmount; return; @@ -228,21 +228,21 @@ void Sapphire::Entity::BNpc::hateListUpdate( Sapphire::Entity::ActorPtr pActor, auto hateEntry = std::make_shared< HateListEntry >(); hateEntry->m_hateAmount = hateAmount; - hateEntry->m_pActor = pActor; + hateEntry->m_pChara = pChara; m_hateList.insert( hateEntry ); } -void Sapphire::Entity::BNpc::hateListRemove( Sapphire::Entity::ActorPtr pActor ) +void Sapphire::Entity::BNpc::hateListRemove( Sapphire::Entity::CharaPtr pChara ) { for( auto listEntry : m_hateList ) { - if( listEntry->m_pActor == pActor ) + if( listEntry->m_pChara == pChara ) { m_hateList.erase( listEntry ); - if( pActor->isPlayer() ) + if( pChara->isPlayer() ) { - PlayerPtr tmpPlayer = pActor->getAsPlayer(); + PlayerPtr tmpPlayer = pChara->getAsPlayer(); //tmpPlayer->onMobDeaggro( getAsBattleNpc() ); } return; @@ -250,47 +250,51 @@ void Sapphire::Entity::BNpc::hateListRemove( Sapphire::Entity::ActorPtr pActor ) } } -bool Sapphire::Entity::BNpc::hateListHasActor( Sapphire::Entity::ActorPtr pActor ) +bool Sapphire::Entity::BNpc::hateListHasActor( Sapphire::Entity::CharaPtr pChara ) { for( auto listEntry : m_hateList ) { - if( listEntry->m_pActor == pActor ) + if( listEntry->m_pChara == pChara ) return true; } return false; } -void Sapphire::Entity::BNpc::aggro( Sapphire::Entity::ActorPtr pActor ) +void Sapphire::Entity::BNpc::aggro( Sapphire::Entity::CharaPtr pChara ) { m_lastAttack = Util::getTimeMs(); - hateListUpdate( pActor, 1 ); + hateListUpdate( pChara, 1 ); - changeTarget( pActor->getId() ); + changeTarget( pChara->getId() ); setStance( Stance::Active ); m_state = BNpcState::Combat; - if( pActor->isPlayer() ) + if( pChara->isPlayer() ) { - PlayerPtr tmpPlayer = pActor->getAsPlayer(); + PlayerPtr tmpPlayer = pChara->getAsPlayer(); tmpPlayer->queuePacket( makeActorControl142( getId(), ActorControlType::ToggleWeapon, 0, 1, 1 ) ); //tmpPlayer->onMobAggro( getAsBattleNpc() ); } } -void Sapphire::Entity::BNpc::deaggro( Sapphire::Entity::ActorPtr pActor ) +void Sapphire::Entity::BNpc::deaggro( Sapphire::Entity::CharaPtr pChara ) { - if( !hateListHasActor( pActor ) ) - hateListRemove( pActor ); + if( !hateListHasActor( pChara ) ) + hateListRemove( pChara ); - if( pActor->isPlayer() ) + if( pChara->isPlayer() ) { - PlayerPtr tmpPlayer = pActor->getAsPlayer(); + PlayerPtr tmpPlayer = pChara->getAsPlayer(); //tmpPlayer->onMobDeaggro( getAsBattleNpc() ); } } void Sapphire::Entity::BNpc::update( int64_t currTime ) { + const uint8_t minActorDistance = 4; + const uint8_t aggroRange = 8; + const uint8_t maxDistanceToOrigin = 30; + switch( m_state ) { case BNpcState::Retreat: @@ -302,52 +306,47 @@ void Sapphire::Entity::BNpc::update( int64_t currTime ) case BNpcState::Idle: { - CharaPtr pClosestActor = getClosestChara(); + CharaPtr pClosestChara = getClosestChara(); - if( ( pClosestActor != nullptr ) && pClosestActor->isAlive() ) + if( pClosestChara && pClosestChara->isAlive() ) { auto distance = Util::distance( getPos().x, getPos().y, getPos().z, - pClosestActor->getPos().x, - pClosestActor->getPos().y, - pClosestActor->getPos().z ); + pClosestChara->getPos().x, + pClosestChara->getPos().y, + pClosestChara->getPos().z ); - if( distance < 8 && pClosestActor->isPlayer() ) - aggro( pClosestActor ); - //if( distance < 8 && getbehavior() == 2 ) + if( distance < aggroRange && pClosestChara->isPlayer() ) + aggro( pClosestChara ); + //if( distance < aggroRange && getbehavior() == 2 ) // aggro( pClosestActor ); } } case BNpcState::Combat: { - auto pActor = hateListGetHighest(); - if( !pActor ) + auto pHatedActor = hateListGetHighest(); + if( !pHatedActor ) return; - auto pClosestActor = pActor->getAsChara(); auto distanceOrig = Util::distance( getPos().x, getPos().y, getPos().z, m_spawnPos.x, m_spawnPos.y, m_spawnPos.z ); - if( pClosestActor && !pClosestActor->isAlive() ) + if( pHatedActor && !pHatedActor->isAlive() ) { - hateListRemove( pClosestActor ); - pActor = hateListGetHighest(); - if( pActor ) - pClosestActor = pActor->getAsChara(); - else - pClosestActor.reset(); + hateListRemove( pHatedActor ); + pHatedActor = hateListGetHighest(); } - if( pClosestActor != nullptr ) + if( pHatedActor ) { auto distance = Util::distance( getPos().x, getPos().y, getPos().z, - pClosestActor->getPos().x, - pClosestActor->getPos().y, - pClosestActor->getPos().z ); + pHatedActor->getPos().x, + pHatedActor->getPos().y, + pHatedActor->getPos().z ); - if( distanceOrig > 30 ) + if( distanceOrig > maxDistanceToOrigin ) { hateListClear(); changeTarget( INVALID_GAME_OBJECT_ID ); @@ -357,14 +356,14 @@ void Sapphire::Entity::BNpc::update( int64_t currTime ) break; } - if( distance > 4 ) - moveTo( pClosestActor->getPos() ); + if( distance > minActorDistance ) + moveTo( pHatedActor->getPos() ); else { - if( face( pClosestActor->getPos() ) ) + if( face( pHatedActor->getPos() ) ) sendPositionUpdate(); // in combat range. ATTACK! - autoAttack( pClosestActor ); + autoAttack( pHatedActor ); } } else diff --git a/src/world/Actor/BNpc.h b/src/world/Actor/BNpc.h index 59cc750b..65bd166a 100644 --- a/src/world/Actor/BNpc.h +++ b/src/world/Actor/BNpc.h @@ -16,7 +16,7 @@ namespace Sapphire::Entity typedef struct { uint32_t m_hateAmount; - ActorPtr m_pActor; + CharaPtr m_pChara; } HateListEntry; enum class BNpcState @@ -67,14 +67,14 @@ namespace Sapphire::Entity void setState( BNpcState state ); void hateListClear(); - ActorPtr hateListGetHighest(); - void hateListAdd( ActorPtr pActor, int32_t hateAmount ); - void hateListUpdate( ActorPtr pActor, int32_t hateAmount ); - void hateListRemove( ActorPtr pActor ); - bool hateListHasActor( ActorPtr pActor ); + CharaPtr hateListGetHighest(); + void hateListAdd( CharaPtr pChara, int32_t hateAmount ); + void hateListUpdate( CharaPtr pChara, int32_t hateAmount ); + void hateListRemove( CharaPtr pChara ); + bool hateListHasActor( CharaPtr pChara ); - void aggro( ActorPtr pActor ); - void deaggro( ActorPtr pActor ); + void aggro( CharaPtr pChara ); + void deaggro( CharaPtr pChara ); void update( int64_t currTime ) override; diff --git a/src/world/Actor/Chara.cpp b/src/world/Actor/Chara.cpp index 868cfe3b..3a42f836 100644 --- a/src/world/Actor/Chara.cpp +++ b/src/world/Actor/Chara.cpp @@ -38,7 +38,7 @@ Sapphire::Entity::Chara::Chara( ObjKind type, FrameworkPtr pFw ) : Actor( type ), m_pose( 0 ), m_targetId( INVALID_GAME_OBJECT_ID ), - m_pFw( pFw ) + m_pFw( std::move( std::move( pFw ) ) ) { // initialize the free slot queue for( uint8_t i = 0; i < MAX_STATUS_EFFECTS; i++ ) @@ -48,8 +48,7 @@ Sapphire::Entity::Chara::Chara( ObjKind type, FrameworkPtr pFw ) : } Sapphire::Entity::Chara::~Chara() -{ -} += default; /*! \return the actors name */ std::string Sapphire::Entity::Chara::getName() const @@ -375,7 +374,7 @@ Sapphire::Action::ActionPtr Sapphire::Entity::Chara::getCurrentAction() const /*! \param ActionPtr of the action to be registered */ void Sapphire::Entity::Chara::setCurrentAction( Sapphire::Action::ActionPtr pAction ) { - m_pCurrentAction = pAction; + m_pCurrentAction = std::move( pAction ); } /*! @@ -398,36 +397,31 @@ void Sapphire::Entity::Chara::autoAttack( CharaPtr pTarget ) m_lastAttack = tick; srand( static_cast< uint32_t >( tick ) ); - uint16_t damage = static_cast< uint16_t >( 10 + rand() % 12 ); - uint32_t variation = static_cast< uint32_t >( 0 + rand() % 4 ); + auto damage = static_cast< uint16_t >( 10 + rand() % 12 ); - auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 0x336 ); + auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 7 ); effectPacket->setRotation( Util::floatToUInt16Rot( getRot() ) ); - Server::EffectEntry effectEntry{}; effectEntry.value = damage; effectEntry.effectType = ActionEffectType::Damage; - effectEntry.hitSeverity = static_cast< ActionHitSeverityType >( variation ); - + effectEntry.hitSeverity = ActionHitSeverityType::NormalDamage; effectPacket->addEffect( effectEntry ); sendToInRangeSet( effectPacket ); - if( isPlayer() ) - getAsPlayer()->queuePacket( effectPacket ); - pTarget->takeDamage( damage ); + } } /*! -ChaiScript Skill Handler. +Skill Handler. \param GamePacketPtr to send \param bool should be send to self? */ void Sapphire::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionId, uint64_t param1, - uint64_t param2, Entity::Chara& target ) + uint64_t param2, Entity::Chara& target ) { auto pExdData = m_pFw->get< Data::ExdDataGenerated >(); if( isPlayer() ) @@ -534,7 +528,7 @@ void Sapphire::Entity::Chara::handleScriptSkill( uint32_t type, uint16_t actionI auto actorsCollided = ActionCollision::getActorsHitFromAction( target.getPos(), getInRangeActors( true ), actionInfoPtr, TargetFilter::Allies ); - for( auto pHitActor : actorsCollided ) + for( const auto& pHitActor : actorsCollided ) { effectPacket->setTargetActor( pHitActor->getId() ); @@ -599,7 +593,7 @@ void Sapphire::Entity::Chara::addStatusEffectById( uint32_t id, int32_t duration /*! \param StatusEffectPtr to be applied to the actor */ void Sapphire::Entity::Chara::addStatusEffectByIdIfNotExist( uint32_t id, int32_t duration, Entity::Chara& source, - uint16_t param ) + uint16_t param ) { if( hasStatusEffect( id ) ) return; @@ -781,8 +775,6 @@ void Sapphire::Entity::Chara::updateStatusEffects() bool Sapphire::Entity::Chara::hasStatusEffect( uint32_t id ) { - if( m_statusEffectMap.find( id ) != m_statusEffectMap.end() ) - return true; - return false; + return m_statusEffectMap.find( id ) != m_statusEffectMap.end(); } diff --git a/src/world/Actor/Player.cpp b/src/world/Actor/Player.cpp index 1b00e7b5..991975e9 100644 --- a/src/world/Actor/Player.cpp +++ b/src/world/Actor/Player.cpp @@ -1474,7 +1474,7 @@ void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget ) auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 8 ); effectPacket->setRotation( Util::floatToUInt16Rot( getRot() ) ); - Server::EffectEntry entry; + Server::EffectEntry entry{}; entry.value = damage; entry.effectType = Common::ActionEffectType::Damage; entry.hitSeverity = Common::ActionHitSeverityType::NormalDamage; @@ -1488,7 +1488,7 @@ void Sapphire::Entity::Player::autoAttack( CharaPtr pTarget ) auto effectPacket = std::make_shared< Server::EffectPacket >( getId(), pTarget->getId(), 7 ); effectPacket->setRotation( Util::floatToUInt16Rot( getRot() ) ); - Server::EffectEntry entry; + Server::EffectEntry entry{}; entry.value = damage; entry.effectType = Common::ActionEffectType::Damage; entry.hitSeverity = Common::ActionHitSeverityType::NormalDamage; diff --git a/src/world/Network/PacketWrappers/EffectPacket.h b/src/world/Network/PacketWrappers/EffectPacket.h index 694cefc8..23cdb7ef 100644 --- a/src/world/Network/PacketWrappers/EffectPacket.h +++ b/src/world/Network/PacketWrappers/EffectPacket.h @@ -17,25 +17,28 @@ namespace Sapphire::Network::Packets::Server EffectPacket( uint64_t sourceId, uint32_t targetId, uint32_t actionId ) : ZoneChannelPacket< FFXIVIpcEffect >( static_cast< uint32_t >( sourceId ), targetId ) { - m_data.header.actionId = actionId; - m_data.header.actionAnimationId = static_cast< uint16_t >( actionId ); + m_data.effectCount = 0; + m_data.actionId = actionId; + m_data.actionAnimationId = static_cast< uint16_t >( actionId ); - m_data.header.animationTargetId = targetId; + m_data.animationTargetId = targetId; m_data.effectTargetId = targetId; - m_data.header.effectDisplayType = Common::ActionEffectDisplayType::ShowActionName; + m_data.effectDisplayType = Common::ActionEffectDisplayType::ShowActionName; } void addEffect( const Server::EffectEntry& effect ) { - assert( m_data.header.effectCount <= 8 ); + assert( m_data.effectCount <= 8 ); - std::memcpy( &m_data.effects[ m_data.header.effectCount++ ], &effect, sizeof( Server::EffectEntry ) ); + std::memset( m_data.effects, 0, sizeof( Server::EffectEntry ) * 8 ); + std::memcpy( &m_data.effects[ m_data.effectCount * 8 ], &effect, sizeof( Server::EffectEntry ) ); + m_data.effectCount++; } void setAnimationId( uint16_t animationId ) { - m_data.header.actionAnimationId = animationId; + m_data.actionAnimationId = animationId; } void setEffectFlags( uint32_t effectFlags ) @@ -45,12 +48,12 @@ namespace Sapphire::Network::Packets::Server void setRotation( uint16_t rotation ) { - m_data.header.rotation = rotation; + m_data.rotation = rotation; } void setTargetActor( const uint32_t targetId ) { - m_data.header.animationTargetId = targetId; + m_data.animationTargetId = targetId; m_data.effectTargetId = targetId; FFXIVPacketBase::setTargetActor( targetId ); From 603604b28dab4cd73c275b5f5e40604af0f24ebe Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 19 Jan 2019 17:50:33 +1100 Subject: [PATCH 383/385] fix bnpcs not despawning, stop passive mobs from aggroing the player --- src/world/Actor/BNpc.cpp | 9 +++++++++ src/world/Actor/BNpc.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/world/Actor/BNpc.cpp b/src/world/Actor/BNpc.cpp index d95e9056..ae698688 100644 --- a/src/world/Actor/BNpc.cpp +++ b/src/world/Actor/BNpc.cpp @@ -130,6 +130,11 @@ void Sapphire::Entity::BNpc::spawn( PlayerPtr pTarget ) pTarget->queuePacket( std::make_shared< NpcSpawnPacket >( *getAsBNpc(), *pTarget ) ); } +void Sapphire::Entity::BNpc::despawn( PlayerPtr pTarget ) +{ + pTarget->freePlayerSpawnId( getId() ); +} + Sapphire::Entity::BNpcState Sapphire::Entity::BNpc::getState() const { return m_state; @@ -306,6 +311,10 @@ void Sapphire::Entity::BNpc::update( int64_t currTime ) case BNpcState::Idle: { + // passive mobs should ignore players unless aggro'd + if( m_aggressionMode == 1 ) + return; + CharaPtr pClosestChara = getClosestChara(); if( pClosestChara && pClosestChara->isAlive() ) diff --git a/src/world/Actor/BNpc.h b/src/world/Actor/BNpc.h index 65bd166a..04a39164 100644 --- a/src/world/Actor/BNpc.h +++ b/src/world/Actor/BNpc.h @@ -44,6 +44,7 @@ namespace Sapphire::Entity virtual ~BNpc() override; void spawn( PlayerPtr pTarget ) override; + void despawn( PlayerPtr pTarget ) override; uint16_t getModelChara() const; uint8_t getLevel() const override; From 9712f94d00e1bc07201d88b40d38d4ac26a3fbc3 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Sat, 19 Jan 2019 19:28:12 +1100 Subject: [PATCH 384/385] cleanup spawn slot handling for bnpcs --- .../Network/PacketWrappers/NpcSpawnPacket.h | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/world/Network/PacketWrappers/NpcSpawnPacket.h b/src/world/Network/PacketWrappers/NpcSpawnPacket.h index ce6a0005..dc4f9402 100644 --- a/src/world/Network/PacketWrappers/NpcSpawnPacket.h +++ b/src/world/Network/PacketWrappers/NpcSpawnPacket.h @@ -76,17 +76,14 @@ namespace Sapphire::Network::Packets::Server m_data.bNPCName = bnpc.getBNpcNameId(); m_data.state = 1; - if( target.getId() == bnpc.getId() ) - { - m_data.spawnIndex = 0x00; - } - else - { - m_data.spawnIndex = target.getSpawnIdForActorId( bnpc.getId() ); - if( !target.isActorSpawnIdValid( m_data.spawnIndex ) ) - return; - } + assert( target.getId() != bnpc.getId() ); + + m_data.spawnIndex = target.getSpawnIdForActorId( bnpc.getId() ); + + if( !target.isActorSpawnIdValid( m_data.spawnIndex ) ) + return; + // 0x20 == spawn hidden to be displayed by the spawneffect control //m_data.displayFlags = bnpc.getDisplayFlags(); From 2a7727ec510320ce8ec5b3b6e3cd13a37f308bb4 Mon Sep 17 00:00:00 2001 From: Mordred Date: Sat, 19 Jan 2019 10:37:18 +0100 Subject: [PATCH 385/385] Fixed initial actorids for zones --- src/world/Territory/Zone.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/world/Territory/Zone.cpp b/src/world/Territory/Zone.cpp index 99cb2fad..3ad04d39 100644 --- a/src/world/Territory/Zone.cpp +++ b/src/world/Territory/Zone.cpp @@ -64,6 +64,7 @@ Sapphire::Zone::Zone( uint16_t territoryTypeId, uint32_t guId, FrameworkPtr pFw ) : m_currentWeather( Weather::FairSkies ), m_nextEObjId( 0x400D0000 ), + m_nextActorId( 0x500D0000 ), m_pFw( pFw ) { auto pExdData = m_pFw->get< Data::ExdDataGenerated >();

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%0D&cN6?ro|Y@3`a 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